フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
【Modelica】最小構成のMBD事例 第2章 その25【DCモータ②】
ModelicaのDCモータモデルをちょっと掘り下げ。 以下が絡んでくる。 電気/電子領域。 古典力学領域。 幾何学(材料力学)領域。 物理モデリングは伝達経路、伝達関数、微分方程式解決、シミュレーションの4つの工程がある。 Modelicaは伝達関数、微分方程式解決をサボれるツール。
【Modelica】最小構成のMBD事例 第2章 その24【DCモータ①】
ModelicaのDCモータモデルのサンプルの位置をライブラリブラウザで確認。 DCモータモデルをとりあえずシミュレーション。 制御電圧、制御電流、角速度の結果を確認。 今回は電圧をランプ関数で制御したシンプルなもの。 ランプ関数は0を起点に徐々に上がっていく関数。
【Modelica】最小構成のMBD事例 第2章 その23【massモデル⑫】
trapezoidの設定もせずにおもむろにシミュレーション。 矩形波的な出力になった。 変数ブラウザでtrapezoidの設定を編集。 台形波的な出力に変化。 このように、変数ブラウザからパラメータ変更が可能なソースブロックはそこそこある。 これらを知っているといろいろとサボれて楽できる。
【Modelica】最小構成のMBD事例 第2章 その22【massモデル⑪】
trapezoidブロックとForceブロックを配置。ForceブロックはModelica→Mechanics→Translational→Sourcesにある。trapezoidブロックはModelica→Blocks→Sources→Trapezoidにある。本来はtrapezoidを修正する必要があるが今回は不要
【Modelica】最小構成のMBD事例 第2章 その21【massモデル⑩】
ソースブロックによっては様々な信号を入力できる。 ソースブロックは信号を生成してくれるブロック。 信号を生成するソースブロックと物理量に変換するソースブロックがある。 今回はtrapezoidが信号生成、forceが物理量変換。 Modelicaライブラリは大量にあるがライブラリブラウザで検索ができるようになってる。
【Modelica】最小構成のMBD事例 第2章 その20【massモデル⑨】
Modelicaコードに追加したパラメータが増えると管理が大変。 注釈が欲しい。 他のモデルもModelicaコードで書かれたものであるが変数ブラウザで注釈が確認できる。 つまり、注釈が入れられるはず。 変数の隣にダブルクォーテーションでくくった文字を入れれば注釈。 変数ブラウザでも確認可能。
【Modelica】最小構成のMBD事例 第2章 その19【massモデル⑧】
Modelicaコードで変数追加後のOpenModelica Connecter Editor上の見え方確認。 まずは普通にシミュレーション。 変数ブラウザで変数を書き換えたあとに再シミュレーション。 モデルチェック、コンパイル無しで即シミュレーション結果が得られた。 ちょっとしたテクニックをしってるだけで効率化可能。
【Modelica】最小構成のMBD事例 第2章 その18【massモデル⑦】
バックナンバーはこちら。はじめに前回、Modelicaコードにparameterキーワードを使って変数を追加してみた。ソースコード上のパラメータ編集が楽になるなどの効能は当然あるが、グラフィックエディタ上で即値を入れる労力と比較しても、ほぼ
【Modelica】最小構成のMBD事例 第2章 その17【massモデル⑥】
Modelicaコードを弄ることでいろいろと効率化される可能性がある。 実際にparameterキーワードを使って変数を定義。そして、それをconstantForceに設定。 今のままでは動作は何も変わらない。 ソースコード上でパラメータ調整をし易くなったくらいの効能しかない。 即値で調整するのでは労力に差はさなそう。
【Modelica】最小構成のMBD事例 第2章 その16【massモデル⑤】
OpenModelicaはローコード、ノーコードの性質がある。 しかし、コードの読み書きも出来ていた方が良い。 massモデルのソースコードを確認。 equationではconnectキーワードで接続と定義。 annotationキーワードでグラフィカルな情報が追記されソースコード内で情報が完結している。
【Modelica】最小構成のMBD事例 第2章 その15【massモデル④】
他のシミュレーション結果のパラメータを確認 加速度に加えて、速度と移動距離。 OpenModelica Connection Editorのプロットの画面の変数ブラウザでチェックを入れるだけで確認可能。 それぞれのパラメータの関係性を確認。 加速度を積分して速度。 速度を積分して移動距離。
【Modelica】最小構成のMBD事例 第2章 その14【massモデル③】
シミュレーションするモデルと前回の予測を再掲。 constantForce、massの組み合わせ。 1[m/s^2]の加速度。 シミュレーション開始方法。 OpenModelica Connection Editor上部の矢印アイコンをクリックするだけ。 シミュレーション結果確認。 予測通りの結果が得られた。
【Modelica】最小構成のMBD事例 第2章 その13【massモデル②】
前回作成したモデルが何を示しているか確認。 massを引っ張り合ってるモデル。 グラフィックエディタだと分かりにくいがマイナス符号を付けないと逆向きの力にはならない。 シミュレーション結果を事前に予測してみる。 運動方程式を使用する。 質量と力が分かっているので、加速度が求められる。 加速度から速度、速度から距離。
【Modelica】最小構成のMBD事例 第2章 その12【massモデル①】
使用するモデルはMassとconstantForce。 直線運動をふんわり知って置いた方が良い。 加速度、速度、距離、力、運動量、仕事、仕事率。 OpenModelica Connection Editorで各モデルを配置&接続 Modelica→Mechanics→Translationalに目的のモデルがある。
【プラント】最小構成のMBD事例 第2章 その11【OpenModelica⑤】
OpenModelicaのダウンロード。 Windows、Linux、Mac版がある。 32bit、64bit用に分かれている。 OpenModelicaのインストール。 基本はウィザードに従って「次」へ進んでいくだけ。 トータルで10Gbyteほどのサイズになるので、15Gbyteくらいの空き容量があった方が良い。
【プラント】最小構成のMBD事例 第2章 その10【OpenModelica④】
OpenModelica Python Interface (OMPython) Python自動化インターフェース OpenModelica Matlab Interface (OMMatlab) 上記のMATLAB版 Modelica Development Tooling (MDT) Eclipseインターフェース
【プラント】最小構成のMBD事例 第2章 その9【OpenModelica③】
OpenModelica Shell (OMShell)について説明。 その尚通りシェル。 MATLABのコマンドウィンドウに近い。 OpenModelica Notebook (OMNotebook)の説明。 コマンドの実行とその結果を含めてドキュメント化できる機能。 Jupyter Notebookに近い。
【プラント】最小構成のMBD事例 第2章 その8【OpenModelica②】
OpenModelica Compiler (OMC)はコンパイラ。 C言語を生成する。 インタプリタ用言語を生成してデバッグ動作を実現。 OpenModelica Connection Editor (OMEdit) グラフィックエディタ。 C++/Qtで作成されているためマルチプラットフォーム。
【プラント】最小構成のMBD事例 第2章 その7【OpenModelica①】
OpenModelicaの説明。 Wikiepdia英語ページから引用。 自動車、水処理、発電所の領域で使われている。 自動車業界でも開発フェーズだと相互運用性都合でプロプライエタリ品を使うことが多い。 複数のツールで構成されている。 コンパイラ、エディタ、インターフェス、プラグインなど。
【プラント】最小構成のMBD事例 第2章 その6【Modelicaツール】
Modelicaを扱えるツールは様々。 Amesim、Simplorer、Dymola、MapleSim、SimulationX、OpenModelica。 自動車業界ではMapleSim、SimulationXが多め。 HILS、Simulinkの相性の都合。 OpenModelicaはオープンソースなツール。
【プラント】最小構成のMBD事例 第2章 その5【Modelica④】
Flangeの説明。 様々な領域で使われる用語ということもあり「円筒形の物体」程度の定義。 ModelicaのFlange。 connectorタイプでModel間の接続用インターフェース。 flow接頭辞は運動の第3法則(作用・反作用)を実現するのに便利。 力(Force)の宣言で利用されてる。
【プラント】最小構成のMBD事例 第2章 その4【Modelica③】
Massモデルの中にあるextendsは継承を示すキーワード。 PartialキーワードはModelの不完全性を示しており、継承以外の利用ができないよう制約を掛けている。 OOPの抽象class的なもの。 PartialRigidモデルは剛体モデル。 直線運動する剛体モデルを作る際はこのモデルを継承すると吉。
【プラント】最小構成のMBD事例 第2章 その3【Modelica②】
Modelicaのプログラミング言語として性質を知るためモデル定義確認。 Massモデルを参照。 ある質量とある長さをもった完全剛体を1Dとして両端に力を加えられるモデル。 一般的なプログラムと異なり代入式ではなく方程式を定義していく。 シーケンシャル且つ代入になる書き方もあるが一般的なプログラムのそれとは異なる。
【プラント】最小構成のMBD事例 第2章 その2【Modelica①】
Modelicaの説明。 オブジェクト指向のマルチドメイン・モデリング言語。 機械、電気、電子、油圧、熱、制御などの領域を横断して記述できる。 Modelicaはプログラミング言語だが、一般的な言語とは性質が異なる。 シミュレーション特化言語。 モデル定義としてパラメータと方程式を内包。
恒例の太郎くんの悩み事からスタート。 プラントモデルを作成する必要がある。 それっぽいものを作るだけならば過去の記事を参照すればOK。 一次遅れ系。 モーター伝達関数。 本シリーズはModelicaを使用した話に踏み込む予定。 Modelica用のツールは雰囲気的にはSimulinkに似ていることが多い。
【振り返り,まとめ】車載外部ストレージ その133【FatFs,SDカード】
今回が本シリーズの最終回。 SDカード、FileSystemのそれぞれだけでも結構なボリュームだった。 SDカード直接制御のフォーマットはWindows上からのフォーマットの自由さを得るのに有効な場合がある。 FileSystemはWindows等の他のシステムとの相互運用性確保に便利。
【FatFs】車載外部ストレージ その132【SDカード直接制御⑮】
パーティションのフォーマットはFAT32とexFAT混在で。 FAT32、au=4096。 exFAT、au=4096。 exFAT、au=8192。 FAT32、au=8192。 フォーマット実施。 問題なくフォーマットできた。 Windowsのディスク管理上からも確認。
【FatFs】車載外部ストレージ その131【SDカード直接制御⑭】
パーティション分けを実施する前の事前準備を実施。 Windowsのディスクの管理でパーティションの削除。 FatFsでパーティション分けを実施。 それぞれ25%の4つのパーティションを作成。 問題無くパーティションが分かれていることをWindows側から確認。 次回はフォーマットをしてみる。
【FatFs】車載外部ストレージ その130【SDカード直接制御⑬】
FatFs対話モード時のパーティション分けコマンド確認 「fp」コマンドを使用。 コマンドパラメータを確認。 ドライブ指定は論理ドライブ番号ではなく、物理ドライブ番号で指定。 FatFsのパーティション分けは百分率が使える。 パーティションについて簡単に説明。 FatFsは拡張パーティションは未対応。
「ブログリーダー」を活用して、KEIさんをフォローしませんか?
フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
動画作成関連のバックナンバー用ページ。立ち絵を作ったり、動画作ったり、アイキャッチ画像作ったりなどを掲載していく。
MATLAB,Python,Scilab,Julia比較するシリーズの第4章。第4章では分類問題で最終的にはニューラルネットワークや最適化アルゴリズムの話だった。第5章はフーリエ解析学から高速フーリエの話がメインとなる。
立ち絵の配置: PSDファイルをAviUtlに配置し、画面サイズやフレームレートを設定。のっぺらぼう化: 目と口を消して、アニメーション効果を追加。アニメーション効果: 目パチと口パクの設定を行い、リップシンクを調整。
フーリエ変換を定義。フーリエの積分公式の一部を抜き出す。逆フーリエ変換を定義。フーリエの積分公式にフーリエ変換を代入するだけ。
Δωで刻みにしたので、極限を利用して連続系へ。数式上は連続ではあるが、一般的な表現ではない。区分求積法とリーマン積分について。フーリエの積分公式を導出した。
VOICEVOXとAivisSpeechキャラと一緒に!AviUtlを使った動画作成 バックナンバーはじめに以前、AivisSpeechのAnneliというキャラの立ち絵を作成した。さらにそこに加えて、AivisSpeechのアイコン画像を...
PSDToolKitプラグインの導入の仕方を説明。PSDファイルを探してGIMPで内容を確認。GIMPで瞬き用、口パク用のレイヤー編集。
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。周期2Lの波の数を示すnを周期2πに於ける波の数である角周波数ωに変換。角周波数ωの刻みであるΔωについて説明。Δωを定義することで、離散的な係数算出が連続的な角周波数算出に近づけていっている。
区分求積法とリーマン積分について。離散と連続の分け目。フーリエの積分公式を導出した。演算したはずなのに変化しない。つまり変換、逆変換が成立することを示している。
Δωで刻みにしたので、極限を利用して連続系へ。数式上は連続ではあるが、一般的な表現ではない。よって、一般的な表現に書き換える必要がある。
角周波数ωの刻みであるΔωについて説明。Δωを定義することで、離散的な係数算出が連続的な角周波数算出に近づけていっている。
周期2Lの波の数を示すnを周期2πに於ける波の数である角周波数ωに変換。ω=nπ/Lを使用して変換するだけ。これにより少し数式がシンプルになった。
VOICEVOXとAivisSpeechキャラと一緒に!AviUtlを使った動画作成 バックナンバーはじめに以前、AivisSpeechのAnneliというキャラの立ち絵を作成した。ほぼ独自に作成したが、Anneliの画像自体はAivisS...
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。変換を想定した式に変換。複素指数関数との積と積分、総和を経由すると元に関数に戻るというイメージが重要。
AviUtlのセットアップと拡張編集Pluginの導入を行った。mp4ファイルの入力と出力の方法を説明。アニメーションgifの対応方法を説明。
分数は割り算の別表現として理解しやすく、逆数を掛けることで計算が簡単になる。これにより、小数の掛け算や割り算の理解が深まる。一次関数の数式をグラフにすることや、グラフから数式を導くことは、データのトレンド分析や物理現象の理解に役立つ。微分は関数の変化率を求める手法であり、数値微分を使って近似的に求めることができる。これにより、物理学や経済学など多くの分野で応用可能。
Youtube動画やブログ記事のアイキャッチ用に作成した、VOCEIVX(四国めたん、ずんだもん、春日部つむぎ)、AivisSpeech(Anneli)の画像たち。Stable Diffusionで生成&少しペン入れ&GIMPによる補正したものになります。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
最適化アルゴリズム モーメンタムを用いて分類の学習をJuliaで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をPythonで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 モーメンタムの動作イメージについて確認。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。
勾配降下法の更新式を確認。 勾配降下法の動作イメージを確認。 学習率が大きい場合と小さい場合で挙動が変わる。 ちょうど良い学習率を人間の手で探す。 これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。
最適化アルゴリズムを取り扱う。 今回のネットワークだとさほど恩恵はないが知っていて損はない。 まずはモーメンタムから解説&実験をしていく。 最初は復習を兼ねて勾配降下法についても確認する。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
モーメンタムの動作イメージについて確認。 動作イメージの表現は難しい。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 実際の指数移動平均とは異なっているので、その点は注意。
勾配降下法の動作イメージを確認。 学習率が大きい場合と小さい場合で挙動が変わる。 ちょうど良い学習率を人間の手で探す。 これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。
今回改めてまじめに更新式を確認。 勾配降下法の更新式が一番シンプルなので今後の最適化アルゴリズムの更新式を見る際は比較対象になりやすい。
最適化アルゴリズムを取り扱う。 今回のネットワークだとさほど恩恵はないが知っていて損はない。 まずはモーメンタムから解説&実験をしてい 最初は復習を兼ねて勾配降下法についても確認する。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。 大きく2パターンの分類パタ やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。 大きく2パターンの分類パターン やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。