基于比例切换函数的滑模控制matlab仿真实例

2020-05-09 09:27

基于比例切换函数的滑模控制

一、仿真实例

考虑如下时变对象: Gp(s)?b (2.29) s2?as其中a?25?5sin(6?t),b?133?50sin(2?t)

将传递函数描述为状态方程的形式:

??Ax?Bu (2.30) x其中A=?

?01??0? , B= ????0?a??b? 采用基于比例的切换函数控制方法,S?1为阶跃响应,S?2为正弦响应。在控制律中,取c?30,??500,??10。 二、仿真主程序: 主程序:chap2_1.m

clear all;

close all;

global S A F c alfa beta

xk=[0,0];

ts=0.001; T=1;

TimeSet=[0:ts:T];

[t,y]=ode45('chap2_1eq',TimeSet,xk,[],[]); x1=y(:,1); x2=y(:,2);

if S==1 rin=1.0; drin=0; elseif S==2

rin=A*sin(F*2*pi*t);

drin=A*F*2*pi*cos(F*2*pi*t); end

e1=rin-x1; e2=drin-x2; s=c*e1+e2;

for k=1:1:T/ts+1

u(k)=(alfa*abs(e1(k))+beta*abs(e2(k)))*sign(s(k)); end

figure(1);

plot(t,rin,'r',t,y(:,1),'b');

xlabel('time(s)');ylabel('Position tracking'); figure(2); plot(t,u,'r');

xlabel('time(s)');ylabel('u'); figure(3);

plot(e1,e2,'r',e1,-c*e1,'b');

xlabel('time(s)');ylabel('Phase trajectory');

控制子程序:chap2_leq.m

function dx=PlantModel(t,x,flag,para) global S A F c alfa beta dx=zeros(2,1);

S=1; %S=1时为阶跃响应,S=2时为正弦响应% if S==1 rin=1.0; drin=0; elseif S==2 A=0.5;F=3;

rin=A*sin(F*2*pi*t);

drin=A*F*2*pi*cos(F*2*pi*t); end

c=30; alfa=500; beta=10;

e1=rin-x(1); e2=drin-x(2);

s=c*e1+e2;

u=(alfa*abs(e1)+beta*abs(e2))*sign(s);

dx(1)=x(2);

dx(2)=-(25+5*sin(3*2*pi*t))*x(2)+(133+50*sin(1*2*pi*t))*u;

三、仿真结果 1. S?1阶跃响应

图2-1 阶跃响应

图2-2 控制器输出

图2-3 滑模运动轨迹

2.S?2为正弦响应

图2-4 正弦响应

图2-5 控制器输出

图2-6 滑模运动轨迹


基于比例切换函数的滑模控制matlab仿真实例.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:泪始作曲 追忆姑父 问鼎苍天

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: