MATLAB/simulink

MATLAB/simulink

MATLABでモジュロ演算の結果を比較する

モジュロ演算の結果を比較する。比較する関数にmyismodを作成した。 以下コード。 a=18; b=23; m=12; b1= mymod(a,m); b2=myismod(a,b,m); function b=mymod(a,m) wh...
MATLAB/simulink

MATLABでモジュロ演算をする

MATLABでモジュロ演算を定義する。モジュロ演算は割り算の余りを求める演算で、\(q\)を余りとすると通常の割り算は次のようになる。 \begin{align}a \div m = p \cdots q\end{align} これを次のよ...
MATLAB/simulink

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

MATLABの関数を使ってゼータ関数の零点を計算する。今回は\(s=-6+yi\)上の計算結果を複素平面上にプロットした。 以下コード。 Nmin=0; Nmax=35; d=0.1; count=1; result=zeros(1,Nma...
MATLAB/simulink

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

MATLABの関数を使ってゼータ関数の零点を計算する。今回はクリティカルライン上の計算結果を複素平面上にプロットした。 当然、原点との交点が \begin{align}\zeta(s)= \sum_{i=1}^{\infty} \frac{...
MATLAB/simulink

MATLABで3次元プロット

MATLABで3次元グラフを描いた。コード自体はplot3のページで公開されているものとほぼ同じ。 以下コード。 d=0.01; t=0:d:10*pi; st = 2.*sin(t); ct = 2.*cos(t); figure; pl...
MATLAB/simulink

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

MATLABを使ってゼータ関数の零点を計算する。\(s\)を\(s=\frac{1}{2}+yi\)とするとゼータ関数のノルムは \begin{align}\zeta(s)= \left \|\sum_{i=1}^{\infty} \fra...
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...