So-net無料ブログ作成

ドローンのシステム基礎を学ぶ(9) [ロボットを作ってみる!]

前回、速度差をベースとしたフィードバック制御について学びました。これを比例制御(P制御)と呼びます。


feedback_system3.png


せっかくなので、プログラムでこのP制御をシミュレーションをしてみましょう。質量は1g、測定間隔は0.1秒、比例係数は1.0にしてみました。

#include <stdio.h>

#define MASS 1
#define TIME_INTERVAL 0.1
#define K 1.0

void main()
{
    float Vt = 80.0;  // Target Velocity
    float Vm = 60.0;  // Measured Velocity
    float Time = 0.0;

    printf("%f, %f\n", Time, Vm);
    for (int i = 0; i < 500; i++) {
	
	float force = K * (Vt - Vm);
        float dAcc = force / MASS;

        Vm += dAcc * TIME_INTERVAL;
        Time += TIME_INTERVAL;

        printf("%f, %f\n", Time, Vm);
    }
}



これをグラフにすると下記のようになります。理論通り、80km/h に近づいています。


P_feedback.png


ただ収束値を拡大してみると、80km/h に限りなく近づいていますが 80km/h になっていません。これはマイコンの計算分解能の限界から出る誤差です。 P制御による定常偏差によるものです。


P_feedback2.png


これは、わずかな違いのように見えますが、これが距離として累積されていくと次第に大きな誤差となって表れてきます。次は、このわずかな違いを補正する方法について学んでいきたいと思います。
(^_^)/~





エンジニアのためのフィードバック制御入門

エンジニアのためのフィードバック制御入門

  • 作者: Philipp K. Janert
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2014/07/26
  • メディア: 単行本(ソフトカバー)



Building Your Own Drones: A Beginners' Guide to Drones, UAVs, and ROVs

Building Your Own Drones: A Beginners' Guide to Drones, UAVs, and ROVs

  • 作者: John Baichtal
  • 出版社/メーカー: Que Publishing
  • 発売日: 2015/09/14
  • メディア: ペーパーバック



HPHELI Batfly 250 Quad Racer Drone DIY Kit [並行輸入品]

HPHELI Batfly 250 Quad Racer Drone DIY Kit [並行輸入品]

  • 出版社/メーカー: HPHELI
  • メディア:




nice!(29)  コメント(2)  トラックバック(0) 
共通テーマ:趣味・カルチャー

nice! 29

コメント 2

akira

P制御では、マイコンの計算誤差により80km/hに到達しないとありますが、違いますよ。

数学的に、最終値の定理を解くと、P制御では目標値との差ができてしまうことがわかります。制御工学では、定常偏差と呼びます。

説明はここがわかりますいと思います。。

http://www-jlc.kek.jp/~omori/CavityCompton/Meeting/20070830/Miyoshi20070830_PID_1.pdf
by akira (2017-09-20 01:38) 

ys_oota

akiraさん、ご指摘ありがとうございます。おお、なるほどズバリ解説が出ていますね。これは分かりやすいかも。勉強になります。^^
by ys_oota (2017-09-21 01:25) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0