目录 | 滑模控制的一点笔记和看法 |
---|---|
1 | 【控制】滑动模型控制(Sliding Mode Control) |
2 | 【控制】滑模控制,小例子,有程序有结果图 |
3 | 【控制】滑模控制,滑模面的选择 |
1 问题描述
假设存在一个被控系统
设计滑模面为
那么问题就是滑模面是什么?为什么要写成这种形式?
2 滑模面
滑模面一般可以设计为如下的形式
在滑模控制中,要保证多项式 为Hurwitz (简单来说这条条件是为了满足状态在 的滑模面上可以收敛)。什么是Hurwitz,即上述多项式的特征值的实数部分在左半平面,即为负。
下面举例说明:
当 时, ,为了保证多项式 为Hurwitz,需要多项式 的特征值实数部分为负,即 。
接着明确一下,控制器的目的是为了使得状态 和 均达到零,我们令 ,分析一下结果有
通过式 (4) 可以看到状态 和 最终都是趋向于零的,而且速度是以指数速率趋紧的。指数速率意味着当 时,趋零过程完成 ,当 时,趋零过程完成 。那么我们通过调节参数 的大小即可实现对趋零速度的调节, 越大,速度越快。
因此如果满足了 ,那么系统的状态 和 也将沿着滑模面趋近于零 ( 称之为滑模面)。
3 趋近律
上述过程介绍了如果 那么状态变量 就会趋近于零,那么接下来考虑如何保证 。也就是控制器 将出现了。
针对式 (2) 的滑模面,其中并没有控制器 ,我们可以对式 (2) 取微分那么有
这时我们得到了 的一个式子。但是怎么与状态 建立联系呢?
解决办法就是已经规整好的趋近律。趋近律就是指的 的一个显式表达式,一般有
其中 是符号函数,。
结合趋近律式 (6) 和式 (2) 滑模面的微分,我们就可以得到控制器 的代数方程表达式。
4 不同趋近律
令式 (2) 中的参数 为2,我们研究不同趋近律的效果。
将 代入式 (5) 有
4.1
趋近律取 有
代入式 (1) 系统变为
4.2
趋近律取 有
代入式 (1) 系统变为
4.3
趋近律取 有
代入式 (1) 系统变为
上述仿真过程所用的程序如下:
clear
clc
x_1(:,1) = 1;
x_2(:,1) = 2;
% Gains
c = 2;
epsilon = 1;
k = 1;
alpha = 0.5;
%%
tBegin = 0;
tFinal = 100;
dT = 0.05;
times = (tFinal - tBegin) / dT;
t(1,1) = tBegin;
for i = 1:times
% record time
t(:,i+1) = t(:,i) + dT;
% slide model plane
s = c*x_2(:,i) + x_1(:,i);
% control input
u = -epsilon * sign(s) - 2 * x_2(:,i);
u = -epsilon * sign(s) - k * s - 2 * x_2(:,i);
u = -k * abs(s)^alpha * sign(s) - k * s - 2 * x_2(:,i);
% update states
dot_x_2 = u;
x_2(:,i+1) = x_2(:,i) + dT * dot_x_2;
dot_x_1 = x_2(:,i+1);
x_1(:,i+1) = x_1(:,i) + dT * dot_x_1;
end
%%
plot(t,x_1, t,x_2, 'linewidth',1.5);
legend('$x_1$', '$x_2$', 'interpreter','latex');
grid on;
Ref.
文章出处登录后可见!
已经登录?立即刷新