>
1 / 24
>
混沌研究总结篇------一、分岔图(1.Chen系统)
先打个提纲,这几天把自己混沌相关知识研究学习内容总结一下。
首先简绍几个基本概念:
一、自治系统
一个n阶自治的连续动态系统可以表示为
可以理解为对于自治的连续系统,上相量场f是不依赖于时间t的。
二、非自治系统
一个n阶非自治的连续动态系统可以表示为
可以理解为对于非自治的连续系统,向量场f不仅依赖于状态变量x,而且依赖于时间t,如Duffing振子。
三、庞加莱映射
2 / 24
庞加莱映射是一个传统的用来离散化连续系统的方法。庞加莱映射可以用(n-1)阶的离散映射来取代n阶的连续系统。庞加莱映射的用处正在于减小系统的阶数,并且在连续系统和离散系统之间建立了一座桥梁。
对于n阶自治系统,其对应的解对就着轨迹 。当选择 作为一个(n-1)维的超平面,这样轨迹 将穿越超平面 。难点主要是超平面的选取,使其对应的解穿越超平面,就可以得到一个领域内的庞加莱映射。
对于n阶非自治系统,若其外加强迫力的最小周期是T,j最终的庞加莱映射可以定义为
相应的轨道P(xk)是对某个轨迹每隔T时刻采样一次获得,这种操作和每隔T时刻的频闪观测仪的行为很相似。
所以要想得到一个系统的庞加莱映射,这段话一定要好好理解,当真真知道这中间说的含义,庞加莱映射这么画其实也已经知道国。
四、分岔图
分岔图的横坐标是一个变化的参数,纵坐标是你要求的某一个量的随着各参数的变化情况,而poincare则是我们选取横坐标上的某参数的某一个具体值时截面图,只不过poincare截面的选取其实可以是任意的。
下面主要研究的混沌系统有:Logistic、Henon、Lorenz、Duffing、Rossler、Chen、混沌电机模型等系统
3 / 24
1.Chen系统
先说Chen系统,因为和课题有一定的关系,而且自己以后起家也得从Chen系统入手。
系统方程如下:
dx/dt=a*(y-x)
dy/dt=(c-a)*x+c*y-x*z
dz/dt=x*y-b*z
就是对此方程中不同参数a、b、c下对系统画分岔图,研究混沌系统
(1)给定a、c,画b关于系统的分岔图
结果如下图所示
4 / 24
CODE:function fenchatuchen
clc;clear
XA=35;XC=28;
Z=[];
for XB=linspace(2,5.5,100);
options = odeset('RelTol',1e-6,'AbsTol',[1e-4 1e-4 1e-5]);
5 / 24
[T,X]=ode45('chen',[0,50],[-5 0 5],options,XA,XB,XC);
n=length(X);
for k=round(n/2):n
if abs(X(k,1))<1
Z=[Z,XB+abs(X(k,2))*i];
end
end
end
figure
plot(Z,'.','markersize',1)
title('chen映射分岔图')
xlabel('b'),ylabel('|x| where x=0')
这组代码不完全是自己的,现在见解其中一些方法在进行自己系统的绘制,这个程序的具体原理我会在后面给出来的。后面将陆续简绍其它混沌系统分岔图、吸引子、时间序列、
6 / 24
功率普等的求取。
混沌研究总结篇------一、分岔图(2.PMSM混沌电机系统)
今天算是把混沌电机模型跑出一组分岔图,和理论预期基本一样。
2.混沌电机模型
系统模型如下:
dx/dt = z*y - x
dy/dt = -z*x - y+gama*z
dz/dt= dita*(y - z)
仿真结果如下:
7 / 24
通过波形我们可以看出,当gama=1.5左右出现分岔,当gama=7左右时,出现二周期;当gama=14.5左右,系统工作在混沌状态下。
由此,通过调整gama参数,可以得到系统工作在周期或是混沌状态下。
当gama=20时,得到系统的吸引子如下,可以看出,系统工作在混沌状态下。
8 / 24
混沌研究总结篇------一、分岔图(3.其于的一些自治系统)
3.Lorenz系统
9 / 24
系统形式如下:
dx/dt = a*(y - x)
dy/dt = R*x - y -x*z
dz/dt= x*y - b*z
仿真结果:
10 / 24
4.Rossler系统
系统形式如下:
dx/dt = -y - z
dy/dt = x + a*y
dz/dt= b + z*(x - c)
仿真结果:
11 / 24
5.Henon系统
x(n+1)=1+a*x(n)^2+y(n)
y(n+1)=b*x(n)
仿真结果:
6.Logistic系统
12 / 24
x(n+1)=a*(1-x(n))*x(n)
仿真结果:
混沌研究总结篇------一、分岔图(4.一些非自治系统)
下面简绍一个非自系统分岔图的画法:(不断完善)
对于非自治系统的Poincare截面一般选为其周期激振的整周期倍,poincare截面取点就是每个周期里取一个相空间里的点作图采用的方法叫频闪法。
13 / 24
7.Duffing系统
系统方程如下:
dx/dt=y
dy/dt=-x-x^3-det*y-gama*cos(wt)
仿真结果:
混沌研究总结篇------二、Lyapunov指数(1.连续系统)
14 / 24
关于Lyapunov指数指数的计算,网上也有很多总结,比较总结好的一个是出自http://www.baisi.net/viewthread.php?tid=797646(百思论坛),这上面总结的很详细,具体用法,应用场合都简绍到了,下面我主要以此为依据,把自己的想法写下。
参考书目:吕金虎《混沌时间序列分析及其应用》、邹国棠《混沌电机驱动及其应用》
参考文献:《李雅普诺夫指数谱的研究与仿真》等
一、基本概念
混沌系统的基本特点就是系统对初始值的极端敏感性,两个相差无几的初值所产生的轨迹,随着时间的推移按指数方式分离,lyapunov指数就是定量的描述这一现象的量。
Lyapunov指数是衡量系统动力学特性的一个重要定量指标,它表征了系统在相空间中相邻轨道间收敛或发散的平均指数率。对于系统是否存在动力学混沌, 可以从最大Lyapunov指数是否大于零非常直观的判断出来: 一个正的Lyapunov指数,意味着在系统相空间中,无论初始两条轨线的间距多么小,其差别都会随着时间的演化而成指数率的增加以致达到无法预测,这就是混沌现象。
Lyapunov指数的和表征了椭球体积的增长率或减小率,对Hamilton 系统,Lyapunov指数的和为零; 对耗散系统,Lyapunov指数的和为负。如果耗散系统的吸引子是一个不动点,那么所有的Lyapunov指数通常是负的。如果是一个简单的m维流形(m = 1或m = 2分别为一个曲线或一个面) ,那么,前m 个Lyapunov指数是零,其余的Lyapunov指数为负。不管系统是不是耗散的,只要λ1 > 0就会出现混沌。
15 / 24
微分动力系统L yapunov指数的性质
对于一维(单变量) 情形,吸引子只可能是不动点(稳定定态) 。此时λ是负的。对于二维情形, 吸引子或者是不动点或者是极限环。对于不动点,任意方向的δxi , 都要收缩, 故这时两个Lyapunov指数都应该是负的, 即对于不动点, (λ1 ,λ2 ) = ( - , - ) 。至于极限环,如果取δxi 始终是垂直于环线的方向,它一定要收缩,此时λ < 0;当取δxi沿轨道切线方向,它既不增大也不缩小,可以想像,这时λ = 0。事实上,所有不终止于定点而又有界的轨道(或吸引子) 都至少有一个Lyapunov指数等于零,它表示沿轨线的切线方向既无扩展又无收缩的趋势。所以极限环的Lyapunov指数是(λ1 ,λ2 ) = (0, - ) 。
在三维情形下有
(λ1 ,λ2 ,λ3 ) = ( - , - , - ) :稳定不动点;
(λ1 ,λ2 ,λ3 ) = (0, - , - ) :极限环;
(λ1 ,λ2 ,λ3 ) = (0, 0, - ) :二维环面;
(λ1 ,λ2 ,λ3 ) = ( +, +, 0) :不稳极限环;
(λ1 ,λ2 ,λ3 ) = ( +, 0, 0) :不稳二维环面;
(λ1 ,λ2 ,λ3 ) = ( +, 0, - ) :奇怪吸引子。
李雅谱诺夫指数小于零,则意味着相邻点最终要靠拢合并成一点,这对应于稳定的不动点和周期运动;若指数大于零,则意味着相邻点最终要分离,这对应于轨道的局部不稳定,
16 / 24
如果轨道还有整体的稳定因素(如整体有界、耗散、存在捕捉区域等),则在此作用下反复折叠并形成混沌吸引子。指数越大,说明混沌特性越明显,混沌程度越高。
二、lyapunov指数的求取(主要参考网上给出的那篇总结)
1. 关于连续系统Lyapunov指数的计算方法
连续系统LE的计算方法主要有定义方法、Jacobian方法、QR分解方法、奇异值分解方法,或者通过求解系统的微分方程,得到微分方程解的时间序列,然后利用时间序列(即离散系统)的LE求解方法来计算得到。
最常用的主要以定义方法、Jacobian方法做主要介绍内容。
这两种方法的计算方法在这里不做简绍,很容易查到,下面说下其具体应用场合:
一般地,如果已知系统方程(当然系统不能太过复杂)时,则计算Lyapunov指数采用定义法、Jacobian方法要精确、简单些!
Jacobian方法我们可以使用LET工具箱,基本原理就是首先求解出连续系统微分方程的近似解,然后对系统的Jacobian矩阵进行QR分解,计算Jacobian矩阵特征值的乘积,最后计算出LE和分数维。
对于我们觉的连续系统,如Lorenz、Henon、Duffing等的Lyapunov指数都可以用定义法或是Jacobian方法求取。
(1)下面是那篇总结中给出的计算Rossler吸引子的Lyapunov指数结果:
17 / 24
(2)关于LET工具箱
下载地址:
使用手册:
这个软件可以计算自己编写的程序,点击Run Let Main program,然后选择setting,输入自己编辑的函数文件(按照软件要求的格式),同时进行各种参数设置即可进行计算。
下面说明一下该工具箱:(参考oct)
18 / 24
(1) LET工具箱适用于连续系统,如Logistic、Henon、Lorenz、Duffing、Rossler、Chen,但对时间序列的LE求解不适用
(2) 在进行LET求解之前,需要注意应将非自治系统写成自治系统的形式,然后参考工具箱给出的Lorenz、Rossler系统的例子,将微分方程定义函数写成标准形式
(3)用let求解Lyapunov指数,在设置窗口中设置相关参数即可!
具体设置界面如下:
19 / 24
点击Run Let Main program后得到如下:
20 / 24
选择setting后后得到如下:
21 / 24
(1)在ODE Function处填写自己编的函数文件名,m文件格式一定要与给的Demo相同,参考Henon或是Lorenz系统这m文件,很容易写出自己的函数文件。
(2)在Intial Condition处填写系统的初值,如Heno映射的初值[0;0],直接写0 0即可。参考Start Demo中的Setting
(3)No. of linearized ODEs:线性化方程的数目,从微分方程的维数上来解释,有如
22 / 24
下的对应关系
2--4
3--9
4--16
5--25
6--36
7--49
这个就是微分方程子程序中的F=J×Q的结果
这几个是主要设置,其它的参考Demo就明白这么弄了,这样我们可以用LET工具箱很方便的求一些连续系统的Lyapunov指数。
下面是由LET工具箱求到Henon映射Lyapunov指数Demo得到的结果:
23 / 24
24 / 24
因篇幅问题不能全部显示,请点此查看更多更全内容