
How can I implement an improper transfer function (without delays) in Simulink?
51 次查看(过去 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!