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

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

1 comentario

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

Iniciar sesión para comentar.

Respuestas (1)

stozaki
stozaki el 18 de Feb. de 2020
Editada: stozaki el 18 de Feb. de 2020

1 voto

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

5 comentarios

Kengo Atomi
Kengo Atomi el 18 de Feb. de 2020
回答いただきありがとうございます。
こちらとしても、バスオブジェクトはバスエディタを使用して、定義し、変数に対してもその定義したバスを用いてBUS型で宣言しております。
ただ、先の質問にも書きましたように、a.data(1) = F; といったように配列の一部に対して、代入しようとすると、エラーになってしまいます。型に合わせてa.data = false(8,1)といったように代入する分には、問題ありません。
可能でしたら、a.data(1) = F; (dataはサイズ8のboolean)といったように配列の一部に対して、代入できる方法をお教えいただけると幸いです。
stozaki
stozaki el 18 de Feb. de 2020
Editada: stozaki el 18 de Feb. de 2020
Atomi様
「バスの要素がベクトルの場合」に対して代入されたいのかと思います。
添付の例題でご確認頂けますでしょうか? こちらはアクション言語をMATLABとしております。
dd.matをロードして、モデルを開いてシミュレーションを実行してください。
(念の為、バスオブジェクトの要素のサイズが正しく設定されているか?をご確認頂けますか?)
宜しくお願い致します。
stozaki
stozaki el 18 de Feb. de 2020
Editada: stozaki el 18 de Feb. de 2020
念の為、要素がサイズ8のベクトルで、データ型がbooleanの例を添付致します。
確認ですが、a.data(1) = F;のFは定義済みという認識ですが、正しいでしょうか?Fのデータ型をbooleanに設定しておりますでしょうか?
左辺、右辺のデータ型が異なる場合、キャストを実施頂けますでしょうか?
Kengo Atomi
Kengo Atomi el 18 de Feb. de 2020
R2019bでモデルを開こうとしたところ、開くことができなかったのですが、特殊なパッケージ等必要でしょうか。
また、こちらの動作環境が2015aなので、可能でしたら2015aで動作可能なモデルをいただけると幸いです。
stozaki
stozaki el 18 de Feb. de 2020
Editada: stozaki el 18 de Feb. de 2020
作成環境がR2019bで、SimulinkとStateflowがあれば開くと思います。
Atomi様の環境がR2015aとのことなので、開かなかったと思われます。
R2015a用にエクスポートしたモデルを添付致します。
こちらは、T/Fをパラメータとして定義しており、データ型をbooleanとしております。

Iniciar sesión para comentar.

Categorías

Más información sobre 複雑なロジック en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 18 de Feb. de 2020

Comentada:

el 22 de Feb. de 2020

Community Treasure Hunt

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

Start Hunting!