Simple MIMO state-feedback controller that ensures zero-steady state error
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi guys!
I've got a little problem. I have a transfer function matrix (i just choose randomly transfer functions just for a project):
h11 = tf([1],[1 6 11 6]);
h21 = tf([1],[1 20 29 20]);
h12 = tf([1],[1 5 6]);
h22 = tf([1],[1 9 20]);
G = [h11 h12;h21 h22];
and minimal state-space representation (calculated by hand i have it on piece of paper if needed):
A = [-1 0 0 0 0;0 0 1 0 0;1 -6 -5 0 0;0 0 0 0 1;1 0 0 -20 -9];
B = [1 0;0 0;0 1;0 0;0 1];
C = [0 1 0 0 0;0 0 0 1 0];
D = zeros(2,2);
So now i want to make state-feedback controller that ensures zero-steady state error(step final value in both cases is 1):
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/292119/image.png)
Results:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/292120/image.png)
What is going on? Why there is still error for both outputs? I made some mistake in simulink model ? I would appreciate some help.
2 Kommentare
Walter Roberson
am 12 Mai 2020
sys = ss(G);
minsys = minreal(sys, 1e-20);
does not agree with your hand minimum realization; minreal() believes there should be 10 states, whereas your hand derivation thinks there should be 5 states.
Antworten (1)
Piotr Pawlowski
am 19 Mai 2020
Bearbeitet: Piotr Pawlowski
am 19 Mai 2020
Just a quick thought. I didn't check it by myself, but maybe you have bad system type. If you have type 0 system for step input, you won't get zero steady-state error (ess = 1/(1+Kp)). Thus, you will need to add additional integrator to the system.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Linearization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!