Integers in control loops

2 views (last 30 days)
Mark
Mark on 14 Aug 2011
Hi,
I am trying to use the Simulink's controller tuning feature, but it cannot seem to linearize the loop because of my rounding function (makes the controller effectively see '0'). The reason for my rounding function is because the controller must only output integers.
Is there any way to make the controller only output integers but of data type double?
Regards Mark

Accepted Answer

Erman Korkut
Erman Korkut on 16 Aug 2011
Hi Mark,
How are you rounding your controller output? If you are using the quantizer block, there is a checkbox for "treat gain when your are linearizing", make sure it is checked. If you use any other block (rounding function block in Math library, matlab fcn block etc.), you can always right-click on the block and select "Linear Analysis->Specify Linearization..." menu to set the linearization of the block to a certain value, such as gain of 1. You can even make the linearization depend on the input value if you choose to use configuration function for specifying linearization of the block. You can check the following for more information:
Regards, Erman Korkut
  2 Comments
Mark
Mark on 17 Aug 2011
Thanks Erman. Simulink can now linearize the plant. Only problem is that it doesn't seem to take the rounding into account when tuning because it gives pretty low gains, and when I simulate, the rounding makes the output zero and does not do anything. But I'll play around with it and see what I can come up with. Thanks again.
Regards, Mark
Mark
Mark on 17 Aug 2011
Turns out my model was actually a bit off which made the gains super small. Fixed it now though and seems to be giving more legit parameters for the controller.
Regards, Mark
PS Thanks again Erman, spent a lot of time trying to figure out what to do, and yet such a simple solution. Appreciate it.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!