1
- % function i = force2current(f , a, i_max, N, I1 )
1
+ function [F, i_k] = force2current(F , a, i_max, x_j, x_k, q_j, q_k )
2
2
%Find the required current from the desired force.
3
3
% Detailed explanation goes here
4
4
5
+
6
+ %disp(F)
7
+ %disp(a)
8
+ %disp(i_max)
9
+ %disp(x_j)
10
+ %disp(x_k)
11
+ %disp(q_j)
12
+ %disp(q_k)
13
+
14
+ %a = 0.015;
15
+ N = 17;
16
+
5
17
myu0 = 1.2566*10^(-6);
6
- i_j = [1 1 1] * 10^-5 ;
18
+ split = 10 ;
7
19
8
- S = zeros(3,3);
20
+ i_j = i_max * (x_k - x_j)/norm(x_k - x_j) ;
21
+ %i_k = [1 2 3] ;
9
22
10
23
%E_j = [pi/3,0,pi/4];
11
24
%q_j = quaternion(E_j,'euler','XYZ','point');
@@ -15,27 +28,35 @@ I_j3 = zeros(1,3);
15
28
16
29
for j = 1:3
17
30
I_j1 = I_j1 + i_j(j)*calculateI(x_j, x_k, q_j, q_k, split, a, j, 1);
31
+ %disp(I_j1)
32
+ disp(calculateI(x_j, x_k, q_j, q_k, split, a, j, 1))
18
33
I_j2 = I_j2 + i_j(j)*calculateI(x_j, x_k, q_j, q_k, split, a, j, 2);
34
+ %disp(I_j2)
19
35
I_j3 = I_j3 + i_j(j)*calculateI(x_j, x_k, q_j, q_k, split, a, j, 3);
36
+ %disp(I_j3)
20
37
end
21
38
39
+
40
+
22
41
S = N*[I_j1.', I_j2.', I_j3.'];
23
42
24
- F = myu0/(4*pi)*S*N
43
+ disp("SSSSSSS")
44
+ disp(S)
45
+ %F = myu0/(4*pi)*N*S*i_k.';
25
46
47
+ %F = [10^-14, 10^-14, 10^-14].';
48
+ disp(F)
49
+ F = F*1;
26
50
27
- %{
28
- while j = 1:3
29
-
30
- while k = 1:3
31
-
51
+ i_k = 4*pi/(myu0*N)*(S\F.');
52
+ %disp(i_k)
32
53
33
- S = N*i*I1*[]
34
- S_inv = inv(S);
35
- i = 4*pi/(N*myu0)*S_inv*f;
54
+ if max(abs(i_k)) >= i_max
55
+ i_k = i_k * i_max/max(abs(i_k));
56
+ disp('over')
57
+ end
36
58
37
- if i_max > i
38
59
60
+ %F = myu0/(4*pi)*N*S*i_k;
39
61
40
- end
41
- %}
62
+ end
0 commit comments