滑模控制学习笔记(六)

2023-05-16

滑模控制学习笔记(六)

  • 等效滑模控制
    • 等效滑模控制器设计
      • 等效控制设计
      • 滑模控制设计
    • 仿真实例

等效滑模控制

  滑模控制率可由等效控制 u e q u_{eq} ueq和切换鲁棒控制 u s w u_{sw} usw构成。首先忽略不确定和干扰项,通过取 s ˙ = 0 \dot s =0 s˙=0得到等效项 u e q u_{eq} ueq,再令 u = u e q + u s w u = u_{eq}+u_{sw} u=ueq+usw使 s s ˙ ≤ − η ∣ s ∣ s\dot s\leq-\eta|s| ss˙ηs成立,得到鲁棒项 u s w u_{sw} usw

等效滑模控制器设计

  考虑 n n n阶非线性系统: x ( n ) = f ( x , t ) + b u ( t ) + d ( t ) (1) x^{(n)}= f(x,t)+bu(t)+d(t)\tag1 x(n)=f(x,t)+bu(t)+d(t)(1) x = ( x , x ˙ , … , x n − 1 ) T ,   y = x (2) x = (x,\dot x,\dots,x^{n-1})^T,\ y=x\tag2 x=(x,x˙,,xn1)T, y=x(2)其中, b > 0 , x ∈ R n , u ∈ R , y ∈ R , d ( t ) b>0,x\in R^n,u\in R,y \in R,d(t) b>0,xRn,uR,yR,d(t)为外加干扰, ∣ d ( t ) ∣ ≤ D |d(t)|\leq D d(t)D

等效控制设计

  当忽略不确定和干扰时 x ( n ) = f ( x , t ) + b u ( t ) (3) x^{(n)}= f(x,t)+bu(t)\tag3 x(n)=f(x,t)+bu(t)(3)令跟踪误差向量为 e = x d − x = ( e , e ˙ , … , e ( n − 1 ) ) T (4) e = x_d - x = (e,\dot e,\dots,e^{(n-1)})^T\tag4 e=xdx=(e,e˙,,e(n1))T(4)选取切换函数 s ( x , t ) = c e = c 1 e + c 2 e ˙ + ⋯ + e ( n − 1 ) (5) s(x,t) = ce = c_1e+c_2\dot e+\dots+e^{(n-1)}\tag5 s(x,t)=ce=c1e+c2e˙++e(n1)(5) s ˙ = 0 \dot s = 0 s˙=0 s ˙ ( x , t ) = c 1 e ˙ + c 2 e ¨ + ⋯ + e n = c 1 e ˙ + c 2 e ¨ + ⋯ + c n − 1 e ( n − 1 ) + x d ( n ) − x ( n ) = ∑ i = 1 n − 1 c i e ( i ) + x d ( n ) − f ( x , t ) − b u ( t ) = 0 (6) \begin{aligned} \dot s(x,t) &= c_1\dot e+c_2\ddot e+\dots+e^n\\ &=c_1\dot e+c_2\ddot e+ \dots +c_{n-1}e^{(n-1)} +x_d^{(n)}-x^{(n)}\\ &=\sum_{i=1}^{n-1}c_ie^{(i)}+x_d^{(n)}-f(x,t)-bu(t) =0\end{aligned}\tag6 s˙(x,t)=c1e˙+c2e¨++en=c1e˙+c2e¨++cn1e(n1)+xd(n)x(n)=i=1n1cie(i)+xd(n)f(x,t)bu(t)=0(6)得到等效控制器 u e q = 1 b ( ∑ i = 1 n − 1 c i e ( i ) + x d ( n ) − f ( x , t ) ) (7) u_{eq}=\frac{1}{b}(\sum_{i=1}^{n-1}c_ie^{(i)}+x_d^{(n)}-f(x,t))\tag7 ueq=b1(i=1n1cie(i)+xd(n)f(x,t))(7)

滑模控制设计

  为保证滑模条件成立,设计切换控制器: u s w = 1 b K s i g n ( s ) ,    K = D + η (8) u_{sw}=\frac{1}{b}Ksign(s),\ \ K = D + \eta \tag8 usw=b1Ksign(s),  K=D+η(8)此时考虑干扰项 d ( t ) d(t) d(t),将式(8)带回 s ˙ \dot s s˙得到 s ˙ = − K s i g n ( s ) − d ( t ) (9) \dot s = -Ksign(s)-d(t) \tag9 s˙=Ksign(s)d(t)(9) s s ˙ = − K ∣ s ∣ − d ( t ) ≤ − η ∣ s ∣ ≤ 0 (10) s\dot s = -K|s|-d(t)\leq-\eta|s|\leq 0\tag{10} ss˙=Ksd(t)ηs0(10)仅当 s = 0 s = 0 s=0时, V ˙ = 0 \dot V = 0 V˙=0,因此系统是渐近稳定的。

仿真实例

  被控对象如下: x ¨ = − 25 x ˙ + 133 u + d (11) \ddot x = -25\dot x+133u+d\tag{11} x¨=25x˙+133u+d(11)其中, d ( t ) = 50 s i n ( t ) d(t) = 50sin(t) d(t)=50sin(t),理想位置指令 x d = s i n 2 π t x_d = sin2\pi t xd=sin2πt
  根据式(7)和(8)设计控制器,取 c = 25 , D = 50 , η = 100 c = 25,D = 50,\eta = 100 c=25,D=50,η=100,得到控制律 u = 1 133 ( e ˙ + x ¨ d − 25 x 2 + ( D + η ) s i g n ( s ) ) (12) u =\frac{1}{133}(\dot e+\ddot x_d-25x_2+(D+\eta)sign(s)) \tag{12} u=1331(e˙+x¨d25x2+(D+η)sign(s))(12)
  simulink模型如下:
仿真模型  控制律程序:

function u = fcn(f,de,s,ddxd)
D = 50;
eta = 100;
b = 133;
c = 25;
K = D + eta;
ueq = (c*de + ddxd - f)/b;
usw = (sign(s)*K)/b;
u = ueq + usw;

位置跟踪及控制律如下图:
控制律
轨迹跟踪

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

滑模控制学习笔记(六) 的相关文章

  • opencv-python的格式转换 RGB与BGR互转

    opencv读取图片的默认像素排列是BGR xff0c 和很多其他软件不一致 xff0c 需要转换 这里转一下国外博客的一个方法 xff0c 基于python语言 BGR to RGB OpenCV image to Matplotlib
  • np.maximum()函数详解——将数组中小于某值的数用0代替

    目标 xff1a 把数组中小于某个值的数都设为0 np max a axis 61 None out 61 None keepdims 61 False 求a中的最大值 np maximum xff1a a b out 61 自定义 a 与
  • python-opencv 使用LBP特征检测人脸

    概述 最近在做人脸检测相关功能 xff0c 目前注意到比较传统 xff08 非深度 xff09 人脸检测特征包括harr和LBP HOG用于行人检测更多些 xff0c opencv包括了这两种特征算法 xff0c 并且相对来说 xff0c
  • 机器视觉特征提取介绍:HOG、SIFT、SURF、ORB、LBP、HAAR

    一 概述 这里主要记录自己的一些感悟 xff0c 不是很系统 想要详细系统的理论 xff0c 请参考文末的 图像处理之特征提取 个人不是专业cv工程师 xff0c 很多细节没有深究 xff0c 描述可能不严谨 在总结物体检测算法之前先把基础
  • win7 wifi 无Internet访问权限或者有限的访问权限

    自己家的无线路由器 xff0c 手机和笔记本都使用正常 xff0c 但是一台新笔记本连上之后总是提示 有限的访问权限 xff0c 无法连公网 网上的很多办法都不管用 xff0c 什么设置静态IP或者重启路由 xff0c 基本都是瞎扯 好在一
  • springboot 本地调试没问题,打包运行报错原因

    1 如果引用了本地jar包或者so库 xff0c dll库等文件 xff0c 需要在打包的时候都加载进去 如下图 xff1a 本地正常 xff0c 打包的时候谨记 xff0c 需要打包进去 xff0c 怎么验证是否打包成功呢 xff1f 我
  • CMakeList学习笔记

    hello cpp为源文件 构建一个CMakeLists txt cmake minimum required VERSION 2 8 project hello add executable hello hello cpp 在目录中的bu
  • C语言--iota函数

    一 iota函数 xff1a 功能 把一个整数转换为字符串 eg include lt stdlib h gt include lt stdio h gt void main int number 61 43 char string 100
  • STM32F103ZET6和STM32F103C8T6编程不一样吗?

    我把C C 43 43 选项卡中 STM32F10X HD USE STDPERIPH DRIVER 修改为 STM32F10X MD USE STDPERIPH DRIVER 编译成功 谢谢O O 初始化的时候要调用SystemInit
  • STM32F103ZET6和STM32F103C8T6芯片的区别

    是这样的 xff0c 一个具体的STM32F103系列芯片的内存有多大 xff0c 你看一下芯片上的型号就行了 STM32F103XY 注意 xff0c XY是个代号 xff0c X是表示封装有多少个引脚 xff0c 比如 xff0c 如果
  • Keil(MDK-ARM)使用教程——在线调试

    Keil xff08 MDK ARM xff09 使用教程 xff08 三 xff09 在线调试 由于我是直接使用 xff08 打开现有的软件工程 xff09 xff0c 如果跟着需要下载上面演示参考的软件工程 才行 工程默认是使用硬件在线
  • ch340是什么芯片

    CH340 是一个USB 总线的转接芯片 xff0c 实现USB 转串口 USB 转IrDA 红外或者USB 转打印口 在串口方式下 xff0c CH340 提供常用的MODEM联络信号 xff0c 用于为计算机扩展异步串口 xff0c 或
  • Ubuntu16的详细安装教程

    有一点很重要要说一下 xff0c 每个人学习Linux的动机都不一样 xff0c 而这个动机会决定你对Linux的态度 xff0c 如果你仅仅是想尝鲜 xff0c 装个笔什么的 xff0c 不当作自己的职业方向去学习Linux的 劝这类人还
  • 是否能在keil中混合编译c和c++程序

    keil中支持混合编译C和C 43 43 程序 xff0c 因为其本质最终都是编译成汇编 xff0c 所以是可以同时操作的 在混合编译时 xff0c 需要注意以下几点 xff1a 1 C文件扩展名必须为 C xff0c C 43 43 文件
  • ds18b20工作原理和测温原理介绍

    DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器 与传统的热敏电阻相比 xff0c 他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9 xff5e 12位的数字值读数方式 可以分别在9
  • 如何将.hex文件转化为.c文件

    说明楼主太初级 xff0c 迷恋于C 1 C与HEX并不是一一映射的 xff0c 有可能N个人写的C xff0c 会出同一个HEX xff0c 你希望回成哪个人写的呢 xff1f 或许你可能说 xff1a 任意一个孝可以 xff0c 只要能
  • 嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么关联性吗?

    作者 xff1a 知乎用户 链接 xff1a https www zhihu com question 53880054 answer 164501004 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非
  • #if 0 ... #endif的真实用途

    在过去都没有去理会 if 的作用 xff0c 今天突发奇想 xff0c 开启编译器试一试 很多人都知道 if 0 endfif的作用跟 的作用是一样的 xff0c 就是注释 xff0c 可是注释为什么不用注释符号 就行了么 xff1f go

随机推荐

  • .hex文件和.bin文件区别

    HEX文件和BIN文件是我们经常碰到的2种文件格式 因为自己也是新手 xff0c 所以一直对这两个文件懵懵懂懂 xff0c 不甚了解 xff0c 最近在做STM32单片机的IAP更新 xff0c 其中要考虑HEX文件和BIN文件 xff0c
  • EEPROM和flash的区别

    From https blog csdn net yuanlulu article details 6163106 EEPROM的全称是 电可擦除可编程只读存储器 xff0c 即Electrically Erasable Programma
  • 264 nal type

    NUAL HEAD 43 43 0 1 2 3 4 5 6 7 43 43 43 43 43 43 43 43 43 F NRI Type 43 43 F xff1d Forbidden zero bit 61 0 NRI 61 Nal r
  • SubClassWindow详解

    许多Windows程序员都是跳过SDK直接进行RAD开发工具 或VC xff0c 我想VC应不属于RAD 的学习 xff0c 有些人可能对子类化机制比较陌生 我们先看看什么是Windows的子类化 Windows给我们或是说给它自己定义了许
  • stl upper_bound函数实现

    写了一个upper bound的实现 其中递归使用二分法求解最上界 xff0c 虽然写的完全不像STL的风格 xff0c 但是练手还是可以的 view plaincopy to clipboardprint 01 include lt io
  • 云原生 - 2、Openstack架构

    云原生 2 Openstack架构 1 什么是Openstack2 Release3 核心架构4 官方入口5 核心组件6 相关文章导读 1 什么是Openstack OpenStack是一个开源的云计算管理平台项目 xff0c 由NASA
  • 关于TrackMouseEvent用法总结

    对于这个函数我也是最近想研究控件自绘才知道它真正怎么用 以前只是见到过 嗯 废话不多说 我先说下我的问题 如何响应鼠标离开某个窗体 控件 事件 先大概讲下步骤 然后再集中对 TrackMouseEvent 进行详解 为按钮添加以下几个函数
  • 关于CComboBox的自绘

    我想 如果大家学过一些控件的自绘的话 CComboBox算是很难的一种了 首先是它本身的复杂度 它由三个控件组成 CEdit CListBox CButton 我想但就CEdit来讲 就够你受得了 还要想想他们之间的消息传递 不禁让人无从下
  • 2011年总结

    又是一年年终时 亦是一年总结时 想想自己从去年写年终总结到现在 已经很久没有写过字了 时间过得真快 又是一年过去了 这一年也是我出来工作的第二年 这一年总体来说自己无论在技术还是心态方面有了很大的进步 记得刚出学校那会 啥都不知道 对于工作
  • 内部链接与外部链接

    在说内部连接与外部连接前 xff0c 先说明一些概念 1 声明 一个声明将一个名称引入一个作用域 在c 43 43 中 xff0c 在一个作用域中重复一个声明是合法的 以下都是声明 xff1a int foo int int 函数前置声明
  • partition/stable_partition详解

    Partition 将满足条件的元素向前移动 TEMPLATE FUNCTION partition template lt class BidIt class Pr gt inline BidIt Partition BidIt Firs
  • jsoncpp解析拼装数组

    int main 数组创建与分析 例子一 string strValue 61 34 34 ldh 34 34 001 34 34 gfc 34 34 002 34 34 yyj 34 34 003 34 34 andy 34 34 005
  • 查看静态库(.lib)和动态库(.dll)的导出函数的信息

    一般情况下 xff0c 我们需要查看一个DLL或EXE中的包含的函数或是依赖的函数之类的信息 xff0c 可以使用VS自带的工具dumpbin xff1b 可以直接在命令行下输入dumpbin就可以查看他的使用说明 xff0c 如果未显示
  • do {...} while (0) 在宏定义中的作用

    http www cnblogs com lanxuezaipiao p 3535674 html 如果你是一名C程序员 xff0c 你肯定很熟悉宏 xff0c 它们非常强大 xff0c 如果正确使用可以让你的工作事半功倍 然而 xff0c
  • 即插即用型设备驱动的加载过程

    现假设驱动程序已被正确安装 xff1a 1 某种PnP总线驱动发现了即插即用设备的存在 xff1a 对于热插拔设备 xff0c 则发现过程发生于插入设备的瞬间 xff1b 如果是非热插拔设备 xff0c 则发现过程发生于系统启动时 2 Pn
  • C++如何编写属于自己的头文件 ---- 自己动手,丰衣足食

    自己动手 xff0c 丰衣足食 ps 其实这一篇文章老早以前就写了 xff0c 一直扔在草稿箱 xff0c 今天想起来了然后就发了出来 首先 xff0c 熟悉熟悉这些 是的没错 xff0c 这就是我们的Dev cpp 忽略其他东西 xff0
  • ubuntu安装vnc server-x11vnc并设置开机自动启动

    ubuntu安装x11vnc并设置开机自动启动 安装x11vnc 打开终端 xff0c 使用如下命令x11vnc span class hljs built in sudo span apt get install x11vnc 手动连接
  • 笔记本安装ubuntu18.04步骤及分区方法

    家中闲置一台08年的笔记本 xff08 没有无线无卡 xff09 xff0c 自己加装了一个2G的内存条 xff0c 食之无味弃之可惜 xff0c 思量再三准备重装Ubuntu18 04的系统当做小型服务器使用 因此记录下安装步骤以及分区方
  • 滑模控制学习笔记(三)

    滑模控制学习笔记 xff08 三 xff09 基于趋近律的滑模控制几种典型的趋近律等速趋近律指数趋近律幂次趋近律一般趋近律 基于趋近律的控制器设计仿真实例状态空间模型建立滑模控制器模型建立仿真结果 基于趋近律的滑模鲁棒控制仿真实例 基于趋近
  • 滑模控制学习笔记(六)

    滑模控制学习笔记 xff08 六 xff09 等效滑模控制等效滑模控制器设计等效控制设计滑模控制设计 仿真实例 等效滑模控制 滑模控制率可由等效控制 u e q u eq