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プログラミング制御工学古典制御
制御工学 関数とノルム 信号などの大きさを図る手法としてノルムが定義されている。普段よく使う絶対値 \begin{align}|x|= \begin{cases}x \hspace{5mm} &( x \geq 0) \\-x &( x < 0)\end{case... 2021.07.19 制御工学
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プログラミング制御工学古典制御
制御工学 現代制御の視点から見た線形時不変な多入力多出力なシステムのPID制御 線形時不変な多入力多出力なシステム \begin{align}\dot{x}(t)&=Ax(t)+Bu(t) \\y(t)&=Cx(t)\end{align} をPID制御則は \begin{align}u(t)=K_{P} (r-y(t)... 2021.07.12 制御工学現代制御
制御工学 線形システムに対するリアプノフの定理の必要十分条件 線形システムの安定性を考える。このとき \begin{align}V(x)=x^{T} Px\end{align} と考えればその微分は \begin{align}\dot{V} (x)=\dot{x}^{T} P x + x^{T} P ... 2021.07.11 制御工学現代制御
制御工学 状態方程式の同値変換 次の状態方程式で表現されるシステム \begin{align}\dot{x}(t) &=Ax(t)+Bu(t)\\y(t)&=Cx(t)\end{align} において任意の正則な行列\(T¥)を使って \begin{align}\over... 2021.07.10 制御工学現代制御
C/C++/C# C言語での多次元配列の渡し方 C言語で配列を宣言する場合 int mat; などとする。このように定義された配列を関数に渡すときは先頭のアドレスを渡せばよく、実際の関数の宣言は void func(int *mat) となる。 一方で多次元配列のこれが多次元になると話が... 2021.07.09 C/C++/C#プログラミング
制御工学 線形時不変システムの可制御性の十分条件 線形時不変な状態方程式 \begin{align}\dot{x}(t) &= Ax(t)+Bu(t) \\y(t)&=Cx(t)+Du(t)\end{align} について \begin{align}\mathrm{rank} M_c = ... 2021.07.06 制御工学現代制御
制御工学 線形時不変システムの可観測性 線形時不変な状態方程式 \begin{align}\dot{x}(t) &= Ax(t)+Bu(t) \\y(t)&=Cx(t)+Du(t)\end{align} が不可観測であるとする。不可観測性から求められる異なった二つの初期値を\(x... 2021.07.05 制御工学現代制御
制御工学 直達行列を含む線形時不変な状態方程式の出力を求める 線形時不変な状態方程式 \begin{align}\dot{x}(t) &= Ax(t)+Bu(t) \\y(t)&=Cx(t)+Du(t)\end{align} の初期値を\(x(0)\)とすればその解は \begin{align}x(t... 2021.07.05 制御工学現代制御
制御工学 線形時不変システムの可制御性の必要条件 次のような線形時不変な状態方程式 \begin{align}\dot{x}(t) &= Ax(t)+Bu(t) \\y(t)&=Cx(t)+Du(t)\end{align} で表されるシステムの可制御性について考える。このシステムの解は \... 2021.07.04 制御工学現代制御
制御工学 伝達関数から状態方程式への変換例 線形時不変な伝達関数と状態方程式との変換を考える。 \begin{align}G(s)=\frac{5}{s^2-3s+4}\end{align} \begin{align}U(s)&= s^2-3s+4 \\Y(s)&=5\end{ali... 2021.07.02 制御工学古典制御現代制御
制御工学 状態方程式から伝達関数への変換例 線形時不変な状態方程式と伝達関数との変換を考える。 \begin{align}\dot{x}(t) &= Ax(t)+Bu(t) \\y(t)&=Cx(t)+Du(t)\end{align} の各変数を \begin{align}A=\be... 2021.07.01 制御工学古典制御現代制御
制御工学 状態方程式と伝達関数の関係から見るシステムの安定条件 線形時不変な状態方程式 \begin{align}\dot{x}(t) &= Ax(t)+Bu(t) \\y(t)&=Cx(t)+Du(t)\end{align} との伝達関数表現は \begin{align}G(s)=C(sI-A)^{-... 2021.07.01 制御工学古典制御現代制御
制御工学 状態方程式と伝達関数の相互変換 線形時不変な状態方程式 \begin{align}\dot{x}(t) &= Ax(t)+Bu(t) \\y(t)&=Cx(t)+Du(t)\end{align} と伝達関数との関係について考える。状態方程式をラプラス変換すれば \begi... 2021.06.30 制御工学古典制御現代制御