数学建模社区-数学中国

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

作者: deven1985    时间: 2011-9-2 14:02
标题: 帮忙看下程序
下面这个程序是在x=[x;diff(x)],u=I的条件下的滑模变结构控制,要想把其更改为在x=[x;y;diff(x);diff(y)],u=[Ix;Iy]条件下的话,这个程序应该如何修改?谢谢大家了!
; w# F  v) I8 I& R5 Aclear all;
1 t9 b/ i  m( X% f- _8 B% Dclose all;9 E3 n2 ?  |' q- A0 C
a=25;b=133;- X3 ?# G( I* @1 V, s
ts=0.001;' n: I' y) o) _- j& p) c
A1=[0,1;0,-a];: ]; W1 a, z* P5 R
B1=[0;b];
% _4 d' _0 d  {% l! zC1=[1,0];3 W) B" P2 u! v( b7 w7 C( D7 S# d
D1=0;
# ]) D2 S5 s2 c[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');+ ]7 P* t5 h8 a, p. |
x=[-0.8;-0.5];( N( K/ y8 Q6 R' ~- |0 Q
r_1=0;r_2=0;& z. j  R, a* y4 X, U
c=20;
. ?  ~8 Q$ e+ V) o+ |eq=5;% h! L( y7 G# ?7 W$ O
q=30;
7 i, f) z4 E6 Y5 }  JCe=[c,1];1 F7 Z. F- w. l5 W
for k=1:1:2000
! U# X# f6 S2 u3 u" Utime(k)=k*ts;) Q+ K- ~, ~: C3 G  [+ X8 d- @; P$ ^
   r(k)=1.0;; K* V5 T1 E; @
   ; B& D  E+ q) X5 M
   %Using Waitui method   
* ~# @; M& o3 h, f" `   dr(k)=(r(k)-r_1)/ts;
8 r; L4 y  a9 T2 F- {   dr_1=(r_1-r_2)/ts;
. L' [3 |% s* V2 Z( n; t& U$ F   r1(k)=2*r(k)-r_1;4 L% a# G& Y$ p
   dr1(k)=2*dr(k)-dr_1;
$ w# A3 r7 ?) f  [' O  
3 j3 w  ~; s: m: x! x! r   R=[r(k);dr(k)];; @+ N; o/ b* p& N5 l
   R1=[r1(k);dr1(k)];
+ R( E& C5 ?9 z4 b% Y, r* b   : L8 D( h5 X( f; ?% U  k9 a3 B
   E=R-x;
  x/ r3 y# @6 \" ?1 M- A   e(k)=E(1);' j( ?9 e5 Z3 c6 u# Z8 q! x: n. _+ q
   de(k)=E(2);7 p2 s5 T. k3 g5 r
   
1 {3 X1 V; j. z0 X( j: r# P( ^) ?   s(k)=Ce*E;
9 p  m! L0 O3 q: n& c   
0 b2 b. R1 J* g   X1=abs(e(k))+abs(de(k));* [2 u8 Q. G& s5 U( J
   
4 l1 S7 _& O2 h& s) _M=3;   
* N, Z1 t' o/ s1 p  Nif M==1             %EXP reaching law, O& k2 U  S( q* \
   ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
5 g$ E) `" \7 J5 q; l& X   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));& C& s/ d8 F% t1 s1 @/ j: L, G
elseif M==2         %Variable rate reachine law; d! `0 E; ?/ j8 O
   ds(k)=-eq*ts*X1*sign(s(k));. m5 J+ K8 B+ T* _
   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
, `: _% ]# K& a: {& ~elseif M==3         %Coposite reaching law6 i! y9 s( J) `6 {- a4 ~$ m
   k0=0.60;8 ?& n9 ?8 {! G7 t
   if X1>k0          %EXP reachine law
- n" V& r0 ]/ B    ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
3 n  H, r, _. Z: \* E0 h    u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));0 a0 i$ ~' j2 d% G3 ^( u
   elseif X1<=k0     %Variable rate reachine law" e' @7 }  e: d2 j2 L
   ds(k)=-eq*ts*X1*sign(s(k));. p8 @7 y( H9 X  z3 s
   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
4 k2 z; ]7 W. O' e0 U; S% u- `9 N: c   end% M9 l) Q! I( _+ W! `
end) N' @  t7 ~3 _% ~& t0 x
if u(k)>=10
. C$ A% i* x" H! p" G0 P! Y3 _5 j   u(k)=10;
8 f2 u% U# ~8 x8 R3 u+ B1 g1 xend
* i* C8 k( Y. o; Y* j) g$ g4 z7 z6 rif u(k)<=-10, a9 f2 L' ^1 I: Y
   u(k)=-10;
5 Y2 t- z% h8 }2 u' C  [" g( ]( [$ kend
/ f$ e* d- x- Z; W4 Ix=A*x+B*u(k);
8 S/ `+ u1 w7 h# ?y(k)=x(1);/ H2 z3 A  P, \- R6 c( @
%Update Parameters
/ Y1 a0 I$ s$ Q/ M7 Mr_2=r_1;
* a' L7 {9 m5 {' @* K# R# _r_1=r(k);. A3 O3 w' a6 W3 ~/ v& d7 \
end
9 r% ^5 ?5 g1 I; t$ n4 sfigure(1)) |3 P+ n( M5 @! g8 o3 G  i4 ]2 o
plot(time,r,'r',time,y,'b');
1 @+ s/ d& O! t  H7 {- r8 ~4 bxlabel('Time(second)');ylabel('Position tracking');$ C5 C! G- H1 i( N  M2 O
figure(2)
2 @6 a! x2 G' o' i+ I1 [3 iplot(time,s,'r');
& T( R, r& d1 ?; m2 _! y, K/ {xlabel('Time(second)');ylabel('Switch function s');, x$ }- E  R9 n# V7 x" h: p
figure(3)
! h4 F1 ^" K& e/ G8 |plot(e,de,'r',e,-c*e,'b');
8 N' k/ J- i0 w# T" a- |axis([0,0.0001,-0.001,0]);
9 f4 y7 H) Z, bxlabel('e');ylabel('de');
/ m0 \7 o. Q2 Bfigure(4)* s8 D% n7 x0 D1 P( Z& @+ q
plot(time,u,'r');6 k; Z4 U# S+ W
xlabel('Time(second)');ylabel('u');" g0 o3 ~) V: B

- w2 [/ a7 c+ }; m5 D" _& D
作者: alair006    时间: 2012-2-7 16:30
我一天不来数学中国社区就不爽~~~~6476978636346710
作者: 守粮仓的鼠    时间: 2012-8-2 20:03





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