PID Control: Varying saturation range?
3 views (last 30 days)
Show older comments
Felix Schönig
on 4 Nov 2020
Commented: Fangjun Jiang
on 4 Nov 2020
Hey folks,
I need your help and/or opinion on this problem:
I am trying to control the shaft speed of a hydro motor by regulating its displacement in Simscape. However, depending on the actual shaft speed, the range in which the displacement is allowed to be set, changes. For a normalized displacement control signal 0...1: At speeds that are higher than the nominal shaft speed of the motor (as described in the motors data sheet), the allowable displacement decreases from 1 to zero (at an actual_speed/nominal_speed ratio of ~ 1.7). How can I implement that logic in e.g. a PID control?
A first attempt consisted of implementing a switch block, which would check if the control signal of the PID block was higher than allowed (by comparing with the speed ratio described above, extracted from a lookup table). However, that´s a bad solution since it does not feed the information about the limitation back to the controller, so the controller might still be trying to set displacement = 1, but only some "allowable" displacement = (e.g.) 0.5 reaches the motor.
Is there a way, for example, to set varying saturation limits for the control signal output?
Looking forward to your replies and solutions!
Kind regards
Felix
0 Comments
Accepted Answer
Fangjun Jiang
on 4 Nov 2020
2 Comments
Fangjun Jiang
on 4 Nov 2020
PID itself is linear. Any nonlinear behavior you have to do it outside of it.
More Answers (0)
See Also
Categories
Find more on Engines & Motors 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!