フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
【上流検証】最小構成のモデルベース開発事例 その35【Bypass①】
Bypassという実験手法がある。使用する回線は特に決められていないが、EthernetやCANであることが多い。アルゴリズムが確定しておらず、試行回数を増やす場合にとても有効な手法。
【上流検証】最小構成のモデルベース開発事例 その34【ネットワークRAPID⑦】
CAPLもブレークポイント、ステップ実行などのデバッグ機能は保有している。ただし、シミュレーションバスの時だけ可能。送信周期はプロットで見るか、CAN回線モニタで確認できる。
【上流検証】最小構成のモデルベース開発事例 その33【ネットワークRAPID⑥】
CAPLはValueObjectというイベントハンドラを起点に処理を走らせる。シグナル更新とCAN送信は別物。シグナルの更新有無に関係なく送信周期を定義できる。
【上流検証】最小構成のモデルベース開発事例 その32【ネットワークRAPID⑤】
SimulinkモデルからCANoeのシステム変数に出力する場合はSystemVriableOutputブロックを使用する。CANoeでシステム変数を定義できる。システム変数の型は、扱うシグナルに近いものを選択しておいた方が良い。
【上流検証】最小構成のモデルベース開発事例 その31【ネットワークRAPID④】
SimulinkDLLの出力を2つのシグナルに渡すには2つの手法がある。Signal Outputブロックを2つ使用。システム変数に書き込んでからCAPLで各シグナルへ分配。複数の回線のシグナルを扱うにはゲートウェイノードを定義する必要があ
【上流検証】最小構成のモデルベース開発事例 その30【ネットワークRAPID③】
Simulinkモデルだけでは正しい保証は困難。テストパターンとテスト結果もセットであれば、最も正しい仕様書になる可能性は高い。
【上流検証】最小構成のモデルベース開発事例 その29【ネットワークRAPID②】
正直言うとまずはMicroAutoBox使った方が良い。すでに精度や性能の見積が出来ているのであれば、費用対効果を意識しだしても良い。プログラマブルな振る舞いの場合、MATLAB Functionブロックを使用した方が楽な場合がある。可能で
【上流検証】最小構成のモデルベース開発事例 その28【ネットワークRAPID①】
ダミーの信号を作る際は、普通はラピッドコントローラを使用する。時間精度がそれほど求められないのであれば、PCから制御するタイプでもある程度なんとかなる。
【上流検証】最小構成のモデルベース開発事例 その27【ネットワークMILS⑥】
dbc、モデル生成ウィザード、SimulinkDLL、シミュレーションまでの流れを復習。そしてやっと動かした!あとは徐々に本物と差し替えたりすると応用の幅が広がる。
【上流検証】最小構成のモデルベース開発事例 その26【ネットワークMILS⑤】
CANoeに組み込むSimulinkDLLを作成するにはSimulinkCoderとCANoeのMATLABコンポーネントが必要。Simulinkモデルの入出力にCANoe IOのSingnal Input/Outputを接続してSigna
【上流検証】最小構成のモデルベース開発事例 その25【ネットワークMILS④】
dbcファイルがあると、「モデル生成ウィザード」でCANoe上に自動でネットワーク構築できる。「シミュレーションバス」であれば、実際のCAN回線につなぐ必要はない。ノードパネルでシグナルの値を手打ちで変更可能。本格的にテスト利用するにはCA
【上流検証】最小構成のモデルベース開発事例 その24【ネットワークMILS③】
CANoeでネットワーク構造を定義するにはdbcファイルを作成する必要がある。dbcファイルはCANdb++で作成。ネットワーク定義はノード、メッセージ、シグナルの階層構造になる。ノードにメッセージをぶら下げる。メッセージにシグナルをぶら下
【上流検証】最小構成のモデルベース開発事例 その23【ネットワークMILS②】
CANはマルチマスタなネットワーク。しかし概念上は個別の信号線を模しているだけ。CANをうまく利用するためにはネットワーク構成を明確にする必要がある。ノード、CANID、シグナル。
【上流検証】最小構成のモデルベース開発事例 その22【ネットワークMILS①】
制御とインターフェースを分けたことで、インターフェースだけを差し替えるということは可能。だたし、簡単かどうかは別問題。Simulinkモデルがあればラピッドコントローラで疑似的なECUを作ることは可能。CANに限定するならば、車載ネットワー
【上流検証】最小構成のモデルベース開発事例 その21【可変周期PID】
Δtをパラメータとして扱うことができる。これにより、PIDの駆動周期が可変でも対応可能。Δtと駆動周期が同時に変化するので、数学的には通常のPIDと同一と言える。総和法、差分法による誤差分があるため完全一致とはいかないが、ほとんどの制御では
【上流検証】最小構成のモデルベース開発事例 その20【PID振動対策】
時間も調整可能パラメータの一部と考える。さらに時間の単位も調整可能のパラメータと考えられる。
【上流検証】最小構成のモデルベース開発事例 その19【プラントリアル化後編】
出力(仕事率)と速度の関係は質量が確定していれば算出可能。最大速度が確定していれば、定常ゲインが算出可能。
【上流検証】最小構成のモデルベース開発事例 その18【プラントリアル化前編】
プラントモデルの精度を上げるためには本物の動作特性が必要。一次遅れ系を使っている場合、時定数と定常ゲインが重要。立ち上がり時定数と立下り時定数が異なる場合がある。プラント出力の偏差を見て切り替えるような仕掛けが必要になる。
【上流検証】最小構成のモデルベース開発事例 その17【S-Function】
S-Function Builderの使い方の説明。これ以外のS-Functionの作成方法もある。Simulinkに抵抗ある人はS-Functionから始めても良いかもしれない。出力を波形で見れる。複数のロジックの入出力の簡単な繋ぎ替えが
【上流検証】最小構成のモデルベース開発事例 その16【SILS】
CコードをS-Function化することでSimuklinkブロックとして扱えるようになる。MILSの一部を差し替えても同様の動きになるかを確認できる。元のSimulinkモデルと同一の入力にして出力を比較することで一致性確認ができる。
【上流検証】最小構成のモデルベース開発事例 その15【ACG】
SimulinkCoderを使ってSimulinkモデルをACGできる。SimulinkCoderを使用するためにはMATLAB Coderのライセンスも必要。ACGされたコードは可読性が良くない場合がある。プロタイプの段階では、一旦可読性
【上流検証】最小構成のモデルベース開発事例 その14【MILS後編】
制御器と制御対象をつないでMILSにすることができる。SignalBuilderを使ってテストパターンを作れる。わざと問題のあるモデルと比較すると、今回の対策の効能が見えるのでやってみると良い。
【上流検証】最小構成のモデルベース開発事例 その13【MILS前編】
離散化済みであれば、ExcelでもPID制御のシミュレーションは可能。ただし、かなり面倒くさい。MATLAB/Simulinkが無い時代は恐らくこういった面倒なことをやっていたのだろう。
【仕様書】最小構成のモデルベース開発事例 その12【フィルタ】
ノイズは様々な種類があり、設置場所や扱う信号によって異なる。複数のノイズ対策をソフトウェアで実施するとリアルタイム性が犠牲になることがある。よって、適切なフィルタアルゴリズムが無いか調べる必要が出てくる。
【仕様書】最小構成のモデルベース開発事例 その11【制御対象離散化】
積分要素には基本的にはサチュレーションを入れた方が安全。物理量を算出する際は基本的にはSI単位系だが、制御として必要な単位はその限りではない。よって、単位変換が必要な場合がある。
【仕様書】最小構成のモデルベース開発事例 その10【制御対象】
制御対象はおおよそ一次遅れ系で表現できることが多い。アクセル開度と一次遅れ系の関係性を持っているのは出力。出力(仕事率)から車速が算出できる。
【仕様書】最小構成のモデルベース開発事例 その9【PID離散化】
速度型PIDの復習。PIDの積分を総和法で、微分を差分法に置き換えた。Δtは制御周期。今回の場合は10[ms]。・ワインドアップ対策は積分要素に切り替えスイッチとサチュレーションを含めることで対応。
【仕様書】最小構成のモデルベース開発事例 その8【離散化後編】
テイラー展開第3項までを使用した積分近似手法は台形法と呼ばれる。テイラー展開第3項までを使用した微分近似手法は中心差分法と呼ばれる。f(t_0+Δt)で解いたパターンだと前進差分法。f(t_0-Δt)で解いたパターンだと後進差分法。数式を解
【仕様書】最小構成のモデルベース開発事例 その7【離散化中編】
総和法、差分法はテイラー展開の第2項までを使用した式がベースになっている。よって、第3項以降が誤差となる使用する項数を増やせば制度は上がる方向になる。仕様上は3項までを想定、運用では2項までということが良くある。
【仕様書】最小構成のモデルベース開発事例 その6【離散化前編】
離散化はテイラー展開を応用して実現している。テイラー展開にf(t)=f(t_0+Δt)の制約を掛けると式が単純化される。総和法、差分法は初歩、テイラー展開は原理、そのあとに離散化の基礎。初歩の後に原理、原理の後に基礎を押さえておくと良い。
「ブログリーダー」を活用して、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ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。