- 在线时间
- 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]条件下的话,这个程序应该如何修改?谢谢大家了!& C9 s! }8 s3 q& y0 j+ |- |
clear all;' t3 q- Y5 D _9 A) z1 `
close all;4 L: v2 V5 w7 R( |9 n' W
a=25;b=133;8 P1 P. H @9 G, s# a4 A1 o" Z
ts=0.001;3 X [: E: ]' {' F+ G' @
A1=[0,1;0,-a];
2 s m3 m% ~0 ?3 ^6 A0 C" EB1=[0;b];) X m5 m, |, a, L
C1=[1,0];
) ~( G' \) {0 a6 [# hD1=0;( f# r- P9 c# b9 r6 N9 p
[A,B,C,D]=c2dm(A1,B1,C1,D1,ts,'z');
7 z( v- h3 T+ e) t. Px=[-0.8;-0.5];
) a, j# i+ y& Jr_1=0;r_2=0;
8 ?3 |- m% @$ ?: hc=20;
: q' \6 C0 Y# J* i" P% [6 Geq=5;
, @1 \) A- O3 h3 S4 K% ~q=30;- x5 W- N2 `9 u
Ce=[c,1];
, s; A4 }" w. s/ Y7 afor k=1:1:2000
' `$ {: }4 l, j. f8 K. |time(k)=k*ts;
& N% I0 ?3 T6 h# O r(k)=1.0;
: D- f4 A+ S2 f& B% a! ?+ | s4 z j! C
5 S5 I* f6 A7 R' G %Using Waitui method
' G' X; V8 H2 s: C+ @% G dr(k)=(r(k)-r_1)/ts;
' l& Y w$ P! A3 ~0 x I2 ] dr_1=(r_1-r_2)/ts;5 n7 d; p. v M8 C A
r1(k)=2*r(k)-r_1;, n2 U3 y. |; ~$ o/ F
dr1(k)=2*dr(k)-dr_1;
: S. O) Y' O$ s% } + x4 s7 \6 F" Z
R=[r(k);dr(k)];$ o( g# i* k8 b* @' b( j& b
R1=[r1(k);dr1(k)];9 Y* u! q: E3 l6 |
: D5 X3 J% ?" g' m. y6 Z E=R-x;7 }4 n! {7 L& [" G5 u6 f6 @: N- i
e(k)=E(1);
/ \: B6 T5 V9 m2 t7 j$ D3 y de(k)=E(2);) Z, E4 o9 B! L$ e
( V7 I, S7 X! ~. R6 q/ q
s(k)=Ce*E;
8 Z4 H/ {( e% x! b& @ 3 C+ t- }. v0 q% w& O8 c0 U# X; l
X1=abs(e(k))+abs(de(k));7 \9 ^5 K! n/ ~8 w
' F L6 P& C3 g1 f6 G2 x# U# i0 nM=3; + [7 w+ n/ D% ^7 r; i( {
if M==1 %EXP reaching law7 P# v, Q ?* X9 T* M4 r
ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);
' N2 ]7 ^: X0 C1 Y$ I( F& V u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
! I$ l }* g5 j( o A% ~ Zelseif M==2 %Variable rate reachine law
8 J2 t. e9 A t+ \0 k0 \% n5 b ds(k)=-eq*ts*X1*sign(s(k));
. c7 U {0 O* U u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));8 e. @1 f9 B# y. Y8 R$ n5 t4 }
elseif M==3 %Coposite reaching law
; D' G4 ?: ^4 | P) L* p1 l2 F k0=0.60;2 K% ^& S( o1 Y
if X1>k0 %EXP reachine law
" \+ y* v2 A/ N9 ?% ~) M Q) }6 L ds(k)=-eq*ts*sign(s(k))-q*ts*s(k);2 _9 D4 ~* S* A4 m3 D
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));4 h# D' L K; }) j: _) M
elseif X1<=k0 %Variable rate reachine law( |5 a% Q; b6 A0 W4 p* A3 `* X& v" G
ds(k)=-eq*ts*X1*sign(s(k));' t* {3 G6 L# b' T5 ~
u(k)=inv(Ce*B)*(Ce*R1-Ce*A*x-s(k)-ds(k));
4 M+ W1 r0 e- a$ a, ~9 f& [ end; t; d5 w4 o% l3 t: c& w5 K/ T# ^4 a+ m
end( e: Q" F! a# @5 \# [
if u(k)>=10* H( Z' c6 N$ N1 \0 D
u(k)=10;4 F3 X/ E) [9 I4 V% J1 s: `
end! o+ j$ O9 ]8 ~' L3 F( \; ]/ _
if u(k)<=-100 x' Z4 Z7 |2 a/ c: V
u(k)=-10;
# t+ Q$ d4 _2 o0 hend
, v. q: `% z; F- Yx=A*x+B*u(k);/ K. e) _0 {. k* U
y(k)=x(1);
3 i" N) ~/ M# n0 O' a%Update Parameters
. p2 H. x- l5 F. ur_2=r_1;
& d" x0 y8 O8 m3 s( {( f# Or_1=r(k);, E" r' R) Y) H: L
end$ h. O& A% {8 ^& H. R- x
figure(1)
! [( U% s3 x% @ O2 Uplot(time,r,'r',time,y,'b');6 \' Z7 s2 g/ ~8 L4 r
xlabel('Time(second)');ylabel('Position tracking');; l2 a6 Y, F& M% v
figure(2)
5 k% {/ W) b7 @1 A5 l( nplot(time,s,'r');
6 O5 D H, I* P' n/ ~$ jxlabel('Time(second)');ylabel('Switch function s');
; a* ^! r3 g- c. L8 i% a+ qfigure(3)
5 f$ z$ t- f7 G/ A5 Fplot(e,de,'r',e,-c*e,'b');
8 v* c8 U5 l- N: ^5 U- i) k+ Saxis([0,0.0001,-0.001,0]);
7 u) V: Z) J l7 fxlabel('e');ylabel('de');* P6 t3 `5 q9 S- V! p' b# O
figure(4)
A7 l* c! E% j5 n4 |4 G+ Oplot(time,u,'r');, ^7 O. D1 u9 k+ T* w8 i
xlabel('Time(second)');ylabel('u');8 ^1 c8 k) n+ |8 v/ F' X0 J
# I* q6 p" v9 | |
zan
|