找回密码
 注册
关于网站域名变更的通知
查看: 356|回复: 1
打印 上一主题 下一主题

Dynamos混沌系统的追踪控制MATLAB实现代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-3 15:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
Mahmoud 提出了一个非常复杂的含有复数向量的 Dynamos 混沌系统,该系统在电磁场方面有潜在的非常广泛应用.其动力学系统方程为+ L  B3 ~$ s) A# b& \2 }7 x
$ w8 a1 e" G/ N3 R, b" ~" B0 k

; x+ x( W4 s; ^1 r" |* p/ m4 t7 Q
其中,x = u1 + i*u^2 , y = u3 + i*u4,分别为复数, i^2=- 1 , x_ba, y_ba分别为向量 x , y 的共轭复数,μ和α正参数。系统(1)可以改写成如下五维实微分方程组的形式:0 r- s! B6 a9 l

  q* i; m: j1 P- C# b; s1 X8 |' k& S3 @( l+ F: o# w# H6 G: {% a

3 N/ N2 ~* u) e9 @' L5 m8 p. X一个类似混沌系统追踪问题的程序 7 F, P9 x9 ?* X! f3 r
: z/ e9 l! c& C2 \" K" |' p

: J: x4 ^) {( ]7 u' S& R$ j: Z& a
  • 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
    7 i, T2 m9 u  w% @
0 p, w8 r- H" Y4 V3 }. S4 p

  b- r1 t2 j. Y& ?6 H6 e  f4 A: m
- l/ r" d7 A' {6 ?7 p7 U* @1 ]" M. J  ?

该用户从未签到

2#
发表于 2020-3-3 17:20 | 只看该作者
Dynamos混沌系统的追踪控制MATLAB实现代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 02:33 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表