简单的滑模控制案例与matlab实现

简单的滑模控制案例与matlab实现
@[简单的滑模控制案例与matlab实现]
简单的滑模控制案例与matlab实现
该⽂存在⼏点问题,某些变量省略,导致学习的⼈对其模糊不清;对正弦曲线不能很好的跟踪。故修正如下。电机模型
控制器代码
case 1,
sys=[];
case 2,
sys=[];
case 3,
sys=mdlOutputs(t,x,u);    %计算输出函数
case 4,
sys=[];  %计算下⼀仿真时刻⼦函数
case 9,
sys=[];    %终⽌仿真⼦函数
otherwise
<('Simulink:blocks:unhandledFlag', num2str(flag));
end
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes  %初始化⼦函数
sizes = simsizes;
sizes.NumContStates  = 0;  %连续状态变量个数
sizes.NumDiscStates  = 0;  %离散状态变量个数
sizes.NumOutputs    = 1;  %输出变量个数
sizes.NumInputs      = 4;  %输⼊变量个数
小电流选线sizes.DirFeedthrough = 1;  %输⼊信号是否在输出端出现
sizes.NumSampleTimes = 0;  % at least one sample time is needed
sys = simsizes(sizes);
x0  = [];  %初始值
str = [];
ts  = [];  %[0 0]⽤于连续系统,[-1 0]表⽰继承其前的采样时间设置simStateCompliance = 'UnknownSimState';
function sys=mdlOutputs(t,x,u)  %计算输出⼦函数
J = 2;
地锚机
thd = u(1);    %⽬标⾓位置
th = u(2);    %实际⾓位置
dth = u(3);    %实际⾓速度
dthd = u(4);    %⽬标⾓速度
e = th - thd;    %⾓位置跟踪误差 e=θ-θd
de = dth - dthd;        %⾓速度跟踪误差 e'= θ'-θ'd = θ'- 0 = θ'
c = 10;          %滑模⾯函数的系数 c ,决定收敛速度
s = c*e + de;
xite = 1.1;      % ε,(ε>0 )
k = 10;          % k ,( k>0 )
ut = J*(-c*de-1/J*(k*s+xite*sign(s)));
sys(1) = ut;
电机模型代码
电子票据系统case 1,法兰锻造
sys=mdlDerivatives(t,x,u);  %调⽤计算微分⼦函数
case 2,
sys=[];
case 3,
sys=mdlOutputs(t,x,u);    %计算输出⼦函数
case 4,
sys=[];  %计算下⼀仿真时刻⼦函数
纸制品加工
case 9,
sys=[];    %终⽌仿真⼦函数
otherwise
<('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, 0];  %初始值
str = [];
ts  = [0 0];  %[0 0]⽤于连续系统,[-1 0]表⽰继承其前的采样时间设置simStateCompliance = 'UnknownSimState';
function sys = mdlDerivatives(t, x, u)    %计算微分⼦函数
J = 2;
dt = sin(t);
分布式存储数据保护ut = u(1);
sys(1) = x(2);
sys(2) = 1/J*(ut+dt);
function sys=mdlOutputs(t,x,u)  %计算输出⼦函数
sys(1) = x(1);
sys(2) = x(2);
simulink模型与仿真结果
黄⾊曲线为⽬标⾓位置,蓝⾊曲线为实际⾓位置,红⾊为实际⾓速度

本文发布于:2024-09-22 11:32:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/197434.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:输出   函数   个数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议