滑模控制参数调节思路小tips
本文是笔者在进行滑模控制调参时发现的规律有感而发写成,本文只提供调参的思路,但是具有一定的理论依据,苦于滑模控制调参的同学可以参考并尝试!!
由于笔者个人时间和精力有限,因此此处不再进行举例说明,仅提供一种调参思路。顺便这里给自己的滑模控制博客打个广告:滑模控制理论(SMC)概述
众所周知,滑模控制基于具有如下形式的系统数学模型:
{x˙1=x2x˙2=x3⋮x˙n−1=xnx˙n=f(x,t)+g(x,t)⋅U(1)\begin{cases} \dot x_1 = x_2 \\ \dot x_2 = x_3 \\ \vdots \\ \dot x_{n-1} = x_n \\ \dot x_n = f(x, t) + g(x, t) \cdot U \end{cases} \tag{1} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧x˙1=x2x˙2=x3⋮x˙n−1=xnx˙n=f(x,t)+g(x,t)⋅U(1)具有(1)形式的方程组称为柯西形式,其特点是:方程组中每一状态量xix_ixi的导数均为其接续状态量xi+1x_{i+1}xi+1,而只有在最后一阶xnx_nxn的导数中含有控制量UUU。
而基于柯西形式的数学模型,往往可以设计误差量:
e1=x1−x1de2=e˙1=x˙1−x˙1d⋮en=e˙n−1=x1(n−1)−x˙1d(n−1)(2)e_1 = x_1 - x_{1d} \\ e_2 = \dot e_1 = \dot x_1 - \dot x_{1d} \\ \vdots \\ e_n = \dot e_{n-1} = x_1^{(n-1)} - \dot x_{1d}^{(n-1)} \tag{2} e1=x1−x1de2=e˙1=x˙1−x˙1d⋮en=e˙n−1=x1(n−1)−x˙1d(n−1)(2)其中x1dx_{1d}x1d为x1x_1x1的期望值。
进而设计滑模面:
s1=c1e1+c2e2+⋯+cn−1en−1+en=∑i=1nciei(3)\begin{aligned} s_1 &= c_1 e_1 + c_2 e_2 + \cdots + c_{n-1} e_{n-1} + e_n \\ &= \sum _{i=1}^n c_i e_i \end{aligned} \tag{3} s1=c1e1+c2e2+⋯+cn−1en−1+en=i=1∑nciei(3)需要注意在最后一项ene_nen前的系数cn=1c_n = 1cn=1。
由于方程组(2)本质上是一个不断求导的方程组,因此根据(2),滑模面(3)也可以写成
s1=c1e1+c2e˙1+⋯+cn−1e1(n−2)+e1(n−1)(4)s_1 = c_1 e_1 + c_2 \dot e_1 + \cdots + c_{n-1} e_1 ^{(n-2)} + e_1 ^{(n-1)} \tag{4} s1=c1e1+c2e˙1+⋯+cn−1e1(n−2)+e1(n−1)(4)(4)式很难直观地进行物理理解,因此这里举一个二阶例子简单说明滑模控制调参的思路:
s1=c1e1+e2=c1e1+e˙1(5)s_1 = c_1 e_1 + e_2 = c_1 e_1 + \dot e_1 \tag{5} s1=c1e1+e2=c1e1+e˙1(5)可以看出,式(5)是关于变量e1e_1e1及其导数的一个方程。一般地,这种同时含有某个量及其一阶导的方程,很容易令人联想到一阶惯性环节:
G(s)=1Ts+1G(s) = \frac{1}{Ts+1} G(s)=Ts+11传函G(s)G(s)G(s)对应的时域方程即为
Tx˙(t)+x(t)=y(t)(6)T \dot x(t) + x(t) = y(t) \tag{6} Tx˙(t)+x(t)=y(t)(6)将(5)(6)相比较,很容易发现二者极其相似。这不是巧合,而是由我们在一开始设计滑模面的时候就决定了的:滑模面由nnn个误差量eie_iei组成,但实际上每个误差量都是前一个误差量的导数,因此当n=2n=2n=2时,滑模面方程本质上就是一个一阶惯性环节方程。
而利用经典自动控制理论可以知道,当系统中含有一阶惯性环节时,系统的稳态响应中将会有如下分量(或称模态):
xi(t)=ke−1Tt(7)x_i(t) = k e^{- \frac{1}{T} t} \tag{7} xi(t)=ke−T1t(7)其中kkk为常数,由初始条件解得。
不难看出,稳态响应分量(7)是单调递减的指数函数,保障了系统的稳定性和有界性。那么,根据以上推导,可以简单粗暴地得出如下结论:
二阶滑模面本质上就是一阶惯性环节,因此其正系数cic_ici保证了系统的稳态响应的有界性和稳定性。
那么进而可以得出调参方法:
对于二阶系统,其二阶滑模面的正系数c1c_1c1越大,则(7)中指数函数收敛速度越快,系统也越快达到稳态。
下面将该结论拓展至nnn阶滑模面——
如果滑模面不再是2阶,而是nnn阶,那么如上结论依然适用——不妨将滑模方程(5)看成一个nnn阶惯性环节,即广义的一阶惯性环节,那么同样地有:
对于nnn阶系统,其nnn阶滑模面的正系数cic_ici越大,则(7)中指数函数收敛速度越快,系统也越快达到稳态。
在具体调参时,如果系统收敛较慢,不妨试着适当加大cic_ici来加快收敛速度,而这一做法的依据即为了使稳态分量(7)式收敛更快。
滑模控制参数调节思路小tips相关推荐
- ros滑模控制_滑模控制的疑惑,头脑要炸了,请滑模控制高手解惑 - 数学 - 小木虫 - 学术 科研 互动社区...
昨晚写的比较乱,我重新写了下,我估计是好多东西搞混了,大家解惑下吧,谢谢! 滑模控制看似挺简单的,就是2步,第1步设计合适的滑模面,并证明滑模面的稳定性,这样一旦到达滑模面后,就一直保持在滑模面上了. ...
- 【控制】粒子群算法(PSO)优化滑模控制器参数
PSO优化滑模控制器参数 PSO优化滑模控制器参数 1.粒子群算法 1.1粒子群算法原理 1.2粒子群算法求函数最值 2.滑模变结构控制 2.1被控对象 2.2滑模控制器设计 2.3实验仿真 3.粒子 ...
- 【控制】滑模控制,小例子,有程序有结果图
目录 滑模控制的一点笔记和看法 1 [控制]滑动模型控制(Sliding Mode Control) 2 [控制]滑模控制,小例子,有程序有结果图 3 [控制]滑模控制,滑模面的选择 文章目录 1 问 ...
- 2021-03-29 自动控制-滑模控制 Simulink仿真
自动控制-滑模控制 Simulink仿真 滑模控制是一种相当简单而且控制性能优越的控制方法.它的控制效果优越体现在哪里呢?主要是两点: 1.滑动模态可以进行设计,调节的参数少,响应速度快. 2.对扰动 ...
- VSC/SMC(十六)——自适应鲁棒滑模控制
目录 1.参数不定和扰动不定但有界的系统 2.滑模控制自适应律设计 2.1控制律设计总结 3.仿真分析 3.1 PD控制 3.2普通自适应律 3.3映射自适应律 3.4总结 4学习问题 1.参数不定和 ...
- 【控制理论】滑模控制最强解析
更新,在知乎创建了一个专栏,主要包括一些控制理论和机器人控制方面的知识. https://zhuanlan.zhihu.com/p/78549442 滑模控制是一种相当简单而且控制性能优越的控制方法, ...
- 基于扩张观测器(LESO)的滑模控制
目录 前言 1 二阶系统LESO观测器设计 2.基于LESO的滑模控制器设计 3. 仿真分析(普通高增益项) 3.1仿真模型 3.2仿真结果 3.3 总结 4. 仿真分析(优化后的高增益项) ...
- 【控制】滑模控制,滑模面的选择
目录 滑模控制的一点笔记和看法 1 [控制]滑动模型控制(Sliding Mode Control) 2 [控制]滑模控制,小例子,有程序有结果图 3 [控制]滑模控制,滑模面的选择 文章目录 1 问 ...
- VSC/SMC(十五)——基于模糊逼近的积分滑模控制
目录 前言 1. 一阶系统积分滑模 1.1 一阶系统 1.2 控制器设计 1.2.1 选取积分滑模面 1.2.2 选取指数趋近律 1.2.3 Lypunov闭环系统稳定性证明 1.3 仿真分析 1.4 ...
最新文章
- Mysql Router 读写分离配置
- Debug Pytorch: ValueError: Expected more than 1 value per channel when training, got input size tor
- ACL 2022 | 清华大学、DeepMind等指出现有小样本学习方法并不稳定有效,提出评价框架...
- JAVA排序算法之希尔排序
- 【小题目】输入三个数字,获取三个数字中的最小值
- POJ1733,jzoj1779-Parity game(奇偶游戏)【带权并查集,离散化】
- mysql俩个表之间关联语法_MySQL多表关联SQL语句调优
- centos 7 局域网丢包排查_一文掌握docker centos 安装python3.7「精品」
- Sublime功能拓展及插件
- 高一c语言期末试题及答案,广东省中山市杨仙逸中学高一信息技术上学期期中试题(C语言).doc...
- C# 快递单批量打印
- 通过js实现图片与文字的转换
- 威霆商务车改装独特的爱马仕橙+磨砂黑的搭配
- netkeeper客户端 Linux,netkeeper_for_linux
- scum服务器 指定资源,SCUM服务器配置详解 参数设置推荐
- 淘宝/天猫按关键词搜索商品
- My97DatePicker默认赋值
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.2.6 周期读取DID数据(0x2A)
- [转]CANON(佳能)PIXMAMP150清零
- Java Web笔记总结
热门文章
- 流量增多物流变慢,鲜花电商的苦与乐
- 怎么把windows改成linux系统,如何将linux系统更换成windows系统
- 企业核心应用上云有保障,云和恩墨入驻华为严选商城
- 2015062601 - 书评
- C/C++调试用的宏定义
- 计算机中1 tb的硬盘容量大小等于,计算机硬盘存储器容量的计量单位之一是TB,制造商常用10的幂次来计算硬盘的容量,那么1TB硬盘容量相当于___________ 字节。...
- 一些嵌入式开发有用的github上的开源代码库【转载-陶孜河畔】
- 中文文本纠错之入门篇
- [FROM WOJ]#3775 次小生成树
- 如何免费快速制作USB启动盘,how to create USB bootable from ISO file