モデルワークスペースへの変数の入力とその変数のモデルへの出力
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
yokoyama
am 8 Jan. 2020
Kommentiert: yokoyama
am 8 Jan. 2020
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個しか値がないです
何が問題なのか分からず困っています
0 Kommentare
Akzeptierte Antwort
Hiroumi Mita
am 8 Jan. 2020
From Workspaceの仕様として、配列の時系列データを
From Workspaceから出力させるには
例えば、時間ベクトルt, データy1,y2としますと時間ベクトルtは昇順でなくてはいけません。
また時間ベクトルは時系列データの一番左端に縦ベクトルで並びます。
たまたま、昇順のデータが一番左にあり、運よくエラーが出ない状態かもしれません。
例えば、添付では、3個縦ベクトルが並ぶ配列をFrom Workspaceに次のように
設定しますと、出力は、時間ベクトルtに対応する2出力になります。
[t y1 y2] <-3個の縦ベクトル
出力は2個
Weitere Antworten (1)
Hiroumi Mita
am 8 Jan. 2020
ご質問1
>1×nの行列形式でもFromWorkspaceで入力可能ととらえて良いでしょうか
回答
この設定でもエラーは出ないですが、無意味です。
理由は、FromWorkspaceは任意の時系列データ、例えば実際の時系列実験データやMATLABで作成した時系列データなど
をSimulink内に入力させるために使います。時系列データなので、時間変動があります。ある定時間での値ではなく、時間とペアの物理量でないと時間変化は表現できません。この時間ベクトルはSimulinkのモデルが動くシミュレーション時間と考えます。
多分、これはご質問2と関連した苦肉の策では?と思いますが、Simulinkでワークスペース変数を定数として使うのは
Constant Blcokを使えば大丈夫です。
ご質問2
>あとこれは疑問なのですが、モデルワークスペースからsimulink内に定数の値を入力する方法はFromWorkspace以外にあ>りますか?時系列で入力したいわけではなくモデル内で定数として使いたい
Siehe auch
Kategorien
Mehr zu Simulink Function finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!