今回は,P制御(比例制御)の加え,最もよく使われているPID制御について実習を行う. また,計算結果のグラフィクス表示に挑戦しよう.
また,残りの時間は全体の復習およびまとめの時間とする.
各自で理解が不十分と思われる内容については,今日のうちにしっかりと復習・質問すること.
P制御では,偏差 e ( = 入力SV - 応答PV ) に比例ゲイン Kp をかけて操作量 MV を生成するが,偏差がゼロにならない(=定常偏差またはオフセットと言う)問題があった.
実際の制御機器では,比例(P)に加え,偏差の積分(Integral)や微分量(Differential)を利用するPID制御が広く用いられている.
P制御では,操作量 MV は
と表されることを学んだが,PID制御ではこれに加えて,
の項を追加して,操作量MVを計算する.
ここで,Kp は比例ゲイン,TI は積分時間(積分ゲイン),TD は微分時間(微分ゲイン)と呼ばれる.
PID制御では,偏差の積分値や微分値などを用いて,滑らか,かつ,速やかに目標値に向かって制御することができる.
また,P制御の問題点であった定常偏差も大幅に減らすことができる.
前回の課題は,コンソールに文字・数値を出力し,Excelを用いてグラフ化する方法を使った.
コマンドラインでの結果の表示は,シミュレーション結果を簡単にチェックすることができ便利であるが,値の変化や時間変化などは数値の羅列よりもグラフで確認したい.
ここではExcelに頼らず,C言語のプログラムだけを用いて図を描く方法を示す.
本格的な3次元コンピュータグラフィクス(CG)の実現には多くのコードの記述が必要となるが,ここでは単純な2次元グラフィックの利用を紹介する.
参考ページ mogra.html
以下,実行に先立ってmogra_2.hをダウンロードしておくこと(右クリックでファイルに保存).
これはC言語のヘッダファイルなので,テキストエディタで開くことができる.
このファイルを使用するには,ソースファイルの先頭で
#include "mogra_2.h"
と記述することで,グラフィクス関数が利用可能となる.
< >
と " "
について
上の例のように#include "..."
とすることで,
ソースファイルと同じフォルダ内の .h ファイルをincludeすることができる.
したがって,自作などのヘッダファイルのincludeには," "
を使用する.
#include <...>
では,ライブラリ関数などあらかじめ設定した検索場所(ヘッダーファイルの検索パス)に置かれているヘッダファイルしか読み込まない.