PID Control: Varying saturation range?
1 回表示 (過去 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!