SimulinkのMATLAB Functionでの変数参照に関して

17 Ansichten (letzte 30 Tage)
真之 毛利
真之 毛利 am 28 Jan. 2021
Kommentiert: 真之 毛利 am 1 Feb. 2021
MATLAB Function(Simulink / User-Defined Functions)のエディタでmファイルで定義した変数を使いたいのですが
参照できないとのエラーが出ます。以下例の改善点のご指摘お願いします。
(例)
param.mの記述
a=1;
MATLAB Function(Simulink / User-Defined Functions)の記述
function y= fcn(arg1)
y = a+arg1;
この状態でSimulinkのシミュレーションを開始すると
aが参照できないとのエラーが出ます。
ご存知の方、ご教示よろしくお願いします。

Akzeptierte Antwort

Toshinobu Shintai
Toshinobu Shintai am 28 Jan. 2021
まず、スクリプトに記載した変数は、MATLABのワークスペースに展開されなければ、Simulinkから参照することはできません。
一方で、param.mを「関数スクリプト」にした場合は、以下のようにすることで読むことができます。
param.mを以下のようにします。
function p = param()
p = struct;
p.a = 1;
end
SimulinkモデルのMATLAB functionでは、以下のようにします。
function y = fcn(u)
p = param;
y = p.a + u;
end
添付ファイルを確認してください。
また、MATLABワークスペースにある変数をMATLAB Functionで扱えるようにするには、以下のように、データの編集から新しい変数を作成し、
変数のスコープを「パラメータ」に変更し、変数名を「a」など、MATLABワークスペースの変数の同じ名前にします。
  1 Kommentar
真之 毛利
真之 毛利 am 1 Feb. 2021
回答いただきありがとうございました! 図付きで大変理解しやすかったです。 また何かあったときはよろしくお願いします!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Simulink 環境のカスタマイズ finden Sie in Help Center und File Exchange

Produkte


Version

R2020b

Community Treasure Hunt

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

Start Hunting!