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ディジタル制御プログラミング制御工学
MATLAB/simulink MATLABで作ったグラフ画像を高解像度で保存する MATLABで作ったグラフ画像を高解像度で保存したい時がある。 普通にメニューバーからや saveas(gcf,'figname.png') で保存すると低解像度になってしまう。そういう時は print(gcf,'-djpeg','fign... 2021.06.17 MATLAB/simulinkプログラミング
MATLAB/simulink MATLABでむだ時間を含む伝達関数を定義してシミュレーションをする MATLABを使ってむだ時間を含む伝達関数を定義して一時遅れ系をシミュレーションする。むだ時間を含む一時遅れ系は \begin{align}G=\frac{K}{1+Ts} e^{-Ls}\end{align} で与えられるような系である。... 2021.06.10 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink MATLABで伝達関数を定義してシミュレーションをする MATLABを使って伝達関数を定義して一時遅れ系をシミュレーションする。一時遅れ系は \begin{align}G=\frac{K}{1+Ts}\end{align} で与えられるような系である。この系の微分方程式は一階の微分方程式になる。... 2021.06.08 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink MATLABでシステム同定用のM系列信号を生成する MATLABでシステム同定用のM系列信号を生成する。 ツールボックスがないと動かない可能性があるので注意。 結果がこんな感じ。 コード N = 350; u = idinput(N,'rbs'); figure plot(u) ylim()... 2021.06.08 MATLAB/simulinkシステム同定プログラミング制御工学
MATLAB/simulink m-file内での関数呼び出し matlabは外部に関数を用意する方法以外にm-file内部で関数を定義することもできる。 この場合、定義した関数は同一m-file内以外では使用することができないが、ちょっと試す場合に便利である。 こんな感じで使うことができる。 x=-1... 2021.05.21 MATLAB/simulinkプログラミング
MATLAB/simulink MATLABで簡易逆ガンマ関数を実装する ガンマ関数を使えば階乗を一般化でき便利である。 \begin{align}\Gamma(n+1)=n!\end{align} 今回は\(n!\)となる\(x\)の値をmatlabを使って求める。 n=8256; f=@(x) abs(n-g... 2021.05.11 MATLAB/simulinkプログラミング数学解析
MATLAB/simulink 状態空間モデルをMATLABでシミュレーションする 制御工学には古典制御で用いられる伝達関数とは別に、現代制御で用いられる状態空間モデルがある。状態空間モデルは次のようなものである。 \begin{align}\dot{x}&=Ax+Bu\\y&=Cx+Du\end{align} MATLA... 2021.05.01 MATLAB/simulinkプログラミング制御工学現代制御
MATLAB/simulink χ²分布をプロットしてみる 確率分布にはよく使われる正規分部の他に\(\chi^2\)分布というものもある。 \(\chi^2\)分布は\(x\)が負の実数の時は\(0\)となる。グラフを書くだけであれば\(x\)が正の実数を取るときの値を調べればいい。 これより計算... 2021.04.27 MATLAB/simulinkプログラミング確率・統計
MATLAB/simulink 正規分布とパラメータの意味 ガウス分布は正規分布とも呼ばれ\begin{align}f(x)=\dfrac{1}{ \sqrt{2 \pi \it{σ}^2 }} \exp \left ( - \frac{\left ( x-\it{μ} \right )^2}{2 ... 2021.04.27 MATLAB/simulinkプログラミング数学確率・統計
MATLAB/simulink サンプリング周波数と信号波形 計算機を用いてグラフを描画する際は離散化された値で計算をするためサンプリング周波数は重要である。今回は一例として正弦波について異なるサンプリング周波数で信号の取得を行い、取得波形の確認を行う。 正弦波の式は \begin{align}y=\... 2021.04.25 MATLAB/simulinkシステム同定プログラミング制御工学
MATLAB/simulink MATLABでナイキスト線図を書く ナイキスト線図を使えば複雑なシステムの安定判別をより容易に行えるようになる場合がある。今回は細かいことを気にせずただナイキスト線図を描画する。正しく描けているかのチェックにはMATLABの関数「nyquist」を使用した。 いま開ループ伝達... 2021.04.23 MATLAB/simulinkプログラミング制御工学
MATLAB/simulink 離散系の積分器 古典制御の範囲では制御対象や制御器を表現する場合にはラプラス変換を用いて\(s\)の関数として表した。例えばPID制御の一部である積分器は \begin{align}K_{i} \int_{0}^{t} e(\tau) d \tau\end... 2021.04.23 MATLAB/simulinkディジタル制御プログラミング制御工学
MATLAB/simulink 一次遅れ系の伝達関数に含まれるパラメータを変更してそれぞれの係数の意味を理解する 一次遅れ系の伝達関数 \begin{align}G=\frac{K}{Ts+1}\end{align} について、係数の持つ意味を理解する。一般に\(K\)は比例ゲイン、\(T\)は時定数と呼ばれる。 次のグラフは比例ゲインを固定し、時定数... 2021.04.22 MATLAB/simulink制御工学古典制御
MATLAB/simulink MATLABでトーラスを描く MATLABを使ったトーラスの描き方はMATLABのヘルプセンターにサンプルコードがある。そのコードはSymbolic Math Toolboxを使って書かれてるため不必要な形になるよう書き直した。 トーラスは次の式で与えられる \begi... 2021.04.20 MATLAB/simulinkプログラミング幾何数学