数学建模社区-数学中国
标题:
帮忙看下程序
[打印本页]
作者:
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 A
clear all;
1 t9 b/ i m( X% f- _8 B% D
close 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! z
C1=[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 } J
Ce=[c,1];
1 F7 Z. F- w. l5 W
for k=1:1:2000
! U# X# f6 S2 u3 u" U
time(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 N
if 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 law
6 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 x
end
* i* C8 k( Y. o; Y* j) g$ g4 z7 z6 r
if u(k)<=-10
, a9 f2 L' ^1 I: Y
u(k)=-10;
5 Y2 t- z% h8 }2 u' C [" g( ]( [$ k
end
/ f$ e* d- x- Z; W4 I
x=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 M
r_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 s
figure(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 b
xlabel('Time(second)');ylabel('Position tracking');
$ C5 C! G- H1 i( N M2 O
figure(2)
2 @6 a! x2 G' o' i+ I1 [3 i
plot(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, b
xlabel('e');ylabel('de');
/ m0 \7 o. Q2 B
figure(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