- 締切済み
フィードバック制御の操作量と積分制御について
お世話になります。 2点お伺いしたいと思います。 1点目はフィードバック制御の操作量についてです。 一般的なフィードバック制御のイメージは、 車の速度を一定に保つために、アクセルやブレーキを操作することや 風呂の温度を一定に保つためにお湯をたしたりすることです。 天秤の片方に重り(例えば10g)が載っており、平行に保つために用意された重り(こちらも10g)があるとします。 その用意された重りは片方に載っている重りと同じ重さの重りが用意されており、 それを載っけることで平行にすることができたとします。 その後誰かが1g抜き取ってしまったため、片方も1g抜いて平行に戻した。 これはフィードバックとは言わないのでしょうか? 車や風呂との違いは時間で徐々に目標値に近づくのではなく、 次のステップで目標に達することです。 2点目は、積分制御の具体的な実現方法が思いつかずに困っております。 現在FPGAでフィードバック制御の構築を考えております。 積分制御の目的は一般的に比例制御で制御しきれないオフセット値を打ち消す役目だと認識しております。 http://www.f-kmr.com/pid_control.htm のPI制御の図のようなイメージです。 実現方法は目標値との差をサンプリングごとに足していって、差し引くとオフセットが0になるということでしょうか? 単純なサンプリングごとの差の積分では実現できないのでしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- lumiheart
- ベストアンサー率47% (1141/2405)
>事前に、相手から「最初に1gとって次に5g取る予定だから」 >と告げられて、相手が行う前に6gたしておくのがフィードフォワード制御ではないのでしょうか? 概ねそんな感じですが微妙に違います 本件の例で実際に何を検出してフィードバックするのか? 具体的には天秤に乗ってるのが粉末の砂糖として 一つまみ取った質量を直接計測できれば理想的なフィードバックになります でも、それはほとんど不可能ですよね 本件のシステムでフィードバックするのは天秤の角度、角砂糖の質量ではない (角度センサで正確に計測可能) 天秤の右の皿から砂糖を??g抜き取った 取った量は不明だが40度傾いた その後、反対側を10g取る修正動作したら30度に傾きが減った さらに、10g取ったら20度になった <1回に少しづつしか修正動作できない さらに、10g取って10度になった さらに、10g取って0度になった フィードバック制御の場合では一回では終わりません ↑の例では4回 そこで正確に40g取った事が分かれば 例えば角砂糖一つとかならビデオセンサで計測可能 反対側の皿から40g取る事が可能になります 一回の修正動作で完了させるのがフィードフォワードです 最初の質問文で >車や風呂との違いは時間で徐々に目標値に近づくのではなく、 >次のステップで目標に達することです。 と、ご自分で書いてるではありませんか? つまり フィードバック制御:徐々に目標値に近づける フィードフォワード:一回で目標値に近づける ただ、実際にはフィードフォワード制御は単独では存在せず フィードバック制御の補助機能としてあります ↑の天秤の例で純粋フィードバックでは何g取ったか不明なので 少しづつしか修正動作させれない ビデオセンサとかで30gくらいと推定できれば 反対側からとりあえず25g取って様子を見る 後は、普通のフィードバックの繰り返し つまり修正動作を減らして早く収束させるのがフィードフォワードの目的
- foobar
- ベストアンサー率44% (1423/3185)
#2です。 ちょっと修正。 「誰かが1g抜き取ってしまったため、片方も『1g』抜いて平行に戻した。」 後者の『1g』というのを、平衡の崩れ方(誤差)から算定したなら、フィードバックになります。 (場合によってはオブザーバとフィードフォワードの組み合わせとみなすこともありますが。) 『1g』を誤差以外から知った(たとえば抜き取った人からどれだけ抜き取ったか聞いた)だと、#3さん回答にあるフィードフォワードになります。
- lumiheart
- ベストアンサー率47% (1141/2405)
>車や風呂との違いは時間で徐々に目標値に近づくのではなく、 >次のステップで目標に達することです フィードフォワード制御 http://www.rkcinst.co.jp/techno/14/techno_14.htm フィードフォワードのミソは予め変化量が分かってる事 本件は正確に「1g」と限定されてるので反対側を正確に1gにするだけ 多くの場合は「適当に一握りの砂糖」とかで正確に何gか分かりません フィードバック制御では片側が10gくらい減った 反対側をとりあえず3gくらい減らそう まだ足りないのであと3g減らそう まだまだ足りないので3g減らそう このまだまだ足りないの累積が積分制御 一度に20g獲ったらハンチング 一度に9g獲ったらほぼ合格 <そんな予測は困難と言うかコスト問題の方が大きい なので通常は少しづつ減らすように制御する >単純なサンプリングごとの差の積分では実現できないのでしょうか? その通りですよ ただ、問題はサンプリング時間の単位と一度に変化させる量を幾つにするか?です 所謂、ジーグラ・ニコルス法 http://www.m-system.co.jp/mstoday/plan/mame/b_control/9904/index.html http://www.m-system.co.jp/mstoday1/MSTback/data/97/8/2.htm
補足
回答ありがとうございます。 >フィードフォワードのミソは予め変化量が分かってる事 >本件は正確に「1g」と限定されてるので反対側を正確に1gにするだけ 変化量は相手が取るのを見て、 「あ1g取ったな」 とか「5g取ったな」 とか見た後にわかるので、相手が何をとるか分からない時はフィードバック制御にはならないのでしょうか? 事前に、相手から「最初に1gとって次に5g取る予定だから」 と告げられて、相手が行う前に6gたしておくのがフィードフォワード制御ではないのでしょうか?
- foobar
- ベストアンサー率44% (1423/3185)
1.「その後誰かが1g抜き取ってしまったため、片方も1g抜いて平行に戻した。」 平行になってるかどうか、どれくらいずれてるか、で次の操作を決めているのでフィードバックになります。時間離散の制御系設計のひとつ(最短時間応答)であるデッドビートに相当する制御かと思います。 2. 単純にサンプリングごとの誤差の累積に係数をかけても実現できそうに思います。
- davidfox
- ベストアンサー率58% (21/36)
参考ページは電子工学とあるので、少し違うのかも知れませんが、古典的な機会制御の観点から判る範囲で回答します。 >その後誰かが1g抜き取ってしまったため、片方も1g抜いて平行に戻した。 >これはフィードバックとは言わないのでしょうか? --> 広義の意味でフィードバックと言えると思います。 >車や風呂との違いは時間で徐々に目標値に近づくのではなく、 --> そうですね、車や風呂と違い、燃料の噴射や熱エネルギーが不要なので、 Kp のようなゲインは不要かも知れません。実際のバランス制御は経験が無いので何とも 言えませんが... 2点目の積分制御は少々、質問内容が不明ですが、積分制御の肝は積分時間に有ります。 その積分時間を調整する為に、図の Ki が設けらています。
補足
回答ありがとうございます。 フィードフォワードは変化する前に予め補正しておく制御ではないのでしょうか? この場合ですと、 相手が抜き取る前に、「これから1g抜き取ります」 と言った際に、1g足しておいて(この時点では自分の方が1g多い状態) 相手が1g抜き取った際に平行に保たれる。 ということではないのでしょうか? 1g抜き取ったのを目撃して、次のステップで1g抜くのがフィードバック制御ではないのでしょうか?