0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

変数

Posted at

📘 Simulinkで使う変数をMATLABで定義して保存・再利用する方法

~「変数が存在しません」エラー対策~

🔧 背景

Simulinkブロック(例:Transport Delayなど)では、遅延時間やゲインなどのパラメータに変数名を使うことがあります。しかし、変数がMATLABのワークスペースに存在しない場合、次のようなエラーが発生します:

🚨 変数 'T' が存在しません。

これは、Simulinkが参照する変数がまだ定義されていない or 読み込まれていないためです。


✅ ステップ1:コマンドウィンドウで変数を定義する

たとえば、以下のように T = 0.01; と入力して変数を作成します:

T = 0.01;   % 遅延時間 [秒]

これでSimulinkブロックで T を使えるようになります。


✅ ステップ2:変数をファイル(*.mat)として保存する

定義した変数は .mat ファイルとして保存し、次回以降も使えるようにします:

save delay_param.mat T

これで、delay_param.mat に変数 T が保存されます。


✅ ステップ3:Simulink実行前に変数を読み込む

Simulinkを実行する前に、MATLABで以下を実行します:

load delay_param.mat

これで変数 T がワークスペースに復元され、Simulinkブロックが正常に動作します。


💡 補足:Model Properties に自動読込を設定

Simulinkモデルのプロパティから、起動時に自動で変数を読み込む設定も可能です。

  1. メニュー:モデル設定 > コールバック > InitFcn
  2. 以下を記述:
load delay_param.mat

✅ 応用:複数変数を一括保存・読込

T = 0.01;
gain = 5;
save config_param.mat T gain

読み込み時:

load config_param.mat

🧪 まとめ

操作内容 コマンド例
変数の定義 T = 0.01;
保存 save ファイル名.mat 変数名
読み込み load ファイル名.mat
自動読込設定 InitFcn に load 記述

🎯 よくあるエラーと対処法

エラー内容 原因 解決策
変数 'T' が存在しません ワークスペースに定義なし T = ... を定義 or load
文字ベクトルの終端が… 'T' の書き方誤り T と記述(クォート不要)
値が 0 になる 値の設定ミス or 単位ミス 単位と値を見直す

📝 おわりに

Simulinkでは変数管理が重要です。MATLAB側で変数を定義・保存し、再利用や共有を円滑にすることで、開発の再現性と効率が大きく向上します。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?