Clear Filters
Clear Filters

Trying to enter a transfer function in simulink (tauD s + 1)

9 views (last 30 days)
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!

Accepted Answer

Paul
Paul on 12 Dec 2023
Edited: Paul on 12 Dec 2023
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.

More Answers (1)

Sam Chak
Sam Chak on 12 Dec 2023
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 Comments
Paul
Paul on 12 Dec 2023
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 on 12 Dec 2023
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.

Sign in to comment.

Categories

Find more on Programmatic Model Editing in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!