問題タブ [control-theory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
robotics - 距離用のクワッドコプター PID コントローラー
PID コントローラーを使用して、水平方向に移動中にクワッドコプターを特定の場所で停止しようとしていますが、現在、最大速度に応じてオーバーシュート/アンダーシュートします。P、I、および D ゲインを手動で調整しようとしましたが、成功は限られていました。基本的に、飛行経路の最後で速度を maxSpeed から 0 にする必要があります。
0.1 秒ごとに実行されるループを実行します。クアッドコプターへのピッチ入力は m/s 単位で、繰り返しごとにターゲットまでの距離を再計算します。
いくつかの擬似コード
この PID コントローラーを、さまざまな最大速度で機能するこのシステムに確実に調整する方法はありますか、および/または考慮する必要がある他の要因はありますか?
scilab - exp(x) は xcos でどのように使用できますか?
K e^(-θ s)/(*s + 1)をシミュレートしようとしていますが、xcos では CLR ブロックで exp(s) を使用できません。それを回避する方法はありますか?また、変数の値を使用せずに xcos モデルを作成し、エディターを介して値を割り当てるにはどうすればよいですか?
ありがとう!
python-3.x - ベクトル出力ポートを使用して LeafSystem を正しく実装することについての混乱
私は、Dr. Russ Tedrake の優秀な Underactuated Robotics コースで Drake、特に pydrake を独学で学んでいる学生です。カートポール システムのバランスを直立に保つために、エネルギー シェーピングと lqr コントローラーを組み合わせて作成しようとしています。この図は、Underactuated Robotics [http://underactuated.mit.edu/acrobot.html] の第 3 章にあるカートポールの例と、第 2 章の SwingUpAndBalanceController: [http://underactuated.mit.edu/pend] に基づいています。 .html]。
を使用しているため、からcart_pole.sdf model
受信するための抽象入力ポートを作成する必要があることがわかりました。そこから、カートポールの作動ポートに供給する前に、タイプ BasicVector の制御信号出力を作成して Saturation ブロックに供給する必要があることがわかりました。FramePoseVector
cart_pole.get_output_port(0)
私が今直面している問題は、DeclareVectorOutputPort
のコールバック関数でシステムの現在の状態データを取得する方法がわからないことです。LeafContext
コールバック関数でパラメータを使用して、連続状態ベクトルOutputControlSignal
を取得すると仮定していました。BasicVector
ただし、この結果のベクトルx_bar
は常にNaN
です。やむを得ず (およびプログラムの残りの部分が機能することを確認するためのテスト) x_bar
、コントローラーの初期化を設定したcart_pole_context
ところ、シミュレーションが 0.0 の制御信号で実行されることがわかりました (予想どおり)。100 に設定output
することもできます。カートポール シミュレーションは無限の空間に飛んでいきます (予想どおり)。
LeafSystem
TL;DR: で拡張するカスタム コントローラーで連続状態ベクトルを取得する適切な方法は何DeclareVectorOutputPort
ですか?
助けてくれてありがとう!本当に感謝しています :) 私は自分自身を教えてきたので、少し大変でした (笑)。