内容紹介
ソフトウェア開発手法に自動制御の仕組みを取り入れる!
産業界では当たり前ではあってもソフトウェア産業界にはなかった「フィードバック制御」という概念をソフトウェアエンジニアたちに広く紹介し、品質や生産性を上げることを目的に執筆された、制御工学の入門書。著者自身が著名なPythonプログラマであり、ソフトウェアエンジニアの視点に立ち、理論よりも実用に重きを置いて書かれています。基本の解説から始まり、実用例の紹介、ケーススタディの紹介、そして最後に理論の説明でまとめています。特に事例の多さは圧巻。シミュレーションのコードがすべてPythonで書かれており、気軽に試し、実際のプロジェクトに応用して生かすことができる実践的な内容です。
このような方におすすめ
プログラマ、ソフトウェアエンジニア、品質や生産性を上げたい人すべて
目次
詳細目次
日本の読者のみなさんへ
監訳者まえがき
まえがき
第I部 基礎
1章 フィードバック制御への誘い
1.1 実例
1.2 最良解を見つける
1.3 制御器を構成する
1.4 偏差を累積する
1.5 まとめ
1.6 シミュレーション用のコード
2章 フィードバックシステム
2.1 システムと信号
2.2 追従誤差と修正動作
2.3 安定性、性能、正確さ
2.4 不確かさと変化
2.5 フィードバックとエンタープライズシステム
2.6 シミュレーション用のコード
3章 システムダイナミクス
3.1 ラグとディレイ
3.2 物理的世界と仮想世界でのダイナミクス
3.3 フィードバックループにとってラグとディレイの重要性
3.4 理論と現実
3.5 シミュレーション用のコード
4章 制御器
4.1 ブロック線図
4.2 オンオフ制御
4.3 比例制御
4.4 積分制御
4.5 微分制御
4.6 PID制御器
4.7 シミュレーション用のコード
5章 入出力信号を見極める
5.1 制御入力と制御出力
5.2 例
5.3 制御信号を選択する基準
5.4 多次元システムに関しての注意
6章 精査と見通し
6.1 フィードバックのアイデア
6.2 繰り返し
6.3 プロセスの知識
6.4 不安定性の回避
6.5 セットポイント
6.6 制御であり、最適化ではない
第II部 実践への準備
7章 理論を知る
7.1 周波数表現
7.2 伝達関数
7.3 ブロック線図上での代数計算
7.4 PID制御器
7.5 伝達関数の極
7.6 プロセスモデル
8章 伝達関数の測定
8.1 静的な入出力関係:プロセス特性
8.2 ステップ入力に対する動的応答:プロセス反応曲線
8.3 プロセスモデル
8.4 他のシステム同定方法
9章 PIDチューニング
9.1 チューニングの目的
9.2 制御器パラメータ変更の一般的な効果
9.3 ジーグラ・ニコルスチューニング法
9.4 準解析的なチューニング方法
9.5 制御器のチューニング式を詳しく見ると
10章 実装上の問題
10.1 アクチュエータの飽和と積分器ワインドアップ
10.2 微分項の平滑化
10.3 サンプリング間隔の選定
10.4 種々のPID制御器
10.5 非線形制御器
11章 フィードバックの共通構造
11.1 動作条件を変更する:ゲインスケジューリング
11.2 大きな外乱とフィードフォワード
11.3 速いダイナミクスと遅いダイナミクス:入れ子型制御、または「カスケード」制御
11.4 ディレイを伴うシステム:スミスの予測法
第III部 ケーススタディ
12章 シミュレーションによる制御系の検証
12.1 ケーススタディ
12.2 モデリング時間
12.3 シミュレーションのフレームワーク
13章 ケーススタディ:キャッシュヒット率
13.1 コンポーネントの定義
13.2 システム特性の計測
13.3 制御器のチューニング
13.4 シミュレーション用のコード
14章 ケーススタディ:広告配信
14.1 状況の説明
14.2 システムの特性の計測
14.3 制御系の構成
14.4 性能の改善
14.5 制御系の変更
14.6 シミュレーション用のコード
15章 ケーススタディ:サーバの数の調整
15.1 状況の説明
15.2 計測とチューニング
15.3 標準的でない制御器を用いた成功率100%の実現
15.4 遅れの扱い
15.5 シミュレーション用のコード
16章 ケーススタディ:キューの長さの制御
16.1 キューとバッファの性質
16.2 制御の構成
16.3 セットアップとチューニング
16.4 微分制御の導入
16.5 その他の制御方法
16.6 シミュレーション用のコード
17章 ケーススタディ:冷却ファンのスピード
17.1 状況の説明
17.2 モデル
17.3 チューニングと試運転
17.4 閉ループ系の性能
17.5 シミュレーション用のコード
18章 ケーススタディ:ゲームエンジンのメモリ消費制御
18.1 状況の説明
18.2 問題の分析
18.3 ループ構造の選択
18.4 シミュレーション結果
18.5 シミュレーション用のコード
19章 ケーススタディのまとめ
19.1 シンプルな制御器とシンプルなループ
19.2 計測とチューニング
19.3 制御機能の保全
19.4 ノイズの取り扱い
第IV部 理論
20章 伝達関数
20.1 微分方程式
20.2 ラプラス変換
20.3 ラプラス変換を使用して微分方程式を解く
20.4 伝達関数
20.5 微分方程式が分からないときはどうするか
21章 ブロック線図上での代数計算とフィードバック方程式
21.1 複合系
21.2 フィードバック方程式
21.3 ブロック線図上での代数計算
21.4 伝達関数法の制約と重要性
22章 PID制御器
22.1 PID制御器の伝達関数
22.2 PIDコントローラの正規形
22.3 一般的な制御器
22.4 オフセット再考
23章 極と零点
23.1 伝達関数の構造
23.2 極と零点の影響
23.3 極の位置と応答パターン
23.4 ディレイに対して何ができるか
24章 根軌跡法
24.1 根軌跡の構成
24.2 根軌跡または「エバンス」ルール
24.3 ゲインと位相の評価
24.4 実務的な内容
24.5 例
25章 周波数応答とボード線図
25.1 周波数応答
25.2 ボード線図
25.3 安定限界の基準
25.4 他のグラフィカルな技術
26章 本書の内容を超えた話題
26.1 離散時間モデリングとz変換
26.2 状態空間法
26.3 ロバスト制御
26.4 最適制御
26.5 数理制御理論
第V部 付録
付録A 用語の説明
付録B Gnuplotでグラフを作成する
B.1 基本的な描画
B.2 描画の範囲
B.3 行内での変換
B.4 シミュレーション結果の描画
B.5 まとめ
付録C 複素数
C.1 基本的な演算
C.2 極座標系
C.3 複素指数関数
付録D より深く理解するために
D.1 推薦したい成書
D.2 そのほかの文献
D.3 前もって必要となる数学に関する書籍
D.4 監訳者が推薦する書物
監訳者あとがき
索引
続きを見る