フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
【CANoe】最小構成のMBD事例 第2章 その266【仮想ECU連携③】
CANoeでXCP関連の処理を追加する際の方針を確認。 複数のノードにXCP関連処理を記載するので連携が必要。 ノード間連携はCANoeシステム変数を使うのが最も手っ取り早い。 CANoeシステム変数の追加方法を確認。 CAPLからシステム変数にアクセスする際は変数名の目に「@」をつける。
【CANoe】最小構成のMBD事例 第2章 その265【仮想ECU連携②】
CANoe上の指令器をdisable。 シミュレーション設定ウィンドウのノード上でdisable操作が可能。 CANOe上にテストノード追加。 シミュレーション設定ウィンドウのバス上で追加操作可能。 今回はCAPLテストモジュールを使用。 .NET、XMLのテストモジュールは気が向いたら調べる。
【CANoe】最小構成のMBD事例 第2章 その264【仮想ECU連携①】
残り作業はXCPだけではない。 構造が複雑なので一旦整理。 Virtual CAN BusとCANoeシミュレーションバスは直結していると思って良い。 CANoe仮想HILSと仮想ECU連携のロードマップ提示。 指令器disable。 テストノード追加。 XCP関連セットアップ。 DAQ/STIM関連。
【FMI/FMU】最小構成のMBD事例 第2章 その263【CANoe⑯】
32bit FMU作成しCANoeに組み込んだ。 CANoeでFMU駆動の実験。 かなりキレイな波形が取れた。 FMU、CAN送信共に1ms駆動させているため。 Pythonの時は100ms駆動相当になっていた。 このあとはCAPLでXCPを実現するがpython-canでやったことと同じことをやればOK。
【FMI/FMU】最小構成のMBD事例 第2章 その262【CANoe⑮】
バックナンバーはこちら。はじめにCANoeの内部プロセスとして描画プロセスと計測/演算プロセスが存在することと、プロセス間通信がTCP/IPを使用していることのの裏付けの調査結果を確認。引き続き調査結果の話とCANoeの設計思想の話。登場人
【FMI/FMU】最小構成のMBD事例 第2章 その260【CANoe⑬】
CANoeが32bitFMUを要求する理由の調査結果。 CANoe内に2つのアプリケーションが動作しているもよう。 描画担当で64bitプロセス。 計測/演算担当の32bitプロセス。 FMUは計測/演算担当のプロセス側が読み込んでるっぽい。 CANoeの内部構成についていろいろ考察したので次回説明予定。
【FMI/FMU】最小構成のMBD事例 第2章 その259【CANoe⑫】
ついにCANoe上でFMUを動作させる実験を開始・・・したが・・・。 謎エラー発生。 32bitアプリケーションから呼ばれるFMUの場合はwin32向けFMUである必要がある。 しかし、今回使用しているCANoeは64bitアプリケーションのため辻褄が合わない。 なぜこのようなことになっているか要調査。
【FMI/FMU】最小構成のMBD事例 第2章 その258【CANoe⑪】
仮想HILS向けCAPLコード公開。 イベントハンドラは関数先頭に「on」が付く。 その後ろに以下が続く。 start:シミュレーション開始。 timer:タイマ。 signal:シグナル更新。 CAPLのコツはシンプルに書く。 複雑な処理はライブラリに逃がすなどがコツ。
【FMI/FMU】最小構成のMBD事例 第2章 その257【CANoe⑩】
FMUとCANシグナルの紐づけのためついにCAPLに手を付け始める。 CAPLではイベントハンドラを使うことが多い。 イベントはおおよそ以下。 シミュレーション開始。 タイマ。 CAN受信。 シグナル更新。 ネットワークノード毎にCAPLを設定できるので、ノードの役割を意識する必要がある。
【FMI/FMU】最小構成のMBD事例 第2章 その256【CANoe⑨】
FMUの中に指令器もあったが、CANoeから指令値を変えられた方が便利なのでシグナルジェネレータ機能を使用する方針となる。 dbcファイルで定義したシグナルに対して自由は波形を載せることが可能な機能。 シグナルジェネレータで台形波を作成しTargetシグナルとして出力できるように設定。 さまざまは波形を設定可能。
【FMI/FMU】最小構成のMBD事例 第2章 その255【CANoe⑧】
CANoe.IL機能でシグナルを簡単に叩けるようにはなったが、FMUとの接続が無いとCAPLを実装してもイマイチ。というわけでFMUインポートから実施。FMUインポートの手順確認。最終的にはCANoeシステム変数と紐づいて、そのシステム変数を読み書きすることで結果としてFMUのInput、Outputにアクセスできる。
【FMI/FMU】最小構成のMBD事例 第2章 その254【CANoe⑦】
dbcファイルが出来上がったのでCANoeのデータベースインポートウィザードを使ってみた。 dbcを読み込むことでdbc内で定義されているネットワークノードをCANoeに割り当てることが可能。 生成されたノードはdbcで定義されたCANメッセージを同じく定義された送信周期で送信可能。 CANoe.IL機能の一端。
【FMI/FMU】最小構成のMBD事例 第2章 その253【CANoe⑥】
CANdb++エディターで各種定義を実施。 シグナル、メッセージ、ノードの順番で定義していく。 メッセージの周期時間は送信周期を示す。 単位は[ms]。 属性の「GenMsgCycleTime」パラメータを修正することで変更可能。 CANoe.IL機能を使用する時に生きてくるパラメータ。
【FMI/FMU】最小構成のMBD事例 第2章 その252【CANoe⑤】
dbcファイルについて簡単に説明。 CANメッセージとそれに載せるシグナルだけでなく、ネットワークノードの定義もできる。 ネットワークノードを定義しておくと、CANoeのインポートウィザードでノードの自動生成をしてくれる。 dbcファイルを作成開始。 CANeb++エディターを使用。 プロトコルの設定まで実施。
【FMI/FMU】最小構成のMBD事例 第2章 その251【CANoe④】
バックナンバーはこちら。はじめに前回はVector社製ツールのCANoeを仮想HILS化するための実験ロードマップを提示。大雑把にはFMU importとXCPマスタの2つの機能を実現させればOK。まずはCANoeはFMUを本当に扱えるかを
【FMI/FMU】最小構成のMBD事例 第2章 その250【CANoe③】
CANoeの仮想HILS化への実験ロードマップ提示。 大雑把にはFMU importとXCPマスタの2つ。 FMU importの実験をやってからXCPマスタの実験の流れ。 最初はXCPを使用せずにCANoeのシミュレーションバスを使用したFMU間連携をさせてみる。
【FMI/FMU】最小構成のMBD事例 第2章 その249【CANoe②】
CANoeで仮想HILSの実現が可能かを検討する間に現行の仮想HILSの機能を列挙した。 FMU import&実行。 たぶんOK。でも要確認 各種信号のグラフ表示&CAN受信。 間違い無くできる。 XCPマスタ 本当のXCPをするなら追加ライセンスが必要。 しかし、CAPLを駆使すれば今回の目的は達成できそう。
【FMI/FMU】最小構成のMBD事例 第2章 その248【CANoe①】
仮想HILSと仮想ECUの精度が上がらなかった原因を予測。 ほぼ間違いなく応答性が原因。 Pythonではこれ以上の応答性は得られそうもない。 Pythonに変わって仮想HILS側をVector社のCANoeにしたらどうかという意見あり。 本物のHILSと比べ、コスパも良さそう。
【XCP】最小構成のMBD事例 第2章 その247【CAN-FD㉔】
仮想HILSと仮想ECUのXCPonCANFD対応の動作確認は結果としては失敗に終わった。 変数の精度向上はあまり性能向上にはつながらなかった。 しかしXCPonCANFDを直に見るのも珍しい体験なので、これはこれで将来に生かすって発想が大事。 失敗したからこそ意地でも糧になるものを拾うべし。
【XCP】最小構成のMBD事例 第2章 その246【CAN-FD㉓】
XCPonCANFD対応に於ける当初想定していた仮想HILS、仮想ECUの全体構成と実際の全体構成。 基本的には想定通りの修正。 PyXCPのCAN-FD対応が難航したのが想定外ってくらい。 論理構成としては変わらず。つまり基本的な動作は変わらないはず。 変数のサイズと精度が変わっているのでそれの効能を期待。
【XCP】最小構成のMBD事例 第2章 その245【CAN-FD㉒】
仮想HILS側の修正後のコード開示。 前回までの修正範囲と内容を反映したのみ。 tkinter、matplotlibのコードもあり、肥大化しているが、基本一直線のコード。 タイマハンドラで周期的に呼ばれるくらい。 いろいろな要素が絡んでるので、次回は全体構成の再確認。
【XCP】最小構成のMBD事例 第2章 その243【CAN-FD⑳】
仮想HILSのCAN-FD対応方針整理。 数としてはそこそこあるが、一個一個は1行修正のレベル。 importしているxcp_canをxcp_canfdに変更。 上記のクラス変更に伴い、XCPインスタンスの生成部分変更。 importのところでエイリアスを使うのもあり。
【XCP】最小構成のMBD事例 第2章 その242【CAN-FD⑲】
DAQリスナーCAN-FD対応版の動作確認を実施。 can.loggerのCAN-FDモードを並走さえて回線モニタを実施。 問題無くCAN-FDフレームが送出されていることを確認。 Bitrate_switchも有効になっている。 python-canの範疇では問題無しと判断できる。
【XCP】最小構成のMBD事例 第2章 その241【CAN-FD⑱】
DAQリスナーのCAN-FD対応の要否ついて説明。 CANのみ対応のインターフェースはCAN-FDフレームを検知すると「異常フレーム」と認識しエラーフレームをもってフレーム破壊を行う。 よって、CAN-FDフレームが流れるネットワークにCANのみ対応インターフェースは接続禁止。 DAQリスナーの修正は一撃。
【XCP】最小構成のMBD事例 第2章 その240【CAN-FD⑰】
xcp_canfdクラス動作確認を実施。 問題無く動作。 念のためxcp_canの時の動作確認結果とも比較。 同じ動きをしていることが確認できる。 CAN-FD回線モニタも実施し、CAN-FDフレームのレベルでも確認。 こちらも想定通りの動作をしていることを確認。 PID制御器もおおよそ狙い通り動いてそう。
【XCP】最小構成のMBD事例 第2章 その239【CAN-FD⑯】
xcp_canクラス改めxcp_canfdクラスを作成。 xcp_canfdクラスのソースコードを開示。 前回までの修正分を盛り込んだのみ。 コンフィグレーション、ODT_ENTRY構成、STIMレイアウト、DAQレイアウト、STIM送信用データ。 次回は、これを実際に動作させてみる。
「ブログリーダー」を活用して、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による補正したものになります。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
最適化アルゴリズム モーメンタムを用いて分類の学習を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ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。 大きく2パターンの分類パターンがある やや複雑な分類パターンが4ユニットにすることで出てきたもの。