duffing.m

来自「duffing混沌振子的实现代码」· M 代码 · 共 47 行

M
47
字号
function dx=duffing(t,X)

global F wd  SigData iStep tStep Phase oSig;

%SigData       实测信号
%iStep         积分步计数器
%tStep         采样间隔
%Phase         相位
%oSig          实际每步积分加到振子上的外来信号序列
%              (由于积分步与采样间隔不等,因而oSig与Phase等长,但与SigData等价,相当于一次重采样过程)
%              (oSig序列应当与0.00003*cos(Phase)序列基本重合,只存在采样误差)
%r=0.168;
c=0.5;

x=X(1);

y=X(2);

psi=X(3);

dx=zeros(3,1);

iStep = iStep + 1; %记录积分步数

Phase(iStep) = psi;%记录每次积分时策动信号的相位

dx(1) = y;
%混沌振子本身
dx(2) = -wd*c*y + wd^2*(x*(1-x^2) + F*cos(psi));

%加入实测信号 
%dx(2) = -wd*c*y + wd^2*(x*(1-x^2) + F*cos(psi) + 0.00003*SigData( floor( t/tStep ) + 1));
%oSig(iStep) = SigData( floor( t/tStep ) + 1);

%加入模拟信号
%dx(2) = -wd*c*y + wd^2*(x*(1-x^2) + F*cos(psi) + 0.0003*cos(psi));
%%%%%%%dx(2)=-c*y+1/2*x*(1-x^2)+F*sin(psi);

%含有噪声
%dx(2)= -c*y + x*(1-x^2)+ F*cos(psi)+0.1*rand;

%含有信号和噪声
%dx(2)= -c*y + x*(1-x^2)+ F*cos(psi)+0.1*rand+0.00003*cos(psi);

dx(3) = wd;%角度的导数,通过t表达。

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?