レビュー,書籍紹介・書評掲載情報

Pythonの基本と振動・制御工学への応用

Pythonの基本と振動・制御工学への応用

ビギナーのためにPythonのインストールから始め,簡単な四則演算,グラフ描画,ファイル入出力などを紹介し,微分方程式やラプラス変換,フーリエ変換,固有値問題なども解いていく。さらには振動工学,制御工学の問題も扱う。

発行年月日
2024/02/22
定価
3,300(本体3,000円+税)
ISBN
978-4-339-03246-8
在庫あり

レビュー,書籍紹介・書評掲載情報

書評掲載 機械設計 2024年5月号

書評掲載 機械設計 2024年5月号

掲載日:2024/04/10

機械設計 2024年5月号 Sekkei Book Review(p126)に書評掲載いただきました。

読者モニターレビュー【 MK 様(業界・専門分野:建設業 )】

掲載日:2024/02/14

本書は大学で学ぶ工業数学をPythonを用いて学習することができる。
対象としては大学初級から中級の内容であり、研究室配属前の大学生や学びなおしの社会人エンジニアなど基本的な大学の数学やプログラミングは一応は学んだことはあるが、具体的な問題をプログラミングを用いて実装したことがない方に向いていると思われる。

本書の特徴はPythonを用いて具体的に手を動かし、式の答えを求めるだけでなくグラフなどを用いて視覚化しながら理解できるようになっていることである。
なぜPythonなのか?はまえがきに記載がある。
工業数学を解く場合、一つは具体的な数値を用いる数値計算ともう一つは文字変数(Symbol)のまま数式処理する場合がある。
Pythonでは前者はNumpy、後者はSympyを用いて無料で解くことが可能であり、本書はそのPythonの良さを存分に活用できるようになっている。
工業数学の題材として、微分方程式、ラプラス変換、フーリエ級数、固有値解析を選び基本的な数式の展開に加え、NumpyとSympyを用いて数値計算と数式処理を学ぶことができる。

本書の構成は初めに後で使用するPythonの基本を学び、続いてPythonを用いた工業数学の演習、そして最後に工業数学の具体的な応用として機械力学(振動工学)と制御工学の演習を学ぶ流れとなっており、前から順を追って学んでいくうち手を動かして工業数学を解くことができるようになるであろう。
本書の内容の中で特に機械力学(振動工学)分野の例題は1質点系の基本的なものからダイナミックマスのような実践的なものまで記載がありそれらの例題を様々な方法で視覚的に理解できる点が良いと感じた。
これらの内容を理解し、具体的にPythonで実装できるようになれば本書以外の振動工学問題にも挑戦できるようになると感じられた。

本書を購入をお考えの方の参考になれば幸いである。

読者モニターレビュー【 計算機ゼミ 様(業界・専門分野:制御工学 )】

掲載日:2024/02/14

本書ではPythonのインストールから制御工学への応用まで幅広く対応している。Anacondaを用いて実験するので環境構築が容易であり、基本文法から解説が始まるのでこれからpythonを学習する人にはぴったりだ。本書の最も特徴的な要素にPADと呼ばれるプログラム設計手法を解説している点にある。設計手法を学ぶことでpythonに限らず活躍する知識を身に着けることができる。また、振動制御も機械振動・電気回路などの基礎的な例題から非線形問題まで取り扱っており魅力的である。マスばねダンパ系の物理モデルを用いた簡単な対象から振動解析が始まるので、制御工学に触れたことのない人にもおすすめである。多自由度モード系についても扱うため振動における基礎部分をグラフなどの視覚的な情報と共に直観的な理解を手助けしているので比較的わかりやすい。制御工学については小難しい証明などはないので、とりあえずPIDなどを使ってみたい人におすすめである。総じてプログラム初心者や制御初心者におすすめである。振動分野についてはかなり重厚なつくりになっているので、制御を一通り学んだうえで取り組むと良いかもしれない。

読者モニターレビュー【 かい 様(業界・専門分野:制御工学 )】

掲載日:2024/02/02

本書は、振動工学と制御工学をPythonで手を動かしながら学ぶことができる。これは初学者から中級者が対象である。

第1章ではPythonの環境構築及び使いかたに書かれている。画像に番号が振られているため、誰でも簡単に環境構築ができる。第2章ではPythonの使い方が書かれており、初心者でもこれを見れば基礎的なことができるようになる。第3章ではPADの書き方を学ぶことができ、プログラムを記述する際に思考を整理する手段を身に着けることができる。以前、私はプログラムの思考整理にフローチャートを用いていたが、それと比べ簡潔かつコンパクトに書け、見やすくなるので次回からはPADを使おうと思う。第4章では、振動工学や制御工学に必要な数学について説明がされている。約40ページという少ないページ数ではあるが、図を多く用いているため簡潔かつ明瞭に書かれており、数学が苦手な人でもわかるように書かれている。第5章は振動工学について書かれており、線形の振動解析だけでなく、非線形の振動解析についても学ぶことができる。1自由度系の振動から多自由度の振動に拡張されていくので、本書で初めて振動工学を学ぶ人でもわかりやすいと思う。第6章では制御工学(古典制御)について書かれている。特徴的なのは一般的な古典制御の本では安定性の後にPID制御について言及されるが、本書は逆になっていることである。PID制御を先に説明した方が実用的ではあるが安定性を知らなければ適切に設計できないため、安定性を説明してからPID制御について説明した方がよいと思われる。また、古典制御では非線形の振動制御も知りたいと思ったため、著書の方には改訂版を出版する際に現代制御や非線形制御についても言及してほしい。第7章では、著者が作成した関数の解析がなされている。

本書をご購入予定の方々のご参考になれば、非常に幸いである。

読者モニターレビュー【 JAZZCAT 様(業界・専門分野:鉄鋼機械エンジニアリング )】

掲載日:2024/02/01

レビュアーは、松下、藤原、保手浜各氏による著書「Pythonの基本と振動・制御工学への応用」をレビュー致しました。その結果を箇条書きにて、下記致します。

① まず、本書の目的は、まえがきに書かれている通り、「ソフトウェア紹介本」です。タイトルは「Pythonの基本と振動・制御工学への応用」と書かれており、レビュアーは、振動や制御についても、基本事項から展開され、丁寧な数式変形や、解の物理的(もしくは工学的)な意味合いの説明がされているように感じましたが、あくまでも上記の通り、「ソフトウェア紹介本」であり、かつ、それ(本書ではPython)を利用して振動や制御の基本的な問題や具体例を解いていく書籍ですので、誤解されないよう、お気をつけ頂ければと思いました。そのため、後述致しますが、数学や振動、制御に関する基本事項の説明は、最小限にとどめられ、簡潔にまとめられている感があります。ある程度の前提知識があることが条件になっているかと思います(まえがきには特に、本書を読む上で前提条件などは書かれておりませんが)。

② 本書はプログラム言語として、Pythonを利用していますが、これは非常に良いことだと感じました。その理由は、次の3点です:
a) 「無料」で利用できる点(以下に示す理由を加味し、コスパが非常に良い)

b) 数値計算およびその解の図表示が可能であること、および、数式展開が可能であること→有料ソフトであるMATHMATICAやMATLABといった数式処理ソフトや、制御系に特化した専用ソフトの機能を兼ね備えている、とも解釈できると思います。上記2つのソフトはいずれも、高価なもので、個人ではなかなか所有することが難しいものと思います(上記2つのソフトのフリー版もありますが、それぞれ単一の機能のみを有しており、2つの機能を同時に満たしているものは無いと思います)。

c) Pythonと近年発達が著しいAIとの相性が非常に良い(Pythonで学ぶ・・・といった書籍が、ここ最近、多くなってきていることは、周知の事実かと思います)ため、今後の 理工系のプログラミングは、Pythonが主流になるのではないか?と考えられます。実際に、私が勤務する会社では、開発部隊がPythonを導入し、成果を上げています。また、本書のまえがきにも書かれている通り、「仕事の仕方を変貌させる可能性がある」とありますが、まさにその実例とも考えられます。

③ 以下は、相反する記述であることは、レビュアー自身が承知の上であえて記載致します。
まえがきに書かれている通り、「数式・計算に悩まされることより、図表を用いてもっと上流側の物理的考察や力学的解釈に注力した講義を展開したい」とあり、著者らは、非常に本質的な部分を考えられた上で、本書の執筆をされているものと思い、非常によいと感じました。
レビュアーは、数式モデルやその変形は、対象とする現象を物理モデルに置き換え、そこから導かれるものと考えています。よって、本質的な部分は、対象とする現象を物理モデルに置き換える部分にあると思います。但し、物理モデルに物理学の知見を適用し、数学モデルが得られたとしても、その数式の基本的な解法や変形のやり方などは、ある程度知っておく(できるようにしておく)必要があると思います。その理由は、以下の通りです:
a) 変形の過程で、様々な数学を駆使することができ、それだけでも勉強になる

b) 得られた解から、再度、物理モデルとつき合わせることで、物理的な解釈ができ、対象としている現象の本質的な理解ができるまた、現場やPythonがない環境では、人の手と脳だけが、唯一の手段になるためでもあります(これは、厳密に解が出なくても、ある程度の解の方向性が分かれば良い、という意味です)。

④ 本書の構成は、本書の紹介用HPを参照頂ければと思いますが、第4章~第6章が、主要課題である、工業数学、機械力学、および制御工学の各論になっています。
a) 第4章のPythonで解く工業数学で、「(常)微分方程式」、「ラプラス変換」、「フーリエ変換」、「固有値問題」の4テーマを扱っています。この中に、偏微分方程式が含まれていませんが、第5章で扱う機械力学の中に、連続体の振動が含まれていないので、不要かと感じました。
上記4つのテーマは、機械力学および制御工学の基本的な事項で扱う数学がすべて含まれている(逆に言えば、知らないと各論を理解することが難しい)ので、特に問題は無いものと思いました。但し、①でも記載した通り、基本事項の説明は、最小限にとどめられ、簡潔にまとめられている感があるため、大学1、2年次程度の「物理および数学の基礎的」な知識を持っている必要はあると思いました。

b) 第5章および6章については、本書のメインとも考えられる章です。機械力学もしくは制御工学を単一で扱う書籍は、数多く販売されているかと思いますが、この2つを同時に扱っている書籍はあまり多くは無いと思います(あったとしても、機械力学関係もしくは制御工学関係が、申し訳程度に記載されているレベル)。そのため、本書は希少な書籍であると思います。

c) 第4章も含めて、Pythonを使わなくても、工業数学、機械力学、制御工学の(必要事項が簡潔にまとめられている)テキストとしても、大いに利用可能な書籍であると思いました。特に、時間をとることが難しい会社員の方々や、短時間で上記3分野を復習したい学生や社会人の方々にも、非常に有益な書籍であると感じました。なお、例題はPythonを使って解かれていますが、必要に応じて、第1章から第3章を読んで、理解した上で、例題の内容(プログラムの中身の理解)を吟味すれば良いものと思いました(Pythonはあくまでもツールとして利用すると考えるべき、とレビュアーは考えています。理論の理解なくして、ツールを使いこなすことは、到底難しいのではないかという考えからです。また、後述しますが、理論の理解ができていない方は、Pythonのプログラムを作成する上で欠かせない、PADの作成も難しいと思います)。

⑤ 第1章から第3章は、Pythonの基本事項とプログラムの作成方法(PADの利用)について、記載されています。上述の通り、時間をとることが難しい読者は、第4章からの本質的な部分から読み始め、必要に応じて、第1章から第3章に戻って、理解を深めていく方法も良いのではないか、とレビュアーは思いました。これはPythonに限ったことではないですが、プログラムを理解する、もしくは、自分で作成するためには、自分自身にそのプログラム言語をしみこませ、自由自在に使いこなせる必要が不可欠です(レビュアーも大学時代や大学院時代に経験済みです)。それにより、そのプログラムをより深く理解することが可能になると思います。
一例として、プログラムをコンパイルした際に、バグなどが出て、プログラムが停止してしまった場合、何が悪いのかが、即座に分からないことがあったとします。その際、プログラム言語が体にしみついていれば、どこが悪かったのか、大まかな当たりをつけることも可能となります。

⑥ 第3章について、⑤とは別に記載致します。これは、本書の特徴の1つと考えられますが、従来のプログラム(例えば、FORTRANやJAVAなど)を利用した工学書では、フローチャートを用いて、プログラムをどのように組むかを説明しているものが多いように感じました。
本書では、PADを利用し、フローチャートと同様にプログラムをどのように組むかを検討した上で、プログラムの作成を行っています。ここまでは、従来のテキストと変わりはありませんが、第1章から第3章では、随所に分かりやすいコメントが付記されており、初学者やプログラムを苦手とする方々への非常に丁寧な配慮がなされていると思いました。また、第4章以下では、プログラムの横にPADの設計図が付記されており、どのようにしてプログラムを組んだのか、一目瞭然で理解できる点が、非常に丁寧で分かりやすいと感じました。また、分かりにくい点についてはさらに、コメントが付記されているので、特に戸惑うことなく、理解を進めていけるものと思いました。

⑦ 以下、各章ごとにレビューした結果を記載致します。上記①~⑥と重複した記述となっている部分もありますが、ご了承願います。

第1章:Python事始め
a) Pythonの未使用、未経験者にも、インストールの方法から、計算の実行方法まで、図に番号を付記して、丁寧に解説されており、分かりやすいと思いました。

b) 計算プログラムにも細かく丁寧なコメントが付けられており、分かりにくい点や疑問に思った点がすぐに解消されると思いました。

第2章:Python速習十講
a) 第1章に記載した内容が、第2章でも踏襲されています。分かりやすいと思いました。

b) 本章は、実際に計算を実行するための項目なので、読者自身で1つずつプログラムを実行し、答えを確認する方が、身につきが早いものと思いました。

c) プログラムを実行した後の解のグラフ表示の方法、データの出力方法も分かりやすく、見やすく説明されております。

d) 時間を取ることが難しい読者の方は、第4章以降を先にお読み頂き、必要な時に本章に戻られても良いのではないかと思いました。

第3章:PADによるプログラミング技法
a) プログラムの設計という、他書にあまり類をみない特長があり、そこから、プログラムの作成を行っている点が、基礎に則っており、非常に評価できる書籍だと思いました。類書では、「理論の説明→理論に則ったフローチャートの作成→プログラム提示」で終わってしまっており、具体的な解説やコメントが無いように見受けられます。本書では、理論(本書では、具体的な例題を通じて)をどのようにプログラム化するか、という点に重点をおいているところが良いと思いました。

b) 第4章以降も同様ですが、PADとPythonのプログラムを併記し、比較しながら、読者に理解を促している点がとても良いと思いました。これも他書にはあまり類をみない特長だと思いました。

第4章:Pythonで解く工業数学
a) 第5章以降で必要となる最低限の数学の知識を扱う章です。上記④a)でも触れましたが、本章では、機械力学および制御工学の基本的な事項で扱う数学がすべて含まれている(逆に言えば、知らないと理解することが難しい)と思いました。その理由は、下記の通りです:
(第5章)
機械振動系では、「常微分方程式の解析解と数値解」が求められる必要があります。解析解については、PCが無くても、その場で計算が可能であること、また、読者自身で理論を用いて現象を数学的、物理的に説明することができることが何よりも重要なためです。数値解については、解析解が求められない場合(例えば、現象が非線形の場合など)には、数値解で現象を説明する必要があります。そのために、本書では、Pythonを利用し、数値解の導出を行っています。さらに、機械振動系が多自由度や連続体、具体的な機械(例えば、回転機械を精密に解析したい場合など)となった場合には、モード解析、モードの直交性といった概念が必要となります。そのためには、「固有値問題」を解く必要があります。上記は全て、本章に含まれております。

(第6章)
制御系(特に、古典制御)では、「過渡応答と定常応答」が求められることが重要であり、そのために、微分方程式を解ける必要があります。そのために、第5章があるものとレビュアーは考えています。しかしながら、過渡応答は十分時間が経過すれば、その影響はほとんど無くなり、定常応答のみが支配的となります。微分方程式から定常応答のみを導出するのであれば、ラプラス変換とフーリエ変換の関係を知ることが重要となりますので、その点で、本章に、ラプラス変換の項目が含まれているものと思います。また、ラプラス変換は、古典制御で最も重要と思われる「ブロック線図の作成」に必要不可欠なものです(微分方程式をラプラス変換することで、微分方程式を代数方程式という極めて扱いやすいものに変換することができ、複雑な制御系を構成する場合も、代数演算で扱うことができる重要なものです)。

b) 本章に出てくる数式などは、Pythonのプログラムを実行する前に、読者自身の手で可能な限り導出できるようにすることが優先かと思いました。その理由は、理論の理解とそこから導出される数式を解くことの大変さを知ることで、Pythonを利用する意味をより深く理解することができるからです。

c) 但し、本章での数学を扱う具体的な根拠(機械力学や制御工学での必要性)が示されていないようにレビュアーには感じましたので、時間をとることが難しい読者は、一読目は、「このような数学が必要になるのか」といった感じで読み進め、早めに続章を読まれる方が、より本書の核心に迫れるものと思いました。必要に応じて、本章に戻り、必要となる数学を理解される方が良いと思いました。

第5章および第6章:機械力学および制御工学
扱われている内容は、必要かつ十分なもの(詳細は、本書の紹介用HPを参照願います)だと思いました。但し、記述されている内容は、あくまでも、Pythonを利用して、いかに解を導出するか、という点を重視していますので、簡潔な説明となっていると思いました。よって、初学者は本書とは別に1+1冊(機械力学および制御工学を1冊ずつ)、適切なテキストを準備され、ある程度の基礎知識を持った上で、本書に望まれる方が良いものと思いました。

第7章:私設関数
主に、第5章、第6章のPythonプログラムで必要となる、著者自身で作成されたプログラムの説明が記載されています。

索引
Pythonのコマンドがまとめられているので、必要に応じて、辞書的に活用することができ、非常に有用なものと思いました。

以上、簡単ではありますが、本書をレビューした結果を記載致しました。本書をご購入予定の方々のご参考になれば、非常に幸いです。