数学建模社区-数学中国

标题: 帮忙看下程序 [打印本页]

作者: deven1985    时间: 2011-9-2 14:02
标题: 帮忙看下程序
下面这个程序是在x=[x;diff(x)],u=I的条件下的滑模变结构控制,要想把其更改为在x=[x;y;diff(x);diff(y)],u=[Ix;Iy]条件下的话,这个程序应该如何修改?谢谢大家了!
" X! F* v6 D1 B* [0 V6 Yclear all;. H9 T* A6 r3 q! h
close all;
; U$ S! U/ j4 s) ~7 t5 za=25;b=133;
& u/ n+ I  K1 {+ L: N4 i2 t6 jts=0.001;
0 p) g  x5 C3 v4 p, WA1=[0,1;0,-a];6 N6 p' `" }" j: \
B1=[0;b];
6 O& S8 s+ u1 C; b8 oC1=[1,0];
1 [- \, ~5 P& J4 d$ w- mD1=0;
, W/ a2 v! ?/ x9 n7 P+ {[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');
( g1 k$ `  [" w1 [1 {8 @5 M& e! Sx=[-0.8;-0.5];
$ C7 [2 R8 t5 t: h+ c8 a2 s3 xr_1=0;r_2=0;5 }- Z+ H: I9 I6 _0 O9 m6 B* X+ M
c=20;
/ o0 P8 L5 j0 {- ~" K, p  [" |eq=5;" ?1 v5 n$ k$ m/ R, I2 e
q=30;0 [9 {8 Y2 @$ J. L6 P" Z6 @
Ce=[c,1];0 m5 f6 V" b2 M9 J; x/ v
for k=1:1:2000
3 D" O9 W( X+ h5 y: otime(k)=k*ts;
0 B! C5 C1 i+ ?8 X0 ~) k" l$ M   r(k)=1.0;
! P* Z  }1 s  |- r   + A5 v2 s  C2 y& Z4 _: b
   %Using Waitui method   ; |3 d; t, P% t) P1 Y% f
   dr(k)=(r(k)-r_1)/ts;
2 \) v2 M) B% o8 b3 D7 o0 S   dr_1=(r_1-r_2)/ts;
1 t2 Y/ H9 i3 c' ]   r1(k)=2*r(k)-r_1;
5 t9 d* i( l( J3 C) T- P4 v   dr1(k)=2*dr(k)-dr_1;* T! ~3 E: Z' {9 ~4 a
  
6 N4 h, X( A; \( M1 k- z8 [) I/ Z3 f   R=[r(k);dr(k)];9 k- ^# [0 Z% b
   R1=[r1(k);dr1(k)];
" U8 z  d$ V: x; P   6 ^. l, I: G+ `1 f) u
   E=R-x;8 A  n2 b1 R) L0 e7 E/ J4 |, |0 r
   e(k)=E(1);6 |6 q& _) ^, e4 J
   de(k)=E(2);/ [0 [: c' W& Z$ ?. ]
   
# G3 p, P3 I7 V. |. w   s(k)=Ce*E;# v; b6 F# P! f+ M: h. e
   
( z( k0 B3 O! l$ Q( z* x   X1=abs(e(k))+abs(de(k));
; b8 c: X/ S, n' @: f) W- [   3 @* M: Z- N1 _# p
M=3;   $ s# T& @* {5 i6 c- b8 O
if M==1             %EXP reaching law6 D5 b5 t7 ^- c% i
   ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
: @# k4 r+ D1 b. i) I4 J   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
8 v# D+ V/ C0 V1 Uelseif M==2         %Variable rate reachine law
( G7 t. Y. b* x! M5 F3 R. B   ds(k)=-eq*ts*X1*sign(s(k));; o/ m. k( }6 E3 [% i7 c! Y
   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
8 n" f' \) ?1 }* b- F  n6 Qelseif M==3         %Coposite reaching law( Q1 u/ ]% E8 C8 _" ~
   k0=0.60;
# P5 M' a2 a: `- Y   if X1>k0          %EXP reachine law9 m( n- z% E; e. H3 e) m; s0 t
    ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
6 x- b& O# o* c9 \( _& y    u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));: L; w& C# F: y: y1 y3 D8 M6 Y+ b
   elseif X1<=k0     %Variable rate reachine law! v4 E  A% b6 o) N/ G, {0 O& A
   ds(k)=-eq*ts*X1*sign(s(k));% }5 U+ Y0 @1 t
   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));0 B" J$ ~" I( y( j
   end$ g$ K: z' Y% h: M& L
end
( q! J: v; Q. u) X2 m6 u( R+ Rif u(k)>=107 l& B7 S2 G4 L
   u(k)=10;/ V7 q# g' \4 |* f
end6 `) o3 U* W: A1 B8 U
if u(k)<=-10
  R$ n2 n  b; C9 W$ P   u(k)=-10;5 i% ]- ~0 u9 |
end
5 R  `2 b6 p& T" Z0 Tx=A*x+B*u(k);
8 u; i7 _) Z! G: ]* X$ U1 vy(k)=x(1);
8 i' L, x5 x6 k; n6 q; u%Update Parameters
/ w8 G8 A' c) i# [5 O9 \0 v2 ~r_2=r_1;# |, E8 I3 a9 ^0 l: J% l
r_1=r(k);2 A0 I: V0 h: M! c% u0 ^
end/ S1 H% ]1 o8 e! @
figure(1)
6 U8 _+ s- b- ?* @7 p; r/ Splot(time,r,'r',time,y,'b');
) z( F) j/ m6 M; X0 V: Z, exlabel('Time(second)');ylabel('Position tracking');
& `- B9 C9 O+ s6 z1 _figure(2)& Y) Y7 c* @# A5 K, W
plot(time,s,'r');
7 |' u+ i7 b/ u7 S+ o$ fxlabel('Time(second)');ylabel('Switch function s');! B" M/ d# Y! b$ N; C% B) o0 o
figure(3)# F/ K- k2 T9 I8 Y
plot(e,de,'r',e,-c*e,'b');
+ B; h, o" v% @axis([0,0.0001,-0.001,0]);
$ |  Y6 f9 n% P7 Bxlabel('e');ylabel('de');& }! H3 e' |& |2 {; C! U
figure(4)
+ x( `  X# o4 E& ]! e7 Iplot(time,u,'r');# i8 M7 k+ M/ y$ E
xlabel('Time(second)');ylabel('u');
/ ]: O, k1 }, \8 ]/ f+ ^& T2 c+ G1 a" U; C  r# T' S* x

作者: alair006    时间: 2012-2-7 16:30
我一天不来数学中国社区就不爽~~~~6476978636346710
作者: 守粮仓的鼠    时间: 2012-8-2 20:03





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5