目標
どのような流れで制御設計するか理解できる
結論
以下の8stepが基本的な手順です。
- 構造設計
- モデリング
- 解析
- 仕様の決定
- コントローラの設計
- 検証
- 実装
- 現場調整
詳細
構造設計
モータ、アクチュエータ、センサなどハードウェアの選定と配置を行います。モータやセンサの分解能や、どこに配置するかによって性能に多分に影響を与えます。
モデリング
制御対象の数学モデルを構築します。モデリングの方法は第一原理モデリングとシステム同定に分けられます。第一原理モデリングは物理法則や化学法則に基づいて数学モデルを導出する方法で、システム同定は適当な入力信号を送信した時の応答データを計測し、統計的に数学モデルを構築する方法です。
モデリングに必要な周辺知識やどのようにモデリングを進めていくかは別の記事で解説しようと思います。
解析
モデリングによって構築したモデルを解析し、制御対象の安定性、過渡特性、定常特性などを調べます。
仕様の決定
制御対象の特性を具体的な数値として算出します。走査速度誤差±5%以内のような形で定めていきます。
コントローラの設計
制御系の設計と言われてイメージするものです。制御系設計のメイン目的となります。代表的な設計法としては以下のようなものがあります。
- 古典制御理論(PIDなど)
- 現代制御理論(最適レギュレータなど)
- ポスト現代制御理論(H∞制御など)
それぞれの理論やアルゴリズムについては別の記事で丁寧に解説しようと思います。
検証
設計した制御系をシミュレーションすることで制御性能をしらべます。Gazeboなどのツールを使ってシミュレーションすることが多いです。
Gazeboによるシミュレーションについては別の記事で使い方を解説しようと思います。
コントローラの実装
ソフトウェアとハードウェアを選定し、コントローラを実装します。どのような基準で選定するかや、具体的な実装手順については環境構築などを含めて別の記事で細かく解説しようと思います。
現場調整
シミュレーションと全く同じように動作することはありません。実際にロボットを動かしながら想定と異なる動きをしている原因を探り、ソフトウェア・ハードウェアどちらについても改良を加えていきます。
私が画像処理を用いてライントレースをしたときは周辺の色と被らないようにラインの色を調整したり、ノイズ除去のためのカーネルを工夫したりといった調整をしました。
まとめ
制御系の設計は上記の8stepで行われます。数学・物理・化学などの知識が必要になりますが私が学んだ内容に関しては自身の理解を深めるためにも詳細を解説しようと思います。