机器人不确定系统 Robust Controllers 频域MIMO控制器设计(不确定性建模)

        机器人本身就是一个高度非线性的系统,对于非线性系统的控制,可以把非线性因素考虑为系统的不确定性或扰动,因此,这样就可以采用鲁棒控制这个工具来进行机器人控制系统的设计,考虑不确定性的摄动以及外界扰动的变化,其自身建模的不确定性(可能由于用非线性理论来解决非线性问题的建模不准确带来的不确定性)。

         针对机器人不确定系统,可以采用鲁棒控制器进行设计。其中,频域MIMO控制器设计是一种常见的方法。

该方法的设计流程如下:

  1. 确定系统的传递函数,包括机器人的运动学和动力学模型。

  2. 根据机器人运动学和动力学模型,构建系统的状态空间模型。

  3. 确定控制器的结构,一般采用频域MIMO控制器。

  4. 通过频域MIMO控制器设计,得到控制器的传递函数。

  5. 将控制器的传递函数与系统的传递函数相乘,得到闭环系统的传递函数。

  6. 利用MATLAB等工具进行仿真,分析闭环系统的稳定性和性能,调整控制器参数,使得闭环系统满足性能指标。

大多数控制器设计都涉及性能和抵抗不确定性的鲁棒性之间的权衡,在MATLAB中可采用一些函数命令来进行设计,loopsyn允许调整性能和鲁棒性之间的平衡。ncfsyn专注于鲁棒的稳定性,而mixsyn专注于性能。

       对于现有的机器人系统,可以通过对其传感器精度、力矩纹波、未建模动态、量化噪声、时延等不确定性建模,系统地分析期望动态呈现幅值与频率范围及匹配精度、鲁棒耦合稳定性和鲁棒稳定性等问题,从而提高机器人可靠性。

       实际 系统会受到各种干扰。例如电机自身产生的转矩波动,齿轮传动或电流脉动。

       在鲁棒控制中,可以将不确定性建模为外部干扰或标称模型的摄动。摩擦实际上表现出非线性行为,故将摩擦中的不能用与速度相关的粘性模型部分、输入力矩脉动和噪声等建模为外部干扰。因此,用等效惯量 Mm、摩擦系数 Dm以及等效刚度 k 的参数摄动,描述谐波减速器和轴承等组件的不确定性。

        电机侧和连杆侧在角度检测时存在的测量噪声。

       不确定性包括模型参数摄动, 传感器噪声, 输入干扰和控制输入限制

不确定性如下,需要进行不确定性建模:

        参数摄动、传感器精度(灵敏度、线性性、温度漂移)、力矩纹波(驱动器不确定性导致)、未建模动态(机械系统中的摩擦、传动系统的弹性、关节间的柔性耦合等)、量化噪声(信号采样和数字转换过程中引入的噪声n)、时延(传感器采样、信号传输、控制计算)、输入力矩脉动(外部环境对机器人系统施加的随机干扰)

不确定性的原因:

        以角编码器和力矩传感器为例,它们都是机器人系统中常用的传感器类型。

        角编码器可以用来测量机器人关节的角度位置和角速度,从而提供机器人的状态信息。传感器的精度取决于其测量分辨率、灵敏度、非线性等特性。例如,如果编码器的分辨率为1度,那么它可以测量出关节位置的变化到1度的精度。

力矩传感器可以用来测量机器人末端执行器施加的力和力矩信息,从而提供机器人与环境的交互信息。传感器的精度取决于其灵敏度、线性性、温度漂移等特性。例如,如果力矩传感器的灵敏度为0.01 Nm,那么它可以测量出0.01 Nm以下的力矩变化。

因此,对于机器人系统中的传感器,精度的提高可以帮助提高机器人的位置和力矩控制的精度和稳定性,从而提高机器人的可靠性和性能。

       

         角编码器和力矩传感器的精度与量化噪声有一定关系。量化噪声是指在信号采样和数字转换过程中引入的噪声,通常由于采样时钟抖动和转换误差等原因引起。这种噪声可以通过增加采样率和使用更高精度的ADC来降低,但也会受到硬件限制。

对于角编码器而言,量化噪声会影响其输出的分辨率和精度。如果量化噪声比编码器的分辨率还要大,那么就会引入测量误差。因此,在建模角编码器精度不确定性时,需要考虑量化噪声对测量误差的影响。

对于力矩传感器而言,量化噪声也会对其测量精度产生影响。特别是在低力矩范围内,量化噪声的影响可能更加显著。因此,在建模力矩传感器精度不确定性时,也需要考虑量化噪声的影响。

输入力矩脉动通常是指外部环境对机器人系统施加的随机干扰,例如在机器人进行力控制时受到的外界力干扰,它可能导致机器人的运动不稳定。

控制输入限制是指控制器本身的限制,例如输出幅值、频率响应等方面的限制,这些限制可能会影响机器人的控制精度和稳定性。

力矩纹波通常指机器人驱动器输出的力矩存在的波动,这种波动可能会引起机器人系统的震动或者控制误差。

驱动器不确定性是指驱动器本身的特性和参数存在的不确定性,例如机械摩擦、电机模型不准确等,这种不确定性可能会对机器人的动态性能和控制精度产生影响。

在实际的机器人系统中,这些因素往往相互作用,例如驱动器不确定性可能导致力矩纹波输入力矩脉动可能受到控制输入限制的影响等等。因此,需要进行系统级别的建模和分析,综合考虑各种因素对机器人系统的影响,从而提高机器人系统的可靠性和稳定性。

未建模动态时延都是机器人系统的不确定性因素,但它们具有不同的特点和影响。未建模动态通常指那些由于某些原因未能被完全建模的动态效应,如传动系统的弹性、关节间的柔性耦合等。这些未建模动态可能导致机器人系统的运动不稳定或出现不可预测的行为。时延则是指从输入信号发出到系统响应产生的延迟,如传感器采样、信号传输、控制计算等。时延会导致控制器输出的信号和实际控制执行的信号之间存在差异,可能引起系统不稳定或者影响系统的性能。

未建模动态和时延都是机器人系统中常见的不确定性因素,需要在系统设计和控制器设计时进行考虑和处理。在建模和控制器设计时,可以采用适当的方法来考虑这些不确定性因素的影响,例如将未建模动态建模为额外的状态变量或者采用基于模型预测控制器等方法来抵消时延的影响。

       例如,可以将时延建模为系统的一阶滞后响应,将未建模动态建模为系统的附加动态响应。在控制器设计中,可以考虑将这些不确定性因素纳入到控制器设计中,采用鲁棒控制或者自适应控制等方法来提高系统的稳定性和鲁棒性。

% ___________________________μ综合设计控制器

G0 = tf(1,[1 -1]);
Wu = 0.25*tf([1/2 1],[1/32 1]); 
InputUnc = ultidyn('InputUnc',[1 1]);
G = G0*(1+InputUnc*Wu);
Wp = makeweight(100,[1 0.5],0.25);
bodemag(Wp)
G.InputName = 'u';
G.OutputName = 'y1';
Wp.InputName = 'y';
Wp.OutputName = 'e';
SumD = sumblk('y = y1 + d');

inputs = {'d','u'};
outputs = {'e','y'};
P = connect(G,Wp,SumD,inputs,outputs);
nmeas = 1;
ncont = 1;
[K,CLperf,info] = musyn(P,nmeas,ncont); 
CL = lft(P,K);
wcg = wcgain(CL)
size(K)

我们可以得到以下结果:

D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           1.345        1.344         1.36                 8
    2          0.7923       0.7904       0.7961             4
    3          0.6789       0.6789       0.6857            10
    4          0.6572       0.6572       0.6598             8
    5          0.6538       0.6538       0.6542             8
    6          0.6532       0.6532       0.6533             8

Best achieved robust performance: 0.653


wcg = 

  包含以下字段的 struct:

           LowerBound: 0.5283
           UpperBound: 0.5294
    CriticalFrequency: 0

State-space model with 1 outputs, 1 inputs, and 11 states.

这是一个针对某个控制系统设计的DK迭代的结果,可以看到迭代了6次,每次迭代都会更新控制器增益系数K,同时计算系统的鲁棒性能和拟合阶次D。最终达到的最佳鲁棒性能为0.653。在迭代过程中,可以看到拟合阶次D在不断变化,而鲁棒性能则逐步提高至最优值。

另外,给出了系统的状态空间模型,包含一个输出、一个输入和11个状态。同时还给出了系统的频域特性,包括下限、上限和临界频率。这些信息可以用来分析系统的稳定性、抗干扰性能等。

得到的控制器bode图如下:

当然在设计控制器中还会存在不能求解的情况:

例如:

D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit                     D
    1       5.006e+18    5.006e+18    5.006e+18             0
    2       5.006e+18    5.006e+18    5.006e+18             0
    3       5.006e+18    5.006e+18    5.006e+18             0

Best achieved robust performance: 5.01e+18

这个结果说明了在使用D-K方法来设计控制器时,经过三轮的迭代,没有找到能够满足稳定性和鲁棒性要求的控制器。在每次迭代中,D-K方法会根据当前的控制器增益计算一个鲁棒性性能指标MU,并尝试寻找一个新的控制器增益来减小MU。在这种情况下,无论迭代了多少次,都没有找到一个控制器能够满足性能指标。最终的结果表明,无论是性能指标还是控制器增益,都已经超出了计算机数值的表示范围,因此在结果中显示为一个非常大的数字。这可能是由于系统极其不稳定或者控制器设计中出现了错误所导致的。需要进一步分析和调整控制器设计方法。

D的值三次都是0,这可能是由于迭代过程早期的一些选择导致的,如初始模型的选择或迭代步骤的选择,导致后续的迭代步骤无法改进模型的性能。也有可能是在迭代过程中出现了数值计算上的问题,使得D的值被错误地更新为0。

进一步分析不确定性建模:

             利用MATLAB中不确定性实参建立动力学参数的不确定性,运行结果如下:

从上述结果中,我们可以看出不确定性动力学参数在给定摄动范围内进行变化,模拟动力学参数的不确定性!

从动力学系统中可以得到,被控对象具有不确定性,因为参数摄动的影响,上图为控制力矩到输出位置、反作用力到输出位置之间传递函数的Bode图幅值部分!

当然,我们也可以利用MATLAB函数得到动态系统及其标称系统的奇异值变化:

以及得到不确定性系统的阶跃响应:

除了对不确定性动力学实参建模,当然也可以对驱动器进行不确定性建模,建立乘性不确定性模型,得到的仿真结果如下:

模拟驱动器的力矩纹波,并将其表示为带有不确定性的系统,对于未建模动态也可以用乘性不确定性进行建模。

其他:加性不确定性建模方式可以考虑这几种 -  噪声、测量误差、外部干扰。

参考文献:

【1】https://ww2.mathworks.cn/help/robust/gs/loop-shaping-for-performance-and-robustness.html

【2】Dorato, P. (1987). A historical review of robust control. IEEE Control Systems Magazine7(2), 44-47.

【3】Green, M., & Limebeer, D. J. (2012). Linear robust control. Courier Corporation.

【4】Hansen, L. P., & Sargent, T. J. (2001). Robust control and model uncertainty. American Economic Review91(2), 60-66.

【5】Safonov, M. G. (2012). Origins of robust control: Early history and future speculations. Annual Reviews in Control36(2), 173-181.