- evaluation関数を実行する
- 他のmatlabファイルに変数を渡す
- 実行結果を引数として入力し、モデルをsimで実行
- モデル実行結果(データ)を収集する
- 1に戻る
遺伝的アルゴリズムを回すために、simulinkにおいてローカル関数から全体のシミュレーションを回したい。
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
タイトルの通りです。
simulinkにおいて、下記画像1つ目のようなモデルを組みました。
そして、このモデルに対して遺伝的アルゴリズムを行おうとしています。具体的には、GAというmatlabファイル内にて定義されているevaluation という名前のローカル関数を回すたびに、この下記画像1つ目のPath_Planにevaluationから値を渡し、シミュレーションを最後まで回して、いくつかのデータを収集するという操作を行いたいと考えています。シミュレーションが終わったあとは、evaluationに戻り、再びpath_planにevaluationから変数を渡す ということを任意回繰り返します。(下記画像2つ目はGAとPath_Planの画像です。)
しかし以下のような問題が発生しました。
①evaluationを回すたびに、他のmatlabファイルに変数を渡す方法が分からない。
②evaluationを回すたびに、他のmatlabファイルに変数を渡したとしても、またGAというmatlabファイルに戻る方法が分からない。
コードの中身は事情によりお見せ出来ません。
もし解決策がある方がいらっしゃればご教授いただければ幸いです。
11 commentaires
Atsushi Ueno
le 25 Sep 2021
Simulinkモデルの中でGAのパラメータを最適化しながら実行を進める方法も勿論やろうと思えば実現すると思いますが、なにぶんややこしくなると思います。
set_paramを実行している時点で貴方はもうSimulinkマニアです。
Réponse acceptée
Atsushi Ueno
le 25 Sep 2021
evaluation関数をSimulinkのMATLAB Function ブロック上ではなくMATLAB上で実行すれば:
①evaluationを回すたびに、他のmatlabファイルに変数を渡す方法が分からない。
⇒他のmatlabファイルに変数を渡す事が出来る
②evaluationを回すたびに、他のmatlabファイルに変数を渡したとしても、またGAというmatlabファイルに戻る方法が分からない。
⇒sim関数経由でSimulinkモデルの実行が終わればevaluation関数の実行に戻る
上記の考え方が一つの方法です。
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Genetic Algorithm dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!