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!

采纳的回答

Paul
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
Sam Chak 2023-12-12
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
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
Sam Chak 2023-12-12
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 CenterFile Exchange 中查找有关 Simulink Functions 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by