遺伝的アルゴリズムを​回すために、simu​linkにおいてロー​カル関数から全体のシ​ミュレーションを回し​たい。

14 ビュー (過去 30 日間)
稔彦 廣瀬
稔彦 廣瀬 2021 年 9 月 24 日
コメント済み: 稔彦 廣瀬 2021 年 9 月 25 日
タイトルの通りです。
simulinkにおいて、下記画像1つ目のようなモデルを組みました。
そして、このモデルに対して遺伝的アルゴリズムを行おうとしています。具体的には、GAというmatlabファイル内にて定義されているevaluation という名前のローカル関数を回すたびに、この下記画像1つ目のPath_Planにevaluationから値を渡し、シミュレーションを最後まで回して、いくつかのデータを収集するという操作を行いたいと考えています。シミュレーションが終わったあとは、evaluationに戻り、再びpath_planにevaluationから変数を渡す ということを任意回繰り返します。(下記画像2つ目はGAとPath_Planの画像です。)
しかし以下のような問題が発生しました。
①evaluationを回すたびに、他のmatlabファイルに変数を渡す方法が分からない。
②evaluationを回すたびに、他のmatlabファイルに変数を渡したとしても、またGAというmatlabファイルに戻る方法が分からない。
コードの中身は事情によりお見せ出来ません。
もし解決策がある方がいらっしゃればご教授いただければ幸いです。
  11 件のコメント
Atsushi Ueno
Atsushi Ueno 2021 年 9 月 25 日
Simulinkモデルの中でGAのパラメータを最適化しながら実行を進める方法も勿論やろうと思えば実現すると思いますが、なにぶんややこしくなると思います。
set_paramを実行している時点で貴方はもうSimulinkマニアです。
稔彦 廣瀬
稔彦 廣瀬 2021 年 9 月 25 日
丁寧な説明ありがとうございます!
Atsushi Uenoさんの方針で実装してみます。
この質問に関連した問題が発生したときは、この質問に追加返信いたします。

サインインしてコメントする。

採用された回答

Atsushi Ueno
Atsushi Ueno 2021 年 9 月 25 日
evaluation関数をSimulinkのMATLAB Function ブロック上ではなくMATLAB上で実行すれば:
①evaluationを回すたびに、他のmatlabファイルに変数を渡す方法が分からない。
⇒他のmatlabファイルに変数を渡す事が出来る
②evaluationを回すたびに、他のmatlabファイルに変数を渡したとしても、またGAというmatlabファイルに戻る方法が分からない。
⇒sim関数経由でSimulinkモデルの実行が終わればevaluation関数の実行に戻る
上記の考え方が一つの方法です。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeパフォーマンスの手動最適化 についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!