一、简介

在机器人的先进控制领域中,交互控制应用广泛。交互控制为接触机器人与人类用户提供了身体互动的机会,与人类进行强力交互的机器人在实现性能和稳定性方面面临着特殊挑战。它们需要低且可调节的端点阻抗以及高的力容量,并且需要具有低固有阻抗、表现出高阻抗(相对于人类受试者)的能力以及高力重量比的执行器。力反馈控制可用于提高执行器性能,但会导致众所周知的交互稳定性问题。

  • 环路成形设计方法

这种方法通过重新定义稳定性和性能来解决交互问题,使用计算方法搜索参数空间并显示调整控制参数时的性能变化。引入了互补稳定性的度量,并使用有限的环境动力学知识将耦合稳定性问题转换为鲁棒稳定性问题。

这种方法可提高机器人性能,超出当前最佳实践的稳定性约束(无源性)。

Loop Shaping方法的用途:设计机器人控制器以塑造 SISO 或 MIMO 反馈控制系统的开环频率响应。在环路整形控制器综合中,可以指定所需开环响应的形状,并使用环路整形函数来计算近似该形状的控制器。

Loop Shaping可以提高机器人系统的性能与鲁棒性!!

性能和鲁棒性要求,通常可以用开环响应增益来表示。例如,低频下的高增益降低了稳态偏移并提高了抗扰度。类似地,高频滚降提高了受控对象模型不确定或不准确的稳定性。环路整形是一种控制设计方法,您可以在其中确定开环系统响应的合适配置文件并设计控制器以实现该形状。

可以通过loopsyn调整性能和稳健性之间的平衡,设计一个稳定机器人控制器,使开环响应整形以接近提供的目标环路形状。

二、代码实现

MATLAB可实现语法:

上述指令主要是解决机器人性能和鲁棒性之间进行权衡的环路整形控制器设计问题,即通过混合两种循环整形方法来平衡性能和鲁棒性。
%% 设计环路成形控制器

s = zpk( 's' ); 
G = (s-20)/(s+200);
%% 设计一个控制器,该控制器产生一个上升时间约为 4 秒的闭环阶跃响应。
% % 满足此要求的一个简单目标环路形状是Gd = wc/s,其中目标交叉频率wc与所需的上升时间有关t = 2/wc。
wc = 0.8; 
Gd = wc/s;
% 获取控制器loopsyn
[K,CL,gamma] = loopsyn(G,Gd);
gamma
% 若gamma接近 1,表明实现的环路形状和目标环路形状之间的匹配度相当好。将实现的开环响应G*K与所需响应进行比较Gd。
sigma(G*K,"b",Gd,"r--",{0.01,10})
grid on
legend("Actual","Target")
step(CL)
运行结果:
gamma =

    1.1630
也可以可以使用输入参数alpha来指定loopsyn对性能(mixsyn设计)或鲁棒性(ncfsyn设计)的支持程度。默认情况下,loopsyn计算平衡设计,alpha= 0.5。要改变平衡,改变alpha. 考虑以下机器人和目标回路形状。
% 设计一个环路整形控制器,在鲁棒性不低于最大可实现鲁棒性的 85% 的gamma约束下最大化性能(最小化 )
G = tf(65,[2 20 20 20]); 
Gd = tf(0.2,[2 0]);
alpha = 0.85;
[K,CL,gamma,info] = loopsyn(G,Gd,alpha);
info.emax

MATLAB运行的结果如下所示:

gamma =

     0.7235

ncfmargin(info.Gs,info.Ks)

ans =

    0.6150

MATLAB运行可视化结果:

设计可以很好地匹配回路形状,而不会牺牲太多的稳健性。使用此控制器检查性能和回路形状。

三、实例化分析

这一部分会展示如何通过为带有控制器的设备的开环响应指定所需的形状来设计控制器。

loopsyn命令设计了一个控制器,该控制器对开环响应进行整形,以大致匹配提供的目标环路形状。

loopsyn可以调整性能和稳健性之间的权衡以获得令人满意的时域响应,同时避免控制对象反转或灵活模式取消的脆弱设计。

在此示例中,为机器人模型设计了一个控制器。该示例显示了性能和鲁棒性之间的平衡如何影响回路形状和闭环响应。然后,该示例显示了如何减少控制器阶数,同时保留所需的响应特性。

使用以下机器人系统状态空间矩阵,该模型有六个状态

A = [ -5.2587e-02  -2.6657e+01  -2.8877e+01  -3.2090e+01   3.2509e+00  -7.6257e-01;
       4.2582e-05  -1.8957e+00   9.8322e-01  -7.2562e-04  -1.7080e-01  -4.9652e-03;
       1.2368e-02   1.1730e+01  -2.6316e+00   3.7582e-04  -3.1604e+01   2.2396e+01;
       0            0            1.0000e+00   0            0            0;
       0            0            0            0           -3.0000e+01   0;
       0            0            0            0            0           -3.0000e+01];
B = [0     0;
     0     0;
     0     0;
     0     0;
    50     0;
     0    50];
C = [0     1     0     0     0     0;
     0     0     0     1     0     0];
D = [0     0;
     0     0];

G = ss(A,B,C,D);
G.InputName = {'elevon','canard'};
G.OutputName = {'attack','attitude'};
接下来检查模型的奇异值。
其中,奇异值分解法是线性代数矩阵论中一种重要的矩阵分解法。
奇异值是矩阵里的概念,一般通过奇异值分解定理求得。设A为m*n阶矩阵,q=min(m,n),A*A的q个非负特征值的算术平方根叫作A的奇异值。奇异值分解是线性代数矩阵论中一种重要的矩阵分解法,适用于信号处理和统计学等领域。
利用MATLAB的指令函数:
sigma(G)
利用step函数画出阶跃响应变化:
sigma(Gd,{0.1 100})
grid on



环路形状在高频处具有低增益以提高鲁棒性,而在低频处具有高增益以提高机器人的性能。
总之,loopsyn可以实现调整机器人性能和鲁棒性之间的权衡,为机器人仿真计算的过程中取得适当的平衡。
当控制器阶数低于loopsyn返回的计算结果,一种选择是使用balred来减少控制器阶数,但以这种方式减少机器人控制器阶数改变了其性能和鲁棒性的平衡。
参考文献:
S. P. Buerger and N. Hogan, "Complementary Stability and Loop Shaping for Improved Human–Robot Interaction," in IEEE Transactions on Robotics, vol. 23, no. 2, pp. 232-244, April 2007, doi: 10.1109/TRO.2007.892229.