• ベストアンサー

トレースロボットの動きとPID動作の伝達関数式との関係について

ライントレースロボットの前面に8個の光センサが搭載されていてラインを感知します。そのラインに沿って動くように2台のサーボモータの回転数を変えて追従走行するロボットです。このようなロボットで、プログラミング上でPID制御を用いているのですが、     PID制御の伝達関数の式   Gc(s) = C(s)/E(s) = Kp ( 1 + 1/Ti s + Td s ) と、関係あるとは思うのですがよくわかりません。 制御工学の初心者で参考書を読んでもわからないことが多くて困っています。 また、数学も未熟者です。こんな私ですが教えていただけると助かります。  よろしくお願いします。

  • kam6
  • お礼率66% (6/9)

質問者が選んだベストアンサー

  • ベストアンサー
noname#21649
noname#21649
回答No.2

1次後れ系は御存知ですか 伝達関数のあんてい域の求め方がわからないのですか 伝達関数式のたて方がわからないのですか 前者は.微分方程式を数値解で解くか.台数解で解くか.がありますけど.面倒ならば作図法もあります。「自動制御」と書いてある書籍類ならば大体書いてあるかと思います。どうしてもわからなければ.すぽっと応答を実測することになりますが.機械では結構面倒(時間記憶できる位置センサーを何にするかということになります)です。 後者は.サーボモーターを使用しているので多分2次後れ系か.3次後れ系かでしょう。位置検出に光センターを使用していることから.無駄時間後れも予想されます。自動制御関係の本の該当項目を読むと大体見当がつくはずです。注意点としては.PID制御とはいっても万能ではなく.2次後れ系や無駄時間後れ系が含まれると.安定域が極端に狭くなります。 あと.系の直列接続などの場合の定理は御存知ですね。これをしらないと.やたら複雑なけいの方程式を解くことになりますから。 (数式を打てないので.数式を使った答はあてにしないでください)

その他の回答 (1)

  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.1

どの辺から説明したらいいのか・・・ まず入出力をまとめましょう。 ・指定された走行速度 ・光センサからのトレースの偏差 ・サーボモータのエンコーダパルス値 ×2 (左右) ・モータへの指示回転数 (左右) 左右車輪は、お互い影響を与え合うことを考えてみてください。 ときどきトランジスタ技術とか、ロボコンマガジンに「そのまんま」の解説が出ていますので、ちぇげらう!!

参考URL:
http://www.tascal.gr.jp/mentnews/news11.htm
kam6
質問者

お礼

トランジスタ技術とロボコンマガジンを見てみます。 有難うございました。

関連するQ&A

  • PID制御と伝達関数についてです

    PID制御の伝達関数と応答についてです。 PID制御の伝達関数K(s)=Kds+Kp+Ki/sとしたとき Kp=0.1,Kd=Ki=0の比例動作を考えます。 この比例動作におけるステップ応答が下の図のようになる理由が分かりません。 K(s)=Kpにおいて K(s)*1/sのフィードバックを考え (K(s)*1/s)/(1+K(s)*1/s)として逆ラプラス変換をしても この図のようにはならないと思うんですけど。

  • 制御工学の PI 制御の伝達関数について質問です

    普通科高校卒の大学生1年生ですが 写真の制御工学問題で質問です。 (僕の理解力のおおよその目安です) なお質問の意図は将来に向けた 独学での学習目的です。 1、P動作とI動作の伝達関数の 和はPI 制御の伝達関数ですか? ※ Ti は積分時間 2、「I 制御」の伝達関数を求める 下記の式は合っていますか? c(t)=(1/Ti)∫e(t) dt をラプラス変換し C(s)=E(s)Kp/ Ti・s ・・・(1) より、C(s)/E(s)=Kp/ Ti・s 3、(1)式の部分について ∫e(t) dt のラプラス変換が E(s)・Kp / s となるのは何故ですか? (E(s) / s になると思っていました。) 下に写真を添付しましたが、 ここが見にくい、情報が足りない等の 指摘があれば補足の方で対応します。

  • ライントレースロボットのPID制御を用いての姿勢制御について

     ライントレースロボットの姿勢制御をプログラミングで行っているのですが、その時にPIDのゲインを変えてどんな動きをするか試してみました。Pの動作はわかるのですが、IとDの動作がよくわかりません。  Iのゲインを少し上げるとロボットは直線でも車体が横にぶれながら走行します。また、Dは少し上げた程度では変わらないのですが、大きく上げるとIと同じように直線でも横にぶれてしまいます。  具体的には、P、I、Dを200、0、200ならスムーズに走行できたコースでも200、2、200ならぶれてしまいます。また、200、0、3000でもぶれてしまいます。このような結果なのですがこのときのIとDは何に影響しているのでしょうか?  まだ、未熟者ですのでヘタクソな質問かもしれませんが真剣に悩んでます。 宜しくお願い致します。

  • 伝達関数の組み込み機器での実現方法

    組み込み機器にてPID制御を行おうと考えている者です。 1/sやs、s^2などの伝達関数は、それぞれプログラムにて積分操作、微分操作を行うことで実現できるかと思います。 それでは、 (s+1)/s^2+5s+1 など多少複雑な伝達関数はプログラムではどのように表現されるのでしょうか。 単純な予想としては微分・積分・比例制御・フィードバックの組み合わせで表されるのではないかと思いますが、実際はどうなのでしょう。 何方かお願いします。

  • I-P制御について

    PID制御に関して、特にIP制御について勉強中なのですが、 PI制御式 : y=Kp(e+1/Ti∫e dt)+bo とした場合、同じ形でI-P制御式を表現すると どのようになるのでしょうか? 伝達関数を使わずに表現したいのですが…? 意味が分からなかったらすみません。 IP制御を調べているのですが、 伝達関数の話ばかりが出てきてしまって 混乱してしまったので…。 よろしくお願いします。

  • ペルチェ素子によるPID制御のときの比例ゲイン

    ペルチェ素子を用いて温度制御をしようと考えています。 ペルチェ素子は電流の方向を切り換えることで加熱・冷却を切り換えることが出来ますので、それを用いる予定です。 そこでふと気になったのですが、ペルチェ素子は冷却に比べて (通電によるジュール熱のため) 加熱の出力が大きいです。 そうすると、偏差が+1℃あったときの冷却出力と、偏差が-1℃あったときの加熱出力では、出力のエネルギーが異なります。 この場合、どうすれば良いのか、どのように行うのが一般的なのか、よくわかっていません。 とりあえず、いくつか考えました。 案1: 比例ゲインを2つ用意する 加熱用の比例ゲイン Kp_warm と、冷却用の比例ゲイン Kp_cool を用意し、 ・SV > PV のとき、MV = Kp_warm * (e + Σe/Ti + Δe*Td ) ・SV < PV のとき、MV = Kp_cool * (e + Σe/Ti + Δe*Td ) ・ΔMV = MV(n) - MV(n - 1) で計算する。 (なお、MV > 0 のときが加熱出力、MV < 0 のときは冷却出力、としています) 案2: 比例ゲイン1 (偏差だけ) で計算し、出力時に比例ゲインをかける 比例ゲイン Kp = 1 とし、 ・MV = 1 * (e + Σe/Ti + Δe*Td ) ・ΔMV = MV(n) - MV(n - 1) で計算し、操作出力段階で ・MV > 0 のとき、MV * Kp_warm ・MV < 0 のとき、MV * Kp_cool を出力する 案3: 制御上は別々のものとして制御する ペルチェモジュールなので、加熱と冷却を同時に出力出来るわけではないが、加熱出力と冷却出力があるものとし、 ・加熱用PID制御 (PIDw) と冷却用PID制御 (PIDc) を用意する ・それぞれでPID計算し、それぞれの操作出力を足し合わせ、最終的な操作出力とする 質問ですが、これらのうち、どれが一般的でしょうか?それとも、別の考え方があるのでしょうか? どうぞよろしくお願いします。

  • ラプラス逆変換について教えてください。

    a+(a/sTi)+{asTd/(1+0.1sTd)} の逆ラプラス変換がわかりません。 特に、最後の項の分子にも分母にもsがついているのがわかりません。 どうもPID制御のときの式のようなのですが、、、 宜しくお願いします。 ※a,Ti,Tdは定数です。

  • フィードバック制御においての「追従誤差」とは?

    フィードバック制御においての「追従誤差」とは 正確に何でしょうか 例えば以下の図の場合は、 まずrからyの伝達関数を求めると E=R - KdY Y=Gc(s)KpE=Gc(s)Kp(R -KdY) rからy伝達関数 Y/R=GcKp/(1+KdGcKp) Y=R*GcKp/(1+KdGcKp) ここで「追従誤差」を求めなさいっていうことは (1)単に偏差の定義? から 「偏差e=目標値r - 出力値y」 に基づいて、 E = R-Y にY=R*GcKp/(1+KdGcKp)を代入 E = R-Y = R-R*GcKp/(1+KdGcKp) = R*(1+KdGcKp-GcKp)/(1+KdGcKp) でこれを逆ラプラス変換しe(t)を求める。 (2)図で、設定したところのeがそのまま「追従偏差」のことになり 「偏差e=目標値r-Kd*出力値y」になって E = R-KdY E = R-KdY = R-Kd*R*GcKp/(1+KdGcKp) = 1/(1+KdGcKp) でこれを逆ラプラス変換しe(t)を求める。 (1)より(2)の方が式が奇麗なので(2)が正しくてほしいですが、 どうやら自分がネットと本で調べたところ、(2)の意見も居つつ、ある本では(1)が合ってるという本もあったので…困っています 誰かはっきりさせて欲しいです・・・ 助けてください。宜しくお願いします

  • フィードバック制御系について

    次の図1、2のフィードバック制御系について教えてください。 入力u(t)は単位ステップ関数とする。 図の伝達関数を求めると 図1はy(t)={kp/(1+kp)}u(t) 図2はy(t)={(ki/s)/(1+(ki/s)}u(t) となったのですが、これであってますか? 誰かわかる人がいたら教えてください。

  • PID制御での実用微分のプログラム

    実用微分 (不完全微分) の伝達関数は、 Y(s) / E(s) = Kp * (1 + 1/ (Ti * s) + (Td * s) / (1 + (η * Td * s) ) ) で表されます。 これを、プログラムで実行できるように差分の形の式に変換したいです。 比例の部分は、 e 積分の部分は、 (Δt / TI) * Σe Δt = 1 [サンプリング単位] = Σe / TI ですよね。 微分の部分ですが、 Y(s) / E(s) = (Td s) / (1 + (η Td s) ) → Y(s) = E(s) (Td s) / (1 + (η Td s) ) → Y(s) (1 + (η Td s) ) = E(s) Td s → Y(s) + Y(s) η Td s = E(s) Td s → Y(s) + s Y(s) η Td = s E(s) Td 微分方程式に変換すると、 → y + η Td dy/dt = Td de/dt 差分式にすると、 → yn + η Td (yn - yn-1) / Δt = Td (en - en-1) / Δt → yn + η Td yn / Δt - η Td yn-1 / Δt = Td (en - en-1) / Δt → yn (1 + η Td / Δt) - η Td yn-1 / Δt = Td (en - en-1) / Δt → yn (1 + η Td / Δt) = η Td yn-1 / Δt + Td (en - en-1) / Δt → yn (Δt + η Td) / Δt = η Td yn-1 / Δt + Td (en - en-1) / Δt → yn = (η Td yn-1 / Δt) Δt / (Δt + η Td) + (Td (en - en-1) / Δt) Δt / (Δt + η Td) → yn = (η Td yn-1) / (Δt + η Td) + (Td (en - en-1)) / (Δt + η Td) → yn = ( (η Td) / (Δt + η Td) ) yn-1 + ( (Td) / (Δt + η Td) ) (en - en-1) このとき、「Δt」はサンプリング単位の「1」に置き換え、 → yn = ( (η Td) / (1 + η Td) ) yn-1 + ( (Td) / (1 + η Td) ) (en - en-1) で良いのでしょうか? どうぞよろしくお願いします。