Hi,
I have an 1-D array (ex: A) with a size exactly matching that of the total simulation steps. This array can be either stored in model or base workspace.
I need to set a block parameter to A(Index) with its index changing according to the simulation time.
How can I do this?
Thank you for your help.

 採用された回答

Paul
Paul 2022 年 1 月 16 日

1 投票

Use a Selector block. Choose the 'Index option' as 'Index vector - port'. Then connect A to the U port and feed the Indx1 port with an integer that you develop from the the simulation time.

3 件のコメント

Sridhar Balasubramanian
Sridhar Balasubramanian 2022 年 1 月 16 日
Thanks..
My problem is little bit more complicated. I have a sine generator. And I need to assign A(Index) as the "frequency" parameter, so the value changes as the simulation runs dynamically, since Index also changes.
Paul
Paul 2022 年 1 月 16 日
If implemented properly, the output of the selector block is A(index). Multiply it with the output of a Clock and then input the product into a Trigonometric Function block.
Another way to get A(index) is to use the 1-D Lookup Table block. Specify 'Flat' as the interpolation method. This approach would probably be easier than using the Selector block.
Sridhar Balasubramanian
Sridhar Balasubramanian 2022 年 1 月 16 日
Thank you.. I used set_param to update A(Index) in my block.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Modeling についてさらに検索

製品

リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by