数学建模社区-数学中国
标题:
帮忙看下程序
[打印本页]
作者:
deven1985
时间:
2011-9-2 14:02
标题:
帮忙看下程序
下面这个程序是在x=[x;diff(x)],u=I的条件下的滑模变结构控制,要想把其更改为在x=[x;y;diff(x);diff(y)],u=[Ix;Iy]条件下的话,这个程序应该如何修改?谢谢大家了!
# n0 j9 |/ D: X! V
clear all;
5 i) {6 Y! w: r) X X
close all;
4 v! \% Z. F. Q2 a$ f
a=25;b=133;
' x3 W" [6 z' m. g8 f+ B7 W. H
ts=0.001;
8 Q& n; [, z% m; ?; W
A1=[0,1;0,-a];
) [: P$ K" Z; n. H: D
B1=[0;b];
% r$ t( w. E& {( k5 f0 z
C1=[1,0];
$ i' r& W" D' Y# y f( m
D1=0;
- L6 @; c# u$ t: d8 Z
[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');
% `0 B. K. t& M4 X; M* S$ `
x=[-0.8;-0.5];
; {, Y$ J# ]0 ^% @1 o
r_1=0;r_2=0;
+ q) [( ^ ?" Y3 a+ V
c=20;
* }6 j7 ^ v2 [0 ^* {+ n
eq=5;
1 P' V. K( Z+ [1 f# n
q=30;
$ t# E& Z% b, g( W; ?+ x
Ce=[c,1];
$ K# q6 ]; J) A: `" F
for k=1:1:2000
& j0 j( ~* r5 H
time(k)=k*ts;
2 Q( l: N+ t2 [; w- c' |
r(k)=1.0;
9 n" Y) S y" j4 y7 a
0 i' M* a: f; g! o& F7 J. K
%Using Waitui method
& w/ q0 D: }& N- V/ m
dr(k)=(r(k)-r_1)/ts;
. m, U3 ?0 m& T8 \( \
dr_1=(r_1-r_2)/ts;
' U/ }9 @+ e1 e( `
r1(k)=2*r(k)-r_1;
; |8 G9 A% S* W
dr1(k)=2*dr(k)-dr_1;
! J. ?% o! l s; b; k* M4 g
3 k5 d/ B4 m0 y, c3 B6 X4 F& h
R=[r(k);dr(k)];
8 [) g! }5 A# H% q
R1=[r1(k);dr1(k)];
9 u% \" B' D* S% C2 r4 a
3 o+ s3 t9 A8 u
E=R-x;
) |* x9 L- U/ {2 M) {
e(k)=E(1);
- a1 W( Q F% @) P! w! N9 \
de(k)=E(2);
8 r1 C' A4 v/ W
4 ^+ U1 z$ W' g; g7 Z+ n1 c
s(k)=Ce*E;
0 J* Y" l# `0 H9 \9 k
J( I, u1 K" d0 l) I0 ?4 H0 j
X1=abs(e(k))+abs(de(k));
5 p5 m% X- g& v5 M% }% x
8 R# c* b- H5 b; S D
M=3;
2 |6 |( w: u6 s
if M==1 %EXP reaching law
) D7 f$ X: m* d/ Z- Z! J* z
ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
: _5 A# A3 F. p9 \/ I+ n
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
4 D) [6 w- ]: P' y. Z7 n k
elseif M==2 %Variable rate reachine law
) m3 I+ l; ~: `
ds(k)=-eq*ts*X1*sign(s(k));
7 v3 s% Q5 B* c9 @$ T
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
$ J6 V$ X# s4 N! `
elseif M==3 %Coposite reaching law
|$ D7 K/ o4 p( ^
k0=0.60;
+ O6 ?' `. C9 S; D
if X1>k0 %EXP reachine law
+ G& G" @7 [5 N- e' E
ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
0 C8 |( R1 u1 I
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
+ X @6 ~( {6 w/ p
elseif X1<=k0 %Variable rate reachine law
$ C( M0 w& Z4 E' [# n. T- e- h. q
ds(k)=-eq*ts*X1*sign(s(k));
( c4 g$ Z. b- H) c' f
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
6 K8 p% I% N9 O7 X/ h- r) S
end
3 J! q% L' R/ j+ A. B
end
: d$ i$ t0 m; G# F0 e' `
if u(k)>=10
0 h8 f A, o" L( U8 g
u(k)=10;
3 _9 t3 V. ^; ?! w( n- n
end
2 k7 `/ o9 C) a# {. ~, z
if u(k)<=-10
+ q. d; Z% O! Q; m& O
u(k)=-10;
) H. Q! x% \) I- l
end
, o8 [ j1 q" R: f, P- ~2 \
x=A*x+B*u(k);
. e- z( w: o7 \+ l
y(k)=x(1);
3 f O g B# Z0 } I) N- H
%Update Parameters
5 T7 E$ ]& W% F1 D" \5 G
r_2=r_1;
9 p$ Y# _5 D1 p( l
r_1=r(k);
, P8 B% D, T" W# x( G" W
end
* {$ [) @" d4 b) v
figure(1)
7 a& ~0 D$ |# h2 r
plot(time,r,'r',time,y,'b');
" M: p6 h6 w! M o
xlabel('Time(second)');ylabel('Position tracking');
9 F9 h& |( u; }
figure(2)
# K; g" H1 w7 c' H, ~8 D
plot(time,s,'r');
# b3 b. Y: G$ z, ?. C+ n* f% ?
xlabel('Time(second)');ylabel('Switch function s');
9 _ {8 }; R! S" R. q
figure(3)
$ E+ |( L- y6 L- }+ w
plot(e,de,'r',e,-c*e,'b');
2 U4 {5 @2 L6 r' h) V: A
axis([0,0.0001,-0.001,0]);
' K7 J- z1 n$ p0 s' e, [
xlabel('e');ylabel('de');
% H( d z% L7 ~
figure(4)
7 |, Q- r( Y. i: ~8 s
plot(time,u,'r');
! C, ?! U/ Y/ L* f" y/ r% a; y
xlabel('Time(second)');ylabel('u');
7 l0 @& \" P `0 e- m7 y
, X5 F* w4 \* E2 O0 D
作者:
alair006
时间:
2012-2-7 16:30
我一天不来数学中国社区就不爽~~~~
6476978636346710
作者:
守粮仓的鼠
时间:
2012-8-2 20:03
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5