-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplot_magnetic_field_FT2.m
95 lines (73 loc) · 2.26 KB
/
plot_magnetic_field_FT2.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
function[F, T] = plot_magnetic_field_FT2(quat1, quat2, X, I1, I2, splitB, splitA)
%磁場と電磁力を3D表示
%2つのコイルの電流3次元,姿勢3次元から,磁場と電磁力を計算.
% Detailed explanation goes here
%3Dに磁場の向きを表示
%ite = 3;
%表示の細かさを調節
%[X,Y,Z] = meshgrid(linspace(-0.1,0.1,ite),linspace(-0.1,0.1,ite),linspace(-0.1,0.1,ite));
%X = 10;
%Y = 0;
%Z = 0;
%磁場を発生させるコイル
I1_x = I1(1);
I1_y = I1(2);
I1_z = I1(3);
a = 0.015;
N = 17;
%p1 = 0;
%q1 = 0;
%l1 = 0;%変数
%disp(size(X));
%力を受けるコイルの位置と電流
x = X(1);
y = X(2);
z = X(3);
I2_x = I2(1);
I2_y = I2(2);
I2_z = I2(3);
%p2 = 0;
%q2 = 0;
%l2 = 0; 変数
[F, T] = Ampere2(I2_x, I2_y, I2_z, I1_x, I1_y, I1_z, a, N, x, y, z, quat1, quat2, splitB, splitA);
%{
B = magnetic_flux_three_coil(X, Y, Z, I1_x, I1_y, I1_z, a, N, p1, q1, l1, splitB);
B_x = B(1);
B_y = B(2);
B_z = B(3);
disp("B_coil is " + B)
figure
t = linspace(0,2*pi,100);
axis_norm = 0.2;
quat1 = quaternion([p1, q1, l1],'euler','XYZ','point');
coil1_x = rotatepoint(quat1,[zeros(1,100); a*sin(t); a*cos(t)].').';
coil1_y = rotatepoint(quat1,[a*sin(t); zeros(1,100); a*cos(t)].').';
coil1_z = rotatepoint(quat1,[a*sin(t); a*cos(t); zeros(1,100)].').';
plot3(coil1_x(1,:), coil1_x(2,:), coil1_x(3,:))
hold on
plot3(coil1_y(1,:), coil1_y(2,:), coil1_y(3,:))
plot3(coil1_z(1,:), coil1_z(2,:), coil1_z(3,:))
%磁場を作るコイル
quat2 = quaternion([p2, q2, l2],'euler','XYZ','point');
coil2_x = rotatepoint(quat2,[zeros(1,100); a*sin(t); a*cos(t)].').';
coil2_y = rotatepoint(quat2,[a*sin(t); zeros(1,100); a*cos(t)].').';
coil2_z = rotatepoint(quat2,[a*sin(t); a*cos(t); zeros(1,100)].').';
plot3(coil2_x(1,:) + x, coil2_x(2,:) + y, coil2_x(3,:) + z)
plot3(coil2_y(1,:) + x, coil2_y(2,:) + y, coil2_y(3,:) + z)
plot3(coil2_z(1,:) + x, coil2_z(2,:) + y, coil2_z(3,:) + z)
%電磁力を受けるコイル
q1 = quiver3(x,y,z,F(1)*10^5,F(2)*10^5,F(3)*10^5);
q1.Color = "red";
q2 = quiver3(x,y,z,T(1)*10^5,T(2)*10^5,T(3)*10^5, 10);
q2.Color = "blue";
%disp(F)
%disp(T)
axis([-axis_norm,axis_norm,-axis_norm,axis_norm,-axis_norm,axis_norm])
axis square
grid on
xlabel('X')
ylabel('Y')
zlabel('Z')
quiver3(X,Y,Z,B_x,B_y,B_z, 1/(20 * norm([B_x B_y B_z])))
end
%}