|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Mahmoud 提出了一个非常复杂的含有复数向量的 Dynamos 混沌系统,该系统在电磁场方面有潜在的非常广泛应用.其动力学系统方程为
5 T' h. Z7 ~) F. r5 A ~" K1 m6 w5 e: V; m* B% t- v% B
5 r# d+ r% _+ y* r$ m8 v2 c
$ X7 [( g6 L( x7 l. i5 c6 \
其中,x = u1 + i*u^2 , y = u3 + i*u4,分别为复数, i^2=- 1 , x_ba, y_ba分别为向量 x , y 的共轭复数,μ和α正参数。系统(1)可以改写成如下五维实微分方程组的形式:
4 G7 P! F3 i% T# e) D# G0 F( Y. l
q* H5 o+ R& r8 w9 A5 M6 k
Y+ t8 |, n8 [3 ]9 s
$ H. p8 }1 V4 @. W$ V% I
一个类似混沌系统追踪问题的程序
6 V, D$ F) D, |6 w4 Q* {9 e& ^, \6 f9 y( F
2 G1 ~% |3 R9 N0 R& y" p0 G5 I3 S2 p- k! Y/ m& V
- function HunDunXiTong
- % By LaterComer of MATLAB技术论坛
- % See also http://www.matlabsky.com
- % Contact me matlabsky@gmail.com
- % Modifid at 2010-09-20 11:38:56
- clc
- close all
- global k d a b i
- % 比例系数
- k=[2 1 -1]';
- % 参数d
- d=[1 1 1];
- % 其他参数
- a=1/0.707;
- b=1/2.6;
- i=1.15;
- % 开始求解问题
- % 后两个是alpha和beta估计值的初值
- % 后两个为x的初值
- x0=[0.3 0.5 0 0 0];
- tspan=[0 50]; % 用户自行设置微分区间
- [t,x]=ode45(@zzkz,tspan,x0);
- % 数据后处理
- t=t';
- x1=x(:,1)';x2=x(:,2)';x3=x(:,3)';
- ahat=x(:,4)';bhat=x(:,5)';
- r=mbxh(t);
- r1=r(1,: );r2=r(2,: );r3=r(3,: );
- e1=x1-k(1)*r1;e2=x2-k(2)*r2;e3=x3-k(3)*r3;
- % 图形显示
- figure
- plot(t,x1,'r--',t,r1);
- title('t-x1,r1')
- figure
- plot(t,x2,'r--',t,r2);
- title('t-x2,r2')
- figure
- plot(t,x3,'r--',t,r3);
- title('t-x3,r3')
- figure
- plot(t,e1,'r--',t,e2,t,e3,'g:');
- title('t-e1,e2,e3')
- figure
- plot(t,ahat,'r:',t,bhat);
- title('t-ahat,bhat')
- save hdxt.dat
- function dxs=zzkz(t,x)
- t
- % 追踪控制
- dx=yxt(t,x); % 原系统
- u=kzq(t,x); % 控制器
- dxs=dx+u;
- function dx=yxt(t,x)
- % 原系统
- global a b i k
- if abs(x(2))>2.9
- g=0.366;
- else
- g=0.061;
- end
- % 目标信号
- r=mbxh(t);
- % 信号误差
- e=x(1:3)-k.*r;
- % 微分表达式
- dx=[x(2)
- a*(i-g*x(2)-sin(x(1))-x(3))
- b*(x(2)-x(3))
- e(2)*(i-g*x(2)-sin(x(1))-x(3)) % 补充alpha估计值计算方程
- e(3)*(x(2)-x(3))]; % 补充beta估计值计算方程
- function u=kzq(t,x)
- % 控制器
- global d k i
- ahat=x(4);
- bhat=x(5);
- if abs(x(2))>2.9
- g=0.366;
- else
- g=0.061;
- end
- % 目标信号
- [r,dr]=mbxh(t);
- % 微分表达式
- u=[-x(2)-d(1)*x(1)+d(1)*k(1)*r(1)+k(1)*dr(1)
- -ahat*(i-g*x(2)-sin(x(1))-x(3))-d(2)*x(2)+d(2)*k(2)*r(2)+k(2)*dr(2)
- -bhat*(x(2)-x(3))-d(3)*x(3)+d(3)*k(3)*r(3)+k(3)*dr(3)
- 0 % 补零
- 0]; % 补零
- function [r,dr]=mbxh(ts)
- % 目标信号
- % 必须返回信号值r,以及信号的导数dr
- % 同时支持矢量ts计算
- % 目标信号1
- % r=[cos(ts); sin(2*ts); 3*ones(size(ts))];
- % dr=[-sin(ts); 2*cos(2*ts); 0*ones(size(ts))];
- % 目标信号2
- r0=[0.2 0.3 0.5]; % 初值,用户自行设置
- tm=max(ts);
- tspan=[0,tm];
- RFun=@(t,r)[-r(2)-r(3)
- r(1)+0.2*r(2)
- 0.2+(r(1)-4)*r(3)];
- if ts==0
- r=r0(: );
- dr=rfun(ts,r);
- else
- sol=ode45(rfun,tspan,r0);
- [r,dr]=deval_r(sol,ts);
- end. A0 `+ h2 h+ y
3 o: p! {$ ^; t. {8 J- m" V/ S
% F5 f3 `0 `; s6 J1 L7 }3 S9 O/ \* Y
3 U( K w& L. t5 ~. T" c |
|