Stability margins for a cascaded system with getLoopTransfer functions
Show older comments

Hello all, I have tuned the control system above and it's stable. I'm trying to find the (classical) stability margins at the signals highlighted in red, and I'm still a bit inexperienced with this. How would I go about this?
I have calculated those at e as follows:
Le = getLoopTransfer(CL,'e',-1); % open-loop function at e
[margins] = allmargin(Le);
which is I think the correct way. I am more unsure however of q and
, since there are inner-loops with positive feedback and there is the added complexity of breaking the loops of the outer loop(s). I found that breaking the loop at both
and
and only at
gives the same transfer function when evaluating q. Apologies for inconsistency, in the code below
and 

%% Verification of margins at plant input
L_P_input = getLoopTransfer(CL,'u_c',-1,{'y2'});
zpk(L_P_input)
eig(L_P_input)
figure; nyquist(L_P_input)
[margins_input] = allmargin(L_P_input); % Margins at the plant input
%%
%% Verification of margins at q
L_P_out_q = getLoopTransfer(CL,'y1',-1,{'y2'});
zpk(L_P_out_q)
eig(L_P_out_q)
[margins_q] = allmargin(L_P_out_q); % Margins at the output of q
figure; nyquist(L_P_out_q)
Futhermore, I also saw that the OL transfer functions for
and q are exactly the same (when I break the outer loop at
). Anyone could clarify this?
Lastly, is it enough to find the stability margins at the highlighted locations? I reckoned it wouldnt be necessary to also do it at
since the error is already on this signal.
I am wondering if my approach is correct and if not what should be changed.
Thanks in advance for any help!
Accepted Answer
More Answers (0)
Categories
Find more on Tuning Goals in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
