simulink user defined matlab function outputs zero irrespective of input

2 ビュー (過去 30 日間)
Nithin Ravani Nanjundaswamy
Nithin Ravani Nanjundaswamy 2020 年 9 月 23 日
回答済み: Jalaj Gambhir 2020 年 10 月 1 日
I am using simulink user defined block to realise a difference equation. The function is defined as shown below.
function y = fcn(u)
a = [1 -2 1]; % left hand side of difference equation
b = [0 1 2]; % right hand side of difference equation
y=filter(b,a,u);
When I use this block independenly with some array as input, I am able to get the expected values. But when I use this block in another design, the output is always zero though the input is changing. Any suggestions on how to debug this ?
  4 件のコメント
Ameer Hamza
Ameer Hamza 2020 年 9 月 23 日
and what is the value of y if you execute code line by line during breakpoint?
Nithin Ravani Nanjundaswamy
Nithin Ravani Nanjundaswamy 2020 年 9 月 23 日
Hi, my supervisor suggessted that the filter function is designed to accept data as (timed) arrays. But Simulink works differently, here the function is called at every simulation step and feed with the current input data. So he suggested to use discrete filter block with the calculated filter coefficients. would you please advice me on how to calculate filter co-efficients from the difference eqaution which is mentioned in the question.

サインインしてコメントする。

回答 (1 件)

Jalaj Gambhir
Jalaj Gambhir 2020 年 10 月 1 日
Hi,
Please have a look at the model examples given here.
Hope this helps!

カテゴリ

Help Center および File ExchangeSimulink Functions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by