『Pythonによる制御工学入門』サポートページ

更新履歴
2022.5.28 Python-control 0.9.2 がリリースされました
2022.5.25 正誤表(7刷版のみ)をアップデート
2022.5.10 第1版第7刷となりました(1000部)
2022.2.26 正誤表(6刷版のみ)をアップデート
2022.1.23 Juliaコードを公開しました
2022.1.12 中国語翻訳版情報を掲載しました
2022.1.1 Python-control 0.9.1 がリリースされました
2021.12.20 正誤表(6刷版のみ)をアップデート
2021.11.16 正誤表をアップデート
2021.10.4 第1版第6刷となりました(1000部)
2021.7.30 正誤表(5刷版のみ)をアップデート
2021.6.6 MATLABコードをMATLAB Drive上で共有しました
2021.3.21 Python-control 0.9.0 がリリースされました
2021.2.6 第1版第5刷となりました(1000部)
2020.9.7 正誤表をアップデート
2020.7.28 正誤表をアップデート
2020.5.10 第1版第4刷となりました(1500部)
2020.4.30 MATLABコードを公開しました
2020.3.20 正誤表をアップデート
2020.1.13 正誤表をアップデート
2019.10.10 正誤表をアップデート
2019.10.3 正誤表をアップデート
2019.9.23 第1版第3刷となりました(1500部)
2019.7.17 正誤表をアップデート
2019.7.15 正誤表をアップデート
2019.7.15 第1版第2刷となりました(700部)
2019.6.22 正誤表をアップデート
2019.6.6 正誤表をアップデート
2019.6.4 正誤表をアップデート
2019.6.3 正誤表をアップデート
2019.5.31 正誤表を掲載
2019.5.29 補足資料(単元対応表)を掲載
2019.5.24 補足資料(登場人物紹介)を掲載
2019.5.22 書籍発売(2000部)

Pythonによる
制御工学入門

著者:南裕樹
出版社:オーム社
出版日:
2019年5月25日
(第1版第1刷)

用Python
轻松设计控制系统

南裕树著
施佳贤译
机械工业出版社
2021年9月
(第1版第1刷)

Pythonによる制御工学入門は,オーム社のページやAmazon楽天などで購入ができます


演習環境の構築 | Setup

3通りの方法を紹介します.どれか一つを選んで演習環境を構築してください.最新版のPython-controlライブラリを利用するなら,AnacondaかGoogle Colaboratoryをおすすめします.AnacondaはPCに仮想環境を構築するプラットフォームです.Google ColaboratoryはGoogleが提供するwebサービスです.Googleアカウントがあれば利用できます.最後に,Dockerは,インストールの手間は多少ありますが,環境を汚さない,著者の執筆時とまったく同じ環境(Slycot==0.3.3, Control==0.8.1)で演習ができるといったメリットがありますが,できるだけ最新の環境を構築するのが良いでしょう.

2022.6.8 Google Colabの不具合
Google Colab でPython-controlを利用する場合,stepでクラッシュする不具合がでるようです。解決策は二つあります。

①MKLをアップグレード(もしくは削除)する。
!pip install slycot control
!pip install -upgrade mkl

②Minicondaをインストールしてconda環境を構築する。
・Minicondaのインストール
!wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
!bash Miniconda3-latest-Linux-x86_64.sh -b -f -p /usr/local
・ライブラリのインストール
!conda install -c conda-forge slycot control
・設定
import sys
sys.path.append(‘/usr/local/lib/python3.9/site-packages/’)

追記 2021.3.21
Python 3.8 + slycot 0.4.0.0, control 0.9.0 で演習できます.サンプルコードをほぼそのまま利用できますが,注意点はつぎのとおりです
・lsim で伝達関数モデルの応答を計算するときに警告がでます
 これは初期値に関するもので,状態空間モデルであれば警告はでません
・ [[[mag]]], [[[phase]]], omega = freqresp(H1, [40]) ではエラーがでますので修正が必要です
  [mag], [phase], _ = freqresp(H1, [40]) に置き換えてください
・離散時間システムに対して,bodeを使うとき,ナイキスト周波数を含む帯域を指定していると警告が出ます
追記 2020.12.31
Python 3.8 + slycot 0.4.0.0, control 0.8.4 で演習できます.
ただし,bodeやnyquist, rlocusなどの引数を Plot=False としているとwarningがでます.plot=False のように,pを小文字にしてください.たとえば,gain, phase, w = bode(H, logspace(-1,2), plot=False) です.
追記 2020.12.21
Python 3.8 + slycot 0.4.0.0, control 0.8.3 で演習できます.
Anaconda での導入は,conda install -c conda-forge slycot controlとします.インストールできない場合は,conda update anaconda をしてから試してみてください.
Google Colabratory での導入は,!pip install slycot control とします.

Pythonコードリスト | Sample code

JupyterNotebook のコードリストです.
コピー&ペーストで演習を進めていくことができますが,
行数はそれほど多くないですので,自力で打ち込んでいくことをオススメします.

2章のコードリストnbviewerColab
3章のコードリストnbviewerColab
4章のコードリストnbviewerColab
5章のコードリストnbviewerColab
6章のコードリストnbviewerColab
7章のコードリストnbviewerColab

ipynb形式(JupyterNotebook形式)のファイルを公開します.必要に応じて利用してください.
https://github.com/373yuki/pyctrl.git

Colab (Google Colaboratory) では,【ドライブにコピーを保存】してから作業を開始してください.
そして,最初に,!pip install slycot と !pip install control を実行してください.

MATLAB & Juliaコード | Sample code

MATLABのmlx形式(ライブスクリプト形式)のファイルを公開します.
また,Juliaのコード(JupyterNotebook形式)を公開します.Juliaのライブラリは,ControlSystems, Plots, LinearAlgebraを利用しています.

MatlabJulia
2章のコードリストnbviewer
3章のコードリストMatlab Drivenbviewer
4章のコードリストMatlab Drivenbviewer
5章のコードリストMatlab Drivenbviewer
6章のコードリストMatlab Drivenbviewer
7章のコードリストMatlab Drivenbviewer

補足 | Supplement

正誤表 | Errata list

誤植があります.読者の皆様には大変なご迷惑をお掛けいたしましたことを深くお詫びいたします.

第1版第1刷

第1版第2刷

第1版第3刷

第1版第4刷

第1版第5刷

第1版第6刷

第1版第7刷

補助資料

オンライン勉強会の動画です
★PPTスライドが必要な方はご連絡ください

講義動画を公開しています.大学の講義用ですので,すこし難しい内容ですが,本の内容に沿っています.
https://note.com/y373/n/n968c816685ef

(暫定版)

謝辞

イラストは,明川真弓様に書いていただきました.
書籍の組版は,株式会社 Green Cherry の山本宗宏様にご担当いただきました.
また,オーム社の編集者の皆様には企画から出版までお世話になりました.
ありがとうございました.

このページは,『Pythonによる制御工学入門』のためのものです.
公開するプログラムソースの利用,改変,再配布は自由に行っていただいて結構です.
ただし, 改変&利用によって発生した損害の責任は一切行いませんので,ご了承下さい.