绘制垂直极化波斜入射到导体表面时的磁场分布动画matlab代码
时间: 2023-10-10 08:10:13 浏览: 128
以下是针对垂直极化波斜入射到导体表面时的磁场分布动画的MATLAB代码:
```matlab
% 定义常数
u0 = 4 * pi * 1e-7; % 真空磁导率
e0 = 8.85e-12; % 真空介电常数
c = 1 / sqrt(u0 * e0); % 真空中电磁波速度
% 定义参数
k = 2; % 波数
omega = 2 * pi; % 角频率
x1 = (0:0.3:30); % 前半部分导体表面的x坐标
z1 = (30:-0.3:0); % 前半部分导体表面的z坐标
x2 = (30:0.3:60); % 后半部分导体表面的x坐标
z2 = (0:0.3:30); % 后半部分导体表面的z坐标
Hi = zeros(size(x1)); % 前半部分导体表面的磁场分量
Hr = zeros(size(x1)); % 后半部分导体表面的磁场分量
l = zeros(size(x1)); % y坐标
t = 0; % 时间
% 循环绘制动画
for i = 1:300
% 计算前半部分导体表面的磁场分量
if i <= 101
Hi(1:i) = sin(20 * pi * t - 0.35 * (x1(1:i) - z1(i:i)));
quiver3(x1, l, z1, Hi, l, Hi);
end
% 计算后半部分导体表面的磁场分量
if i > 101
Hi = sin(20 * pi * t - 0.35 * (x1 - z1));
if i <= 202
Hr(1:i-101) = -sin(20 * pi * t - 0.35 * (x2(1:i-101) + z2(1:i-101)));
end
if i > 202
Hr = -sin(20 * pi * t - 0.35 * (x2 + z2));
end
quiver3(x1, l, z1, Hi, l, Hi);
hold on;
quiver3(x2, l, z2, Hr, l, Hr);
end
% 限制坐标轴范围并保存动画帧
axis([0, 60, -10, 10, 0, 30]);
mov(i) = getframe(gcf);
% 更新时间并清空图形窗口
t = t + 0.001;
hold off;
end
% 将动画帧保存为AVI格式视频文件
movie2avi(mov, '垂直极化波斜入射到导体表面磁场分布动画
阅读全文