Simulink add Transferfunction as binominal equation

Hello,
Could you guide me on how to create a custom transfer function within a Simulink block?
I prefer not to expand each parameter individually.
Ideally, I am looking to implement a function similar to a binomial expression. For instance:
TF = p(1) / (1 + p(2)*s)^p(3)
Or, specifically:
TF = p(1) / (1 + p(2)*s)^3

Answers (2)

Sam Chak
Sam Chak on 30 Nov 2023
Edited: Sam Chak on 1 Dec 2023
Technically, if the parameters do not change during the simulation in Simulink, then the Zero-Pole block should achieve what you are looking for because the denominator contains only repeated poles.
Edit: The zpk() function in the MATLAB Function block doesn't work.

2 Comments

Paul
Paul on 30 Nov 2023
Edited: Paul on 30 Nov 2023
The zero-pole block is a very good idea. The poles are obviously at -1/p(2), but keep in mind that the gain k is not p(1). The gain needs to be adjusted to k = p(1)/p(2)^p(3) (I think).
How can the zpk command be used in a Matlab Function to implement this model?
Hi @Paul, thanks for enlightening me on the zpk(). I didn't think this through. Your proposed LTI System block should work nicely. I admit that I rarely explore the blocks in the Control System Toolbox library.

Sign in to comment.

Hi Gunnar,
You can use the LTI System block and enter as the block parameter: p(1)*tf(1,[p(2) 1])^p(3)
assuming that only the denominator is raised to the power p(3) as shown in the question.

Categories

Products

Release

R2023b

Asked:

on 30 Nov 2023

Commented:

on 1 Dec 2023

Community Treasure Hunt

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

Start Hunting!