モデルワークスペースへの変数の入力とその変数のモデルへの出力
조회 수: 7 (최근 30일)
이전 댓글 표시
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
채택된 답변
Hiroumi Mita
2020년 1월 8일
From Workspaceの仕様として、配列の時系列データを
From Workspaceから出力させるには
例えば、時間ベクトルt, データy1,y2としますと時間ベクトルtは昇順でなくてはいけません。
また時間ベクトルは時系列データの一番左端に縦ベクトルで並びます。
たまたま、昇順のデータが一番左にあり、運よくエラーが出ない状態かもしれません。
例えば、添付では、3個縦ベクトルが並ぶ配列をFrom Workspaceに次のように
設定しますと、出力は、時間ベクトルtに対応する2出力になります。
[t y1 y2] <-3個の縦ベクトル
出力は2個
추가 답변 (1개)
Hiroumi Mita
2020년 1월 8일
ご質問1
>1×nの行列形式でもFromWorkspaceで入力可能ととらえて良いでしょうか
回答
この設定でもエラーは出ないですが、無意味です。
理由は、FromWorkspaceは任意の時系列データ、例えば実際の時系列実験データやMATLABで作成した時系列データなど
をSimulink内に入力させるために使います。時系列データなので、時間変動があります。ある定時間での値ではなく、時間とペアの物理量でないと時間変化は表現できません。この時間ベクトルはSimulinkのモデルが動くシミュレーション時間と考えます。
多分、これはご質問2と関連した苦肉の策では?と思いますが、Simulinkでワークスペース変数を定数として使うのは
Constant Blcokを使えば大丈夫です。
ご質問2
>あとこれは疑問なのですが、モデルワークスペースからsimulink内に定数の値を入力する方法はFromWorkspace以外にあ>りますか?時系列で入力したいわけではなくモデル内で定数として使いたい
참고 항목
카테고리
Help Center 및 File Exchange에서 Simulink Function에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!