Filter löschen
Filter löschen

Magnetic forces and torques of a system of magnets in when B fields are known

6 Ansichten (letzte 30 Tage)
Hello, I'm attempting to calculate the forces and torques experiences by a system of magnets in a magnetic field set up by another system of magnets.
I have calculated the B fields created by both of the systems. The field created by the system that can move is described "field_rotor.mat". It is a 60x60x60x3 matrix, where for every point of space Bx, By, Bz is stored. Matrix "field_stator.mat" describes the field set up by the static system of magnets and it is the same size.
I'm attempting the calculate the total forces and torques experiences by the magnets of which field is described in "field_rotor.mat".
I have also attached the positions of the magnets of the rotor system as "rotor_mag_pos.mat".
According to wikipedia:
From this we can derive in pseudocode:
Force = V/µ * grad(dot(Br,B) )
Torque = V/µ * cross(Br,B)
Volume of the magnets is ((0.4*10^-3)/2)^2 *pi * 0.2*10^-3 = 2.5133e-11 cubic meters. µ is 1.257 x 10 -6.
I calculate the force by :
Vol_magnet = 2.5133e-11;
mu0 = 1.257e-6;
torque = Vol_magnet/mu0 *cross(field_rotor,field_stator,4);
I dont understand how to calculate the force..
  1 Kommentar
ABG
ABG am 23 Okt. 2022
If you know the value(s) of B, and you are able to calculate the values of m, the only thing you need to do is to perform the multiplication of m*B using the correct size of matrices, and then calculate the force.
From what I see, I think you've already done that propperly.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

SAI SRUJAN
SAI SRUJAN am 17 Okt. 2023
Hi ,
I understand that you are facing issues when calculating the force and torque experienced by a system of magnets in a magnetic field.
In the final simplification of equations of force and torque, the following mathematical operations are being employed.
  • Dot Product
  • Cross Product
  • Gradient
When calculating forces, kindly ensure that the matrices used for dot and cross operations have similar dimensions.
We can use "dot", "cross", and "gradient" functions in MATLAB that can effectively address this matter.
You can follow the below given example to proceed further,
vector1 = [1, 2, 3];
vector2 = [4, 5, 6];
dotProduct = dot(vector1, vector2);
crossProduct = cross(vector1,vector2);
grad = gradient(vector1);
You can refer to the below documentation to understand more about "dot" , "cross" and "gradient" functions in MATLAB.

Kategorien

Mehr zu Scripts finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by