MATLAB/simulink

MATLAB/simulink

【MATLAB】ヘロンの公式を実装する

ヘロンの公式は三角形の三辺と面積とを結ぶ関係式で \begin{align}S=\sqrt{s(s-a)(s-b)(s-c)} \hspace{10mm} s=\frac{a+b+c}{2}\end{align} MATLABでは func...
MATLAB/simulink

【MATLAB】2つの座標間の角速度ベクトルの関係をクォータニオンを使って定義する

2つの座標間の角速度ベクトルをクォータニオンを使って表すと \begin{align}\dot{\boldsymbol{q}} = \boldsymbol{T}_q (\boldsymbol{q}) \boldsymbol{\omega}\...
MATLAB/simulink

【MATLAB】クォータニオンと回転行列の相互変換を定義する

回転行列とクォータニオンは相互に変換することができる。いまクォータニオンが\(\boldsymbol{q} \in \mathbb{Q}\)と定義されているとすると回転行列とクォータニオンは \begin{align}\boldsymbol...
MATLAB/simulink

回転行列を微分する

回転行列の微分は外積因子を用いて \begin{align}\dot{\boldsymbol{R}}=\boldsymbol{R} \boldsymbol{S}(\boldsymbol{\omega})\end{align} ここで\(\o...
MATLAB/simulink

MATLABで定義したヤコビアンを計算する関数を改造して逆回転を扱えるようにする

あるベクトル2つのベクトルの関係がヤコビアンによって次のように与えられているとする。 \begin{align}\boldsymbol{y}= \boldsymbol{J} \boldsymbol{x}\end{align} この時逆問題は...
MATLAB/simulink

MATLABで定義した回転行列を計算する関数を改造して逆回転を扱えるようにする

あるベクトル2つのベクトルの関係が回転行列によって次のように与えられているとする。 \begin{align}\boldsymbol{y}= \boldsymbol{R} \boldsymbol{x}\end{align} この時逆問題は ...
MATLAB/simulink

MATLABで状態空間モデルを離散化してシミュレーションする

MATLABで状態空間モデルを離散化し、シミュレーションする。シミュレーションするモデルはバネマスダンパを用いる。連続時間モデル \begin{align}\dot{x}(t)&=Ax(t)+Bu(t)\\y&=Cx(t)\end{alig...
MATLAB/simulink

MATLABで回転行列を定義してオイラー角が複数あることを調べる

回転行列 \begin{align} \boldsymbol{R}_{x}(\boldsymbol{η}) = \begin{pmatrix} 1 & 0 & 0\\ 0 & \cos \phi & - \sin \phi \\0 & \s...
MATLAB/simulink

MATLABで外積因子を定義する

外積は \begin{align}\boldsymbol{A} \times \boldsymbol{B}=\begin{vmatrix}\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\...
MATLAB/simulink

MATLABで回転行列とヤコビアンを一つの行列で表現して6自由度を扱えるようにする

剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義される位置ベクトル \begin{align}\boldsymbol{\eta}=\begin{pmatrix}\boldsymbol{\e...
MATLAB/simulink

MATLABで位置ベクトルと速度ベクトルを変換するための回転行列を定義する

剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義される位置ベクトルと \begin{align}\boldsymbol{\eta}_1=\begin{pmatrix}x \\ y \\ z...
MATLAB/simulink

MATLABで角度ベクトルと角速度ベクトルを変換するためのヤコビアンを定義する

剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義されるオイラー角ベクトルと \begin{align}\boldsymbol{\eta_{2}}= \begin{pmatrix}\phi ...
MATLAB/simulink

matlabで自作関数を定義してRadian-Degree相互変換を行う

Matlabで自作関数を作りRadian-Degree相互変換を行う。Radian-Degreeの相互関係は \begin{align}\theta = \frac{\theta }{180} \pi\end{align} を使えばいい。 ...
MATLAB/simulink

MATLABで共分散を計算する

MATLABで共分散を求める。共分散は次のように求められる。 \begin{align}\mathrm{Cov} = E - \mu_x \mu_y\end{align} A=; B=; CovAB=(A*B')/length(A)-mea...
MATLAB/simulink

MATLABで分散共分散行列を求める

分散共分散行列は \begin{align}\Sigma = E)] {}^{t} \! (X-E)]\end{align} で与えられる。MATLABでは A=; B=; C=; Data=; mu=mean(Data,2); sigma...
MATLAB/simulink

MATLABの互換にはGNU Octaveがいいらしい

GNU Octaveを試してみる。フリーなので今ある記事も置き換える予定。
MATLAB/simulink

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

前回の記事の続き 前回と同様に逐次最小二乗法を用いて二次遅れ系の伝達関数 \begin{align}G(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}\e...
MATLAB/simulink

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

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

MATLABを使って零次ホールドを試す

matlabを使って零次ホールドを試す。対象のシステムは \begin{align}G=\frac{s}{1+s}\end{align} 零次ホールドは \begin{align}H=\dfrac{1-e^{-sT}}{s}\end{ali...
MATLAB/simulink

MATLABで楕円を書く

楕円の座標は \begin{align}x&=a \cos \theta\\y&=b \sin \theta\end{align} で計算できる。\(a=b\)の時、円になる。 a=2; b=5; theta=-2*pi:0.01:2*pi...