毕业了,本博客今后不再进行维护!勿发邮件,请谅解。

 

Saturday, November 25, 2006

切分段线性控制方法2




% 连续时间系统混沌化切控制方法
% 《动力系统的混沌化》陈关荣 汪小帆
%
% Example(函数图象):
% [T,Y]=ode45('chaos2',40,[2;2;1]);
% plot3(Y(:,1),Y(:,2),Y(:,3));
% hold on
% [T,Y]=ode45('chaos2',40,[2;2;-1]);
% plot3(Y(:,1),Y(:,2),Y(:,3));
%
function dx=chaos2(t,x);
a=3;b=20;c=-20;
k=4;d=10;
m=4;e=-10;
A= [ a b 0
-b a 0
0 0 c];
if x(3)+norm(x(1:2))>k & x(3)>0
u=k*[-x(1) -x(2) d]';
elseif x(3)-norm(x(1:2))<-m & x(3)<0
u=m*[-x(1) -x(2) e]';
else
u=0;
end
dx=A*x+u;




连续时间系统混沌化切控制方法41

连续时间系统混沌化切控制方法42


4 comments:

Anonymous said...

从你的画图命令猜测,两卷切换的switch未能实现,应该用return实现,不妨试试 ......

禹俊杰 said...

那个图是我把两个图象在一贯图上显示出来了,实际上(x,y,z)中z是不能取0的。如果取0,从图上可以看出是一条发散的螺旋线。因此z>0 和 z<0 分别是两个图,从x-y方向上可看到那两个在z=0处是完全分开的。

禹俊杰 said...

书上后边给了个两部分连在一起的例子,实际上是把最后的u=0改成u=-sign(x(3))就可以了。

附:
% 连续时间系统混沌化切控制方法
% 《动力系统的混沌化》陈关荣 汪小帆
% 图书馆编号:O415.5 7484A
%
% Example(函数图象):

% [T,Y]=ode45('chaos2',40,[2;2;1]);
% plot3(Y(:,1),Y(:,2),Y(:,3));
%
function dx=chaos2(t,x);
a=3;b=20;c=-20;
k=4;d=10;
m=4;e=-10;
A= [ a b 0
-b a 0
0 0 c];
if x(3)+norm(x(1:2))>k& x(3)>0
u=k*[-x(1) -x(2) d]';
elseif x(3)-norm(x(1:2))<-m& x(3)<0
u=m*[-x(1) -x(2) e]';
else
u=-sign(x(3));
end
dx=A*x+u;

Anonymous said...

是的,我看的不够仔细.

这本书我还没有看到,凭记忆猜测的,呵呵.

另外,我原来习惯用return,呵呵.

博主可以删去我的留言,以免误导看客!呵呵

Copyright © 2006 LDYU (USTB OF CHINA)