Step response of a closed-loop system

74 ビュー (過去 30 日間)
Alexander Babin
Alexander Babin 2020 年 2 月 6 日
編集済み: Siddharth Jawahar 2021 年 10 月 25 日
Dear friends,
i need to determine the stability of a system that consists of a PI controller, a servovalve and a thrust bearing with its reaction force linearised. all transfer functions are in the model attached to the question. if i model the step response to the change of the set point, it works just fine, however derivation of a TF for the system in the following way:
W1=tf([1000 5000],[1 0]); % PI transfer function
W2_02=tf([0 250],[0.02 1]); % Servovalve transfer function with time constant 0.02 s
W2_12=tf([0 250],[0.12 1]); % Servovalve transfer function with time constant 0.12 s
W3=tf([1],[7.5 4e4 5.5e5]); % bearing transfer function
Wsys_02=W1*W2_02*W3; % open loop transfer functions
Wsys_12=W1*W2_12*W3;
CL_02=tf([Wsys_02],[1+Wsys_02]); % closed loop transfer functions
CL_12=tf([Wsys_12],[1+Wsys_12]);
results in the command step(CL_02) to show an infinitely increasing response.
There must be something I am missing, please, if anyone has any ideas, do share with me! Thanks a lot!

回答 (1 件)

Siddharth Jawahar
Siddharth Jawahar 2021 年 10 月 25 日
編集済み: Siddharth Jawahar 2021 年 10 月 25 日
Hi Alexander,
The difference in the responses are introduced by how you have constructed the closed loop transfer function in MATLAB. With this construction when you run the step function, its applying the step to the input of the PI controller and not in the place between the servovalve and the bearing as you have constructed in the model.
The reason you see the ramp response to infinity is because of the resultant cloed-loop transfer function has a pole at zero,essentially acting as an integrator for your step input.
As a side note below, I show how you can derive the closed-loop transfer function of your model directly from Simulink in quick and easy steps using the Model Linearizer app and MATLAB.
  • First set up the input and output linear analysis point in your Simulink model to get the loop transfer function. Then open up Model Linearizer in the apps ribbon.
  • In the Model Linearizer, set the operating point at which to linearize the model. We go with the model initial condition and run through the steps shown in the image to get your linearized state-space model in the MATLAB workspace
  • Then use the 'ss2tf' function in MATLAB to convert from a state-space representation to transfer function, which would be the following equation in the image below. Now if you run the 'step' command you will see the same response as you see in the model (except the step command here is injected at t = 0 rather than t = 1)
Hope this helps,
Sid

カテゴリ

Help Center および File ExchangeRobust Control Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by