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

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

Sign in to comment.

Accepted Answer

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

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!