How to set the initial value for iteration in Simulink?

38 ビュー (過去 30 日間)
Sisi Di
Sisi Di 2016 年 8 月 31 日
回答済み: Yichen Hu 2019 年 8 月 16 日
I'm building a model in Simulink on iteration algorithm, but I failed to set the inital value for my parameters. I used a 'Matlab Function' block to write in my codes. I tried to initial them in the file, but they would be reset to the initial value when the block is called in the Simulink. Also, the different delay for each parameter bother me a lot when I tried to figure out the prority of the blocks.Thanks a lot.
  1 件のコメント
Martin
Martin 2016 年 9 月 7 日
Hello, I did little while ago something similiar, the variable you can initialize directly in code like this:
function untitled()
persistent b
if isempty(b)
b = 25; % Initial value
end
b = b + 1;
disp(b)

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

回答 (2 件)

Yichen Hu
Yichen Hu 2019 年 8 月 16 日
I have also faced with this problem days ago, and I have come up with this idea:
Connect a delay block to the output of the Fuction block, and set the initial condition of the delay block to the initial value you want.
Screenshot from 2019-08-16 11-56-03.png
And then the iteration will work.

Naushin Shaikh
Naushin Shaikh 2016 年 9 月 15 日
You can try defining its default value in model explorer. So, whenever the variable will be called it will take the default value. To reset its value, you can then add its reset value in code.

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by