流体力学

【流体力学】連続の式の導出

ある領域に流入する流体の総量と流出する流体の総量は、領域内の流体の変化量は等しいので \begin{align}\frac{d}{dt} \int_V \rho dx = - \int_{\partial V} \rho \boldsymb...
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...
幾何

クォータニオンを定義してノルムを計算する

クォータニオンのための各変数を定義する。\(\eta,\varepsilon\)を \begin{align}\eta &:= \cos\left (\dfrac{\beta}{2} \right )\\\boldsymbol{\varep...
ロシア語

【ロシア語】アルファベット

ロシア語のアルファベットは大文字と小文字がそれぞれ33個づつある 1Ааアー2Ббベー3Ввヴェー4Ггゲー5Ддデー6Ееイェー7Ёёイョー8Жжジェー9Ззゼー10Ииイー11Ййイクラトカエ12Ккカー13Ллエル14Ммエム15Нн...
ロシア語

ロシア語で数を数える

ロシア語で1~10の数を数えると表のようになる четыреに使われる"ч"と"у"の混同に注意 1oneОдин 2twoдва3threeтри4fourчетыре5fiveпять6sixшесть7sevenсемь8eightв...
C/C++/C#

C言語で配列の長さを取得する

sizeofを使えば配列の長さを自動取得できるようになる。 int A = { 1,2,3,4 }; int size = sizeof(A) / sizeof(int); printf("%d", size);
C/C++/C#

C言語で配列の中身を表示する

lenは配列の長さ、listを配列のポインタとすれば次のようにすれば表示できるようになる。 void showVector( int len, int* list) { int i, index = 0; for (i = 0; i < l...
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...
交流

平均値を導出する

正弦波交流 \begin{align}v(t)=V_m \sin \omega t\end{align} の平均値を求める。平均値は \begin{align}V_{ab} = \frac{1}{2 \pi} \int_0^{2\pi} \...
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} を使えばいい。 ...