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

Book description

「フィードバック制御」の歴史は古く、18世紀に起こった産業革命に起源を持ちます。本書は産業界では常識であってもソフトウェア業界では知られていなかったこの概念を、ソフトウェアエンジニアたちに広く紹介し、品質や生産性を上げることを目的に執筆された画期的かつ野心的な一冊です。著者は著名なPythonプログラマであり、ソフトウェアエンジニアの視点に立ち、理論よりも実用に重きを置いており、特に事例の多さは圧巻です。シミュレーションのコードがすべてPythonで書かれており、実際に試して、現場のプロジェクトに応用して生かすことができる実践的な内容です。

Table of contents

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

Product information

  • Title: エンジニアのためのフィードバック制御入門
  • Author(s): Philipp K. Janert, 野原 勉, 星 義克, 米元 謙介
  • Release date: July 2014
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873116846

You might also like

book

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

by Andreas C. Muller, Sarah Guido, 中田 秀基

Pythonの機械学習用ライブラリの定番、scikit-learnのリリースマネージャを務めるなど開発に深く関わる著者が、scikit-learnを使った機械学習の方法を、ステップバイステップで解説します。ニューラルネットを学ぶ前に習得しておきたい機械学習の基礎をおさえるとともに、優れた機械学習システムを実装し精度の高い予測モデルを構築する上で重要となる「特徴量エンジニアリング」と「モデルの評価と改善」について多くのページを割くなど、従来の機械学習の解説書にはない特長を備えています。

book

デザインスプリント ―プロダクトを成功に導く短期集中実践ガイド

by Richard Banfield, C. Todd Lombardo, Trace Wax, 安藤 幸央, 佐藤 伸哉, 牧野 聡

本書はGV(旧Google Ventures)およびGoogleで提唱しているデザイン思考「デザインスプリント」の概念とその手順を実践的に解説。デザインスプリントではプロダクトやサービスのアイデアを短時間で作り上げ、ユーザーに示して評価してもらい、アイデア創出からプロトタイピング、ユーザーテストと評価までをわずか5日間で完了させるためのプロセスが定められています。本書では組織でデザインスプリントを実践するために必要な事柄を紹介し、多くのリソースを投入する前にプロダクトやサービスのアイデアを検討し、チームメンバー、ステークホルダー、そしてユーザーを巻き込みながら短期間でより良いユーザー体験を作り上げる方法を伝授します。

book

プロダクションレディマイクロサービス ―運用に強い本番対応システムの実装と標準化

by Susan J. Fowler, 佐藤 直生, 長尾 高弘

UberのSRE(サイト信頼性エンジニア、サイトリライアビリティエンジニア)として、マイクロサービスの本番対応向上を担当していた著者が、その取り組みから得られた知見をまとめたものです。モノリス(一枚岩)を複数のマイクロサービスに分割した後に、安定性、信頼性、スケーラビリティ、耐障害性、パフォーマンス、監視、ドキュメント、大惨事対応を備えたシステムにするために必要な原則と標準に焦点を当て、本番対応力のあるマイクロサービスを構築する手法を紹介します。本書で採用している原則と標準は、マイクロサービスだけなく多くのサービスやアプリケーションの改善にも威力を発揮します。

book

データサイエンス講義

by Rachel Schutt, Cathy O'Neil, 瀬戸山 雅人, 石井 弓美子, 河内 崇, 河内 真理子, 古畠 敦, 木下 哲也, 竹田 正和, 佐藤 正士, 望月 啓充

コロンビア大学のデータサイエンス入門講義をベースとした本書では、データサイエンスを行う上で、どのようなプロセスが必要か、データサイエンティストとしてはどのようなスキルセットが必要で、どのような思考方法を選択する必要があるのかを実例とともに紹介します。Google、Microsoft、Facebookをはじめとした有名企業で使われているアルゴリズムや分析手法の紹介など、興味深い話題や事例を豊富に収録。幅広い解説で、データサイエンティストの参考になるトピックが満載の一冊です。