一、简介
在机器人的先进控制领域中,交互控制应用广泛。交互控制为接触机器人与人类用户提供了身体互动的机会,与人类进行强力交互的机器人在实现性能和稳定性方面面临着特殊挑战。它们需要低且可调节的端点阻抗以及高的力容量,并且需要具有低固有阻抗、表现出高阻抗(相对于人类受试者)的能力以及高力重量比的执行器。力反馈控制可用于提高执行器性能,但会导致众所周知的交互稳定性问题。
-
环路成形设计方法
这种方法通过重新定义稳定性和性能来解决交互问题,使用计算方法搜索参数空间并显示调整控制参数时的性能变化。引入了互补稳定性的度量,并使用有限的环境动力学知识将耦合稳定性问题转换为鲁棒稳定性问题。
这种方法可提高机器人性能,超出当前最佳实践的稳定性约束(无源性)。
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的奇异值。奇异值分解是线性代数和矩阵论中一种重要的矩阵分解法,适用于信号处理和统计学等领域。 |
sigma(G)

sigma(Gd,{0.1 100})
grid on


loopsyn可以实现
调整机器人性能和鲁棒性之间的权衡,为机器人仿真计算的过程中取得适当的平衡。
评论(0)
您还未登录,请登录后发表或查看评论