- 在线时间
- 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]条件下的话,这个程序应该如何修改?谢谢大家了!
" L; m+ a3 Q7 {% K5 r0 D) \clear all;: `+ ~' L4 ]7 N _( s
close all;
* ?$ r& d" {% }) A0 j9 Ba=25;b=133;+ z/ [+ \8 \0 M% k% T" S
ts=0.001;
; t' z, O: o! DA1=[0,1;0,-a];" a% y! H0 d2 ` r& T
B1=[0;b];0 t i( I- g% M
C1=[1,0];% h' q1 e, O3 y* U
D1=0;
4 u; h" c e' v0 Y$ k# Y/ I[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');
! ?6 O' r4 F7 Z H3 l& ux=[-0.8;-0.5];
% N2 X! N3 {. Lr_1=0;r_2=0;
, c! C3 D5 y9 v6 nc=20;9 A3 O/ D3 g5 R/ |6 l; N" m
eq=5;3 f' v3 K4 ^4 ^0 V- }4 w! n+ ^
q=30;, S) \+ L, O) M7 J( M6 N
Ce=[c,1];
7 U1 j% |3 b; y+ X4 m2 g6 cfor k=1:1:2000
: J! r/ g" i3 Z- Ctime(k)=k*ts;
9 A+ W( l+ k) y1 L2 y% d r(k)=1.0;
( a- {; e$ x: ?' r: x# N# t
0 z0 v1 d' ]4 X %Using Waitui method % [; i' ^1 y% N d& r! Y* v& v* Z
dr(k)=(r(k)-r_1)/ts;) `" l: ?7 Y; ]! Y0 R4 p4 X
dr_1=(r_1-r_2)/ts;, ~) q) e1 \9 x$ G! o7 a3 q
r1(k)=2*r(k)-r_1;+ q+ H# A, B$ M B& b% k
dr1(k)=2*dr(k)-dr_1;" G9 c+ w3 \2 ~
9 X6 S% U( Y/ o
R=[r(k);dr(k)];" U# @! [5 R: t/ i: B
R1=[r1(k);dr1(k)];
2 i6 N4 i; a8 v/ z0 r3 z1 j- Z: J
7 ? \+ @8 @( f E=R-x;0 @8 o6 `( O! Y3 u9 ]+ a# X
e(k)=E(1);* o0 m- l5 G8 D- m/ ^
de(k)=E(2);4 @6 _- B; l @2 Q& q- l
8 C' m6 s! F' f, p" } h7 M" r! Q
s(k)=Ce*E;
9 `& M' T5 _7 G' n 0 t* t( G; H7 i0 }3 q* Y |! G, C
X1=abs(e(k))+abs(de(k));& B' u: V9 }0 ?& ~$ `6 O! m
: e ]+ {# f: P5 AM=3;
' D$ E5 z- \! O+ U7 o3 e) w% Mif M==1 %EXP reaching law2 H% I1 @! I/ a( N7 r+ E$ w
ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);) b3 Y9 n0 g& ?1 v {/ r( S
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));. T8 h7 s; |/ J, v3 e
elseif M==2 %Variable rate reachine law
- s& W H' c! l% L ds(k)=-eq*ts*X1*sign(s(k));4 N' Q, j+ h6 w5 u* E
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));+ U9 |7 `( u0 C$ Z, M( R
elseif M==3 %Coposite reaching law! s' c( Y* ~( j0 R/ E4 H
k0=0.60;) ~$ V5 c3 D0 \3 e; F1 c
if X1>k0 %EXP reachine law
, V) ^& Q2 y# Z- I& { ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);* d R9 ^0 G4 r0 U7 m/ ]* o( V3 A
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));6 Q* E$ `9 m* C4 k! R) C9 b( w
elseif X1<=k0 %Variable rate reachine law# ]& [! y# k' C, f
ds(k)=-eq*ts*X1*sign(s(k));
' c/ G# W8 Z' D3 m u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
/ w' k* R x7 E Y" o" ^2 F end- V4 L; a5 m9 {
end) i: Q( l. g9 l' y# o8 C/ H
if u(k)>=10
6 u6 d. n9 e9 W- c u(k)=10;5 d7 |8 [/ X, S
end
5 K, P4 h, n. k. Dif u(k)<=-10
& q, ?2 H6 d9 [- E. i% E- K u(k)=-10;4 P6 ~! z: D) E) @& u9 H
end$ E& x7 ^9 _; f- d: T& E
x=A*x+B*u(k);. |; z" |+ A3 B1 k
y(k)=x(1);2 U: e }9 S2 j7 r5 C. D
%Update Parameters6 b4 j. K, G% R @7 t
r_2=r_1;
' J+ }* B; w2 Z3 Y, z hr_1=r(k);
7 e, R" G0 y- d( k6 F( }end( V/ z- }" P4 _. n, p. e0 i
figure(1)4 m$ _0 ^1 F6 k2 i: g
plot(time,r,'r',time,y,'b');
- w. D5 K7 r) @/ f2 Txlabel('Time(second)');ylabel('Position tracking');
S/ N1 ]$ }2 wfigure(2)
/ @1 }% W: r, Y, ^7 z* Jplot(time,s,'r');
b! Y2 l4 n# S+ W9 ]$ D( s3 fxlabel('Time(second)');ylabel('Switch function s');& z; p/ _& x3 v
figure(3)
; @; o7 Q% A9 ^+ m1 oplot(e,de,'r',e,-c*e,'b');
1 G9 c% J' }9 k) D+ `9 O; F& f: Paxis([0,0.0001,-0.001,0]);
0 }( A! s+ W* ?5 I1 \1 K* M, }) `xlabel('e');ylabel('de');3 Y. _4 H% s7 R2 V# ]3 \$ s) ?& b4 _
figure(4), t% w6 W1 \6 q& h) |
plot(time,u,'r');
3 `1 L2 {' B+ d$ }xlabel('Time(second)');ylabel('u'); S2 j/ ` F3 m$ W9 P5 H8 u4 |
/ A$ `6 S- N2 \2 k
|
zan
|