日本機械学会サイト

目次に戻る

2023/1 Vol.126

バックナンバー

やさしい制御工学

第1回 システムの表現

<本連載にあたって>

機械工学に携わる技術者にとって「材料力学、機械力学、熱力学、流体力学」の4力学は、必須の重要な学問分野である。大学や高等専門学校等の機械工学教育で扱う学問領域の多様化によりこれらに割り振られる時間は減少傾向にあり、初学者が学びやすい教科書への要望が高まっている。さらに機械工学を学んでいない電気系や材料系の技術者が読みやすい教科書を望む声もある。これらの要望を受け、本会では上記の4力学に制御工学を加えた5分野について「やさしいシリーズ」と題する教科書の出版を計画した。関連企画として2019年から「やさしい材料力学」「やさしい熱力学」「やさしい機械力学」「やさしい流体力学」が連載され、2023年は本シリーズ最後である「やさしい制御工学」の連載となる。

4力学は現実に存在するモノや現象をそのまま扱う学問であるといえよう。これに対して制御工学は、現実を数式で表した上でその数式を様々な手法で加工することが多い。しかも、ソフトウェアと現実のモノを似たような表現で同列に扱うこともある。そのため、全体的にしばしば抽象的で理解しにくくなりがちである。本連載では、できるだけ機械工学の範疇を逸脱せずに、具体的にイメージしやすい例を挙げながら解説する。

0 はじめに

制御工学とは、モノの挙動を望ましいように調整するための学問体系である。たとえばロボットであれば、手先の位置を所定の目標位置に収束させる必要がある。エアコンであれば、室温を設定温度に収束させる必要がある。これらを実現するためにはまず、制御対象がどのように振る舞うのかを理解する必要がある。そしてその理解にもとづいて制御器を設計する必要がある。

制御対象と制御器の関係は図1.1のように表せる。通常の場合、とくに機械工学の範疇においては、制御対象とは機械そのものである。なお、制御対象は「プラント」と呼ばれることもある。制御対象には、制御対象の物理量(位置、角度、速度、温度など)を測定するためのセンサと、制御対象に作用を及ぼすことができるアクチュエータ(モーター、ブレーキ、ヒーター、送風機、など)が装着されている。一方で、制御器というのは現代においては、コンピュータとそれに搭載されたソフトウェアである。制御器はセンサから情報を受け取り、内部でなんらかの演算を行い、アクチュエータへ指令を送る。制御工学は、制象対象の振る舞いを理解し、制御器を設計し、システム全体(「閉ループ系」などと呼ばれる)の望ましい振る舞いを実現するための学問体系である。

図1.1 制御対象、制御器、センサ、アクチュエータ

1 システムとは

制御工学では「システム」という用語をよく用いるが、この用語は非常に抽象的であるので、注意が必要である。世間ではコンピューターなどがたくさんつながったものをシステムとよぶこともあるが、制御工学においてはそうではない。人工物や自然物、実体のあるものとないもの、微分積分などの演算、コンピューター内のアルゴリズムなど、この世の森羅万象ほとんどすべてを、制御工学ではシステム(系)という言葉で一括りにする。システムとして捉えられないものはこの世に存在しないといってよいかもしれない。

制御工学におけるシステムとは、図1.2のように、入力と状態と出力があるものである。逆に言うと、あらゆるものをこのように捉えるのが制御工学的な考え方である。ここで、入力・状態・出力は、すべて、数値で表せる物理量である。例として、図1.3(a)のようなばね質量ダンパ系を考えよう。アクチュエータによって力$f$を加えられ、位置センサによって位置$p$が観測される。また、この系の次の瞬間の挙動は、その瞬間の位置$p$、速度$\dot{p}$および力$f$によって決まる。このことから、入力はアクチュエータ力$f$、出力は位置$p$、状態は位置$p$と速度$\dot{p}$と捉えることができる。

図1.2 システムとは

図1.3 システムの例

別の例として、図1.3(b)のような(疑似的なC言語で書かれた)プログラムを考えよう。これは図1.3(a)のような機械システムの位置$p$をある目標位置prに収束させるための「PD制御器」と呼ばれる制御器である(詳細は本連載の第6回)。センサから位置pを取得して簡単な計算をし、力fをアクチュエータへ指令する。計算過程で1ステップ前の位置p1を用いる。このプログラムは、入力をp、出力をf、状態をp1とするシステムと見なすことができる。

2 システムの表現

制御工学においてシステムを表現するためには様々な形式がある。まず大きく分けて、連続時間の表現と離散時間の表現がある。自然現象(人工物の振る舞いを含む)を表す際には、時間は連続的に流れるものとみなすことができる。一方でコンピュータで機械を制御するときは、一定の周期(たとえば数十分の1秒から数万分の1秒)でセンサから情報を取得して、計算して、アクチュエータに指令を送る。こう考えると、制御器は離散時間で表現するのが妥当である。

連続時間形式でシステムを表すためには、たとえば下記のような形式が考えられる。

  • 微分方程式表現:$m\ddot{p}+c\dot{p} + kp = f$
  • ラプラス変換表現:$\displaystyle \mathcal{L}[p] = \frac{1}{ms^2+cs+k}\mathcal{L}[f]$
  • 状態方程式表現:
    $\displaystyle \frac{d}{dt}\left[\begin{array}{@{}c@{}}p\\\dot{p}\end{array}\right] =\left[\begin{array}{cc} 0 & 1 \\-k/m & -c/m \end{array}\right]\left[\begin{array}{@{}c@{}} p\\\dot{p}\end{array}\right] + \left[\begin{array}{@{}c@{}} 0 \\ 1/m\end{array}\right] f$

微分方程式表現は他分野(機械力学や材料力学など)でも使われる汎用的な形式であり、時間発展する物理現象すべてを表現できる。ラプラス変換表現は、荒く説明すると、$s$を微分と読み替えることによって線形の微分方程式表現に結び付けられる(詳細は本連載の第2回)。そして状態方程式表現は、ベクトルと行列を用いて2階以上の微分方程式表現を1階の微分方程式の形に成形したものである。

一方で離散時間システムの表現としては下記のようなものがある。

  • 差分方程式表現:$y_k = b_0 u_k + b_1 u_{k-1} – a_1 y_{k-1}$
  • $z$変換表現:$\displaystyle \mathcal{Z}[y] = \frac{b_0+b_1z^{-1}}{1+a_1 z^{-1}}\mathcal{Z}[u]$
  • (離散時間の)状態方程式表現:
    $\left[\begin{array}{@{}c@{}} y_k \\ u_k \end{array}\right] =\left[\begin{array}{@{}cc@{}} -a_1 & b_1 \\ 0 & 0 \end{array}\right] \left[\begin{array}{@{}c@{}} y_{k-1} \\ u_{k-1} \end{array}\right] + \left[\begin{array}{@{}c@{}} b_0 \\ 1 \end{array}\right] u_k$

差分方程式表現において、$k$は時間ステップ番号を表す整数であり、時間の流れはインデックス$k$の増加により表される。$z$変換表現は、荒く説明すると、1ステップの時間おくれを$z^{-1}$という記号で表して差分方程式表現を書き直したものである(詳細は本連載の第7回)。そして(離散時間の)状態方程式表現は、ベクトルと行列を用いて差分方程式を1階の形に成形したものである。

これらの様々な表現を必要に応じて使い分けながら物理現象を記述し、制御のアルゴリズムを構築し、物理現象を望みどおりに整えるのが制御工学の醍醐味である。

システムの構造をグラフィカルに表現する手法として、ブロック線図がある。ブロック線図はフローチャートとしばしば混同されるが、時間経過に沿った処理の流れではなく、システム間の情報(物理量)の流れを表すものである。図1.4にブロック線図の例をいくつか示す。矢印は物理量を表し、ブロックは入出力があるシステムを表す。ここでいうシステムは、微分、積分、定数倍などの演算操作も含む。線形システムにおいてはラプラス変換表現や$z$変換表現がベースになることが多い。詳細は本連載の第3回に譲る。

図1.4 ブロック線図

例題:第2節の「ラプラス変換表現」と「$z$変換表現」をブロック線図で表せ。

解答例:それぞれ、図1.4(a)および(b)。なお、図1.4(a)と(c)、図1.4(b)と(d)はそれぞれ等価である。詳細は本連載第3回に譲る。

キーワード: