TF function on Simulink

6 次查看(过去 30 天)
Manos
Manos 2014-2-28
评论: Ryan Rizzo 2018-3-21
Hello I am trying to create a MATLAB function on simulink that ,between others, requires the use of the 'tf' function . Problem is I can't really find a way to use the output of the 'tf' function since it's an mxarray. So when I run something like this
function y = fcn(u)
%#codegen
coder.extrinsic('tf')
g=tf([1],[1 1]);
y=0;
y=g*u;
I get this error: MATLAB expression 'mtimes' is not numeric. Block MATLAB Function (#36) While executing: none . Initializing g gives me the 'is not numeric' error so it won't help... So I was wondering if there is anyway to get it done - the scripting way, I know I can use transfer function simulink blocks etc...Thanks in advance. (I am using Matlab R2012b btw)
  4 个评论
Manos
Manos 2014-2-28
编辑:Manos 2014-2-28
What I am asking is : If there wasn't a "Transfer Function" block on Simulink already , how would you "design" it manually using a matlab function block?
Ryan Rizzo
Ryan Rizzo 2018-3-21
Hi Manos, how did you manage to solve this issue?

请先登录,再进行评论。

回答(1 个)

Rick Rosson
Rick Rosson 2014-2-28
Multiplication is not the same thing as convolution. This approach will not work. You need to write a function that performs continuous time convolution. The only way to do that is to approximate the solution by approximating the continuous integral as a discrete summation over a small sample size. It should be possible, but not easy or fun.
Why not just use the TF block provided by a Simulink? No sense reinventing the wheel.
  1 个评论
Manos
Manos 2014-2-28
But since G is in the frequency domain isn't multiplication correct? Why would I have to use convolution??? (I know it makes absolutely no sense trying this the long way, I am just really stubborn :P ) Thanks a lot for your answer Rick!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Simulink Functions 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by