VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

这篇具有很好参考价值的文章主要介绍了VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.几种典型的趋近律

1.1等速趋近律

 1.2指数趋近律

1.3幂次趋近律

1.4一般趋近律

2.控制器设计

2.1被控对象

 2.2选取滑膜面

2.3定义跟踪误差

2.4计算控制律

3.Simulink仿真分析

3.1利用S函数编写被控对象

3.2利用S函数编写控制器

3.3simulink模型

 3.4结果分析


1.几种典型的趋近律

1.1等速趋近律

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

特点:ε表示趋近滑膜面/切换面s = 0的速率;ε越大,则到达切换面越快,但引起的抖动也较大。 

 1.2指数趋近律

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 特点:-ks是指数趋近项,k越大,趋近滑模面速度越大;-εsgn(s)是等速趋近项,是为了消除抖振。所以为了保证快速趋近的同时削弱抖振,应增大k的同时减小ε。一般情况该趋近律使用较多。

1.3幂次趋近律

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

1.4一般趋近律

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

上述四种趋近律均能保证系统从任意初始状态趋向切换面,即做趋近运动:s-->0;满足滑模到达条件:s*s' ≤ 0。

2.控制器设计

2.1被控对象

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 2.2选取滑模面

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 为满足Huiwitz多项式条件,c > 0。

2.3定义跟踪误差

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 其中:θd(t)为理想位置信号/跟踪信号。

2.4计算控制律

(1)选取指数趋近律:

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

(2)将误差代入选取的滑模面,并进行求导,有:

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 (3)联立趋近律,即:

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 (4)得到控制律/滑模控制器:

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

3.Simulink仿真分析

取理想信号θd(t) = sint(t),即跟踪该正弦曲线;选取被控对象状态变量为[θ θ’],初始状态为[-0.15 -0.15]

3.1利用S函数编写被控对象

程序如下:

function [sys,x0,str,ts,simStateCompliance] = Plant_2_1(t,x,u,flag)
switch flag,
 case 0,
    [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
  case 1,
    sys=mdlDerivatives(t,x,u);
  case 2,
    sys=mdlUpdate(t,x,u);
  case 3,
    sys=mdlOutputs(t,x,u);
  case 4,
    sys=mdlGetTimeOfNextVarHit(t,x,u);
  case 9,
    sys=mdlTerminate(t,x,u);
  otherwise
    DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));

end
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes

sizes = simsizes;
sizes.NumContStates  = 2;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 2;
sizes.NumInputs      = 1;
sizes.DirFeedthrough = 0;%注无直接馈通关系
sizes.NumSampleTimes = 1;   % at least one sample time is needed
sys = simsizes(sizes);
x0  = [-0.15;-0.15];%设定状态变量初值
str = [];
ts  = [0 0];

simStateCompliance = 'UnknownSimState';

function sys=mdlDerivatives(t,x,u)
theta = x(1);%θ
dtheta = x(2);%θ'
ddtheta = -25*dtheta+133*u;%θ''
sys = [dtheta;ddtheta];%dx 
function sys=mdlUpdate(t,x,u)

sys = [];

function sys=mdlOutputs(t,x,u)

sys = x;

function sys=mdlGetTimeOfNextVarHit(t,x,u)

sampleTime = 1;    %  Example, set the next hit to be one second later.
sys = t + sampleTime;

function sys=mdlTerminate(t,x,u)

sys = [];

3.2利用S函数编写控制器

程序如下:

function [sys,x0,str,ts,simStateCompliance] = Controller_2_1(t,x,u,flag)

switch flag,
  case 0,
    [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
  case 1,
    sys=mdlDerivatives(t,x,u);
  case 2,
    sys=mdlUpdate(t,x,u);
  case 3,
    sys=mdlOutputs(t,x,u);
  case 4,
    sys=mdlGetTimeOfNextVarHit(t,x,u);
  case 9,
    sys=mdlTerminate(t,x,u);
  otherwise
    DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));

end
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes

sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 4;
sizes.NumInputs      = 3;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   % at least one sample time is needed
sys = simsizes(sizes);
x0  = [];
str = [];
ts  = [0 0];

simStateCompliance = 'UnknownSimState';

function sys=mdlDerivatives(t,x,u)

sys = [];
function sys=mdlUpdate(t,x,u)

sys = [];

function sys=mdlOutputs(t,x,u)
thetad = u(1);%理想位置信号θd
dthetad = cos(t);%θd'
ddthetad = -sin(t);%θd''
theta = u(2);
dtheta = u(3);
e = thetad-theta;%跟踪误差
de = dthetad-dtheta;

c = 15;
epsilon = 5;k = 10;%调节参数

s = c*e+de;%滑模面
ut = (epsilon*sign(s)+k*s+c*de+ddthetad+25*dtheta)/133;%控制律/滑模控制器
sys = [ut;dthetad;e;de];

function sys=mdlGetTimeOfNextVarHit(t,x,u)

sampleTime = 1;    %  Example, set the next hit to be one second later.
sys = t + sampleTime;

function sys=mdlTerminate(t,x,u)

sys = [];

3.3simulink模型

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 3.4结果分析

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 角度θ

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 角速度θ'

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

 误差e

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

  误差变化率de

VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)

控制输入u 

结论:从角位置和角速度可见,该滑膜控制器能实现较好的追踪效果;从误差和误差变化率看,能够通过控制力较快消除误差;但是从控制输入看,出现了很糟糕的抖动,所以后续会提出改进的滑模控制设计。

注:仅为便利自己学习,错误在所难免,如有侵权,请联系删除,有兴趣的学者可以参考学习交流,谢谢!文章来源地址https://www.toymoban.com/news/detail-405244.html

到了这里,关于VSC/SMC(一)——基于趋近律的滑模控制(含程序模型)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 无刷直流电机矢量控制(四):基于滑模观测器的无传感器控制

            在越来越多的应用场景中,无刷直流电机开始采用无位置传感器的控制方式。无刷直流电机运行于中高转速时,可以利用反电势信号估算转子位置,具体实现的方法不止一种,应用较多的是滑模观测器法。         本文整理了该方法的基本原理,介绍了在MAT

    2023年04月09日
    浏览(59)
  • (2-3-3)位置控制算法:无人机运动控制系统——基于自适应反演滑模控制器的仿真测试

    2.3.5  基于自适应反演滑模控制器的仿真测试 文件test/fault_AISMC.py实现了一个基于非线性动力学模型的无人机飞行控制仿真环境,通过使用自适应反演滑模控制器(Adaptive Inverse Sliding Mode Control,AdaptiveISMC_nonlinear)对无人机进行控制,并引入了执行器故障模型以模拟实际飞行中

    2024年04月16日
    浏览(46)
  • 终端滑模控制(TSM)

    在之前的文章中我们介绍了滑膜控制理论,我们是选取了一个滑模面,使系统达到滑模面后误差逐渐下降到0,收敛的速度可以通过调节滑膜面的参数来实现,后来人们为了使滑模控制能有更好的性能,就将滑模面设计为非线性函数,构造Terminal滑膜面,使得在滑模面上误差可

    2024年02月04日
    浏览(34)
  • 超螺旋滑模控制详细介绍(全网独家)

    关于超螺旋滑模控制(或称超扭滑模控制)的论文有很多,但关于其具体的稳定性证明却少之又少,数学功底不强的人很容易在中间步骤被卡壳。因此,笔者在这里给出详尽的稳定性证明过程,一并将超螺旋滑模控制理论介绍给各位读者,希望能为各位带来一定的参考。 关于

    2024年02月03日
    浏览(77)
  • 【reverse】手把手带你基于dll实现多次SMC

    SMC,即self modifying code,自修改代码,逆向入门SMC可以看一下我的题解。我打算实现一个类似于【网鼎杯2020青龙组】jocker的SMC方案。这个方案不需要用到汇编,因此门槛极低( 连小小前端都能学会 )。为什么要基于dll呢?因为代码段加密功能是通过外部python脚本完成的,将自

    2024年02月02日
    浏览(55)
  • 基于谐波线性化方法的跟网型并网变流器/VSC宽频序阻抗建模及扫频(Matlab/Simulink平台)及文献复现

    目录 1、课程及模型介绍 2、谐波线性化方法介绍 3、跟网型及构网型并网变流器的特点 4、跟网型变流器/VSC拓扑及控制结构 5、不同坐标系下VSC序阻抗建模推导过程 5.1 abc三相坐标系下的VSC序阻抗建模 5.2 d-q旋转坐标系下的VSC序阻抗建模 5.2.1 Park变换及频率偏移效应、二倍频镜

    2024年03月14日
    浏览(132)
  • 基于运动学模型的轨迹跟踪控制

    MPC(4)基于运动学模型的轨迹跟踪控制器设计 无人驾驶车辆模型预测控制(龚建伟)第四章 基于运动学模型的轨迹跟踪控制(仿真部分) 无人车辆在惯性坐标系中,车辆必须从一个给定的初始状态出发,这个初始点可以在期望轨迹上,也可以不在期望轨迹上 期望轨迹和参

    2024年02月04日
    浏览(48)
  • 基于区块链的数据共享访问控制模型

    摘  要: 在大数据时代,不同企业或者部门间迫切需要进行数据共享。针对共享数据如何进行细粒 度控制、数据的追溯和机密性保护等问题,提出了基于区块链的数据共享访问控制模型。本模型首 先采用区块链技术保证数据溯源和不可篡改;其次使用联盟链的智能合约机

    2024年01月25日
    浏览(51)
  • simulink学习笔记:基于模型的控制和pid整定

    在学习的时候发现了一个很好的学习simulink的网站,打算来练练手:Introduction: Simulink Control,过程中会涉及到搭建动力学模型和设计pid控制器(整定pid参数)。该模型描述的是火车的两节车厢,对前一节车厢施力,控制其速度按照跟随指定的方波。我在我的资源里也把我建好

    2024年02月13日
    浏览(43)
  • 基于虚拟同步发电机控制的双机并联MATLAB仿真模型

    完整资源请查看主页置顶博客(专享优惠) 使用MATLAB2021b打开 主要内容: 功率计算模块、虚拟同步发电机控制模块、电压合成模块、电压电流双环控制模块! 1.两台VSG并联,开始各自带负载10KW,在0.3秒的时候加入公共负载10KW,稳定后两台VSG可以均分公共负载的功率 2.输出的

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包