Simulinkを用いたRLAgentの学習におけるエラーについて
2 次查看(过去 30 天)
显示 更早的评论
現在、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 个评论
回答(1 个)
Norihiro Kobayashi
2021-1-21
こんにちは、
現状どこまでデバックを試されているかにもよりますが、強化学習の実行というよりは、
環境モデルのデバッグの要素が大きそうな印象を受けます。
エラーの出ている、"twolink.slx"をエラーが出た後(ひとまずAgentに値が入った後)にSimulinkインターフェースで
実行してみてはいかがでしょうか?
本エラーもいろいろな原因が推定されますが、まず気になるのは、SimulinkのソルバがSimscape Multibodyモデルの
利用に適したソルバになっているか否かです。
Simscape Multibodyでは可変ステップのode45 ode23s ode23tなどがまずお試し頂く候補と思います。
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 シミュレーションと解析 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!