Trying to enter a transfer function in simulink (tauD s + 1)
29 次查看(过去 30 天)
显示 更早的评论
I'm trying to enter a transfer function into matlab simulink. This one tauD s + 1. I tried to enter it by entering in the numerator [tauD 1] and in the denominator [1]. But then it will give me an error that says that the order of the numerator and denominator aren't equal. Anyone any ideas how to enter this function? Maybe i'm doing this wrong, any help is appreciated!
0 个评论
采纳的回答
Paul
2023-12-12
编辑:Paul
2023-12-12
Hi Wouter,
As you've found, that transfer function can't be implemented in Simulink in a Transfer Fcn block.
Depending on the structure of your model, you may be able to incorporate that term into another block. For example, if the taud*s + 1 is in series with another transfer function, you may be able to incorporate the taud*s + 1 into that other tranfer function (depending on its relative order) and retain the same, overall, input/output behavior.
Another option would be to approximate what you want by adding a high frequency pole, i.e., (taud*s + 1) / (taup*s + 1) where taup is small enough that you're basically getting the correct repsonse for inputs of interest. However, making taup too small could eventually slow down the simulation by forcing a small simulation step size (depending on the other dynamics in the simulation), so there may be a trade-of in how small you're willing to make taup.
更多回答(1 个)
Sam Chak
2023-12-12
Hi @Wouter
Mathematically, is equivalent to in continuous-time domain. As a simple test, if we inject a signal, , which is also the solution to the differential equation with the initial condition , then the output on the scope should be zero except for the non-zero initial value, at time .
Under normal circumstances, we don't use an improper transfer function. May I guess if you are trying to design the ideal PD controller, where is the derivative time constant?
2 个评论
Paul
2023-12-12
Hi Sam,
I don't think a Derivative block should ever be used unless absolutely neccessary, or at least with a clear understanding of whether or not it will problematic for the expected input to the block.
Sam Chak
2023-12-12
Hi @Paul
I agree. It was just a test in Simulink to evaluate the mathematical functionality of the block, checking whether it can produce the expected output, as predicted by the math. Moreover, the exponential function of the input signal is Lipschitz continuous. We don't really know what input the OP intends to inject into . If it is an input with a jump discontinuity, then the accuracy of the output may be compromised.
I wonder which strictly proper transfer function the OP combined with.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulink Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!