Linear PMSM Motor and Generator Model in Simulink and Simscape

Hi,
Currently modelling a reciprocating engine which is coupled to a linear PMSM motor/generator machine for my PhD.
I have downloaded the "Model File Package for Motor Control Design Public Video" simulink model to investigate the motoring characteristics of the system.
Is it possible to convert the rotational PMSM simscape plant block for a linear PMSM block representation?
There are no linear AC machines in the simscape library to use in this motor control design model.
Any ideas how i can represent a linear motor based on this existing control model?
My output from the linear machine will be linear position and force w.r.t, with a total stroke of approximately 100 mm. Which can be representated as a sinusodial position and speed input in generating mode.
Maybe can i convert the rotational constant speed input at port "W" to a sinusoidal velocity profile (such that it replicates the poistion and velocity profile of a linear machine)?
Any help would be great.
Thanks

5 Comments

Hello PB75,
while you could translate between rotational mechanical motion and translational motion, and then fit the motor parameters to give you equivalent performance of the actual linear motor, I would recommend against it. You won't be able to paramaterize the motor correctly, and instead have to fit the parameters to lab data, and at that point, you might as well use lookup tables and controlled sources. You would also be unable to capture accurate dynamics if you ever needed high fidelity simulations. For something like a PhD, I would highly recommend going through the effort of implementing/deriving the equations for a linear motor/generator.
Both Simscape Electrical and Specialized Power Systems allow for the customization of blocks.
If you use simscape, you would get started here:
If you use specialized power systems, you would use this feature:
Personally, I would use Simscape for this type of model, as there isn't a good equivalent to start from in the Specialized Power Systems for this and you can start from scrach with Simscape.
Again, if you don't want to do this, I would just use a lookup table to approximate a simple linear machine.
Regards,
Joel
Thanks Joel,
I was able to use the Simscape PMLSM block that is now in R2020a.
There is a simulink model ee_pmlsm_drive that i am using to base my initial model on.
Thanks
Patrick
Hello PB75,
I encountered another linear motor drive problem. Why can't I find the simulation case "ee_pmlsm_drive"? Can you send me a copy?
Thanks a lot
Apathy
Hi,
Sorry just seen this message.
The code to open the slx file is on the page.
Hope that helps
Patrick
Hi PB75,
I wanted to ask if you found a way to convert the PMLSM into generator mode and how to go about that? I can’t seem to find a way.
Thanks Hassan

Sign in to comment.

Answers (1)

Hi Hassan,
The PMLSM simscape code permits is bi-directional operation, so you can motor the machine by applying a voltage to the phases or generate by applying a force to the translator (rotor).
Have added a screen grab of how the model would look once a force is applied to the translator during generating (BEMF model), note the phases are open circuit, you can apply your electrical load to the phases.
Hope that helps.

4 Comments

Hi PB75,
Do you know how to do velocity or force control as generator from this ? I suppose the ee_pmlsm_drive example would be a good start but I couldn't figure it out yet
Hi Joris,
You can implement a Field Orientated Control (FOC) strategy to control the power output, a good place to start is with how to implement FOC velocity control during motoring, then apply this control structure during power generation, using power as you control objective.
The literature has good examples of wind turbine control, will give you a starting point of how to regulate the power and velocity of a PMSM, then apply that to the translational machine.
Hope that gets you started.
Patrick
Hi PB75,
I have an issue; i want to use the PMLSM as a generator; so I apply a force and I'm interested in know the back electromotive force gnerataed by the PMLSM and the mover velocity. Can you help me understanding how I can measure this values using simulink/simscape blocks and signals?
Thank you
Hi, you should input velocity and not force, using
Ideal Translational Velocity Source
Than the induced voltage per speed should be compared to what predicted by the BEMF constant you put.
However, it doesnt say in the block's help if its a line voltage or phase voltage, rms or peak.

Sign in to comment.

Communities

More Answers in the  Power Electronics Control

Asked:

on 6 May 2020

Commented:

on 22 Jul 2025

Community Treasure Hunt

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

Start Hunting!