数学建模社区-数学中国

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

作者: deven1985    时间: 2011-9-2 14:02
标题: 帮忙看下程序
下面这个程序是在x=[x;diff(x)],u=I的条件下的滑模变结构控制,要想把其更改为在x=[x;y;diff(x);diff(y)],u=[Ix;Iy]条件下的话,这个程序应该如何修改?谢谢大家了!) m; Y/ r2 P6 g# T
clear all;: q' P; W4 y. b" L" O: v6 q3 w
close all;. E, \* q" F- J/ s+ J6 Q5 v, C
a=25;b=133;# k* B9 \$ N. H2 P+ j7 \
ts=0.001;$ \" h# C; j. Z
A1=[0,1;0,-a];
% l3 l9 A3 ?: B) H: Q! RB1=[0;b];
; c3 g/ k$ j* {, @/ \- {C1=[1,0];
% T, Y/ d* k% eD1=0;
7 r' |& C% j; G- t& _4 n; c[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');; J' Q. P. x. n) K  ?# s9 X
x=[-0.8;-0.5];5 `- H- A/ j5 A5 E, q7 t& m! }
r_1=0;r_2=0;
/ c+ Q3 V2 F6 r; r6 ^c=20;
5 U! Y- `/ S; {9 V. k' qeq=5;2 Y! y5 W) d) f% P- x0 t
q=30;
( ]) X! L) c: c! i4 [; E' _5 p( jCe=[c,1];
. n1 B5 D1 e, b3 z- s& P, ifor k=1:1:2000( {" f) p* }# [( `# }6 R
time(k)=k*ts;
6 Q$ g' R0 A9 f# r# ~6 K5 z" w, [   r(k)=1.0;# |( g- Q$ o, z# m
   
+ K  z! _% R  O- u* V2 Z   %Using Waitui method   / q! x$ ~% P7 A/ n
   dr(k)=(r(k)-r_1)/ts;) U& o* |/ E& _% g/ f: A9 o
   dr_1=(r_1-r_2)/ts;7 ?: S$ o6 l* g* x  T
   r1(k)=2*r(k)-r_1;3 a3 Y' @/ v4 {' f
   dr1(k)=2*dr(k)-dr_1;- ^4 `4 \  a1 Z
  
; R0 ?1 N4 ?! i1 O. M7 j( |1 U  v$ B   R=[r(k);dr(k)];6 F9 v: f. O8 ]- s
   R1=[r1(k);dr1(k)];, X' w/ W; l, J5 t3 V- u
   & O1 X7 @5 K) [, x' F9 ^
   E=R-x;' [3 s# y7 c) ]1 t
   e(k)=E(1);$ S2 m# i% I0 A  P
   de(k)=E(2);  J9 e- {* n2 A( Q1 s. ~* Z1 h5 F3 H
   3 k# y0 @! \4 h' U
   s(k)=Ce*E;
& b+ s3 z4 Z* @6 W/ c   , m3 q- @( ?3 u- r1 }, c  ]
   X1=abs(e(k))+abs(de(k));
' |) {9 B$ C& T6 a+ D" `* T   
- X$ r4 r: ?3 _7 o5 }9 IM=3;   , e+ ?- o6 k( B
if M==1             %EXP reaching law* @1 H: ^+ J3 }1 R7 y
   ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
) g1 ?1 B; P+ q% p   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));' f6 O4 g, ~  ]$ b; u, x
elseif M==2         %Variable rate reachine law0 N$ O+ F! J$ \$ t4 S% i. q
   ds(k)=-eq*ts*X1*sign(s(k));
& C: }4 O5 z3 _! K7 ~8 {8 _9 f   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
) j* C% L" z* U& qelseif M==3         %Coposite reaching law1 t2 q9 ]8 A0 t( p( U
   k0=0.60;* P+ C, G/ T. ?! i+ ]# L- ]7 \
   if X1>k0          %EXP reachine law, Q" q8 m, c# O6 a  Z. ~3 h
    ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
3 n0 j, g% w2 p6 J  }/ r& t& P: V    u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));" Q3 [- {1 A* ]- H' p! P) e- r
   elseif X1<=k0     %Variable rate reachine law' X& G, }# |1 l% O% a5 n3 ^: C
   ds(k)=-eq*ts*X1*sign(s(k));
! Z& K% C! B! G0 W* w) G" k$ Z   u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));/ c2 J( j* |& L
   end
- T9 w& p$ N# v. K2 K& m6 c& Iend
$ C6 b, N# z: N! b. h9 oif u(k)>=10
9 C; F$ P; @+ U, [   u(k)=10;
! g* O$ U# [( Fend4 S9 F' v2 f: k1 S5 e% X
if u(k)<=-10
5 A9 i  g, e& v0 |+ L   u(k)=-10;
/ ?9 a+ p! I1 [- h7 Eend
) F5 }1 H( I1 r: h% K, nx=A*x+B*u(k);
, Y* e1 k: z6 F0 ^: e0 s$ j7 Wy(k)=x(1);( X: ], s; z6 t3 {9 Z; y
%Update Parameters
* Q! w1 c- c+ o3 o2 x/ S8 E) qr_2=r_1;
+ j% \' A* q: @: V5 Yr_1=r(k);
  @' f/ W  ~9 E) L5 g3 ^end
$ l8 A: n4 ^! r5 efigure(1)
$ c- }& {% c. Y" z  z3 m+ y# \plot(time,r,'r',time,y,'b');
% ?/ p( b# A1 b& I& Yxlabel('Time(second)');ylabel('Position tracking');
  L9 W8 v# ?+ g# h* pfigure(2)# g) W, Q- C' j
plot(time,s,'r');3 q  |* w) L; f# {: P
xlabel('Time(second)');ylabel('Switch function s');/ M; ?; g& @0 U
figure(3)
, L# f0 t; r; m% o' f$ Zplot(e,de,'r',e,-c*e,'b');
4 h1 n. `9 G* V6 eaxis([0,0.0001,-0.001,0]);
* g2 u1 y+ P/ Yxlabel('e');ylabel('de');
7 {5 ?! E1 U# x' c% Ifigure(4)% t7 t0 B4 W# l% `4 m& W; G
plot(time,u,'r');
0 g, c" @) \3 Q* F' Z4 Y# txlabel('Time(second)');ylabel('u');
' `% B) l( ?2 ]% |  e0 X/ L; g* U: X! w, M

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





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