古典制御

python

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

これの続き。Pythonでナイキスト線図を書いてみた。from control.matlab import *import numpy as npfrom matplotlib import pyplot as pltN=100t=np.l...
制御工学

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

二次遅れ系\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 plts = tf('s')num=den=sys = t...
python

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

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

二次遅れ系の極の導出

二次遅れ系\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{align...
python

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

Pythonでフィードバック結合のシミュレーションをする。\begin{align}P(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}\end{align...
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\)に \begin...
システム同定

指定した応答を実現するようなシステムの設計法

指定した応答を実現するようなシステムを設計することを考える。システムを次で与える。\begin{align} G&=\frac{ z^{-1} P(1) }{ P(z^{-1}) }\\P(z^{-1})&=1 + p_1 z^{-1} +...
MATLAB/simulink

逐次最小二乗法を使って二次遅れ系の伝達関数を推定する

逐次最小二乗法については前回の記事を参照。逐次最小二乗法を用いて二次遅れ系の伝達関数\begin{align}G(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}...
制御工学

感度関数と相補感度関数

次のような制御器\(K(s)\)とプラント\(P(s)\)で構成されるフィードバックシステムを考える。この系の伝達関数は\begin{align}G (s) =\frac{P(s)K (s) }{1+P (s) K (s) }\end{al...
ディジタル制御

システムの離散化と零次ホールド

D/Aなどにより現在の出力が次の出力に移るまでの出力は一定値に保持されるのがふつうである。これを零次ホールドという。零次ホールドの伝達関数は\(u(t)-u(t-1)\)に対応するようにすればよいので\begin{align}G(s)= \...
ディジタル制御

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

一次遅れ系の伝達関数\begin{align}G(s)=\frac{K}{Ts+1}\end{align} を双一次変換で離散化する。\(s\)に \begin{align}s=\frac{2(1-z^{-1})}{ T_{s} (1+z^...
制御工学

オペアンプを使ってPID制御器を作る #1

以前MATLABでPID制御をシミュレーションした。今回はアナログ電子回路でPID制御を実装する。簡単に作る場合はオペアンプを用いればよく、かなり単純である。次回以降理論を追いつつ設計する。
MATLAB/simulink

離散システムのボード線図を書く

\begin{align}G=\frac{1}{s+1}\end{align}を離散化する。c2dで離散化すると伝達関数は\begin{align}G=\frac{0.00995}{z-0.99}\end{align} となる。離散システム...
制御工学

線形時不変なシステムのH∞ノルムを手で計算する

線形時不変なシステム\begin{align}H(s)=\frac{1}{s^2+s+1}\end{align}\(H(j \omega)\)の絶対値は\begin{align}H(j \omega)=\frac{1}{\omega^4-\...
制御工学

手動リセット量項を考量した時のPID制御則

ある線形時不変なシステムが\(t_0\)において定常状態でありその時の操作量を手動リセット量として\(m_0\)と定義する。この時PID制御則は\begin{align}m(t)=K_P (r (t) -y(t)) + K_I \int_0...
制御工学

二次遅れ系のインパルス応答

次のような二次遅れ系の伝達関数\(G(s)\)\begin{align}G(s)=\dfrac{\omega_{n}^2}{s^2 + 2 \zeta \omega_{n} s+ \omega_{n}^2}\end{align}について、イ...
制御工学

共振角周波数と共振値

次のような二次遅れ系\begin{align}G(s)=\dfrac{R(s)}{C(s)}=\dfrac{\omega_{n}^2}{s^2 + 2 \zeta \omega_{n} s+ \omega_{n}^2}\end{align}...