How to apply H-inf control to a PMSM motor?
2 views (last 30 days)
Show older comments
Hello. I am a student currently working on understanding different types of controllers, and I am stuck on robust H-inf control. When I have started working on the controller, I tried applying it to a DC motor, but have now changed it to a PMSM motor after I couldn't figure out how to model H-inf controller in Simulink properly.
It turns out that this is also not going well, and despite understanding the theory behind H-inf control, I am unable to model the controller in Simulink.
For now, I have limited myself to a very simple model with small transport delay. The model looks like this
The parameters are as follow:
Ktm = 17.5 Jm = 1.5 kg*m^2 Delay = 0.02s
I am planning to add more parameters and change their values later to test the controller, but first I need to start with basics. The PID control works fine with the model so I assumed it's correct.
And here is where my question comes: could anyone explain me the basics of how I should (step by step) start designing and applying a H-inf robust controller to a model like this one, without solving it too much for me?
What I have gathered so far is that there is a very potent command in Matlab called "hinfsyn" which can create a controller for me, but to use that command, I would need to put my motor's parameters into a matrix. Is that correct? And if so, wouldn't the Transport Delay make it hard to create a proper matrix for hinfsyn to use? I have tried using this command with my previous DC motor and it worked, although I am not sure if the results were correct, as they were almost identical to PID control, with small variance in current output.
When I worked with the DC motor, I put together a controller using the following commands:
I created matrix A, B, C and D with all the motor's parameters and then put them together into a matrix M, which I later used to create a controller K. Is this the correct approach?
The controller K was later put into state-space and used in my simulink model. In this model, I have tested different types of control, so You can ignore all of the PID controllers present there. I know now that the model is incorrect, but I do not know how to change it so that weights are present.
Also, I know about the weights added to models where H-inf control is present, but, in case of my model, where noise is not present (for now), would some of those weights be obsolete?
I would apprieciate any help on this subject, including any references You could give me. So far I have found quite a few documents on this matter, but they usually explain more complex situations and I would like to start with basics.
Thank You in advance.
1 Comment
adeel usmani
on 21 Feb 2020
hello sir. Did you solve this issue? I am also stuck at the same point. Some help will be really great.
Thanks
Answers (1)
Sabin
on 17 Nov 2023
For PMSM control the dq rotor reference frame can be used. The state-space model in the dq reference frame is known and available in many sources, including Simscape Electrical documentation.
For something to start with, there is a PMSM position control example in Simscape Electrical that is using an LQR controller in the outer loop but a similar approach can be used for the inner current control loop.
0 Comments
Communities
More Answers in the Power Electronics Control
See Also
Categories
Find more on Permanent Magnet in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!