Simple MIMO state-feedback controller that ensures zero-steady state error

10 ビュー (過去 30 日間)
Lukas Klingenberg
Lukas Klingenberg 2020 年 5 月 11 日
編集済み: Piotr Pawlowski 2020 年 5 月 19 日
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):
Results:
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 件のコメント
Walter Roberson
Walter Roberson 2020 年 5 月 12 日
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.
Lukas Klingenberg
Lukas Klingenberg 2020 年 5 月 12 日
編集済み: Lukas Klingenberg 2020 年 5 月 12 日
Yes, but my calculations are based on examples from "IEEE TRANSACTIONS ON EDUCATION, VOL. 39, NO. 1, FEBRUARY 1996" and example that is used there also not giving same results as minreal() function. So i assume that minreal() function has same problem as "ss(ssSys,'minimal')" function that is described in matlab documentation "It is also not guaranteed to produce a minimal realization in the MIMO case" .
But that I think it's not a problem with state-space model. I tried with matrix transfer function G and i had same result:
And thank you for the reply!

サインインしてコメントする。

回答 (1 件)

Piotr Pawlowski
Piotr Pawlowski 2020 年 5 月 19 日
編集済み: Piotr Pawlowski 2020 年 5 月 19 日
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.

カテゴリ

Help Center および File ExchangeTime and Frequency Domain Analysis についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by