数学建模社区-数学中国
标题:
帮忙看下程序
[打印本页]
作者:
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! R
B1=[0;b];
; c3 g/ k$ j* {, @/ \- {
C1=[1,0];
% T, Y/ d* k% e
D1=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' q
eq=5;
2 Y! y5 W) d) f% P- x0 t
q=30;
( ]) X! L) c: c! i4 [; E' _5 p( j
Ce=[c,1];
. n1 B5 D1 e, b3 z- s& P, i
for 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 I
M=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 law
0 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& q
elseif M==3 %Coposite reaching law
1 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& I
end
$ C6 b, N# z: N! b. h9 o
if u(k)>=10
9 C; F$ P; @+ U, [
u(k)=10;
! g* O$ U# [( F
end
4 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 E
end
) F5 }1 H( I1 r: h% K, n
x=A*x+B*u(k);
, Y* e1 k: z6 F0 ^: e0 s$ j7 W
y(k)=x(1);
( X: ], s; z6 t3 {9 Z; y
%Update Parameters
* Q! w1 c- c+ o3 o2 x/ S8 E) q
r_2=r_1;
+ j% \' A* q: @: V5 Y
r_1=r(k);
@' f/ W ~9 E) L5 g3 ^
end
$ l8 A: n4 ^! r5 e
figure(1)
$ c- }& {% c. Y" z z3 m+ y# \
plot(time,r,'r',time,y,'b');
% ?/ p( b# A1 b& I& Y
xlabel('Time(second)');ylabel('Position tracking');
L9 W8 v# ?+ g# h* p
figure(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$ Z
plot(e,de,'r',e,-c*e,'b');
4 h1 n. `9 G* V6 e
axis([0,0.0001,-0.001,0]);
* g2 u1 y+ P/ Y
xlabel('e');ylabel('de');
7 {5 ?! E1 U# x' c% I
figure(4)
% t7 t0 B4 W# l% `4 m& W; G
plot(time,u,'r');
0 g, c" @) \3 Q* F' Z4 Y# t
xlabel('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