コマンドプロンプトでサーバーをlocalhostで立てて、ブラウザで表示しているんじゃないかと思います(このあたりよく解ってませんが。ブラウザで開いている間にJupyterNotebookを消すとエラーをはきます。発生したエラーについて保存した画像が真っ白になっている。-qiita振動の基礎とコード図4:線形振動系の力学モデル機械屋さんにとってのかなり基本的なモデル(らしい)で考えます。ニュートンの運動方程式を立てます。$$これは強制振動を表しています。自由振動は正弦波などのように振動し続けます。減衰振動は自由振動が次第に減衰していきます。強制振動は減衰振動に外力を加えている場合です。日常生活では大概空気抵抗などで減衰するので減衰振動がイメージしやすいかと思います。制御するときはモータが動いているので強制振動です。外力をf(t)と書いていますから、f(t)=0なら減衰振動、f(t)の項が有れば強制振動になります。上の式を作為的に以下のように変形します。_nは振動時の周波数に対応しています。これが減衰振動の基本的なモデルです。ζ=0のとき全く減衰しないのでsin波のような自由振動をし、ζ=1の時過不足無く(クッションに沈むように)目標値に到達します。実際には誤差や外乱が入るので制御系を作るときには0.7くらいにするそうです。今回はpythonで解きたいので、ここから変形していきます。本当はいろんな方法が有るみたいなんですが、そのうちやると言うことにして、今回は参考本と同じ方法で解いていきたいと思います。常微分方程式を解きます。二次方程式は大変なので、以下のように書きかえます。f(t)$$この式のように変数の位置x(t)を配列としてpythonで定義すると、以下のようになります。x(t)とx'(t)をsolのリストの[:,0]、[:,1]成分へ格納する。それぞれ再現出来ました。振り子を図に示します。軸の粘性摩擦係数をCとおきました。ここから、下の4つの式が立てられます。ここからH,Vを消去します。-3f(t)...(9)$$f(t)に角度と各速度についてフィードバックさせます。1/3[kg]とおくと、以下のようにかけます。プログラムで解けるように一階化します。(g-K)\theta_1$$一応全体の全体をラプラス変換して伝達関数の式を求めます。(せっかく導出したから書きたい。\frac{\Theta(s)}{F(s)}=\frac{-3}{(4M+m)ls^2+3ls-3(M+m)g+K}$$雑記プログラミング系のサイトは最近公開されたものを見るように気をつけるようになりました。機械系や電気系の、特に理論はかなり成熟しているのでふるいサイトでも何でも読みやすくわかりやすければ良いんですが、情報系はツールがどんどん更新されていくので最新のを見ないと妙なところで躓いてしまいます。おかげで私のPCちゃんはパスとかアプリとか訳が分からない感じになっています。情報系の特にweb系のブロガーさんは情報収集がすごいので、最新のでも誰かしら先にやっていますので安心ですね。それと、解析力学が難しいですね。時間をかけないとわからないです。制御はやって行きたいので、のんびり本を読んでいきます。追記(2019/3/20)参考リンクをリストにしました。Amazonリンクを増やしました。