2016-07-25 21 views
1

나는 잠재적 인 입자의 움직임을 모델링하고 피드백을 포함하려고한다. 문제는 피드백에 지연을 추가하는 것입니다. 그래서, matlab에에서 일하고, 나는 보이는 기본 스크립트가 같은 : 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); 

:

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 

을 그래서 당신이 볼 수 있듯이, 미분 방정식 r의 각 좌표가 결합됩니다. 추가해야 할 것은 각 방정식이 현재 값뿐만 아니라 이전 좌표에서 다른 좌표 값을 호출 할 수있는 기능입니다. 이것의 목적은 지연된 피드백 메커니즘을 구축하는 것입니다. 도움을 주시면 감사하겠습니다.

+1

plese, 게시물 [mcve] –

+0

희망이 버전은 무엇보다 –

+0

입니다. 붙여 넣기를 복사하여 실행할 수 있어야합니다. –

답변

0

내 질문에 대한 대답은 기본적으로 ode45 대신 dde23을 사용해야한다고 생각했습니다.