MATLAB Answers

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

9 views (last 30 days)
shoki kobayashi
shoki kobayashi on 18 Jan 2021
Commented: shoki kobayashi on 22 Jan 2021
現在、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' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください

Answers (1)

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

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!