Tune controller by using pidtune() with output disturbance instead of input disturbance
2 ビュー (過去 30 日間)
古いコメントを表示
Dear all,
I'd like to tune a PIDF controller for the plant G_plant =
117.2 z - 95.28
--------------------------
z^3 - 1.679 z^2 + 0.7333 z
on the command line by using pidtune().
I'd like a crossover frequency of 40 kHz, phase margin of 60 degree and the design focus should be "disturbance-rejection".
My problem currently is that for pidtune() it seems to be assumed that there is an input disturbance d like shown here:
But in my case, I have an output disturbance d with a transfer function g_d like shown here:
I call pidtune() as follows:
pidtune(G_plant, 'PIDF', 2 * pi * 40.0e3, pidtuneOptions('PhaseMargin', 60.0, 'DesignFocus', 'disturbance-rejection'))
I am not sure if I can use pidtune() in my case, since here the disturbance acts at another position, namely at the output of the plant and with an additional transfer function, not at its input. How can I take the other disturbance location into account?
Furthermore, if I chose as design focus "balanced" or "reference-tracking", the exactly same controller is designed like with "disturbance-rejection". Why do I not see any difference in the controllers' parameters?
Thank you and best regards,
Robert
0 件のコメント
回答 (1 件)
Sulaymon Eshkabilov
2019 年 5 月 20 日
Hi Robert,
In this case, I would suggest to take out your controller C from your system model and add it from the outside as a unit feedback back to the summing junction (ys - ym) and then your pidtune works perfectly well.
Good luck.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!