モデルワークスペースへの変数の入力とその変数のモデルへの出力
Show older comments
Simulinkモデルワークスペースへ下記の文で変数を入力し、Simulinkへ「From Workspace」というブロックパラメータを使って入力しています
open_system('seniorCar1215ga')%Simulinkのモデル名
mdlWks = get_param('seniorCar1215ga','ModelWorkspace');
assignin(mdlWks,'qall',q) %qallという名前の変数としてqを代入
qは1行16列の配列です
モデルではqallから16個の値が入力されるはずですが、「From Workspace」からモデルへ入力されている配列は15個しか値がないです
何が問題なのか分からず困っています
Accepted Answer
More Answers (1)
Hiroumi Mita
on 8 Jan 2020
0 votes
ご質問1
>1×nの行列形式でもFromWorkspaceで入力可能ととらえて良いでしょうか
回答
この設定でもエラーは出ないですが、無意味です。
理由は、FromWorkspaceは任意の時系列データ、例えば実際の時系列実験データやMATLABで作成した時系列データなど
をSimulink内に入力させるために使います。時系列データなので、時間変動があります。ある定時間での値ではなく、時間とペアの物理量でないと時間変化は表現できません。この時間ベクトルはSimulinkのモデルが動くシミュレーション時間と考えます。
多分、これはご質問2と関連した苦肉の策では?と思いますが、Simulinkでワークスペース変数を定数として使うのは
Constant Blcokを使えば大丈夫です。
ご質問2
>あとこれは疑問なのですが、モデルワークスペースからsimulink内に定数の値を入力する方法はFromWorkspace以外にあ>りますか?時系列で入力したいわけではなくモデル内で定数として使いたい
Categories
Find more on 対話型のモデル編集 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!