【非线性鲁棒控制器_滑模控制学习】_下_基础滑模控制仿真验证

基础滑模控制器simulink仿真:

从理论推导到仿真分析
理论推导在这里,博客链接

  • 一个简单的例子来实践滑模控制

简单的例子

系统 x ˙ = a x 2 + u \dot{x}=ax^2+u x˙=ax2+u ∣ a ∣ ≤ ∣ a ˉ ∣ |a|\leq|\bar{a}| aaˉ
那么, a x 2 ax^2 ax2就是那个未知的 f ( x ) f(x) f(x)
所以,有
∣ f ( x ) ∣ = ∣ a ∣ x 2 < ∣ a ˉ ∣ x 2 < ∣ a ˉ ∣ ( x 2 + 0.1 ) |f(x)|=|a|x^2<|\bar{a}|x^2<|\bar{a}|(x^2+0.1) f(x)=ax2<aˉx2<aˉ(x2+0.1)
滑模控制器的表达式 u = x ˙ d + k e + ρ ∗ ∣ e ∣ e u=\dot x_d+ke+\rho*\frac{|e|}{e} u=x˙d+ke+ρee

显然, ∣ a ˉ ∣ ( x 2 + 0.1 ) |\bar{a}|(x^2+0.1) aˉ(x2+0.1) 就是那个 ρ ( x ) \rho(x) ρ(x)

u = k e + x ˙ d + ∣ a ˉ ∣ ( x 2 + 0.1 ) ∣ e ∣ e u=ke+\dot x_d+|\bar{a}|(x^2+0.1)\frac{|e|}{e} u=ke+x˙d+aˉ(x2+0.1)ee
下面就可以打开simulink进行验证了。


simulink模块搭建

模块搭建

要点清单:

  • a a a的选取是simulink中的uniform random number 模块,取值范围是-1到1
  • x d x_d xd是常数,所以 x ˙ d = 0 \dot x_d=0 x˙d=0
  • sign模块里面的过零检测的勾要去掉,不然仿真会报错
  • 把用到的公式写在界面上,方便模块搭建
  • 系统方程就是: x ˙ = a x 2 + u \dot x=ax^2+u x˙=ax2+u
  • 用示波器来看误差值和控制输入u
  • 点击绿色run就可以进行仿真

仿真结果:

1、误差结果

可以看到误差很快就收敛了,然后在0附近来回变化。
误差

2、控制输入

可以看到控制输入的变化非常剧烈,频繁,在1和-1之间快速切换,这显然是不好的。
u


总结:

提示:下一篇会是几个控制器的对比仿真实验

  • 理论推导
  • simulink模块搭建
  • 仿真及简单结果分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值