MATLAB/simulink

MATLAB/simulink

MATLABの関数を使ってゼータ関数の零点を計算する

MATLABを使ってゼータ関数の零点を計算する。\(s\)を\(s=\frac{1}{2}+yi\)とするとゼータ関数は \begin{align}\zeta(s)= \sum_{i=1}^{\infty} \frac{1}{n^s}\en...
MATLAB/simulink

MATLABで磁場を計算する その1

磁場に関するクーロンの法則は、磁荷\(m_1,m_2\)、距離\(r\)とすると \begin{align}F=k\frac{m}{r^2} \mathrm{}\end{align} ここで\(k\)は単位に関する定数で \begin{al...
MATLAB/simulink

MATLABで磁場に関するクーロンの法則を計算する その1

磁場に関するクーロンの法則は、磁荷\(m_1,m_2\)、距離\(r\)とすると \begin{align}F=k\frac{m_1m_2}{r^2} \mathrm{}\end{align} ここで\(k\)は単位に関する定数で \beg...
MATLAB/simulink

MATLABでフィボナッチ数列を計算する

詳しくは→【C言語】フィボナッチ数列を計算する MATLABでフィボナッチ数列を計算する。以下コード。 N=10; F=zeros(1,N+2); n=0; F(1,n+1)=0; n=1; F(1,n+1)=1; for n=0:1:N ...
MATLAB/simulink

Matlabで立方体表面のメッシュを作る

Matlabで立方体表面のメッシュを作る。2枚ずつ作って組み合わせればいい。 N=50; x1=linspace(-1,1,N); y1=linspace(-1,1,N); z1=linspace(-1,1,2); x2=linspace(...
MATLAB/simulink

MATLABでLpノルムを計算する

\(L_p\)ノルムは次のように定義される。 \begin{align}|| {\bf x} ||_p = \left ( |x_1|^p + |x_2|^p + \cdots + |x_n|^p \right )^{-p}\end{ali...
MATLAB/simulink

MATLABでヒルベルト行列を作る

MATLABでヒルベルト行列を作る。ヒルベルト行列は各要素が \begin{align}H_{ij}=\frac{1}{i+j+1}\end{align} の正方行列である。 clc clear N=5; H=zeros(N); for i...
MATLAB/simulink

MATLABで双一次変換を使った離散PID制御と連続PID制御の応答を確認する

双一次変換を使った離散PID制御と連続PID制御の応答を確認する。双一次変換は連続時間の伝達関数に対して\(s\)を \begin{align}s=\frac{2(z-1)}{T(z+1)}\end{align} に置き換えればいい。\(T...
MATLAB/simulink

MatlabでPID制御のシミュレーションをする

MatlabでPID制御のシミュレーションをする。システムとPID制御器の伝達関数は \begin{align}P&=\frac{1}{s+1} \\C&=K_P + \frac{K_I}{s} + K_D s \end{align} また...
MATLAB/simulink

【解数】Pythonで指数と対数のグラフを描く

指数と対数のグラフを描く。以下ソースコード import numpy as np import matplotlib.pyplot as plt x = np.arange(-10.0, 10.0, 0.02) plt.plot(x, x*...
MATLAB/simulink

【制御】加法的不確かさを持つモデル集合のボード線図を書く

加法的不確かさは \begin{align}\tilde{P}=\{P+\Delta W_a: \|P\|_\infty \leq 1\}\end{align} で与えられる。この定義に従い、次のような場合のモデル集合\(\tilde{P}...
MATLAB/simulink

【制御】乗法的不確かさを持つモデル集合のボード線図を書く

乗法的不確かさは \begin{align}\tilde{P}=\{(1+\Delta W_m)P: \|P\|_\infty \leq 1\}\end{align} で与えられる。この定義に従い、次のような場合のモデル集合\(\tilde...
MATLAB/simulink

【制御】MATLABで離散時関系のH∞ノルムを求める

MATLABならば連続時間のときと同じ。 以下コード s=tf('s'); sys=c2d(1/(s^2+s+1),1); norm(sys,Inf)
MATLAB/simulink

【制御】MATLABでH∞ノルムを計算する

線形時不変なシステム \begin{align}H(s)=\frac{1}{s^2+s+1}\end{align} のH∞ノルムを求める。すでに用意されている関数を使えばすぐに実装できる。 以下コード s=tf('s'); sys=1/(s...
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} この時逆問題は ...