Simulinkを用いたRLAgentの学習におけるエラーについて
3 views (last 30 days)
Show older comments
現在、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' の導関数が有限ではありません。シミュレーションを停止します。解に特異点が存在する可能性があります。そうでない場合は、(固定ステップ サイズを小さくする、または許容誤差を厳しくすることによって) ステップ サイズを減らしてみてください
0 Comments
Answers (1)
Norihiro Kobayashi
on 21 Jan 2021
こんにちは、
現状どこまでデバックを試されているかにもよりますが、強化学習の実行というよりは、
環境モデルのデバッグの要素が大きそうな印象を受けます。
エラーの出ている、"twolink.slx"をエラーが出た後(ひとまずAgentに値が入った後)にSimulinkインターフェースで
実行してみてはいかがでしょうか?
本エラーもいろいろな原因が推定されますが、まず気になるのは、SimulinkのソルバがSimscape Multibodyモデルの
利用に適したソルバになっているか否かです。
Simscape Multibodyでは可変ステップのode45 ode23s ode23tなどがまずお試し頂く候補と思います。
See Also
Categories
Find more on シミュレーションと解析 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!