Lotka振子模拟及其振幅周期涨落现象简述

问题简述:

1920年,第一个化学震荡体系–Lotka [1] 体系被提出,作为第一个震荡体系,也是最简单的震荡体系,针对于它的研究可以说是研究非平衡态化学的入门功课,该系统由以下三步简单反应构成:
· A+X 2X
· X+Y 2Y
· Y P
其速率方程为:

r1=k1[A][X]r2=k2[X][Y]r3=k3[Y]

假定体系敞开,物种A能够得到及时补充(这也是耗散系统维持震荡的必要条件),可得到各物种浓度变化关系如下:
d[X]dt=r1r2=k1[A][X]k2[X][Y]d[Y]dt=r2r3=k2[X][Y]k3[Y]

体系模拟:

使用ode15s算法,取如下条件进行模拟:

k1[A]=100k2=0.1k3=1

模拟后进行快速傅里叶变换并分析频谱,Matlab代码如下:

function [ t_list, conc_mat ] = Lotka( tspan, ini_conc )
%1920年,洛特卡震荡子模型:
% A + X → 2X
% X + Y → 2Y
% Y → P
% A的浓度被视为常数,敞开体系可以实时补充
[t_list,conc_mat]=ode15s(@lotka_equation,tspan,ini_conc);
figure,plot(t_list,conc_mat(:,1));
figure,plot(t_list,conc_mat(:,2));
end

function [dxdy]=lotka_equation2(t,xy)
%按速率常数100,0.1,1进行反应
%初值条件使用x=6,y=1: 产生稳定震荡解,成功模拟lotka振子,注意到振幅有波动,主频左侧低频区产生高幅度信号.
dxdy=[100*xy(1)-0.1*xy(1)*xy(2);0.1*xy(1)*xy(2)-xy(2)];
end

命令行中输入[t,v]=Lotka([0,120],[6,1])可得如下图像:
lotka_oscillator_simulation

频谱分析:

取上述模拟结果的震荡期数据,并进行快速傅里叶变换:

fr_map=abs(fft(v(3000:11000,2)));
plot([0:1/4000:1],fr_map(1:4001));

作幅度-频率图像如下:
frequancy_map
可以看到主频左侧确实出现小峰,体现为体系震荡幅度有周期性涨落.

总结:

BZ震荡 [2,3] 等震荡体系中,震荡初期也有振幅轻微上涨,这与我们的理论模拟一致,值得注意的是,这种涨势不会持续,一如Lotka震荡子.

参考文献:

[1] A. J. Lotka, J. Am. Chem. Soc. 42, 1595 (1920)
[2] R. J. Field, R. M. Noyes, J. Chem. Phys. 60, 1877 (1974)
[3] R. J. Field, E. Koras, and H. M. Noyes, J. Am. Chem.Soc. 94, 8649 (1972).

猜你喜欢

转载自blog.csdn.net/weisuowangshuai/article/details/79985879