PID Control: Varying saturation range?
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Fangjun Jiang
2020-11-4
2 个评论
Fangjun Jiang
2020-11-4
PID itself is linear. Any nonlinear behavior you have to do it outside of it.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Engines & Motors 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!