MATLAB/simulink フェルマーの最終定理をMATLABで計算してみる フェルマーの最終定理とは \begin{align}z^n=x^n+y^n (n>2)\end{align} を満たす自然数の組は存在しないというものである。\(n=2\)の場合はピタゴラスの定理となり解が存在する。この場合の解は直角三角形... 2021.08.23 MATLAB/simulink代数数学
MATLAB/simulink MATLABを使って完全数を探す 完全数とは自身の約数の和が自身の二倍になるような整数のことである。例えば\(6\)は \begin{align}1+2+3+6=2\times 6\end{align} となり完全数である。今回はこれをMATKLABを使って探索する。 コー... 2021.08.04 MATLAB/simulinkプログラミング数学
MATLAB/simulink Sherman–Morrison–Woodburyの公式をMATLABで計算する Sherman–Morrison–Woodburyの公式とは \begin{align}(A+BDC)^{−1}=A^{−1}−A^{−1} B (D^{−1}+CA^{−1}B)^{−1} CA^{−1}\end{align} である。今... 2021.08.02 MATLAB/simulinkプログラミング代数数学
MATLAB/simulink Ziegler-Nicholsの限界感度法を用いたPIDゲインを調整法 PID制御器をZiegler-Nicholsの限界感度法を用いて調整する。限界感度法は1時遅れ系+むだ時間もしくは積分系むだ時間の時有効となる手法である。 まず、simulinkで次のような 1時遅れ系+むだ時間のPID制御モデルを作成する... 2021.08.01 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink MATLABを使って行列の指数関数を計算 MATLABを使って前回の記事で考察した行列の指数関数を計算する。簡単に復習をすると行列の指数関数は \begin{align} e^A=\sum_{k=0}^{\infty}\frac{(P^{-1} A P)^k}{k!}=P^{-1}... 2021.07.30 MATLAB/simulinkプログラミング制御工学
MATLAB/simulink simulinkでシミュレーションした結果をワークスペースに書き出してグラフを作成する simulinkでシミュレーションした結果のグラフをMATLABを使って出力する。 前回の記事のモデルにTo Workspaceブロックを次のように追加する。 このようにすればワークスペースにoutの構造体として格納されるので、MATLAB... 2021.07.27 MATLAB/simulinkプログラミング制御工学現代制御
MATLAB/simulink simulinkで状態方程式をシミュレーションする 前回の記事の続き 前回のパラメータを使ってsimulinkでシミュレーションした。モデルはこれ。 結果は同じになる。 2021.07.26 MATLAB/simulinkプログラミング制御工学古典制御現代制御
MATLAB/simulink 古典制御と現代制御の双方の視点からばねマスダンパ系を解析する ばねマスダンパ系について、古典制御と現代制御の各変数の相互関係とそれらの解析結果が一致することを示す。 ばねマスダンパ系の運動方程式は \begin{align}M \ddot{y}(t) + C \dot{y} (t) + ky (t) ... 2021.07.22 MATLAB/simulinkプログラミング制御工学古典制御現代制御
MATLAB/simulink クラーク変換とパーク変換をとりあえず試す 細かいことは気にせずクラーク変換を実装する。クラーク変換は \begin{align}\begin{bmatrix}\alpha \\ \beta \\ \gamma\end{bmatrix}=k \begin{bmatrix}1 & -\... 2021.07.20 MATLAB/simulinkプログラミング電気機器
MATLAB/simulink 線形時不変なシステムのH∞ノルムを計算する 線形時不変なシステムのH∞ノルムを計算する。適当な伝達関数 \begin{align}G(s)=\frac{1}{(s+1)(s+2)}\end{align} を定義する。H∞ノルムの定義は \begin{align}\| G(j \ome... 2021.07.20 MATLAB/simulinkプログラミング制御工学古典制御現代制御
MATLAB/simulink 線形時不変なシステムの可制御行列と可観測行列を調べる 線形時不変なシステム(A,B,C,D)の可制御性と可観測性を調べる。以前証明した結果から 可制御性行列 \begin{align}M_c=\begin{bmatrix}B & AB & \cdots & A^{n-1}B\end{bmatr... 2021.07.20 MATLAB/simulinkプログラミング制御工学現代制御
MATLAB/simulink MALTABを使ってボード線図を書く MATLABでボード線図を描くとき bode(sys) とすれば即座に得られるが、今回は別の方法で描画する。 ボード線図はゲイン線図と位相線図からなり、その定義は \begin{align}gain &: 20 \log_{10} |G(j... 2021.07.19 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink MATLABでもっとも単純な数値積分と数値微分を実装する 伝達関数 \begin{align}P=\frac{1}{s^2+1}\end{align} の単純な数値積分と数値微分を考える。 始めに確認のため、連続時間での結果を確認する。連続時間での微分と積分はラプラス演算子を用いて \begin{... 2021.07.18 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink ボード線図の示す意味と応答への影響 伝達関数とボード線図の関係を考察する。今伝達関数が \begin{align}G(s)=\frac{s^2+1}{s^2+6s+8}\end{align} で与えられているとする。この時の分子多項式に\(s=-j \omega\)を代入した... 2021.07.16 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink 離散時間モデルのボード線図とstep応答 MATLABを使って離散時間モデルのボード線図の描画とstep応答を調べる。MATLABのbode関数は離散時間モデルにも対応しているので簡単。 ボード線図 step応答 ソース T = 0.1; s=tf("s"); Gs = 2/(3*... 2021.07.15 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink MATLABで離散モデルに対しPID制御器を作りシミュレーションする 前回に続いてMATLABで離散モデルに対しPID制御器を構築する。与えられたモデルを離散化するには G=c2d(omega^2/(s^2+2*zeta*omega*s+omega^2),Ts); を使えばいい。例では二次遅れ系をサンプル時間... 2021.07.13 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink MATLABでPID制御器を作りシミュレーションする MATLABでPID制御器を作って実装する。MATLABにはモデルを与えればそれっぽくPID制御器を構築してくれる便利な関数pidtuneがあるので今回はこれを使う。pidtuneの構文は下記の通り。 = pidtune(G,'PID');... 2021.07.13 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink 極に着目した連続時間システムと離散時間システムの安定性判別 初めに連続時間システムの伝達関数の安定性を調べる。連続時間システムの伝達関数は \begin{align}P_1=\frac{ a_m s^m+a_{m-1} s^{m-1}+ \cdots + a_0}{ b_n s^n+b_{n-1} ... 2021.06.23 MATLAB/simulinkディジタル制御プログラミング制御工学古典制御
MATLAB/simulink 離散化した伝達関数の応答をシミュレーションする 離散化した伝達関数の応答を調べる。今回はStep応答を調べた。 今プラントを\(G(z^{-1})\)、入力を\(r(t)\)とすると出力は \begin{align}y(t)=G(z^{-1}) r(t-1)\end{align} コード... 2021.06.22 MATLAB/simulinkディジタル制御プログラミング制御工学
MATLAB/simulink 伝達関数の離散化と誤差 前回MATLABを使って伝達関数を離散時間モデルに変換した。前回の結果より \begin{align}G=\frac{10}{15s+1}\end{align} が \begin{align}\frac{0.6449}{z - 0.9355... 2021.06.22 MATLAB/simulinkディジタル制御プログラミング制御工学