コンテンツへスキップ

短期集中:振動論と制御理論 工学系の数学入門 の感想です。

振動を例にモデル化しグラフを描くまで、制御の一番はじめの体験ができる本。

短期集中:振動論と制御理論 工学系の数学入門 日本評論社 吉田 勝俊

期間: ~2019年2月11日の3週間程度

内容(個人的まとめ)

  1. 力学の運動方程式
  2. 単振動,減衰振動,強制振動
  3. スケール変換
  4. ハーモニックバランス
  5. 複素数,ラプラス変換,伝達関数
  6. 解析力学入門
  7. 棒立て制御(倒立振子)
  8. 線形化

特徴

単振り子や倒立振子を取り上げて、ソフト「MATX」で計算を体験しながら理解できる本でした。全体的に簡単に書いているので、なんとなく理解できます。 キーワードが載っているので、次につなげることができます。

感想

(参考)読む前: 電気科3年後期のテスト期間でした。
力学は入試+学部1年でやったきりで、さっぱりわかりませんでした。 制御工学の初歩的知識は持っており、なんとなく伝達関数を記述できました。 また、私はpythonで計算しましたが、pythonはこれで初めてさわりました(最下部のリンク)。

全体

この本の内容は

うちの卒研生が配属直後の1カ月以内に本書の全課題をこなし、

本書 「はじめに」より

と書かれている通りの難易度です。

力学、振動の運動方程式の解き方など、非常に基本的な部分からスタートして倒立振子の姿勢制御までを紹介しています。 数値計算ソフトMATXを使用しながら演習できます。

私は MATX ではなくPythonでやりました。pythonは方程式を解いたりグラフを描いたりすることが簡単にできるのでおすすめです。MATXのコードが載っているので、コーディングの参考にできました。

力学がさっぱりわからない状態で、倒立振子の制御がやりたかった私に最適な本でした。参考にした本、この後に読むといい本が載っているのもかなり有難かったです。

1. 力学の運動方程式

よくある内容です。

2. 単振動,減衰振動,強制振動

電気科の私にはLRC回路が馴染みがありましたが、ばねとダンパーで復習できました。

3. スケール変換

2次方程式を解くのは面倒なので、パラメータを減らして1次方程式にします。このような操作をスケール変換と呼びます。 1次方程式にすると、プログラムで解くのが簡単になります。

4. ハーモニックバランス法

解き方です。

5. 複素数,ラプラス変換,伝達関数

基本的な内容です。

6. 解析力学入門

この本で、解析力学というものを初めて知りました。それだけでもこの本を読んで良かったと思いました。

解析力学では、運動の座標を変化させたり一般化して表現したりするみたいです。ラグランジュの運動方程式の知識があると、一般化された座標の運動方程式が比較的簡単に立てられます。

ラグランジュの運動方程式をこの本だけで理解するのは厳しかったです。

7. 棒立て制御(倒立振子)

ラグランジュの運動方程式は使わずに倒立振子の運動方程式を立てて、グラフに書きました(下記の関連記事)。途中式は(よくあることですが)書かれていないので大変でした。それっぽい波形が得られたので満足です。

8. 線形化

あまりよくわからなかったのでさらっと読みました。

次に読みたい

解析力学キャンパス・ゼミ 改訂2 マセマ出版社 馬場 敬之 (著)

力学 裳華房 原島 鮮 (著)

Pythonによる制御工学入門 オーム社 南 裕樹 (著)

関連記事

Jupyter Notebookで倒立振子の振動波形を表示する

研究などでpythonを使って計算したりグラフ描画したりしたい人のための基礎事項まとめ本」でした。

「研究などでpythonを使って計算したりグラフ描画したりしたい人のための基礎事項まとめ本」でした。

科学技術計算のためのPython入門――開発基礎,必須ライブラリ,高速化 技術評論社 中久喜 健司 (著)

期間: 2019年9月4週目~10月1週目くらい

内容(個人的まとめ)

  1. pythonプログラミングの例
  2. IPython,Spyderなど
  3. pythonの基礎事項
  4. NumPy
  5. pandas
  6. SciPy
  7. Matplotlib
  8. 高速化

特徴

科学技術計算でPythonを使用したいと考えている方に向けた本になっていました。特定の何かをしようというものではなく、例が豊富で実行しながらpythonでできることを一通り網羅的に紹介して貰える本です。

感想

(参考として)読む前:pythonのフロー制御とモジュールを使って簡単な計算を自動化するプログラムが作成できる程度の知識がありました。一方で、Open CVなどその時々に必要なモジュールがないかググり、Qiita等に書いてある範囲内で使用することしかできませんでした。

全体

読む以前から多少の知識がある状態で、基本事項を改めて確認し直したい私にはとてもちょうどいい本でした。もしかしたらpythonを書いたことのない方には難しいかもしれませんが、例が豊富なのでひとまず読むことはできるかと思います。

公式リファレンスを読むのはまだ重い...という私と同じような方におすすめです。

1. pythonプログラミングの例

プログラムを書き、テストし、高速化して利用するという流れを一通り見せてくれようとしている章でした。作業フローを教えてくれる本はあまりであったことがなかったので貴重です。

例としてロケットシミュレーターを挙げており、公開されているコードを落としてこれるので実行しながら読み進められるはずです。が!地図をプロットするmatplotlib.basemapがエラー吐きまくりだったのでコードの実行はあきらめました。

2. IPython,Spyderなど

私はJupyter Notebookで普段書いています。Jupyter Notebookで書くとグラフや画像がその場で表示されるしTab補完もできるのでで重宝しています。

IPythonとはどんなものか、Spyderとは何かといった、知らなくてもどうにかなるが知っていると便利、でもわざわざ調べないことが書いてあり有難かったです。

3. pythonの基礎事項

一応知っていた内容が多い部分でした。「インデキシングとスライシングっていう名前の上での分類があったんだー」というような、教科書改めて読むと面白いという感じの内容です。

4. NumPy

NumPyいつもimportするけどnp.piしか使わないじゃん、と思っていた俺を殴りたい。多次元配列ndarrayとはどのようなものか、何がいいのかということを、例を実行しながらイメージできました。

5. pandas

よく聞くpandasとNumPyの違いとは何か、どんな時にpandasを使えばいいのか、なんとなく分かった気になれます。主にデータ型Series,DataFrame,Panelsに関して書かれています。

ただし、Panelsに関しては、「将来的になくなるよ、使わない方がいいよ」と警告してもらったので(下記)読み飛ばしました。本の悪い部分は情報の更新がわからないことなので仕方がないですね。

Panel is deprecated and will be removed in a future version.
The recommended way to represent these types of 3-dimensional data are with a MultiIndex on a DataFrame, via the Panel.to_frame() method
Alternatively, you can use the xarray package http://xarray.pydata.org/en/stable/.

6. SciPy

SciPyの項目では、以下の項目について例を挙げていました。

  • 統計関数
  • 離散フーリエ解析
  • ボーデ線図
  • データの内挿(グラフに近似線を追加するなど)
  • デジタル信号フィルタの設計
  • 行列の分解

7. Matplotlib

使いたいときにググればいいと思い、読み飛ばしました。

8. 高速化

自分が今必要としていない部分だと思いましたので、読み飛ばしました。

次に読みたい

関連記事