Simple MIMO state-feedback controller that ensures zero-steady state error
조회 수: 3 (최근 30일)
이전 댓글 표시
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
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.
답변 (1개)
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.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Linearization에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!