Я пытаюсь смоделировать движение частицы в потенциале и включить обратную связь. Проблема, с которой я сталкиваюсь, заключается в добавлении задержки к обратной связи. Итак, работая в Matlab, у меня есть базовый скрипт, который выглядит так:
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);
где ion_test.m
— это файл функции, который выглядит следующим образом:
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
связаны. Что мне нужно добавить, так это возможность для каждого уравнения вызывать значения других координат в предыдущие моменты времени, а не только их текущие значения. Целью этого является создание механизма отсроченной обратной связи. Любая помощь очень ценится!