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

17 views (last 30 days)
真之 毛利
真之 毛利 on 28 Jan 2021
Commented: 真之 毛利 on 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が参照できないとのエラーが出ます。
ご存知の方、ご教示よろしくお願いします。

Accepted Answer

Toshinobu Shintai
Toshinobu Shintai on 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 Comment
真之 毛利
真之 毛利 on 1 Feb 2021
回答いただきありがとうございました! 図付きで大変理解しやすかったです。 また何かあったときはよろしくお願いします!

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink 環境のカスタマイズ in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!