庞加莱映射Word文件下载.docx
《庞加莱映射Word文件下载.docx》由会员分享,可在线阅读,更多相关《庞加莱映射Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
德·
波耳(Vanderpol)方程
(2.19.1)
所描述的非线性有阻尼的自激振动系统,其中是一个小的正的参量,是常数。
下面简称范·
波耳方程为VDP方程
在VDP方程中,增加外驱动力项所得到的方程
(2.19.2)
称强迫VDP方程,其中外驱动力的振幅,角频率分别是V和,试研究强迫VDP方程的行为
2.实验目的和要求
⑴演示VDP方程所描述的系统在非线性能源供给下,从任意初始条件出发都能产生稳定的周期性运动
⑵采用庞加莱映像,演示强迫VDP方程在不同参数下所存在四种吸引子,即周期1吸引子,周期2吸引子,不变环面吸引子和奇怪吸引子
⑶对于强迫VDP方程,在V和为定值条件下,逐渐增大值,将出现周期倍分岔和混浊现象
3.解题分析
自激系统是一个非线性有阻尼的振动系统,在运动过程中伴随有能量损耗,但系统存在一种机制,使能量能够由非振动的能源通过系统本身的反馈调节,及时适量地得到补充,从而产生一个稳定的不衰减的周期运动,这样的振动称为自激振动
对VDP方程,可从机械振动角度理解,是阻尼系数,它是变化的,如果,则阻尼系数为正,系统将受阻尼,能量将逐渐减少,但如果,则发生负阻尼,意味着不仅不消耗系统的能量,反而给系统提供能量。
此系统能通过自动的反馈调节,使得在一个振动过程中,补充的能量正好等于消耗的能量,从而系统作稳定的周期振动
取方程中的,,(这些值可适当调整)。
给出任一初始条件,通过计算机数值求解可以证明它的相轨道都将趋向于一条闭合曲线,这一条闭合曲线,成为极限环,极限环以外的相轨道向里盘旋,而极限环以内的相轨道则向外盘旋,都趋向极限环(如图2.36所示),说明不论初始情况如何,系统最终都到达以极限环描述的周期性运动。
由于这段程序较简单,我们没有专门编写,事实上,只要将下面编写的关于强迫VDP方程的程序中令V=0,再取不同的初始条件,就能看到这个现象
下面研究强迫VDP方程的行为,我们同时采用时间历程图,相图,庞加莱映像图来研究系统在不同参数条件下的动力学行为,可以看到存在不同的吸引子,即周期1吸引子,周期2吸引子,不变环面吸引子和奇怪吸引子
先对庞加莱映射作一简介,为了更清楚地了解运动的形态,庞加莱对连续运动的轨迹用一个截面(叫庞加莱截面)将其横截,那么根据轨迹在截面上穿过的情况,就可以简洁地判断运动的形态,由此所得图像叫庞加莱映像。
在截面图上,轨迹下一次穿过截面的点可以看成前一次穿过的点的一种映射
在庞加莱映射中的不动点反映了相空间的周期运动,如果运动是二倍周期的,则庞加莱映射是两个不动点,四倍周期则有四个不动点等
设,,则(2.19.2)式可化为
(2.19.3)
取,,进行以下数值计算研究
⑴在,V=1,条件下,存在周期1吸引子,它的周期等于外激励的周期,代表主谐波运动,如图2.37所示
⑵在,V=1,条件下,存在周期2吸引子,它的周期等于外激励的整数倍,代表次谐波运动,如图2.38所示
⑶在,V=1,条件下,存在不变环面吸引子,它代表准周期(拟周期)运动,如图2.39所示
⑷,V=1,条件下,存在奇怪吸引子,它代表混浊运动,如图2.40所示
⑸保持V和为定值,逐渐增大,将显示系统状态演化过程全貌的图,如图2.41所示,而前四种情况中,看到的只是取4个值的片断情况,图形显示,当由0.9连续变化到1.2时,系统运动状态逐渐由周期1过渡到周期2(发生了周期倍分岔)再过渡到混浊状态
在程序中,这几种过程的计算是相同的,所以用for循环来完成前面四种计算,这就是程序zjzd.m计算中在每个外激励周期内计算1000个相点,为了作出庞加莱映射,每隔1000个点保留一个点数据,所以程序运行的时间较长,对第五种情况,由于计算量大,将它另外编写一个程序,这就是程序zjzd1.m计算中在每个周期内计算100个相点,庞加莱映射是每隔100个点保留一个点数据,图2.41是在CPU为P4的计算机上运算约半小时所得到的结果
4.思考题
⑴画出不同的吸引子的功率谱,观察它们的差别
⑵当值由0.6连续变化到0.9时,计算强迫VDP方程的庞加莱映射
⑶将参考程序zjzd.m中解微分方程的时间增加到足够长,在庞加莱映射图上可以看到一个更完整的奇怪吸引子形状,请试一试
5.参考程序
参考程序zjzd.m如下:
u=[0.85,
1.02,
0.66,
1.08];
x0=1;
w0=1;
v=1;
w=0.44;
T=2*pi/w;
str{1}='
庞加莱截面—周期1吸引子'
;
str{2}='
庞加莱截面—周期2吸引子'
str{3}='
庞加莱截面—不变环面吸引子'
str{4}='
庞加莱截面—奇怪吸引子'
forj=1:
4
[t,y]=ode23('
zjzdfun'
[0:
T/1000:
50*T],[4,4],[],u(j),x0,w0,v,w);
figure
subplot(2,1,1)
plot(t,y(:
1));
title('
位移曲线'
);
xlabel('
x'
ylabel('
v'
subplot(2,2,3)
plot(y(3000:
end,1),y(3000:
end,2));
axis([-33-44])
相图'
subplot(2,2,4)
axis([-31-11])
holdon
fori=7000:
1000:
14000
plot(y(i,1),y(i,2),'
r.'
end
title(str{j});
参考程序zjzd1.m如下:
u=0.8:
0.001:
1.2;
v=1;
w0=1;
w=0.44;
axis([0.91.2
-0.81])
length(u)
[t,y]=ode23('
T/100:
70*T],[4,4],[],u(j),x0,w0,v,w);
plot(u(j),y(500:
100:
1400,2),'
linewidth'
2);
函数文件是一个独立的文件,文件名为zjzdfun.m
functionydot=vdbfun(t,y,flag,u,x0,w0,v,w)
ydot=[y
(2);
u*(x0^2-y
(1)^2)*y
(2)-y
(1)*w0^2-v*cos(w*t)];