Filter löschen
Filter löschen

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

9 Ansichten (letzte 30 Tage)
Wouter
Wouter am 12 Dez. 2023
Kommentiert: Sam Chak am 12 Dez. 2023
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!

Akzeptierte Antwort

Paul
Paul am 12 Dez. 2023
Bearbeitet: Paul am 12 Dez. 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.

Weitere Antworten (1)

Sam Chak
Sam Chak am 12 Dez. 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 Kommentare
Paul
Paul am 12 Dez. 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 am 12 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by