2020-05-01から1ヶ月間の記事一覧

Autodesk InventorのDrawingで寸法のサイズを変える

ここにやり方が書いてあった。 www.asti.comManageタブのStyles Editorから行う。Text->Note Text (ANSI)のCharacter FormattingのText Heightを変更する。

KicadのPcbnewでZoom to fitが動かず基板がどこにいるか分からないとき

数年ぶりにMacのKicadをアップグレードして動かしてみたら、かなり進化していた 3D表示もあって良いこのレポジトリの基板をPcbnewで開いたが、真っ黒でなにも表示されない Zoom to fitしても基板がでてこない。 github.comMacのGPUと相性が悪くてレンダリン…

電気分解で次亜塩素酸水を作る 

ここの記事を参考に。 DIY 次亜塩素酸水を作ろう! 百均で揃える。HCLO | gekifutoriyaginekoのブログyoutu.be追記:この装置でできるのは電解次亜水(次亜塩素酸ナトリウム水溶液)であって、いわゆる次亜塩素酸水ではないらしい。 陰極と陽極で部屋をわけ…

Zeolite sieveについての調査

https://www.who.int/medical_devices/publications/tech_specs_oxygen-concentrators/en/オープンソースで酸素濃縮器を作ってる人がいると思ったらエイドリアンボイヤーだった github.com 1)利用可能なユニットがあるか? →DIYのユニットというのは特にな…

Matlabで不等式の領域をプロット

www.mathworks.comで試してみる v = -2:0.05:2; [x,y] = meshgrid(v); ineq = (x.^2 + y.^2 < 1) .* (x>0) .* (y>0); f = double(ineq); surf(x,y,f); axis equal; view(0,90);

微分先行型PID制御(P-ID制御)

P-ID制御 arduinopid.web.fc2.com

航法・誘導・制御

4 章 宇宙システム - 電子情報通信学会知識ベース http://www.ieice-hbkb.org/files/11/11gun_02hen_04.pdf Navigation 航法 Guidance 誘導 Control 制御 航法・誘導・制御の違い 航法・・・ロケットの位置・速度・姿勢の計測および推定 誘導・・・目標軌道…

M5 stack fire+BalaでBlynkから操作できる車を作る

コード github.comM5StackのAvatarライブラリを組み合わせようとしたら、クラッシュする無限ループになった Blynkとの相性が悪いらしい

BlynkでM5 Balaを動かすテスト

#define BLYNK_PRINT Serial #define BLYNK_USE_DIRECT_CONNECT #include <BlynkSimpleEsp32_BLE.h> #include <BLEDevice.h> #include <BLEServer.h> #include <M5Stack.h> char auth[] = "YOUR_AUTH_TOKEN"; #include <M5Stack.h> #include <Wire.h> #include <Preferences.h> #include "imuCalibration.h" #include "M5Ba…</preferences.h></wire.h></m5stack.h></m5stack.h></bleserver.h></bledevice.h></blynksimpleesp32_ble.h>

M5 Balaのテスト

以下のレポジトリから4つをダウンロードしておく M5Bala.cpp, M5Bala.h, imuCalibration.cpp, imuCalibration.h github.com #include <M5Stack.h> #include <Wire.h> #include <Preferences.h> #include "imuCalibration.h" #include "M5Bala.h" Preferences preferences; M5Bala m5bala(Wire)</preferences.h></wire.h></m5stack.h>…

jassignを使ったjupyterのautograde

github.comgithub.com

割線法による3次方程式の解の数値計算

カルダノの方法によって、解は =-2.637834253 =1.6810829-3.0504302i =-1.6810829‐ +3.0504302iマラー法に比べて実装がかなり簡単だった。 精度も問題なさそうなので、まず割線法の利用を考えた方が良さそう。 clear; close all; f = @(x) x^3+6*x^2+21*x+32…

同次線型微分方程式の同次境界値問題をシューティング法で解く

マラー法による3次方程式の解の数値解法

カルダノの方法によって、解は =-2.637834253 =1.6810829-3.0504302i =-1.6810829‐ +3.0504302iマラー法では割線法に比べて解が高速に収束する。 clear; close all; buffer=20; x=zeros(1,buffer); y=zeros(1,buffer); h=zeros(1,buffer); g=zeros(1,buffer)…

連立非線形方程式のn次元ニュートンラフソン法による数値解法

以下の4元連立非線形方程式を解く。 clear; close all; syms f(x,y,u,v) g(x,y,u,v) h(x,y,u,v) k(x,y,u,v) f(x,y,u,v) = x^3-3*x*y^2 ... +3*((x^2-y^2)*u-2*x*y*v)... +3*((u^2-v^2)*x-2*u*v*y)... +u^3-3*u*v^2 ... +6*(x^2-y^2+2*(x*u-y*v)+u^2-v^2)...…

1次元ニュートンラフソン法による3次方程式の複素解の計算

カルダノの方法によって、解は =-2.637834253 =1.6810829-3.0504302i =-1.6810829‐ +3.0504302ixをzとおいたは解析関数(微分可能な複素関数)なので、1次元ニュートンラフソン法でも複素解が計算できる。(一般的にf(z)が解析関数であるのはまれ) 初期値を…

2次元ニュートンラフソン法による3次方程式の複素解の数値解法

カルダノの方法によって、解は =-2.637834253 =1.6810829-3.0504302i =-1.6810829‐ +3.0504302i clear; close all; f = @(x,y) x^3-3*x*y^2+6*x^2-6*y^2+21*x+32; g = @(x,y) 3*x^2*y-y^3+12*x*y+21*y; dfdx = @(x,y) 3*x^2-3*y^2+12*x+21; dfdy = @(x,y) -6…

ニュートン・ラフソン法による3次方程式の求解

カルダノの方法によって、解は =-2.637834253 =1.6810829-3.0504302i =-1.6810829‐ +3.0504302i clear; close all; f = @(x) x^3+6*x^2+21*x+32; fprime = @(x) 3*x^2+12*x+21; a(1)=-3; b(1)=0; x=zeros(1,100); x(1)=0; k=2; delta=1e-10; res=1e4; while …

2分法による3次方程式の求解

カルダノの方法によって、解は =-2.637834253 =1.6810829-3.0504302i =-1.6810829‐ +3.0504302i2分法で計算する。 clear; close all; f = @(x) x^3+6*x^2+21*x+32; a(1)=-3; b(1)=0; c=zeros(1,100); k=2; delta=1e-10; epsilon=0.5e-5; res1=1e4; res2=1e4;…

連立常微分方程式をルンゲクッタ法で解く

以下のローレンツモデルを解く clear; close all; a=10; b=8/3; r=28; f1 = @(t,x,y,z) -a*x+a*y; f2 = @(t,x,y,z) -x*z+r*x-y; f3 = @(t,x,y,z) x*y - b*z; N = 2000; t0 = 0; tN = 40; h = (tN-t0)/N; t = linspace(t0,tN,N); x = zeros(1,N); y = zeros(1…

4次のルンゲクッタ法による常微分方程式の数値解法

を計算する。 解析解は,rungekutta.m clear; close all; x0=0; xN=1; N=10; h=(xN-x0)/N; x=linspace(x0,xN,N); y=zeros(1,N); a = 1; y(1)=1; f = @(x,y) a*y; for k=2:N k1 = h*f(x(k-1),y(k-1)); k2 = h*f(x(k-1)+h/2,y(k-1)+k1/2); k3 = h*f(x(k-1)+h/2,…

ホイン法による常微分方程式の数値解法

を解く。 解析解は、 clear; close all; x0=0; xN=1; N=20; h=(xN-x0)/N; x=linspace(x0,xN,N); y=zeros(1,N); %syms y0; a = 1; y(1)=1; f = @(x,y) a*y; for k=2:N k1 = h*f(x(k-1),y(k-1)); k2 = h*f(x(k-1)+h,y(k-1)+k1); y(k) = y(k-1) + 1/2*(k1+k2); …

2階常微分方程式の数値解法

を解く。 初期条件はおよび 上記は以下の連立微分方程式に変形できる。 clear all; close all; %dydx = @(x,y) -y -pi*exp(-x)*sin(pi*x); N = 20; x0 = 0; xN = 10; %%%% Forward Euler %%%% x = linspace(x0,xN,2*N); y = zeros(1,2*N); z = zeros(1,2*N);…

一階常微分方程式の初期値問題(前進オイラー法とリープフロッグ法の比較)

を解く。 この方程式の解析解は、 clear all; close all; dydx = @(x,y) -y -pi*exp(-x)*sin(pi*x); N = 20; x0 = 0; xN = 2; %%%% Forward Euler %%%% x = linspace(x0,xN,N); y = zeros(1,N); h = (xN-x0)/N; y(1) = 1; for k=2:N y(k) = y(k-1) + dydx(x(…

微分方程式の初期値問題(オイラー法での数値振動)

を考える。 clear; close all; Ns=[8,10,15,20,30]; x0=0; xN=20; figure(); hold on; for idx=1:length(Ns) N = Ns(idx); x=linspace(x0,xN,N); y=zeros(1,N); y(1)=0.1; h=(xN-x0)/N; f = @(y) y-y^2; for k=2:N y(k) = y(k-1) + h*(f(y(k-1))); end plot(…

クォータニオンの微分方程式

クォータニオンの微分方程式 Matlabで解析解が出るっぽい >> syms w_x w_y w_z >> syms q0(t) q1(t) q2(t) q3(t) >> A=[0 -w_x -w_y -w_z;w_x 0 w_z -w_y; w_y -w_z 0 w_x; w_z w_y -w_x 0] A = [ 0, -w_x, -w_y, -w_z] [ w_x, 0, w_z, -w_y] [ w_y, -w_z, 0…

ARMAモデルの実験

ARMAモデル とする。 での伝達関数を作成するにはfilt()関数を用いる >> filt([0,1,0.5],[1,1.5,0.7],0.1) ans = z^-1 + 0.5 z^-2 ----------------------- 1 + 1.5 z^-1 + 0.7 z^-2 Sample time: 0.1 seconds Discrete-time transfer function. ステップ応…

時系列モデルを可観測正準系に変形する

時系列モデルとしてARMAモデルを考える。ARMAモデル雑音v(z)からy(z)までの伝達関数G のとき、可観測正準系 一般に、 の可観測正準系は、

Matlabの起動時にスクリプトを実行する

starup機能を使う www.mathworks.com Matlabコンソール > edit(fullfile(userpath,'startup.m')) startup.mファイルが開くので、これを編集する。 自分の場合はformat compactを実行させたいので、以下のようにする。 startup.m format compact再起動すると…

MatlabでUARTシリアル通信を待ち受ける

以下を参考に。 www.mathworks.comreadimu.m 本体コード clear; close all; s = serialport("/dev/cu.SLAB_USBtoUART",115200); configureTerminator(s,"CR/LF"); configureCallback(s,"terminator",@readSerialData) コールバック関数 readSerialData.m fun…