Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

Magnetically Sprung Electromagnetic Generator

Please login with a confirmed email address before reporting spam

Hi guys,

I have built a magnetically sprung electromagnetic generator for harvesting energy from machine vibration. Its basically three magnets in a tube, one fixed at either end and one floating in the middle (as all the like poles face each other). There is a copper coil around the middle of the tube. When the tube oscillates up and down the center magnet passes through the coil generating a voltage.

I'm trying to use comsol to model the movement of the floating magnet as the tube oscillates in the z direction (vertically).

I created a 2D axisymmetric model with magnetic fields and moving mesh. I used predescribed mesh displacement with a sine function to oscillate the fixed end magnets in the z direction. I used Amperes law to define the remnant flux density of the magnets. So far I've only been able to plot the change in electromagnetic force exerted on the floating magnet over time if I fix it in one place.

Is there a way to allow the floating magnet to move freely based on the force exerted on it by the other magnets, its mass and gravity? and then plot its displacement?

Any help would be greatly appreciated.

Cheers


7 Replies Last Post 02.05.2013, 16:22 GMT-4
Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 01.05.2013, 14:41 GMT-4
Hi

I understand you have use MF so far, but that is for a static geoemtry, or one driven by "parameters", then remeshed and resolve for each step.

If you want to see "rigid body" physics you need to ad that physics yourself, COMSOL only solves for full "solid" i.e. flexing bodies, but that might well work too ;)
So try adding solid for the magnet and apply correct body loads (gravity and magnetical)

Then you have the air in between that must be able to skeeze around the magnets, for this you also need the ALE math for the moving mesh to adjust the magnet motion and the surrounding motion (define ALE in a node ABOVE the SOLID physics node in the model tree). Note that this is also what is done in EMI I believe (mixin all three physics for you ALE math is considering the air around strictly as vacuum (no mass, no viscosity no flow, but it's alread y agood start).

This does not consider the NS of the air surrounding, that is still another physics, but then your model wil lbecome very heavy, so start one step at the time, it's easier and quicker ;)

--
Good luck
Ivar
Hi I understand you have use MF so far, but that is for a static geoemtry, or one driven by "parameters", then remeshed and resolve for each step. If you want to see "rigid body" physics you need to ad that physics yourself, COMSOL only solves for full "solid" i.e. flexing bodies, but that might well work too ;) So try adding solid for the magnet and apply correct body loads (gravity and magnetical) Then you have the air in between that must be able to skeeze around the magnets, for this you also need the ALE math for the moving mesh to adjust the magnet motion and the surrounding motion (define ALE in a node ABOVE the SOLID physics node in the model tree). Note that this is also what is done in EMI I believe (mixin all three physics for you ALE math is considering the air around strictly as vacuum (no mass, no viscosity no flow, but it's alread y agood start). This does not consider the NS of the air surrounding, that is still another physics, but then your model wil lbecome very heavy, so start one step at the time, it's easier and quicker ;) -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 01.05.2013, 15:48 GMT-4
Hi Ivan,

Thanks for the quick and very helpful reply :)

I will try what you suggested over the next few days.

Just curious, say I just wanted to get a rough approximation, could I use the result of the ongoing force calculation as a variable in the prescribed displacement equation of the center magnet?

like could I enter:

Prescribed z displacement = v0(t) +0.5a*t^2

replacing v0 and a with formulas for initial velocity and acceleration using mf.Forcez_magnet, the mass of the magnet and g?

Just a thought. I'll try out your other suggestions anyway.

Cheers

Hi Ivan, Thanks for the quick and very helpful reply :) I will try what you suggested over the next few days. Just curious, say I just wanted to get a rough approximation, could I use the result of the ongoing force calculation as a variable in the prescribed displacement equation of the center magnet? like could I enter: Prescribed z displacement = v0(t) +0.5a*t^2 replacing v0 and a with formulas for initial velocity and acceleration using mf.Forcez_magnet, the mass of the magnet and g? Just a thought. I'll try out your other suggestions anyway. Cheers

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 01.05.2013, 16:16 GMT-4
Hi
if you restrain your magnet to move along the axis, and then write out in your own PDE the equation of motion of a mass under external forces (being as you say the magnetic forces + possibly some axial force being a component of gravity if applicable) then you are wring out the rigid body equations and you do not need the "solid physics, which are an overkill in reality

--
Good luck
Ivar
Hi if you restrain your magnet to move along the axis, and then write out in your own PDE the equation of motion of a mass under external forces (being as you say the magnetic forces + possibly some axial force being a component of gravity if applicable) then you are wring out the rigid body equations and you do not need the "solid physics, which are an overkill in reality -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 02.05.2013, 00:51 GMT-4
Brilliant :)

That saves me a few days of figuring out the solid physics!

One last question: How do I refer to mf.Forcez_magnet in the PDE? I've tried just entering it like that but comsol doesnt seem to recognize it. Also tried to define it as a parameter under global definitions, with either "mf.Forcez_magnet"
or "mf.fcal1.intop1(2*pi*r*mf.nTz_magnet)" as its expression but no luck with that either.

Thanks for all the help

EDIT - well I'm guessing it wasnt recognized. The text in the equation box turned a mustard color after I entered it and when I try to solve I get an error saying undefined value found.
Brilliant :) That saves me a few days of figuring out the solid physics! One last question: How do I refer to mf.Forcez_magnet in the PDE? I've tried just entering it like that but comsol doesnt seem to recognize it. Also tried to define it as a parameter under global definitions, with either "mf.Forcez_magnet" or "mf.fcal1.intop1(2*pi*r*mf.nTz_magnet)" as its expression but no luck with that either. Thanks for all the help EDIT - well I'm guessing it wasnt recognized. The text in the equation box turned a mustard color after I entered it and when I try to solve I get an error saying undefined value found.

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 02.05.2013, 02:25 GMT-4
Hi

you have 2 colour codes:

First:
red is an ERROR you need to correct the formula there is a typo that will make the solver to fail,

then you have a Warning:
orange that means that COMSOL cannot resolve the units and something does not match, but if your variables names exist (that is not flagged before solving) then COMSOL will calculate with it's assumed units, but this MIGHT give you wrong results,

So my rule of thumb: always resolve the units to remove any "orange". But in some cases it's difficult as COMSOL analyses functions only during solving, so some "oranges" with complex functions depending on functions will not go away

Then you should add the PDE with the study of the MF within the same model and study an intop1() does not need any extra prefixes but the intop1() operator must be defined under model - Definition - model coupling to refer to the correct geometry

If not already said so, take care to fillet off the sharp corners of your magnets (when possible), as these else make singularities for the field calculations that have nasty numerical effects on the fore calculation

--
Good luck
Ivar
Hi you have 2 colour codes: First: red is an ERROR you need to correct the formula there is a typo that will make the solver to fail, then you have a Warning: orange that means that COMSOL cannot resolve the units and something does not match, but if your variables names exist (that is not flagged before solving) then COMSOL will calculate with it's assumed units, but this MIGHT give you wrong results, So my rule of thumb: always resolve the units to remove any "orange". But in some cases it's difficult as COMSOL analyses functions only during solving, so some "oranges" with complex functions depending on functions will not go away Then you should add the PDE with the study of the MF within the same model and study an intop1() does not need any extra prefixes but the intop1() operator must be defined under model - Definition - model coupling to refer to the correct geometry If not already said so, take care to fillet off the sharp corners of your magnets (when possible), as these else make singularities for the field calculations that have nasty numerical effects on the fore calculation -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 02.05.2013, 08:06 GMT-4
Thanks Ivan, this is helping me a lot.

I'm almost there, got the intop() sorted which gives me acceleration, I just need velocity then my displacement equation will be complete.

I'm trying to integrate my acceleration formula over time to get velocity. Intop can only be used to integrate over space not time. The timeint operator sounded promising but I can only use it during results evaluation and not while I'm setting up my model. I'm trying to enter my displacement equation into the "Prescribed z displacement" box in the Prescribed Mesh Displacement window. As it will define the movement of part of the model there's no way I can solve before I have the complete equation. So I cant understand how I could use timeint.

Is there any other method that you know of?

Thanks again
Thanks Ivan, this is helping me a lot. I'm almost there, got the intop() sorted which gives me acceleration, I just need velocity then my displacement equation will be complete. I'm trying to integrate my acceleration formula over time to get velocity. Intop can only be used to integrate over space not time. The timeint operator sounded promising but I can only use it during results evaluation and not while I'm setting up my model. I'm trying to enter my displacement equation into the "Prescribed z displacement" box in the Prescribed Mesh Displacement window. As it will define the movement of part of the model there's no way I can solve before I have the complete equation. So I cant understand how I could use timeint. Is there any other method that you know of? Thanks again

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 02.05.2013, 16:22 GMT-4
Hi

check the KB (knowledge base) on how to add PDEs to solve a time derivative or integration

--
Good luck
Ivar
Hi check the KB (knowledge base) on how to add PDEs to solve a time derivative or integration -- Good luck Ivar

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.