遗忘海岸

江湖程序员 -Feiph(LM战士)

导航

电磁场中的运动轨迹模拟

%% 竖直 方向的电场E=3N/C,垂直运动平面的均匀磁场,质量为m=0.2KG,电荷量Q=2C正电荷
% 不考虑重力,初速度v0=5,夹角theta0=90
% 电场力:F_E=Q*E
% 洛伦磁力: F_L=B*V*Q

clear; clc; 
%close all


%% 参数设置
m = 8;            % 质量 (kg)
v0 = 15;           % 初始速度大小 (m/s)
B=1                 % 单位(T)
Q=2;                % 2C+
E=3;                % 3N/C
theta0 = pi *1/2;         % 初始速度方向 (弧度,0表示+x方向)
t_total = 100;       % 总时间 (s)
dt = 0.0001;          % 时间步长 (s)

n_steps = round(t_total / dt);
x=[]
y=[]
vx=[]
vy=[]
ax=[]
ay=[]


x(1)=0;
y(1)=0;
vx(1)=v0*cos(theta0);
vy(1)=v0*sin(theta0);
ax(1)=0;
ay(1)=0;
ay_E= - (Q*E/m);%电场力产生的加速度整个过程恒定不变
F_L=v0*B*Q;
% 数值积分
for i = 1:n_steps-1

    %% 计算洛伦磁力在x,y方向上产生的加速度
    % 当前速度大小和方向
    v = sqrt(vx(i)^2 + vy(i)^2);
   

    F_L=v*B*Q;
    % 计算垂直于速度方向的单位向量
    % 垂直于(vx, vy)的向量可以是(-vy, vx)或(vy, -vx)
    % 这里选择使质点顺时针旋转的方向
    nx = -vy(i) / v;
    ny = vx(i) / v;
    
    % 计算加速度(力垂直于速度)
    ax_L = (F_L / m) * nx;
    ay_L = (F_L / m) * ny;


    ax(i+1)= ax_L;
    ay(i+1)= ay_E + ay_L;
    


    % 更新速度和位置
    vx(i+1) = vx(i) + ax(i) * dt;
    vy(i+1) = vy(i) + ay(i) * dt;
    
    x(i+1) = x(i) + vx(i) * dt;
    y(i+1) = y(i) + vy(i) * dt;
end


figure;
hold on;
grid on;
axis equal;
plot(x, y, 'b-', 'LineWidth', 1);
View Code

 

posted on 2025-12-19 10:15  遗忘海岸  阅读(1)  评论(0)    收藏  举报