python

シグモイド関数を描画する

シグモイド関数の一つをPythonを使って描画する 関数は \begin{align}y=\frac{1}{1+e^{-x}}\end{align} import numpy as np from matplotlib import pyp...
制御工学

線形非同次微分方程式の解の導出

あるシステムを表す線形非同次微分方程式 \begin{align}\dot{x} (t) = Ax(t) +Bu(t) \hspace{5mm} x(t_0)=x_0\end{align} の解を求める。 \begin{align} \do...
電子回路

500万画素のRaspberryPi用カメラの組み立て

AmazonにRaspberryPi用のカメラがあったので買いました。カメラはこれ↓ 組み立てはプラねじでアクリルを止めるだけ。組み立て手順の説明書はないが何とかなる。組み立てると画像のようになった。 付属品に長さの異なるリボンケーブルとド...
過渡解析

RC直列回路と時定数

これの続き。RC直列回路の回路方程式は \begin{align}E=Ri(t)+\frac{1}{C} \int i(t) dt\end{align} これを解けば \begin{align}q(t)&=CE(1- e^{ - \frac...
python

ルンゲクッタ法でRC回路の出力を求める

電流の関係式 \begin{align}i=\frac{dq}{dt}= C \frac{dv}{dt} \end{align} より出力電圧は \begin{align}\frac{dv}{dt} = \frac{E-v}{CR} \en...
python

Pythonでテント写像を描画する

テント写像は \begin{align}x_{n+1} = 1-\left | 1 - 2 x_{n} \right |\end{align} import numpy as np from matplotlib import pyplot...
python

Pythonで指定した極、零点、ゲインを実現する伝達関数を求める

これの続き。zpk2tfを使うと指定した極、零点、ゲインを持つ伝達関数を簡単に設計できるようになる。極、零点、ゲインは次のように指定する。 zero = np.array([]) pole = np.array() G = tf(*zpk2...
python

Pythonで古典制御と現代制御の双方の視点からばねマスダンパ系を解析する

これの続き。Pythonで同じ解析をした。 from control.matlab import * import numpy as np from matplotlib import pyplot as plt N = 1000 t = ...
python

Pythonでドップラー効果を計算する

ドップラー効果は観測者の速度を \( v_{0}\)、 音源の速度を\( v_{s}\) 、音源の周波数を\( f_{0}\) とすると \begin{align}f=f_{0} \frac{v-v_{0}}{v-v_{s}}\end{al...
python

Pythonでナイキスト線図を書く

これの続き。Pythonでナイキスト線図を書いてみた。 from control.matlab import * import numpy as np from matplotlib import pyplot as plt N=100 t...
python

Pythonで忘却係数付き逐次最小二乗法を実装する

これの続き。忘却係数付き逐次最小二乗法の更新則は \begin{align}\hat{\theta}_{N} &= \hat{\theta}_{N-1} + \dfrac{P_{N-1} z_{N} }{\rho + z_{N}^{T} P...
制御工学

指定した極を実現する伝達関数を求める

二次遅れ系 \begin{align}P(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}\end{align} に極が与えられたとき、その極を実現する伝達...
python

Pythonでボード線図を書く

Pythonでボード線図を書くにはbode関数を使えばいい。 from control.matlab import * from matplotlib import pyplot as plt s = tf('s') num= den= s...
python

Pythonでシステムの極を調べる

Pythonでシステムの極を調べるには syspole = pole(sys) を実行すればいい。以下コード from control.matlab import * s = tf('s') zeta = 1 omega = 2 P = o...
制御工学

二次遅れ系の極の導出

二次遅れ系 \begin{align}P(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}\end{align} の極を導出する。分子に\(s\)が含まれて...
python

PythonでPID制御をシミュレーションする

Pythonでフィードバック結合のシミュレーションをする。 \begin{align}P(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}\end{alig...
python

Pythonでフィードバック結合をシミュレーションする

Pythonでフィードバック結合のシミュレーションをする。 \begin{align}P(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}\end{alig...
python

Pythonで二次遅れ系のシミュレーションをする

Pythonで二次遅れ系をシミュレーションをする。 \begin{align}G(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}\end{align} コ...
ディジタル制御

双一次変換を使って二次遅れ系の伝達関数を離散化する

二次遅れ系の伝達関数 \begin{align}G(s)=\frac{\omega_n^2}{s^2+2 \zeta \omega_n s + \omega_n^2}\end{align} を双一次変換で離散化する。\(s\)に \begi...
python

Pythonで描いたグラフにgridを追加する

前回の結果のままでは見にくいのでgridを追加する。gridは plt.grid(color='k', linestyle='dotted', linewidth=1) で追加できる。引数を指定すればいろいろ変更できる。 import nu...