フィルターのクリア

Simulinkを用​いたRLAgentの​学習におけるエラーに​ついて

1 回表示 (過去 30 日間)
shoki kobayashi
shoki kobayashi 2021 年 1 月 18 日
コメント済み: shoki kobayashi 2021 年 1 月 22 日
現在、custom loopを用いて強化学習で学習を行おうとしています。
しかし、学習中にRevolute_Jointに関して以下のようなエラーが出てしまい学習が上手くいきません。
このエラーが出るタイミングは決まっておらず、学習の中盤から終盤に出てきます。
1週間ほど前は上手に動いていました。
また、train関数を用いた学習ではこのエラーが出ずに学習が進みます。
どのようにデバックすればよろしいでしょうか。
エラー: rl.env.AbstractEnv/simWithPolicy (line 70)
An error occurred while simulating "twolink" with the agent "agent".
エラー: rl.env.AbstractEnv/sim (line 135)
[experiencesCell,simInfo] = simWithPolicy(env,policy,opts);
エラー: rl.agent.AbstractAgent/sim (line 38)
[varargout{1:nargout}] = sim(env,this,varargin{:});
原因:
エラー: rl.env.SimulinkEnvWithAgent>localHandleSimoutErrors (line 689)
ブロック 'twolink/Subsystem2/Revolute Joint' の時間 0.0 における状態 'twolink.Subsystem2.Revolute_Joint.Rz.w' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください

回答 (1 件)

Norihiro Kobayashi
Norihiro Kobayashi 2021 年 1 月 21 日
こんにちは、
現状どこまでデバックを試されているかにもよりますが、強化学習の実行というよりは、
環境モデルのデバッグの要素が大きそうな印象を受けます。
エラーの出ている、"twolink.slx"をエラーが出た後(ひとまずAgentに値が入った後)にSimulinkインターフェースで
実行してみてはいかがでしょうか?
本エラーもいろいろな原因が推定されますが、まず気になるのは、SimulinkのソルバがSimscape Multibodyモデルの
利用に適したソルバになっているか否かです。
Simscape Multibodyでは可変ステップのode45 ode23s ode23tなどがまずお試し頂く候補と思います。
  1 件のコメント
shoki kobayashi
shoki kobayashi 2021 年 1 月 22 日
ご返信ありがとうございます。
今回は自分のプログラムの方にミスが存在し、解決することが出来ました。
しかし、今後同じエラーの内容に遭遇する可能性もあるため、参考にしてみたいと思います。
ありがとうございました。

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

カテゴリ

Help Center および File ExchangeApplications についてさらに検索

Community Treasure Hunt

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

Start Hunting!