当前位置: 首页 > news >正文

滑模面、趋近律设计过程详解(滑模控制)

目录

    • 1. 确定系统的状态变量和目标
    • 2. 定义滑模面
    • 3. 选择滑模面的参数
    • 4. 设计控制律
    • 5. 验证滑模面设计
    • 6. 总结

设计滑模面(Sliding Surface)是滑模控制(Sliding Mode Control,SMC)中的关键步骤。滑模控制是一种鲁棒控制方法,通过将系统状态驱动到滑模面上并沿着滑模面滑行,从而达到系统的控制目标。设计滑模面通常包括以下步骤:

1. 确定系统的状态变量和目标

  • 首先,明确系统的状态变量 x x x 和控制目标。状态变量通常是系统的状态向量,而控制目标可能是状态变量的某个期望值或轨迹。

2. 定义滑模面

  • 滑模面 s ( x ) s(x) s(x)是一个定义在状态空间中的超平面,使得系统在该超平面上具有期望的动态行为。滑模面可以定义为系统状态的某种函数等于零的集合:
    s ( x ) = 0 s(x) = 0 s(x)=0

滑模面通常设计为系统状态误差的线性组合,例如:
s ( x ) = C T ( x − x d ) s(x) = C^T(x-x_d) s(x)=CT(xxd)

其中, C T C^T CT为设计矩阵, x d x_d xd为期望状态。

3. 选择滑模面的参数

  • 滑模面的参数(如矩阵 C C C) 的选择应保证系统状态能够被驱动到滑模面上,并沿着滑模面滑行。例如,在一阶系统中,滑模面通常设计为状态误差的比例,如 s ( x ) = x − x d s(x) = x-x_d s(x)=xxd。对于高阶系统,滑模面可以设计为包含误差及其导数项的多项式,如:

s ( x , x ˙ ) = x ˙ + λ ( x − x d ) = x ˙ + λ e s(x,\dot{x}) = \dot{x} + \lambda(x-x_d) = \dot{x} + \lambda e s(x,x˙)=x˙+λ(xxd)=x˙+λe

其中, λ \lambda λ为设计参数, e = x − x d e = x-x_d e=xxd 为状态误差。

滑模面一般可以设计为如下的形式
s ( x ) = ∑ i = 1 n − 1 c i x i + x n s(x) = \sum_{i = 1}^{n-1}c_i x_i + x_n s(x)=i=1n1cixi+xn

设计条件:
p n − 1 + c n − 1 p n − 2 + . . . + c 2 p + c 1 p^{n-1} + c_{n-1} p^{n-2} +...+ c_2 p + c1 pn1+cn1pn2+...+c2p+c1保证该多项式为Hurwit(该条件满足状态 x x x s = 0 s = 0 s=0的滑模面上收敛),满足赫尔维茨稳定性,即上述多项式的特征值实部为负,即特征值点在s左半平面。

例如:以文章 滑模变结构控制仿真实例(s-function代码详解) 中的数学模型为例。即:
{ x ˙ 1 = x 2 x ˙ 2 = x 3 x ˙ 3 = x 1 + x 2 x 3 + u \begin{aligned} \left\{ \begin{array}{l} \dot{x}_1 = x_2 \\ \dot{x}_2 = x_3 \\ \dot{x}_3 = x_1 + x_2 x_3 + u \end{array} \right. \end{aligned} x˙1=x2x˙2=x3x˙3=x1+x2x3+u

取n = 3, 即 s ( x ) = c 1 x 1 + c 2 x 2 + x 3 s(x) = c_1 x_1+c_2 x_2 + x_3 s(x)=c1x1+c2x2+x3, 为满足Hurwitz条件,要求特征多项式 p 2 + c 2 p + c 1 = 0 p^2+c_2p+c1 = 0 p2+c2p+c1=0的特征值实部为负,取 c 1 = 1 , c 2 = 2 c_1 = 1, c_2 = 2 c1=1,c2=2,得多项式为 p 2 + 2 p + 1 = 0 p^2+2p+1 = 0 p2+2p+1=0,解得两个特征根 − 1 , − 1 -1, -1 1,1 满足条件。

根据之前所说,控制器的目的是使状态变量 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3收敛到0,我们令 s = 0 s = 0 s=0,即令 s ˙ \dot{s} s˙ = 控制律,进而求解控制器 u u u

  • 该模型中,取 s ˙ \dot{s} s˙ = 趋近律, 采用指数趋近律 s ˙ = − s g n ( s ) − s \dot{s} = -sgn(s)-s s˙=sgn(s)s s g n ( s ) sgn(s) sgn(s)为符号函数)求得控制器 u u u
    u = − s g n ( s ) − s − x 1 − x 2 − 2 x 3 − x 2 x 3 \begin{align*} u = -sgn(s) - s -x_1 -x_2 -2x_3-x_2 x_3 \end{align*} u=sgn(s)sx1x22x3x2x3

4. 设计控制律

  • 传送门:符号函数与饱和函数的滑模设计案例(s-function函数仿真)
  • 控制律的设计目的是驱动系统状态到达滑模面并沿滑模面滑行。常见的滑模控制律形式为:
  1. 等速趋近律: s ˙ = − ε s g n ( s ) \dot{s} = -\varepsilon sgn(s) s˙=εsgn(s)
    ε > 0 , s g n ( s ) 为符号函数, s > 0 时, s g n ( s ) = 1 ; s < 0 时, s g n ( s ) = − 1 , s = 0 时, s g n ( s ) = 0 \varepsilon >0, sgn(s)\,\text{为符号函数,}s>0时,sgn(s) = 1; s<0 时,sgn(s) =-1,s=0 时,sgn(s) = 0 ε>0,sgn(s)为符号函数,s>0时,sgn(s)=1;s<0时,sgn(s)=1,s=0时,sgn(s)=0
  2. 指数趋近律: s ˙ = − ε s g n ( s ) − k s \dot{s} = -\varepsilon sgn(s)-ks s˙=εsgn(s)ks,其中 ε > 0 , k > 0 \varepsilon > 0, k>0 ε>0,k>0
  3. 幂次趋近律: s ˙ = − k ∣ s ∣ α s g n ( s ) − k s \dot{s} = -k|s|^{\alpha}sgn(s)-ks s˙=ksαsgn(s)ks, 其中, k > 0 , 0 < α < 1 k>0, 0<\alpha<1 k>0,0<α<1
    符号函数: s g n ( s ) = { 1 , s > 0 0 , s = 0 − 1 , s < 0 \begin{aligned} 符号函数:sgn(s) = \left\{ \begin{array}{l} 1 ,&s>0\\ 0 , &s=0 \\ -1 , &s<0\\ \end{array} \right. \end{aligned} 符号函数:sgn(s)= 10,1,s>0s=0s<0
  • 为了避免抖振现象,可以使用连续的近似符号函数,如饱和函数或正切函数。
    饱和函数: s a t ( s ) = { 1 s > Δ k s ∣ s ∣ ≤ Δ , k = 1 / Δ − 1 s < − Δ 饱和函数:sat(s)= \left\{ \begin{array}{ll} 1 & s > \Delta \\ ks & |s| \leq \Delta, k = 1/\Delta\\ -1 & s < -\Delta \end{array} \right. 饱和函数:sat(s)= 1ks1s>ΔsΔk=1/Δs<Δ

5. 验证滑模面设计

  • 最后,通过仿真或实际实验验证所设计的滑模面和控制律的有效性。需要确保系统状态能快速到达并保持在滑模面上,且系统的动态性能满足设计要求。

6. 总结

  • 滑模面的设计是一个系统化的过程,涉及到系统模型的分析、滑模面函数的定义和参数选择、控制律的设计以及验证和调整。通过合理设计滑模面,可以实现对系统的有效控制,尤其在不确定性和扰动较大的情况下表现出优越的鲁棒性。

(如有不当之处,还望指正)

http://www.lryc.cn/news/411657.html

相关文章:

  • SQL Server 端口配置
  • 同一窗口还是新窗口打开链接更利于SEO优化
  • kafka 安装
  • 消息队列中间件 - Kafka:高效数据流处理的引擎
  • el-table表格动态合并相同数据单元格(可指定列+自定义合并)
  • 复习Nginx
  • nvm:Node.js 版本管理工具
  • springboot校园商店配送系统-计算机毕业设计源码68448
  • 【Redis 初阶】客户端(C++ 使用样例列表)
  • 【STM32】STM32单片机入门
  • 学生信息管理系统(Python+PySimpleGUI+MySQL)
  • Java8.0标准之重要特性及用法实例(十九)
  • Linux系统中,`buffer`和`cache` 区别
  • python创建进度条的两个手搓方法
  • JAVA—面向对象编程基础
  • 【计算机视觉学习之CV2图像操作实战:车道识别1】
  • 动态之美:Laravel动态路由参数的实现艺术
  • Python练手小项目
  • 苹果手机通讯录恢复教程?3招速成指南
  • python爬虫入门(五)之Re解析
  • 可靠的图纸加密软件,七款图纸加密软件推荐
  • 【每日一题】【最短路】【BFS】小红走矩阵 “葡萄城杯”牛客周赛 Round 53 F题 C++
  • 无线磁吸充电宝哪个牌子值得入手?什么牌子磁吸充电宝性价比高?
  • 互联网摸鱼日报(2024-08-01)
  • Alpla003经典的价量背离的因子在可转债列表里的因子分析(附python代码)
  • 进阶理解——typeof 、instanceof
  • 不同类型的生物反应器在支架成熟过程中具有哪些特点和应用?
  • 8. Spring Ai之入门到精通(超级详细)
  • 寄存器和硬件的关系
  • 【WEB】ctfshow-萌新-web9-15