MATLAB/simulink 逐次最小二乗法を使って二次遅れ系の伝達関数を推定する 逐次最小二乗法については前回の記事を参照。逐次最小二乗法を用いて二次遅れ系の伝達関数\begin{align}G(s)=\frac{\omega_{n}^2 }{s^2 + 2 \zeta \omega_{n} s + \omega_{n}... 2021.11.13 MATLAB/simulinkシステム同定プログラミング制御工学古典制御
C/C++/C# 二度漬けがバレると店のオヤジから怒られるプログラム 乱数を使って二度漬けして遊ぶプログラムを作りました。色々変えて遊んでみてください。#include <stdio.h>#include <stdlib.h>#include <time.h>char* scanstr(void) { cha... 2021.11.10 C/C++/C#プログラミング
C/C++/C# C言語で複数の変数を返したい時 C言語では通常の関数の使い方ではreturnによって複数の変数を返すことはできない。こういう時はポインタを使えばうまくいく。#include <stdio.h>void test(int a, int* p1,int *p2);void m... 2021.11.10 C/C++/C#プログラミング
プログラミング ESP32でMCP23017を使う MCP23017はI2Cで接続することができる。とりあえず動かすためには次のようなプログラムでいい。このプログラムを使えば入力、内部プルアップで動作し、シリアル通信で結果が送られてくる。#include <Wire.h>int DEVICE... 2021.11.01 プログラミング
プログラミング Arduino IDEでESP32を使うときに出たエラー Arduino IDEでESP32を使ってるときにこんなエラーが出たrst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)configsip: 0, SPIWP:0xeeclk_drv:... 2021.11.01 プログラミング
C/C++/C# C言語で漸化式を解く 漸化式とは前回計算した値を使い今の値を計算するような式である。今回は簡単な漸化式\begin{align}a_n=a_{n-1}+b\end{align}の形をした漸化式をC言語で計算する。ソース#include "stdio.h"doub... 2021.10.26 C/C++/C#プログラミング数学
プログラミング 零次ホールドのボード線図 零次ホールドの伝達関数は\begin{align}H(s)=\frac{1-e^{-sT}}{s}\end{align}\(T=0.1\)でボード線図を書くと次のようになる。\(T\)を変化させるほどにゲインが下がる。これはサンプル&ホール... 2021.10.24 プログラミング制御工学
MATLAB/simulink MATLABを使って零次ホールドを試す matlabを使って零次ホールドを試す。対象のシステムは\begin{align}G=\frac{s}{1+s}\end{align} 零次ホールドは\begin{align}H=\dfrac{1-e^{-sT}}{s}\end{align... 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;x=a*... 2021.10.22 MATLAB/simulinkプログラミング幾何
python classを使って単層パーセプトロンを定義しORを実装する これの続き。単層パーセプトロンをclass定義して、動作確認にORを計算する。import mylibNN1 = mylib.NN()NN1.w1 = 0.5NN1.w2 = 0.5NN1.b = -0.2print(NN1.single_... 2021.10.20 pythonプログラミング機械学習
python 単層パーセプトロンを使ってORを作る 単層パーセプトロンを使ってORを作る。ORはABX000011101111import mylibprint(mylib.OR(0,0))print(mylib.OR(0,1))print(mylib.OR(1,0))print(mylib... 2021.10.18 pythonプログラミング機械学習
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 インボリュート曲線を描く 歯車の設計にはインボリュート曲線が使われる。今回は基礎円とそこから延びるインボリュート曲線を描く。インボリュート曲線とは円柱に巻き付けられた糸を撓ませることなく引き出した時、糸の先端がたどる軌跡を示す曲線を言う。媒介変数を用いて\begin... 2021.10.09 MATLAB/simulinkプログラミング機械
python 単層パーセプトロンを使ってANDを作る 単層パーセプトロンを使ってANDを作る。ANDはABX000010100111となるような演算である。一方で単層パーセプトロンとはそれぞれの入力\(x\)に重み \( w \) を乗じて和をとったもので\begin{align}y=\sum... 2021.10.06 pythonプログラミング機械学習
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)) { printf... 2021.10.04 C/C++/C#プログラミング
MATLAB/simulink MATLAB2021aにおけるfor文の計算速度 MATLABを使うときよく言われるのは「for文は遅い」だと思う。今回は2021aでその速度を調べた。使用したソースコードN=100000000;A1=1:1:N;A2=1:1:N;B1=zeros(1,N);ticfor i=1:1:NB... 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, Fizz Bu... 2021.09.29 MATLAB/simulinkプログラミング
C/C++/C# if文で予期しないエラーを出さないために 定数比較するときif文を使う場合が多い。一般的なif文の構文はif (num == 3) { //処理}である。もしこの文を書き間違えif (num = 3) { //処理}としたとき、numの値に関係なく処理が行われてしまう。また逆にif... 2021.09.21 C/C++/C#プログラミング
C/C++/C# 正多角形の外角の和と一つの角度の値を返すプログラムを作る 正多角形の内角の一つ分の大きさは\begin{align}\theta_{n} = \frac{180(n-2)}{n}\end{align} なので一つ分の外角は\begin{align}\theta_{n} = 180 -\frac{1... 2021.09.21 C/C++/C#プログラミング数学