一个Chen系统的激活控制同步——MATLAB实现

对于 C h e n Chen Chen系统,驱动系统定义为:
{ x ˙ = a ( y − x ) y ˙ = ( c − a ) x − x z + c y z ˙ = x y − b z \left\{ \begin{array}{l} \dot{x}=a\left( y-x \right)\\ \dot{y}=\left( c-a \right) x-xz+cy\\ \dot{z}=xy-bz\\ \end{array} \right. x˙=a(yx)y˙=(ca)xxz+cyz˙=xybz
响应系统为:
{ x ˙ 1 = a ( y 1 − x 1 ) + μ 1 ( t ) y ˙ 1 = ( c − a ) x 1 − x 1 z 1 + c y 1 + μ 2 ( t ) z ˙ 1 = x 1 y 1 − b z 1 + μ 3 ( t ) \left\{ \begin{array}{l} \dot{x}_1=a\left( y_1-x_1 \right) +\mu _1\left( t \right)\\ \dot{y}_1=\left( c-a \right) x_1-x_1z_1+cy_1+\mu _2\left( t \right)\\ \dot{z}_1=x_1y_1-bz_1+\mu _3\left( t \right)\\ \end{array} \right. x˙1=a(y1x1)+μ1(t)y˙1=(ca)x1x1z1+cy1+μ2(t)z˙1=x1y1bz1+μ3(t)
其中参数 a = 35 , b = 3 , c = 28 a=35,b=3,c=28 a=35,b=3,c=28,且 μ i ( t ) ( i = 1 , 2 , 3 ) \mu _i\left( t \right) \left( i=1,2,3 \right) μi(t)(i=1,2,3)
为控制函数。
这里我们定义误差变量为: e 1 = x 1 − x , e 2 = y 1 − y , e 3 = z 1 − z e_1=x_1-x,e_2=y_1-y,e_3=z_1-z e1=x1x,e2=y1y,e3=z1z
则可以得到如下误差系统:
{ e ˙ 1 = a ( e 2 − e 1 ) + μ 1 ( t ) e ˙ 2 = ( c − a ) e 1 − x 1 e 3 − z 1 e 1 + e 1 e 3 + μ 2 ( t ) e ˙ 3 = x 1 e 2 + y 1 e 1 − e 1 e 2 − b e 3 + μ 3 ( t ) \left\{ \begin{array}{l} \dot{e}_1=a\left( e_2-e_1 \right) +\mu _1\left( t \right)\\ \dot{e}_2=\left( c-a \right) e_1-x_1e_3-z_1e_1+e_1e_3+\mu _2\left( t \right)\\ \dot{e}_3=x_1e_2+y_1e_1-e_1e_2-be_3+\mu _3\left( t \right)\\ \end{array} \right. e˙1=a(e2e1)+μ1(t)e˙2=(ca)e1x1e3z1e1+e1e3+μ2(t)e˙3=x1e2+y1e1e1e2be3+μ3(t)
定义激活控制函数如下:
{ μ 1 ( t ) = V 1 ( t ) μ 2 ( t ) = x 1 e 3 + z 1 e 1 − e 1 e 3 + V 2 ( t ) μ 3 ( t ) = − x 1 e 2 − y 1 e 1 + e 1 e 2 + V 3 ( t ) \left\{ \begin{array}{l} \mu _1\left( t \right) =V_1\left( t \right)\\ \mu _2\left( t \right) =x_1e_3+z_1e_1-e_1e_3+V_2\left( t \right)\\ \mu _3\left( t \right) =-x_1e_2-y_1e_1+e_1e_2+V_3\left( t \right)\\ \end{array} \right. μ1(t)=V1(t)μ2(t)=x1e3+z1e1e1e3+V2(t)μ3(t)=x1e2y1e1+e1e2+V3(t)
这里的控制输入 V i ( t ) ( i = 1 , 2 , 3 ) V_i\left( t \right) \left( i=1,2,3 \right) Vi(t)(i=1,2,3)
选择如下:
( V 1 ( t ) V 2 ( t ) V 3 ( t ) ) = A ( e 1 e 2 e 3 ) \left( \begin{array}{c} V_1\left( t \right)\\ V_2\left( t \right)\\ V_3\left( t \right)\\ \end{array} \right) =A\left( \begin{array}{c} e_1\\ e_2\\ e_3\\ \end{array} \right) V1(t)V2(t)V3(t)=Ae1e2e3
其中:
A = ( a − 1 − a 0 a − c − ( 1 + c ) 0 0 0 b − 1 ) A=\left( \begin{matrix} a-1& -a& 0\\ a-c& -\left( 1+c \right)& 0\\ 0& 0& b-1\\ \end{matrix} \right) A=a1ac0a(1+c)000b1
由于闭环系统的特征根为 − 1 , − 1 , − 1 -1,-1,-1 1,1,1,因此当 t → ∞ t\rightarrow \infty t时,误差变量 e 1 , e 2 , e 3 e_1,e_2,e_3 e1,e2,e3
收敛于零,这就意味着两个 C h e n Chen Chen系统能够实现混沌同步。
其混沌吸引子可表现如下:
在这里插入图片描述实现上述过程的MATLAB代码为:

clear,clc;
X0 = [0.5,0.3,0.78];
tspan = [0,100];
[T,Y]=ode45(@Chen,tspan,X0);
plot3(Y(100:end,1),Y(100:end,2),Y(100:end,3),'color',[0.3,0.2,0.7]);
xlabel('x','FontName','Times New Roman','FontSize',24);
ylabel('y','FontName','Times New Roman','FontSize',24);
zlabel('z','FontName','Times New Roman','FontSize',24);
function dy = Chen(t,y)
a = 35;b = 3;c = 28;
dy = zeros(3,1);   
 % a column vector
dy(1) = a*(y(2) - y(1));
dy(2) = (c-a)*y(1)-y(1)*y(3)+c*y(2);
dy(3) = y(1)*y(2)-b*y(3);
end

其一维时间序列图如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现上述过程的MATLAB代码如下:

function ChenSynchronization
clear,clc;
Y0 = [0.5,0.3,0.78,0.9,-1,3];
tspan = [0,100];
[t,Y]=ode45(@Chen,tspan,Y0);
             figure(1)
   plot(t,Y(:,4)-Y(:,1),'color',[0.3,0.2,0.7])
    axis([0 50 -4 4])
    xlabel('t','FontName','Times New Roman','FontSize',20)
    ylabel('e_1','FontName','Times New Roman','FontSize',20)
    set(gca,'FontName','Times New Roman','FontSize',20,'LineWidth',2)
               figure(2)
    plot(t,Y(:,5)-Y(:,2),'color',[0.3,0.2,0.7])
     axis([0 50 -4 4])
    xlabel('t','FontName','Times New Roman','FontSize',20)
    ylabel('e_2','FontName','Times New Roman','FontSize',20)
    set(gca,'FontName','Times New Roman','FontSize',20,'LineWidth',2)
               figure(3)
    plot(t,Y(:,6)-Y(:,3),'color',[0.3,0.2,0.7])
    axis([0 50 -4 4])
    xlabel('t','FontName','Times New Roman','FontSize',20)
    ylabel('e_3','FontName','Times New Roman','FontSize',20)
    set(gca,'FontName','Times New Roman','FontSize',20,'LineWidth',2)
end
function dy = Chen(~,y)
a = 35;b = 3;c = 28;
dy = zeros(6,1); 

E = [(y(4)-y(1));(y(5)-y(2));(y(6)-y(3))];
A = [(a-1),-a,0;
    (a-c),-(1+c),0;
    0,0,b-1];
V = A*E;
U =zeros(3,1);
U(1) = V(1);
U(2) = y(4)*(y(6)-y(3))+y(6)*(y(4)-y(1))-(y(4)-y(1))*(y(6)-y(3))+V(2);
U(3) = -y(4)*(y(5)-y(2))-y(5)*(y(4)-y(1))+(y(4)-y(1))*(y(5)-y(2))+V(3);

dy(1) = a*(y(2) - y(1));
dy(2) = (c-a)*y(1)-y(1)*y(3)+c*y(2);
dy(3) = y(1)*y(2)-b*y(3);

dy(4) = a*(y(5)-y(4))+U(1);
dy(5) = (c-a)*y(4)-y(4)*y(6)+c*y(5)+U(2);
dy(6) = y(4)*y(5)-b*y(6)+U(3);
end

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB机器学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值