Я моделирую ионный пучок с различными состояниями заряда, проходящий через два отверстия.Я использую случайные углы из внешней функции, чтобы оценить компоненты скорости вдоль осей.Чтобы оценить движение частицы, я решаю дифференциальное уравнение:
O=[0 0 0]';
f = @(t,ys) [ys(4:6); O];
options=odeset('RelTol',1e-7,'Events',@(t,ys)Event_Stop_Sorgente(t,ys,Pinhole1));
[t,ys] = ode23t(f,tspan,y_sorgente(i,:),options);
, и оно прекрасно работает, пока луч не имеет углового разброса, а вектор начальных условий равен y_sorgente = [0 0 0 0 0 v_z]
.Я полагаю, что он отлично работает и с угловым разбросом, потому что траектории - это прямые линии, как и должно быть.Внешняя функция получает некоторые точки со сферической поверхности и использует их координаты в качестве косинуса направления для получения компонентов скорости из ее модуля.
Проблема, с которой я столкнулся, состоит в том, что лишь немногие частицы с заряженным состоянием 1+ могут проходить сквозь отверстие, все остальные не могут, и это не имеет никакого смысла.У меня та же проблема, даже если каждая частица имеет одинаковый модуль скорости.Я делаю что-то не так, но я не могу понять, что, любое предложение?Я могу предоставить полный код, если вы хотите проверить его.