准滑动模态控制matlab仿真实例.docx

上传人:b****6 文档编号:4775992 上传时间:2022-12-08 格式:DOCX 页数:15 大小:182.53KB
下载 相关 举报
准滑动模态控制matlab仿真实例.docx_第1页
第1页 / 共15页
准滑动模态控制matlab仿真实例.docx_第2页
第2页 / 共15页
准滑动模态控制matlab仿真实例.docx_第3页
第3页 / 共15页
准滑动模态控制matlab仿真实例.docx_第4页
第4页 / 共15页
准滑动模态控制matlab仿真实例.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

准滑动模态控制matlab仿真实例.docx

《准滑动模态控制matlab仿真实例.docx》由会员分享,可在线阅读,更多相关《准滑动模态控制matlab仿真实例.docx(15页珍藏版)》请在冰豆网上搜索。

准滑动模态控制matlab仿真实例.docx

准滑动模态控制matlab仿真实例

准滑动模态控制

2.8.1准滑动模态控制

在滑动模态控制系统中,如果控制结构的切换具有理想的开关特性,则能在切换面上形成理想的滑动模态,这是一种光滑的运动,渐进趋近于原点。

但在实际工程中,由于存在时间上的延迟和空间上的滞后等原因,使得滑动模态呈抖振形式,在光滑的滑动上叠加了抖振。

理想的滑动模态是不存在的,现实中的滑动模态控制均伴随有抖振,抖振问题是影响滑动模态看控制广泛应用的主要障碍。

所谓准滑动模态,是指系统的运动轨迹被限制在理想滑动模态的某一

领域内的模态。

从相轨迹方面来说,具有理想滑动模态的控制是使一定范围内的状态点均被吸引至切换面。

而准滑动模态控制则是使一定范围内的状态点均被吸引至切换面的某一

领域内,通常称此

领域为滑动模态切换面的边界层。

在边界层内,准滑动模态不要求满足滑动模态的存在条件,因此准滑动模态不要求在切换面上进行控制结构的切换。

它可以在边界层上进行结构变换的控制系统,也可以根本不进行结构变换的连续状态反馈控制系统。

准滑动模态控制在实现上的这种差别,使它从根本上避免或削弱了抖振,从而在实际中得到了广泛的应用。

在连续系统中,常用的准滑动模态控制有以下两种方法:

(1)用饱和函数

代替理想滑动模态中的符号函数

(2.46)

其中

称为“边界层”。

饱和函数

如图2-26所示,饱和函数的本质为:

在边界层外,采用切换控制;在边界之内,采用线性化反馈控制。

(2)将继电特性连续化,用连续函数

取代

(2.47)

式中

是很小的正常数。

2.8.2仿真实例

对象为二阶传递函数:

其中

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

其中

设位置指令信号为

,则

采用指数趋近律:

代入上式,得控制律为

系统的初始状态为

在仿真程序中,指令为正弦信号。

为指数趋近律,

为采用饱和函数的指数趋近律,

为采用继电特性的指数趋近律。

,进行如下几种仿真:

(1)采用指数趋近律。

,正弦跟踪结果如图所示。

正弦跟踪(M=1)

误差曲线(M=1)

相轨迹(M=1)

切换函数s(M=1)

控制器输出(M=1)

(2)验证准滑动模态控制。

为采用饱和函数的方法,取

,仿真结果如图所示。

正弦信号跟踪(M=2)

误差曲线(M=2)

相轨迹(M=2)

切换函数s(M=2)

控制器输出(M=2)

(3)

为采用继电特性的方法,取

,仿真结果如图所示

正弦信号跟踪(M=3)

误差曲线(M=3)

相轨迹(M=3)

切换函数s(M=3)

控制器输出(M=3)

仿真程序如下:

(1)主程序:

figure2_8.m

clearall;

closeall;

globalabcAFMepkdelta

ts=0.001;

T=5;

TimeSet=[0:

ts:

T];

c=5.0;

para=[];

[t,x]=ode45('figure2_8eq',TimeSet,[-0.50],[],para);

x1=x(:

1);

x2=x(:

2);

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

dr=A*2*pi*F*cos(2*pi*F*t);

ddr=-A*(2*pi*F)^2*sin(2*pi*F*t);

s=c*(r-x(:

1))+dr-x(:

2);

ifM==1

slaw=-ep*sign(s)-k*s;%Exponentialvelocitytrendinglaw

u=1/b*(c*(dr-x

(2))+ddr-slaw+a*x

(2));

elseifM==2

kk=1/delta;

fori=1:

1:

T/ts+1;

ifs(i)>delta

sats(i)=1;

elseifabs(s(i))<=delta

sats(i)=kk*s(i);

elseifs(i)<-delta

sats(i)=-1;

end

slaw(i)=-ep*sats(i)-k*s(i);

u(i)=1/b*(c*(dr(i)-x2(i))+ddr(i)-slaw(i)+a*x2(i));

end

elseifM==3

fori=1:

1:

T/ts+1;

ths(i)=s(i)/(abs(s(i))+delta);

slaw(i)=-ep*ths(i)-k*s(i);

u(i)=1/b*(c*(dr(i)-x2(i))+ddr(i)-slaw(i)+a*x2(i));

end

end

figure

(1);

plot(t,r,'r',t,x(:

1),'b');

xlabel('time(s)');ylabel('r,yout');

figure

(2);

plot(t,r-x(:

1),'r');

xlabel('time(s)');ylabel('error');

figure(3);

plot(r-x(:

1),dr-x(:

2),'r',r-x(:

1),-c*(r-x(:

1)),'b');%drawline(s=0)

xlabel('e');ylabel('de');

figure(4);

plot(t,s,'r');

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

figure(5);

plot(t,u,'r');

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

(2)控制子程序:

figure2_8eq.m

functiondx=DynamicModel(t,x,flag,para)

globalabcAFMepkdelta

a=25;b=133;

A=0.50;F=1.0;

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

dr=A*2*pi*F*cos(2*pi*F*t);

ddr=-A*(2*pi*F)^2*sin(2*pi*F*t);

s=c*(r-x

(1))+dr-x

(2);

k=30;ep=15;

M=3;

ifM==1

slaw=-ep*sign(s)-k*s;%Exponentialvelocitytrendinglaw

elseifM==2%Saturatedfunction

delta=0.05;

kk=1/delta;

ifs>delta

sats=1;

elseifabs(s)<=delta

sats=kk*s;

elseifs<-delta

sats=-1;

end

slaw=-ep*sats-k*s;

elseifM==3

delta=0.05;

ths=s/(abs(s)+delta);

slaw=-ep*ths-k*s;

end

u=1/b*(c*(dr-x

(2))+ddr-slaw+a*x

(2));

%StateEquation

dx=zeros(2,1);

dx

(1)=x

(2);

dx

(2)=-a*x

(2)+b*u;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1