2016-07-25 15 views
1

私は、潜在的な粒子の動きをモデル化し、フィードバックを取り入れようとしています。私が抱えている問題は、フィードバックに遅延を加えることです。 、のための微分方程式を結合微分方程式を時間遅れで解く

function dr = ion_test(t,r, qx, qy, qz, om_D, ep)  
    dr = zeros(6,1); 
    dr(1) = r(2); 
    dr(2) = (2*qx*cos(om_D.*t) + ep.*2*r(3)*r(5)); 
    dr(3) = r(4); 
    dr(4) = (2*qy*cos(om_D.*t) + ep.*2*r(1)*r(5)); 
    dr(5) = r(6); 
    dr(6) = (2*qz*cos(om_D.*t) + ep.*2*r(1)*r(3)); 
end 

をあなたが見ることができるように:ion_test.mは次のように読み込む機能ファイルです

clear all; close all; 
qx = .3; 
qy = .4; 
qz = .5; 
om_D = 1.2e8; 
ep = 1e-10; 

t = 0:1e-11:1e-5; 

[t,rss]=ode45(@ion_test, t, [1e-7 .45 2e-7 -.45 0.5e-7 .45],[], qx, qy, qz, om_D, ep); 

:だから、Matlabの中で働いて、私は次のようになり、基本的なスクリプトを持っていますrの各座標が結合されている。私が追加する必要があるのは、それぞれの方程式が現在の値だけでなく、以前の時刻に他の座標の値を呼び出す能力です。これの目的は、遅延フィードバックメカニズムを構築することです。 何か助けを非常に感謝します!

+1

plese、投稿a [mcve] –

+0

このバージョンが鮮明であることを願って –

+0

私はそれを貼り付けて実行する必要があります –

答えて

0

私の質問に対する答えは、基本的にはode45ではなくdde23を使う必要があると思います。

関連する問題