2021-10

制御工学

RLCバンドパスフィルタの伝達関数

回路方程式が \begin{align}E _{I} =L\frac{di}{dt} + \frac{1}{C} \int i dt + Ri\end{align} のようなバンドパスフィルタを考える。 いま出力が \begin{align...
電験

承認と許可の違い

電気工事士法第43条には自家用電気工作物を設置するものが「許可」を受けて主任技術者の免状を受けてないものを主任技術者に選任することができることが規定されている。 電気法規にはたびたび「許可」と「承認」が出てくるので、法律用語としての違いをま...
C/C++/C#

C言語で漸化式を解く

漸化式とは前回計算した値を使い今の値を計算するような式である。今回は簡単な漸化式 \begin{align}a_n=a_{n-1}+b\end{align} の形をした漸化式をC言語で計算する。 ソース #include "stdio.h"...
プログラミング

零次ホールドのボード線図

零次ホールドの伝達関数は \begin{align}H(s)=\frac{1-e^{-sT}}{s}\end{align} \(T=0.1\)でボード線図を書くと次のようになる。 \(T\)を変化させるほどにゲインが下がる。これはサンプル&...
制御工学

「制御基礎理論―古典から現代まで」を買いました

中野先生の本を買いました。 ・旧版 ・新版 目次 自動制御信号の伝達と伝達関数ブロック線図の構成要素ブロック線図の等価変換微分・積分要素のブロック線図等価変換の応用シグナルフロー線図ラプラス変換と自動制御ラプラス変換とラプラス変換表ラプラス...
MATLAB/simulink

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

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

システムの離散化と零次ホールド

D/Aなどにより現在の出力が次の出力に移るまでの出力は一定値に保持されるのがふつうである。これを零次ホールドという。 零次ホールドの伝達関数は\(u(t)-u(t-1)\)に対応するようにすればよいので\begin{align}G(s)= ...
電験

今日は電気主任技術者試験の合格発表日

今日は合格発表日 例年だと9時半頃発表されます。
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...
python

classを使って単層パーセプトロンを定義しORを実装する

これの続き。 単層パーセプトロンをclass定義して、動作確認にORを計算する。 import mylib NN1 = mylib.NN() NN1.w1 = 0.5 NN1.w2 = 0.5 NN1.b = -0.2 print(NN1....
python

単層パーセプトロンを使ってORを作る

単層パーセプトロンを使ってORを作る。ORは ABX000011101111 import mylib print(mylib.OR(0,0)) print(mylib.OR(0,1)) print(mylib.OR(1,0)) print...
ディジタル制御

双一次変換を使って一次遅れ系の伝達関数を離散化する

一次遅れ系の伝達関数 \begin{align}G(s)=\frac{K}{Ts+1}\end{align} を双一次変換で離散化する。\(s\)に \begin{align}s=\frac{2(1-z^{-1})}{ T_{s} (1+z...
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}...
制御工学

忘却係数付き逐次最小二乗法

忘却係数付き逐次最小二乗法とは次のようなものである。 ・評価関数 \begin{align}J_{N}= \sum_{i=1}^{N} \rho^{N-i} \left ( y_{i} - z_{i}^{T} \theta \right )...
MATLAB/simulink

インボリュート曲線を描く

歯車の設計にはインボリュート曲線が使われる。今回は基礎円とそこから延びるインボリュート曲線を描く。 インボリュート曲線とは円柱に巻き付けられた糸を撓ませることなく引き出した時、糸の先端がたどる軌跡を示す曲線を言う。 媒介変数を用いて \be...
数学

簡単な場合の最小二乗法

回帰式を \begin{align}\hat{y}=Ax+B\end{align} とする。残差の二乗和は \begin{align}J = \sum e_i^2 = \sum \{ y_i - (Ax_i + B) \}^2\end{al...
python

単層パーセプトロンを使ってANDを作る

単層パーセプトロンを使ってANDを作る。ANDは ABX000010100111 となるような演算である。一方で単層パーセプトロンとはそれぞれの入力\(x\)に重み \( w \) を乗じて和をとったもので \begin{align}y=\...
制御工学

オペアンプを使ってPID制御器を作る #1

以前MATLABでPID制御をシミュレーションした。今回はアナログ電子回路でPID制御を実装する。 簡単に作る場合はオペアンプを用いればよく、かなり単純である。 次回以降理論を追いつつ設計する。
C/C++/C#

C言語でFizz Buzz

これの続き。 #include<stdio.h> int main() { int i, N = 36; for (i = 1; i <= N; i++) { if ((i % 3 == 0) && (i % 5 == 0)) { prin...
MATLAB/simulink

MATLAB2021aにおけるfor文の計算速度

MATLABを使うときよく言われるのは「for文は遅い」だと思う。今回は2021aでその速度を調べた。 使用したソースコード N=100000000; A1=1:1:N; A2=1:1:N; B1=zeros(1,N); tic for i...