- 在线时间
- 120 小时
- 最后登录
- 2012-9-21
- 注册时间
- 2009-12-31
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 6950 点
- 威望
- 0 点
- 阅读权限
- 200
- 积分
- 2433
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 687
- 主题
- 23
- 精华
- 0
- 分享
- 0
- 好友
- 3

智慧的蓝色小毛驴
TA的每日心情 | 开心 2011-12-5 23:03 |
|---|
签到天数: 106 天 [LV.6]常住居民II
- 自我介绍
- 200 字节以内
不支持自定义 Discuz! 代码
 |
下面这个程序是在x=[x;diff(x)],u=I的条件下的滑模变结构控制,要想把其更改为在x=[x;y;diff(x);diff(y)],u=[Ix;Iy]条件下的话,这个程序应该如何修改?谢谢大家了!9 k+ q! d2 \- i: [/ V3 d
clear all;
, S; S2 ^) I! l3 S$ x: D/ h& wclose all;
) s. a* G0 g. x7 q: m( a9 qa=25;b=133;
~/ t* c5 e7 h. b$ n) Vts=0.001;9 s, I# i2 Q% ?4 e
A1=[0,1;0,-a];1 A: `7 B6 A8 z) {# Q0 g
B1=[0;b];8 a% n& d! R7 Z6 ^8 o0 b# Q
C1=[1,0];1 \9 t9 T, U2 z, |
D1=0;* z. I& u5 C" h8 v
[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');# l5 _0 y' R1 j J
x=[-0.8;-0.5];0 K/ M4 ?6 R" y x! [5 T0 \6 P
r_1=0;r_2=0;$ ^6 O7 X0 n) {4 s! G
c=20;
e, ~' o7 l' `$ p% W* V5 ?$ yeq=5;9 ^6 [% o- t5 M9 X( P f0 c
q=30;; T* ^6 c" l& x5 K* H. z+ K( I6 d2 e
Ce=[c,1];
+ F' {% D h$ o( V9 \for k=1:1:2000' x5 `5 n+ x* T1 {7 n7 p
time(k)=k*ts;% ^$ ~8 ?# e/ l( B; P
r(k)=1.0;
; d6 x+ ~3 O2 r/ L- p( z- s 2 U4 N4 L; G7 i0 ?* P" _# W
%Using Waitui method
6 ]! H; W0 `, V+ Y0 @' p7 S dr(k)=(r(k)-r_1)/ts;
$ Q5 `7 p! F' ?. c: U% l: V% D dr_1=(r_1-r_2)/ts;6 M/ O: N. M2 s" P( _
r1(k)=2*r(k)-r_1;' C2 w4 \& y1 W# Q
dr1(k)=2*dr(k)-dr_1;0 I3 _0 L% `" _/ h! \( u @
{6 h4 e4 k0 ^! V e0 m& y: }7 E z R=[r(k);dr(k)];4 m# g- Q/ o2 q0 }
R1=[r1(k);dr1(k)];8 D( I' }+ E+ [4 L6 c- F" w
# W% D8 C( V9 w) X$ ~
E=R-x;2 U; f$ j- w9 B& S7 c; H
e(k)=E(1);
' \1 p, `# b: j, H0 _# W de(k)=E(2);4 r b, n8 d6 w: K
- Y9 O( H7 b0 { s(k)=Ce*E;) }. X1 [" \% q t9 W
3 f: Y. |. P: d5 u
X1=abs(e(k))+abs(de(k));6 {& q( L2 J' |% x
! E& T' t K9 E" B; Y& ~" AM=3;
; B: }2 u8 u: {/ U. fif M==1 %EXP reaching law
& I0 ~, P8 y. o9 H6 o ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
0 v* m7 { |% b( M: S% Q u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));6 X1 O+ }3 n" ?1 q
elseif M==2 %Variable rate reachine law
6 p7 F# a; {3 ?, [. v ds(k)=-eq*ts*X1*sign(s(k));* q$ X% k% w" ]! [ `- D+ ^- o
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));- n' A8 g+ [( U; k8 D5 w
elseif M==3 %Coposite reaching law
7 A+ U* f* ?- m1 N9 t k0=0.60;& N% ]) l( @- q9 ?* _9 Z
if X1>k0 %EXP reachine law2 b# C6 B9 o8 C" _8 d! c6 m8 ` G- M3 L
ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);3 s9 A/ K6 j( \% \
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
$ K; g2 S) X# w, W elseif X1<=k0 %Variable rate reachine law
! C4 ?2 h, T- R9 X& F5 @; m6 d: { ds(k)=-eq*ts*X1*sign(s(k));. ^2 i. Z1 y) V( S$ L8 M' G
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
9 p) h! Y0 J& B7 B' Z* N8 u* ^ end5 I' i% [9 h- M Z7 [9 C( K
end
7 T9 Q; r; A6 {' G, q; V0 P/ \if u(k)>=101 J1 L3 c, w8 P& ]. k
u(k)=10;, H0 V/ b# p" C9 Z: ]# G5 r
end) W7 @; {/ U1 x4 a# U2 \7 G8 k- B
if u(k)<=-101 U4 P- D/ \1 w7 |( T
u(k)=-10;
$ v& |8 ?/ ^$ dend( l3 Q3 _0 c6 x. F& c
x=A*x+B*u(k);
. y* ?/ P5 P; a p8 l! X# |6 wy(k)=x(1);9 y5 c' q4 D4 X5 \8 p
%Update Parameters
, H+ |8 v. S7 \1 k1 w" q5 i) S6 D9 S: @r_2=r_1;" O$ R% D7 m9 g' k% Q
r_1=r(k);
1 S* E2 t# K$ \! Y$ jend) y4 G, n, `# H
figure(1)9 k4 M7 P* U- s0 V/ V
plot(time,r,'r',time,y,'b');- w( m2 C. c# `1 z
xlabel('Time(second)');ylabel('Position tracking');
5 B. D0 T* r& ? E$ s: O+ Lfigure(2)
3 x, ^( t J2 l6 Z! tplot(time,s,'r');
: u2 ?) R: m8 V- Vxlabel('Time(second)');ylabel('Switch function s');: f/ o$ g6 q9 \+ Y' i
figure(3)* Q+ E! |* I1 b, c, U) i( H: a
plot(e,de,'r',e,-c*e,'b');
, f+ P& O& _/ O' eaxis([0,0.0001,-0.001,0]);9 F1 ^% Z/ E F7 J* u/ }
xlabel('e');ylabel('de');* C9 d2 G' P, B. ^
figure(4)
3 u4 i; t- e; c5 z8 [: [plot(time,u,'r');
9 R& S* K# K! Q1 `7 a. V# `xlabel('Time(second)');ylabel('u');
9 G; x& _4 B! y5 ?5 @: S( ?+ }* y' G! e) k# O
|
zan
|