- 在线时间
- 120 小时
- 最后登录
- 2012-9-21
- 注册时间
- 2009-12-31
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 6950 点
- 威望
- 0 点
- 阅读权限
- 200
- 积分
- 2433
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 687
- 主题
- 23
- 精华
- 0
- 分享
- 0
- 好友
- 3

智慧的蓝色小毛驴
TA的每日心情 | 开心 2011-12-5 23:03 |
|---|
签到天数: 106 天 [LV.6]常住居民II
- 自我介绍
- 200 字节以内
不支持自定义 Discuz! 代码
 |
下面这个程序是在x=[x;diff(x)],u=I的条件下的滑模变结构控制,要想把其更改为在x=[x;y;diff(x);diff(y)],u=[Ix;Iy]条件下的话,这个程序应该如何修改?谢谢大家了!
, N- O4 D! \( X- L+ N! Aclear all;/ a5 E) H U2 k' z: X6 d& d5 |
close all;# ]; J* |- `1 O3 b
a=25;b=133;. v# K# a9 y- p; T8 G
ts=0.001;' D/ }: C3 A% d! \$ | H" {
A1=[0,1;0,-a];
3 Y c4 G9 i5 T+ P! i: F) PB1=[0;b];
- e' P* d* z0 {9 vC1=[1,0];
4 o2 w' u) P4 o' e2 v5 H0 BD1=0;6 K+ ^9 v4 W# [/ q' ^7 ^4 K4 W7 \4 H
[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');4 ~% u: C9 J* d( f$ J3 @+ s
x=[-0.8;-0.5];8 a! x* `0 A z) z: m
r_1=0;r_2=0;. c* _ n) |+ A% Y. {0 R
c=20;
; I; }" h3 B8 ?& W' M! y; w c- D0 Leq=5;4 h0 [0 Z0 h4 L! r
q=30;% _; K; p! |. O
Ce=[c,1];
; r. }' ?6 A( X& E, I7 K' ofor k=1:1:2000
/ ]$ h2 V7 T3 k2 W& Z8 e5 q$ Dtime(k)=k*ts;; F- r8 X. O& j1 P* t: a
r(k)=1.0;
/ R" y, l9 w/ u9 f. _
5 ~; }9 N9 F/ [ ^( e6 V# ~2 F %Using Waitui method
) W4 \& w# B n A, ` dr(k)=(r(k)-r_1)/ts;% N& N7 f: M7 }4 ^. G s& o* m2 I
dr_1=(r_1-r_2)/ts;8 ], X( i( m1 K+ }9 j' m% S
r1(k)=2*r(k)-r_1;# y" u& H: J0 P0 q/ O
dr1(k)=2*dr(k)-dr_1;
* s. |4 h3 f' ~" i
/ e5 b6 P5 |: b5 @- S5 x R=[r(k);dr(k)];$ k) Z4 C) Y. Z/ U0 ?3 u2 `
R1=[r1(k);dr1(k)];
, d5 t ^0 D- {. K
% o3 G- n! K2 D+ O4 _1 M E=R-x;
( E( ^) A* z/ A7 |! f- z F# s e(k)=E(1);* i/ u# D+ ~* }1 c4 U! a& w
de(k)=E(2);0 ~0 I5 U4 I/ L" {% a
- M0 a( z8 ]% T! c6 z l, l
s(k)=Ce*E;
2 G. j3 p3 e* K$ K/ z. k 3 W% i9 C" ?) H& E
X1=abs(e(k))+abs(de(k));" {0 L& u( @: S# M2 h
& F/ D2 l4 ]+ `! uM=3; & f9 q* f$ O, K* i( S7 u6 |
if M==1 %EXP reaching law
( B K4 ?* k' o" A. x% C" a3 m ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);2 F3 t9 n l" M; t
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));% ^5 N0 J0 Y" B( S6 J& |+ W8 u
elseif M==2 %Variable rate reachine law
6 _ Q# n9 x$ g0 M7 f) @" I( V ds(k)=-eq*ts*X1*sign(s(k));( K' z( x( }2 A6 R: @: q& N
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));* t3 p, V5 ^- n e V! {2 u
elseif M==3 %Coposite reaching law
3 {$ ~6 K( L- t1 n k0=0.60;
1 [2 [( a0 _6 g$ I4 }+ g if X1>k0 %EXP reachine law
# [& v. K. V- D, o( H0 n9 z ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);; P, o4 @6 l9 S/ P' d
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));# `& p5 T& g) U7 Q2 L3 }/ Q/ [: W
elseif X1<=k0 %Variable rate reachine law
r+ O' q; g* E, b Q1 [ ds(k)=-eq*ts*X1*sign(s(k));
- k3 E! G: l" p5 @' N u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
7 b5 p9 w* U; O5 L" J end
9 m0 j- X7 b! f( oend- ^- g! b* i" {2 N* @8 x
if u(k)>=10
# X, b, x, Y* W( ~4 ]! W u(k)=10;
$ T$ c# M3 M' yend
7 @" a! G4 r: a5 Wif u(k)<=-10
3 p% G+ n, `" K6 k u(k)=-10;
4 ^ h" i; @! I% N9 }! n; [end; y+ r7 r3 i% X" X+ U$ p
x=A*x+B*u(k);
6 B' r1 h3 s% J3 C; J0 M' }y(k)=x(1);
$ [% f0 b! S6 S9 B9 A8 N* H4 f%Update Parameters
* C, N# Q K, q2 K$ \) R5 K. r* z) Cr_2=r_1;
) [: z! K# n7 \+ ~/ n" {3 ]6 mr_1=r(k);& J) S$ n3 U a7 _& \' ~+ t! q9 x
end
% @ s. _' T* D$ ?5 W, Zfigure(1)2 U4 L2 a; F; N1 Q" \0 y7 x5 ~, a
plot(time,r,'r',time,y,'b');
& P( c( b! }9 v! dxlabel('Time(second)');ylabel('Position tracking');. W& {, o( ~+ ]+ Q5 @' R( C
figure(2)
1 T# Q; C. r# W* T& K4 w; \) c Rplot(time,s,'r');
5 k& j1 D/ ]! t7 @8 l$ X, Yxlabel('Time(second)');ylabel('Switch function s');) S! M8 M7 H8 Q/ O/ X/ K
figure(3)! j4 u9 ]; ^& |; S, l/ y
plot(e,de,'r',e,-c*e,'b');
- U2 m+ j5 f' }2 V, x- s: Iaxis([0,0.0001,-0.001,0]);$ D7 ~0 N' Q' V s; B8 v
xlabel('e');ylabel('de');7 U& p% I8 B0 J r3 a( g# e
figure(4)4 @, Z6 P' s4 C- c% m& A0 y C' ^
plot(time,u,'r');1 G/ c" q* a( _% @% N: ~
xlabel('Time(second)');ylabel('u');& J" T: l4 Y) v/ e$ L; D
, |7 Y$ ~3 h/ l% J& z: J9 f4 k# f
|
zan
|