
How can I implement an improper transfer function (without delays) in Simulink?
조회 수: 30 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2013년 10월 21일
편집: MathWorks Support Team
2020년 5월 11일
I have a system that I would like to model in Simulink. If expressed as a transfer function, it would have an improper form, with more zeros than poles. I do not have any internal delays in the transfer function.
The Transfer Function block from Simulink and the LTI System block from the Control System Toolbox both return errors when I try to use this improper transfer function.
채택된 답변
MathWorks Support Team
2020년 5월 11일
편집: MathWorks Support Team
2020년 5월 11일
The ability to implement an improper transfer function (without delays) is not available in the Transfer Function and LTI System blocks.
To work around this issue, you can implement the transfer function using the Derivative and Integrator blocks.
An example/workaround for improper transfer functions (without delays) is as follows:
Consider the following transfer function:
>> num = [4.03*.064*1.06e-5 .064 4.30];
>> den = [.064*1.06e-5 1];
>> tf(num,den)
ans =
2.734e-06 s^2 + 0.064 s + 4.3
-----------------------------
6.784e-07 s + 1
We can do a partial fraction decomposition:
>> [r,p,k] = residue(num,den);
Now the 3 systems can be implemented in Simulink as:
% SYSTEM 1: Implemented as an "LTI System" block
% https://www.mathworks.com/help/control/ref/ltisystem.html
sys1 = tf(r(1),[1,-p(1)]);
% SYSTEM 2: Implemented as a gain and a du/dt block
% https://www.mathworks.com/help/simulink/slref/derivative.html
k(1)*s
% SYSTEM 3: Implemented as a gain block
k(2)
These three systems should be summed in parallel. For instance, a basic setup with a "Step" input may look like:

댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 PID Controller Tuning에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!