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에서 PID Controller Tuning에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!