MATLAB/simulink MATLABで状態空間モデルを離散化してシミュレーションする MATLABで状態空間モデルを離散化し、シミュレーションする。シミュレーションするモデルはバネマスダンパを用いる。連続時間モデル \begin{align}\dot{x}(t)&=Ax(t)+Bu(t)\\y&=Cx(t)\end{alig... 2022.03.15 MATLAB/simulinkプログラミング制御工学現代制御
MATLAB/simulink MATLABで回転行列を定義してオイラー角が複数あることを調べる 回転行列 \begin{align} \boldsymbol{R}_{x}(\boldsymbol{η}) = \begin{pmatrix} 1 & 0 & 0\\ 0 & \cos \phi & - \sin \phi \\0 & \s... 2022.03.15 MATLAB/simulinkプログラミング幾何数学
MATLAB/simulink MATLABで外積因子を定義する 外積は \begin{align}\boldsymbol{A} \times \boldsymbol{B}=\begin{vmatrix}\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\... 2022.03.14 MATLAB/simulinkプログラミング幾何数学
MATLAB/simulink MATLABで回転行列とヤコビアンを一つの行列で表現して6自由度を扱えるようにする 剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義される位置ベクトル \begin{align}\boldsymbol{\eta}=\begin{pmatrix}\boldsymbol{\e... 2022.03.14 MATLAB/simulinkプログラミング幾何数学
MATLAB/simulink MATLABで位置ベクトルと速度ベクトルを変換するための回転行列を定義する 剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義される位置ベクトルと \begin{align}\boldsymbol{\eta}_1=\begin{pmatrix}x \\ y \\ z... 2022.03.14 MATLAB/simulinkプログラミング幾何数学
MATLAB/simulink MATLABで角度ベクトルと角速度ベクトルを変換するためのヤコビアンを定義する 剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義されるオイラー角ベクトルと \begin{align}\boldsymbol{\eta_{2}}= \begin{pmatrix}\phi ... 2022.03.13 MATLAB/simulinkプログラミング幾何数学
MATLAB/simulink matlabで自作関数を定義してRadian-Degree相互変換を行う Matlabで自作関数を作りRadian-Degree相互変換を行う。Radian-Degreeの相互関係は \begin{align}\theta = \frac{\theta }{180} \pi\end{align} を使えばいい。 ... 2022.03.13 MATLAB/simulinkプログラミング幾何数学
MATLAB/simulink MATLABで共分散を計算する MATLABで共分散を求める。共分散は次のように求められる。 \begin{align}\mathrm{Cov} = E - \mu_x \mu_y\end{align} A=; B=; CovAB=(A*B')/length(A)-mea... 2022.02.05 MATLAB/simulinkプログラミング数学確率・統計
MATLAB/simulink MATLABで分散共分散行列を求める 分散共分散行列は \begin{align}\Sigma = E)] {}^{t} \! (X-E)]\end{align} で与えられる。MATLABでは A=; B=; C=; Data=; mu=mean(Data,2); sigma... 2022.02.02 MATLAB/simulinkプログラミング数学確率・統計
MATLAB/simulink MATLABの互換にはGNU Octaveがいいらしい GNU Octaveを試してみる。フリーなので今ある記事も置き換える予定。 2021.11.15 MATLAB/simulinkプログラミング
MATLAB/simulink 逐次最小二乗法を使って二次遅れ系の伝達関数を推定する その2 前回の記事の続き 前回と同様に逐次最小二乗法を用いて二次遅れ系の伝達関数 \begin{align}G(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}^2}\e... 2021.11.15 MATLAB/simulinkシステム同定プログラミング制御工学
MATLAB/simulink 逐次最小二乗法を使って二次遅れ系の伝達関数を推定する 逐次最小二乗法については前回の記事を参照。 逐次最小二乗法を用いて二次遅れ系の伝達関数 \begin{align}G(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{... 2021.11.13 MATLAB/simulinkシステム同定プログラミング制御工学古典制御
MATLAB/simulink MATLABを使って零次ホールドを試す matlabを使って零次ホールドを試す。対象のシステムは \begin{align}G=\frac{s}{1+s}\end{align} 零次ホールドは \begin{align}H=\dfrac{1-e^{-sT}}{s}\end{ali... 2021.10.23 MATLAB/simulinkディジタル制御プログラミング制御工学
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... 2021.10.22 MATLAB/simulinkプログラミング幾何
MATLAB/simulink MATLABで忘却係数付き逐次最小二乗法を実装する 忘却係数付き逐次最小二乗法の更新則は \begin{align}\hat{\theta}_{N} &= \hat{\theta}_{N-1} + \dfrac{P_{N-1} z_{N} }{\rho + z_{N}^{T} P_{N-1}... 2021.10.11 MATLAB/simulink制御工学
MATLAB/simulink インボリュート曲線を描く 歯車の設計にはインボリュート曲線が使われる。今回は基礎円とそこから延びるインボリュート曲線を描く。 インボリュート曲線とは円柱に巻き付けられた糸を撓ませることなく引き出した時、糸の先端がたどる軌跡を示す曲線を言う。 媒介変数を用いて \be... 2021.10.09 MATLAB/simulinkプログラミング機械
MATLAB/simulink MATLAB2021aにおけるfor文の計算速度 MATLABを使うときよく言われるのは「for文は遅い」だと思う。今回は2021aでその速度を調べた。 使用したソースコード N=100000000; A1=1:1:N; A2=1:1:N; B1=zeros(1,N); tic for i... 2021.10.03 MATLAB/simulinkプログラミング
MATLAB/simulink MATLABでFizz Buzz Fizz Buzzとは ・3の倍数→Fizz ・5の倍数→Buzz ・15の倍数→Fizz Buzz つまり 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fi... 2021.09.29 MATLAB/simulinkプログラミング
MATLAB/simulink 離散システムのボード線図を書く \begin{align}G=\frac{1}{s+1}\end{align} を離散化する。c2dで離散化すると伝達関数は \begin{align}G=\frac{0.00995}{z-0.99}\end{align} となる。離散シス... 2021.09.11 MATLAB/simulinkプログラミング制御工学古典制御
MATLAB/simulink フェルマーの小定理をMATLABで計算してみる フェルマーの小定理は\(p\)が素数、\(a\)を\(p\)の倍数でない整数とすると \begin{align}a^{p-1} \equiv 1 \pmod{p}\end{align} が成り立つというものである。\(\mathrm{mod... 2021.08.24 MATLAB/simulinkプログラミング数学