MATLAB Answers

Simulink/S​tateFlowにお​けるバス信号への値の​代入について

8 views (last 30 days)
Kengo Atomi
Kengo Atomi on 18 Feb 2020
Commented: stozaki on 22 Feb 2020
Simulink/StateFlowにおいて、
a.data(1) = F; 
(dataは8次元の配列)のようにバス信号に値を代入しようとすると、
「"y(1) = 1" のような要素ごとの代入は、完全な代入として認識されません」
といったエラーが出ます。このような代入方法はバスではできないのでしょうか。

  1 Comment

stozaki
stozaki on 22 Feb 2020
問題は解決されましたでしょうか?
エラーが発生している箇所を切り出して、モデルを添付頂く事はできますか?

Sign in to comment.

Answers (1)

stozaki
stozaki on 18 Feb 2020
Edited: stozaki on 18 Feb 2020
Atomi様
Stateflowの 場合を添付の例題モデルとして示します。(R2019bにて作成)
バス信号を使うためには、先ずバスオブジェクトを定義して下さい。その定義したバス要素に代入する形でモデリング・シミュレーション出来ます。(myBus.mを実行後、モデルを開いてシミュレーション実行可能です)
次のドキュメント記載の例題も併せてご確認いただくと良いかと思います。
宜しくお願い致します。
追記です。
配列の要素番号を指定する場合、次の例題の通りにして頂けますでしょうか
こちらの例はアクション言語がC言語の例となっています。

  5 Comments

Show 2 older comments
stozaki
stozaki on 18 Feb 2020
念の為、要素がサイズ8のベクトルで、データ型がbooleanの例を添付致します。
確認ですが、a.data(1) = F;のFは定義済みという認識ですが、正しいでしょうか?Fのデータ型をbooleanに設定しておりますでしょうか?
左辺、右辺のデータ型が異なる場合、キャストを実施頂けますでしょうか?
Kengo Atomi
Kengo Atomi on 18 Feb 2020
R2019bでモデルを開こうとしたところ、開くことができなかったのですが、特殊なパッケージ等必要でしょうか。
また、こちらの動作環境が2015aなので、可能でしたら2015aで動作可能なモデルをいただけると幸いです。
stozaki
stozaki on 18 Feb 2020
作成環境がR2019bで、SimulinkとStateflowがあれば開くと思います。
Atomi様の環境がR2015aとのことなので、開かなかったと思われます。
R2015a用にエクスポートしたモデルを添付致します。
こちらは、T/Fをパラメータとして定義しており、データ型をbooleanとしております。

Sign in to comment.

Sign in to answer this question.