当前位置:文档之家› 准滑动模态控制matlab仿真实例.

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

准滑动模态控制 2.8.1准滑动模态控制 在滑动模态控制系统中,如果控制结构的切换具有理想的开关特性,则能在切换面上形成理想的滑动模态,这是一种光滑的运动,渐进趋近于原点。但在实际工程中,由于存在时间上的延迟和空间上的滞后等原因,使得滑动模态呈抖振形式,在光滑的滑动上叠加了抖振。理想的滑动模态是不存在的,现实中的滑动模态控制均伴随有抖振,抖振问题是影响滑动模态看控制广泛应用的主要障碍。 所谓准滑动模态,是指系统的运动轨迹被限制在理想滑动模态的某一领域内的模态。从相轨迹方面来说,具有理想滑动模态的控制是使一定范围内的状态点均被吸引至切换面。而准滑动模态控制则是使一定范围内的状态点均被吸引至切换面的某一领域内,通常称此领域为滑动模态切换面的边界层。 在边界层内,准滑动模态不要求满足滑动模态的存在条件,因此准滑动模态不要求在切换面上进行控制结构的切换。它可以在边界层上进行结构变换的控制系统,也可以根本不进行结构变换的连续状态反馈控制系统。准滑动模态控制在实现上的这种差别,使它从根本上避免或削弱了抖振,从而在实际中得到了广泛的应用。 在连续系统中,常用的准滑动模态控制有以下两种方法: (1) 用饱和函数()sats代替理想滑动模态中的符号函数sgn()s。 1()1ssatsksss





1k

 (2.46)

其中称为“边界层”。饱和函数()sats如图2-26所示,饱和函数的本质为:在边界层外,采用切换控制;在边界之内,采用线性化反馈控制。 (2) 将继电特性连续化,用连续函数()s取代sgn()s。

()sss (2.47)

式中是很小的正常数。 2.8.2 仿真实例 对象为二阶传递函数: 2()pbGssas

其中25,133ab。 将传递函数描述为位置状态方程的形式: .xxu

其中010a, 0b。 设位置指令信号为r,则 ......[(1)](2)[(1)](2)scrxdrxscrxrxslaw

 采用指数趋近律: sgn()slawsks

将(2)(2)xaxbu代入上式,得控制律为 ...1

[((2))(2)]ucrxrslawaxb

系统的初始状态为0.50。在仿真程序中,指令为正弦信号。1M

为指数趋近律,2M为采用饱和函数的指数趋近律,3M为采用继电特性的指数趋近律。取51C,15,30k,进行如下几种仿真: (1)采用指数趋近律。取1M,正弦跟踪结果如图所示。 00.511.522.533.544.55-0.8-0.6-0.4-0.200.20.40.6time(s)r,yout

正弦跟踪(M=1)

00.511.522.533.544.55-0.100.10.20.30.40.50.6

time(s)error

误差曲线(M=1) -0.100.10.20.30.40.50.6-3-2-101234ede

相轨迹(M=1)

00.511.522.533.544.55-10123456

time(s)s

切换函数s(M=1) 00.511.522.533.544.55-0.4-0.200.20.40.60.811.21.41.6time(s)u

控制器输出(M=1) (2)验证准滑动模态控制。2M为采用饱和函数的方法,取5.0,仿真结果如图所示。

00.511.522.533.544.55-0.8-0.6-0.4-0.200.20.40.6

time(s)r,yout

正弦信号跟踪(M=2) 00.511.522.533.544.55-0.100.10.20.30.40.50.6time(s)error

误差曲线(M=2)

-0.100.10.20.30.40.50.6-3-2-101234

ede

相轨迹(M=2) 00.511.522.533.544.55-10123456time(s)s

切换函数s(M=2)

00.511.522.533.544.55-1-0.500.511.52

time(s)u

控制器输出(M=2) (3)3M为采用继电特性的方法,取0.05,仿真结果如图所示 00.511.522.533.544.55-0.8-0.6-0.4-0.200.20.40.6time(s)r,yout

正弦信号跟踪(M=3)

00.511.522.533.544.55-0.100.10.20.30.40.50.6

time(s)error

误差曲线(M=3) -0.100.10.20.30.40.50.6-3-2-101234ede

相轨迹(M=3)

00.511.522.533.544.55-10123456

time(s)s

切换函数s(M=3) 00.511.522.533.544.55-1-0.500.511.52time(s)u

控制器输出(M=3) 仿真程序如下:

(1) 主程序:figure2_8.m clear all; close all; global a b c A F M ep k delta ts=0.001; T=5; TimeSet=[0:ts:T]; c=5.0; para=[]; [t,x]=ode45('figure2_8eq',TimeSet,[-0.5 0],[],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); if M==1 slaw=-ep*sign(s)-k*s; %Exponential velocity trending law u=1/b*(c*(dr-x(2))+ddr-slaw+a*x(2)); elseif M==2 kk=1/delta; for i=1:1:T/ts+1; if s(i)>delta sats(i)=1; elseif abs(s(i))<=delta sats(i)=kk*s(i); elseif s(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 elseif M==3 for i=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'); %draw line (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

function dx=DynamicModel(t,x,flag,para) global a b c A F M ep k delta

a=25;b=133; A=0.50;F=1.0;

相关主题