目录
前言
将滑膜控制与状态观测器结合,可实现对速度信号的有效观测,从而实现无需速度测量的滑模控制。
图1 带状态观测器的闭环控制系统
1.系统
以二阶系统为例:
θ'' = -a*θ'-b*θ+k*u
其中,θ未位置信号,θ‘即速度信号。
定义状态变量x = [x1 x2]' = [θ θ']',所以上述系统的状态方程形式为:
x1' = x2
x2' = -a*x2-b*x1+k*u
输出方程:
y = x1
2.观测器设计
(x1^)' = (θ^)' = x2^+(y-x1^)*(α1/ε)
(x2^)' = (θ^)'' = -a*x2^-b*x1^+k*u+(y-x1^)*(α2/ε^2) (此加粗处书上漏了^)
其中,α1和α2为正实数,ε < 1。
①取h1 = α1/ε,h2 = (α2/ε^2),则观测器转化为:
x1^' = x2^+(y-x1^)*h1
x2' = -a*x2-b*x1+k*u+(y-x1^)*h2
②定义观测误差(x~) = x-x^,将系统状态空间方程代入到上述设计的观测器,可得:
(x1~) = -h1*(x1~)+(x2~)
(x2~) = -h2*(x1~)-a*(x2~)
y = x1
转化为状态空间形式,即
(x~)' = A*(x~)
其中,A = [-h1 1;-h2 -a],(x~) = [(x1~);(x2~)]。
③需要保证A为Hurwitz矩阵,即保证其特征根在复平面左侧;
求其特征方程|sI-A| = |s+h1 -1;h2 s+a| = 0,展开即s^2+(h1+a)*s+h2 = 0;
即转化为保证s^2+2*p*s+p^2为Hurwitz多项式,对应即h1+a = 2*p,h2 = p^2;
由s^2+2*p*s+p^2 = 0保证其特征根在复平面左侧得到p > 0,对应即h1+a > 0(这里我没看懂书上的理解,这是我自己的理解,Hurwitz多项式对应的就是保证特征根为负。而且经后面仿真也证实我的推断没错;而且h取值越大,超调量越大,但追踪所需时间越短),所以最终的h1和h2的取值关系为:
h1 > a
h2 = a^2
3.控制器设计
还是老“三部曲”(此处推导变量的标号可能很多,希望耐心推导):
(1)①定义滑膜面/滑膜函数:
s = c*e(个人认为滑模面项数 = 状态变量个数,欢迎指正)
其中c= [c1,1],e = [e1;e2] = [e;e'] = [θd - θ;θd' - θ'],并定义:
e = θd - θ,即e1 = θd - θ,e2 = e' = θd' - θ';
(e^) = θd - (θ^),即(e1^) = θd - (θ^),(e2^) = θd' - (θ^)';
(θ~) = θ - (θ^),(e~) = e - (e^),(s~) = s - (s^),再加前面定义的(x~) = x - (x^)。
②导数观测量为:
e' = θd - θ',即e1' = θd' - θ',e2' = e'' = θd'' - θ'';
(e^)' = θd' - (θ^)',即(e1^)' = θd' - (θ^)',(e2^)' = θd'' - (θ^)'';
(注意是(e^)'估计的导数值,而不是(e')^导数的估计值,这里书上感觉模棱两可,个人观点,欢迎批评指正),具体可以参阅以下文献:
(θ~)' = θ' - (θ^)',(e~)' = e' - (e^)',(s~)' = s' - (s^)'。
③由于含观测器,所以滑模面应与观测误差e^有关,所以需引入中间滑模面:
(s^) = c*e^
其中c= [c1,1],e^ = [e1;e2] = [e^;(e^)'] = [θd - (θ^);θd' - (θ^)']。
(2)④先求滑模控制律的等效控制项ueq,中间滑模面导数为(s^)' = c1*(e1^)'+(e2^)' = c1*(e2^)+(θd'' - (θ^)'')= c1*(e2^)+(-a*x2^-b*x1^+k*ueq) (将前面的(θ^)''代入,代入时将(y-x1^)*h2丢掉),
得到ueq = (a*x2^+b*x1^+c1*(e2^))/ k = (a*(θ^)'+b*θ^+c1*(e2^))/ k (加粗的^书上应该漏了)
⑤再求滑模控制律的鲁棒项usw ,usw 为满足滑模到达条件 s^(s^)' ≤ 0 的切换项,采用等速趋近律(s^)' = -η*sign(s^),所以鲁棒项为:
usw = η*sign(s^) / k
为了为消除抖振,将切换项 符号函数替换为 s^,所以usw = η*s^/k
所以基于高增益观测器的滑膜控制律为:
u = ueq+usw =(a*(θ^)'+b*θ^+c1*(e2^)+η*(s^))/ k,其中η > 0
(3)使用Lyapunov函数证明闭环系统稳定,V = 1/2*s^2,V' = 1/2*s*s'。(快考试了没时间,后面有时间补上)
4.MATLAB/Simulink仿真
取位置指令/理想信号θd = sin(t),扰动d = sin(t)(书中没有扰动,这是我自己加上的)
4.1s函数编写被控对象
function [sys,x0,str,ts,simStateCompliance] = Plant(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case 4,
sys=mdlGetTimeOfNextVarHit(t,x,u);
case 9,
sys=mdlTerminate(t,x,u);
otherwise
DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 2;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 2;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0 = [0.2 0]';
str = [];
ts = [0 0];
simStateCompliance = 'UnknownSimState';
function sys=mdlDerivatives(t,x,u)
theta = x(1);
dtheta = x(2);
d = u(1);%扰动
U = u(2);
a = 10;b = 1;k = 1;%系统参数
ddtheta = -a*dtheta-b*theta+k*U+d;
sys = [dtheta;ddtheta];
function sys=mdlUpdate(t,x,u)
sys = [];
function sys=mdlOutputs(t,x,u)
sys = x;
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1; % Example, set the next hit to be one second later.
sys = t + sampleTime;
function sys=mdlTerminate(t,x,u)
sys = [];
4.2Simulink模型
图2 基于高增益观测器的鲁棒滑膜控制Simulink模型
5结果分析
5.1出图结果
图3 角度θ与理想位置信号θd对比
图4 角速度θ与理想速度信号θd'对比
图5 θ和(θ^)输出角度和观测角度对比
图6 θ'和(θ^)'输出角速度和观测角速度对比
图7 观测误差e^
图8 观测误差变化率(e^ )'
图9 角度追踪误差e
图10 角度追踪误差e
图11 控制输出u
5.2结论
①对于观测器的设计,可以从图5、6看出在0.5s内便能观测吻合,也可以从图7、8看出误差基本稳定在1%,证明该高增益观测器设计的合理性;
②对于控制器的设计,可以从图3、4看出在1s内便能快速追踪理想位置信号,也可以从从图9、10看出追踪误差有微笑的波动,证明了该基于观测器的滑膜控制器鲁棒性。
5.3调参
①书上在推理中有许多小标错误,虽然在本例中最后对仿真影响不大,但是需要注意。
②书上推理中写的控制器参数c = 5和η = 1.5并不能使系统实现好的追踪效果,需要调整为c = 10和η = 50(但是它的程序中又写的是c = 10和η = 50),η越大,最终误差越快趋于0,而且随η的增大波动也减小,但控制器所需输出越大。
③设计观测器时,满足使矩阵A为Hurwitz多项式,我的理解和书上有些偏差,其中观测器的调节参数h越大,则观测时的误差趋于0所需时间越小,而且随h的增大波动也减小,但是超调量增大。
所以,调参时需要对控制器及观测器的性能进行折中。
如果有帮助,麻烦帮忙点个赞是我最大的分享动力,非常感谢!
注:仅为便利自己学习,错误在所难免,如有侵权,请联系删除,有兴趣的学者可以参考学习交流,谢谢!
参考资料:
《基于高增益观测器的挖掘机工作装置滑模控制---徐国胜等》