フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
CanTpのコンフィグレーション構造はAUTOSAR仕様に記載されている。しかし、UMLによる表記無し。OSEK時代からの踏襲であるため更新優先度が下がってる可能性あり。今回はコンフィグレータを使用せず、手動で該当の構造体実体を定義していく
CanTpは送信、受信の1対で1チャンネルという概念になっている。チャンネルは複製可能。ただし、動的複製は不可。静的複製のみ。
AUTOSAR CanTpのインターフェースの復習。AUTOSAR CanTpのインターフェースを図解してみた。各種インターフェースはそれぞれのヘッダファイルで定義はされている。シミュレーション用に辻褄合わせは必要。
AUTOSAR CanTpの仕様はAUTOSAR_SWS_CANTransportLayeで公開されている。最低限把握する必要のあるインターフェースは以下。CanTp_Transmit。CanTp_MainFunction。CanTp_Rx
A-COMSTACKのCanTpの本体はcantp.c。多くのヘッダファイルも持ってくる必要がある。タイマ割り込み、排他はWin32APIで実現。
TOPPERS協会からA-COMSTACKとうAUTOSARの通信スタックBSW群が公開されている。この中のCanTpを使用。A-COMSTACKはAUTOSARパートナーになっていないと商用利用出来ない。今回は学習目的で利用。動作確認用の
割り込みエミュレーションのコードを提示。WaitForSingleObjectでシグナル待ち。xlCanReceiveで受信、送信、エラーの各種情報を取得。xlEvent.tagで各種処理に振り分け。
MCAL-CANDRVを実現するには受信割り込みと送信完了割り込みの再現が必要。XLドライバライブラリは受信、送信済み、エラーのイベントをWin32APIのイベントオブジェクト経由で通知する。よって、Win32APIによるスレッド、イベント
AUTOSAR CanTp編に突入だよー。AUTOSARはSW-C、RTE、BSW、MCALのレイヤー構造になってる。AUTOSAR CanTpはBSWの一つでISO15765-2を再現している。
can-isotpのFCパラメータ変更実験をした。can-isotpの完成度は高い。少なくとも、そこらの構造が破綻したヤッツケ車両診断通信よりかは遥かに良い。
can-isotpのリクエストレスポンスの実験を行った。SF-SF通信→OK!MF-MF通信→OK!
車両診断通信の大半はリクエスト-レスポンスで一つの通信。例外的にリクエストのみ、レスポンスのみもあるが、かなりレアなパターン。リクエスト側、レスポンス側ともに受信スレッドの仕組みでスクリプト肥大している。
can-isotpのマルチフレームリクエストの振る舞いを変えるためFC相当を変えてみた。指定したSTminに準拠する振る舞いにはなった。通信上の時間パラメータはシステム間で同期が取れないことを前提として幅を持たせている。10[ms]以上なら
can-isotpのデフォルト状態だとDLC最適化仕様が採用される。CanStackに渡すパラメータでパディング、MIN_DLCを設定するとパディング仕様に切り替わる。
python-canでFCの辻褄合わせした。python-canでちょっとしたタイミングを見計らったCANフレームの差し込みで対応。これにより、とりあえずマルチフレームリクエストが通った。
【Why?】なぜなぜ分析のコツというか実施するための前提条件と事例【What?】
「なぜなぜ分析」の話は一瞬で終わる。「なぜなぜ分析」をするための前提条件が重要になってくる。条件が揃った場合の「なぜなぜ分析」はとても強力なツール。
Pythonパッケージのcan-isotpでISO15765-2ことISO-TPの通信ができる。ただし、python-canも依存関係の都合上インストールされている必要がある。とりあえずSF(SingleFrame)の送信はできた。マルチフ
python-canがサポートしているデバイスを列挙した。pyton-canによる送受信を実現した。
can.playerで再生してcan.loggerで収録した。can.loggerの収録ファイルフォーマットは3種類。asc、blf、csv。
python-canのインストールをした。python-canの動作確認をした。can.playerで送信してBusMasterで収録。python-canの動作性能は1~2[ms]オーダー。CANoe等だともっと早い。
やっとPython。Anacondaでやるけど、公式のWindows向けPythonでもOK。ちゃんと一個ずつ動作確認しておいて方が良いよ!(自分に言い聞かせている。)
BusMasterのセットアップをした。BusMasterでVirtual CAN Bus上のCANフレームをモニタした。
Vector社の無償公開のXL Driver LibraryとVector Driver Setupをインストール。XL Driver Libraryの中にxlCANControlというアプリがあるんで、それによる動作確認が手っ取り早い。ア
お勉強には飽きたのでそろそろシミュレーションするよー。AUTOSARやるかもねー。あえてPythonを使うというチャレンジもするよー。
ISO15765-2(UDS)とISO15765-4(OBD)でタイムアウトパラメータの数値は異なる。UDS側が緩く、OBD側が厳しめ。タイムアウトパラメータの中にはパフォーマンス要求として設定されているものもある。N_Br、N_Cs。
ISO-TPのタイムアウトパラメータは6個、N_As、N_Bs、N_Cs、N_Ar、N_Br、N_Cr。シングルフレーム送信は1フレームで関係ツしているのでN_Asだけ。マルチフレーム送信は全パラメータを使用する。ISO-TPはあくまでフレ
SF-SF通信とMF-MF通信の各種フレームへの分解を実施。MF-MF通信はFCのBSやFSで若干挙動が変わる。DLCの都合でメッセージに含まれない部分はパディングで埋める。パディングで使用する値は何でも良い。良く使われ鵜値は00,55,A
4種類のフレームの説明。先頭N_PCItypeがあるので、受信時に即判定ができる。これぞれ固有のパラメータを持っている。SF。SF_DL。FF。FF_DL。FC。FS。BS。STmin。CF。SN。
CAN複数フレームで最大4095byteまで送信/受信可能。N_PCIというパラメータが各フレームの先頭にあり、うまくつなげられるような仕掛けがしてある。送信データ数によって送信方式が大きく2つに分かれる。7byte以下であればシングルフレ
Extended addressingはNormal addressingのN_TA追加の拡張版。Mixed addressingは11bitID版と29bitID版がある。11bitID版はNormal addressingベースのゲート
Normal Addressingは最もシンプルなアドレッシングフォーマット。Normal fixed addressingは最も仕様として定義し易いアドレッシングフォーマット。
「ブログリーダー」を活用して、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による補正したものになります。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は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ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。