資源簡介
很好用的杜芬振子仿真的matlab程序,本人已經使用過

代碼片段和文件信息
function?dx=duffing(tX)
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(31);
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表達。
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1273??2008-03-14?21:44??duffing_bifurcation.m
?????文件???????1125??2008-05-27?14:57??Duffing.m
-----------?---------??----------?-----??----
?????????????????2616????????????????????3
- 上一篇:M/G/1排隊系統
- 下一篇:基于標記的分水嶺算法matlab程序
評論
共有 條評論