NETLIST STUDIO GUIDE
FirmwareとFeedback
生成C++、実機I/O、8ファイルのBundle、Feedbackと実機の境界を理解します。
正本と生成物を分ける
| 種類 | 役割 | 更新方法 |
|---|---|---|
.netgrid.json | 回路、制御graph、I/O、timingの編集正本 | Netlist Studioで保存 |
| Firmware Bundle | HAL非依存C++17とintegration雛形 | Projectから再生成 |
| Feedback実行artifact | SPICE deck、WASM、manifest、結果 | 実行ごとに一時生成 |
| Graphの表示/演算 | 結果のprojection | 元datasetから再計算 |
Projectを変更したあとに古いBundleや結果を使わないでください。WASMや解析結果はProject本文の正本ではありません。
実機I/Oを設定する
実機I/O設定で次を1項目ずつ確認します。
| 設定 | 選択肢/意味 | 必ず確認すること |
|---|---|---|
| numeric profile | float32既定、またはfloat64 | MCU、演算精度、実行時間 |
| input codeName | 測定入力のC++名 | ADC値やsensor値との対応 |
| sampled-value output | 1つの数値を出力 | safeValue、単位、範囲 |
| hardware-pwm output | Duty/frequency/polarity | PWM node、activeHigh、safeDuty |
| complementary PWM | 上下Gateの1組 | dead time、両極性、both-off |
ADC channel、timer、PWM channel、MCU pin、Gate driver、電圧/電流scaleは回路netから自動推定されません。ProjectのRefIDと実機pin名が似ていても、同じものとは扱わず、integration側で明示的に対応付けます。
safeValueとsafeDutyは、停止、未初期化、通信断、watchdog時に採用する設計値です。単に0を入れるのではなく、実回路で安全側になる極性と電力状態を確認します。
生成C++を確認する
-
制御graph: 選択したblockと生成sourceの対応を確認します。
-
生成C++: activeな方式、保護領域、診断を確認します。
-
I/O/Bundle: numeric profile、mapping、安全値を確定してから書き出します。
-
ファームウェアC++を開きます。 -
キャンバス上のブロックを選び、対応するparameters、演算、state updateのsource範囲を確認します。
-
Blocks方式では、許可された数値parameterまたは
CustomCpp保護領域だけを編集します。 -
プレビュー診断を確認し、変更を確定します。
-
C++ ビルドのみでsource policy、C++17、WASM ABIを確認します。
生成器が管理する構造を変更した下書きは適用されません。C++方式へ切り替える場合はC++版として編集を使用します。Blocks版とC++版は別々に保存され、activeな方式だけがBuild/Runの正本です。
Standalone C++では、dynamic allocation、thread、filesystem、network、process、任意host importなどを使えません。回路やpinへ直接アクセスするコードをcoreへ埋め込まず、Platform境界へ分離します。
画面に表示されたcodeName、入出力方式、safe valueが回路上のRefIDと設計資料に一致していることを確認します。Bundle完了だけでMCU固有driverや安全処理が完成したことにはなりません。
Firmware Bundleを書き出す
- 実機I/O設定を確定します。
- model diagnosticsのerrorと未保存C++ draftを解消します。
ファームウェア一式を書き出すを実行し、空の保存先を選びます。- 次の8ファイルがあることを確認します。
netgrid_controller.hpp
netgrid_controller.cpp
netgrid_platform.hpp
integration_example.cpp
firmware-manifest.json
control-source-map.json
CMakeLists.txt
README.md
firmware-manifest.json version 4には、C++17、numeric profile、sample time、graph/behavior hash、I/O、安全値、PWM契約、使用block definition、各fileのSHA-256が含まれます。ファイルを編集した後はmanifest hashが一致しなくなるため、元Bundleと変更版を区別します。
Platformへ接続する
netgrid_platform.hppで、アプリが要求するinput/output契約を確認します。integration_example.cppで、sample取得、Controller::step()、出力反映の順序を確認します。- ADC値を物理単位へscaleし、入力codeNameへ対応付けます。
- controllerの全出力がfiniteで範囲内であることを確認してから、同一tickの値をatomicに反映します。
- PWMはshadow/preload相当の周期境界更新を使います。
- fault時、watchdog時、初期化前にsafe outputへ移る実機処理を別途実装します。
PWM同期sampleでは、ADC sample取得、controller step、PWM shadow更新の順序とphaseを実機timerへ対応付けます。Netlist StudioはADC channel、timer、pinを決めません。
Feedbackを実行する
- activeなcontroller方式と保存済みsourceを確認します。
- probe/actuator binding、sample time、durationを確認します。
- model diagnosticsとfeedback diagnosticsのerrorを解消します。
ビルドしてシミュレーションを実行します。- 完了したdatasetのProject fingerprintと現在のProjectが一致することを確認します。
Feedbackでは、制御sourceの初期値と範囲を再検証し、全出力がfiniteかつ範囲内の場合だけ同一tickのlatchへ反映します。暗黙のclampで不正なcontroller出力を隠しません。
Feedback結果を読む
結果では、probe、actuator、Scopeを共通時間軸へ統合します。Buck例では次を確認します。
- 回路: 結果を生んだpower stage、probe、actuatorを再確認します。
- 結果summary: 出力電圧、peak current、Duty指令を確認します。
- 定常推定: 測定窓、ripple、適用Duty、PID内部系列を確認します。
- 出力電圧とインダクタ電流。
- Gate commandまたは上下Gate。
- PIDのraw/limited/applied Duty。
- startup最大値、定常平均、偏差、ripple、peak current。
- 相補PWMでは上下同時ON時間と最小both-off時間。
画面例では末尾20%の測定窓で出力平均23.889 V、Duty指令平均50.536 %です。この数値は固定fixtureの結果であり、別の部品値やmodelを使った回路の合格値として流用しません。
PID内部系列はapplicationがaccepted probe系列から再生するprojectionであり、権威あるsimulation artifactそのものではありません。C++単独方式のprivate stateは推測しません。
回路、制御graph、numeric profile、I/O、timing、active sourceを変更した場合は、以前の結果を古い状態として扱います。plotの並べ替えだけではbehaviorを変更しません。
シミュレーションと実機の差
| シミュレーションで省略/理想化されやすいもの | 実機で必要な確認 |
|---|---|
| switch/diodeの損失と温度依存 | junction温度、heatsink、SOA |
| Gate driver遅延と電源 | UVLO、source/sink電流、Miller耐性 |
| 配線、ESR、ESL、EMI | layout、loop面積、filter、測定方法 |
| ADC/timer量子化とjitter | resolution、trigger、latency、clock drift |
| faultと電源投入順序 | fuse、current limit、interlock、watchdog |
| modelの定格外挙動 | datasheet、derating、破壊mode |
最初の実機bring-upは、回路有識者によるreview、絶縁された計測、電流制限、低エネルギー条件、非常停止、safe Duty確認を完了してから行います。50 Vの学習値をそのまま実機へ適用しません。
完了チェック
- Project、Firmware Bundle、Feedback artifactの正本関係を説明できる。
float32/float64と実機I/O設定を確認した。- 8ファイルのBundleとmanifest hashを確認した。
- ADC/timer/pinが自動推定されないことを理解した。
- Feedbackのstale条件とPID projectionの境界を理解した。
- シミュレーション外の定格、保護、bring-up手順を別途設計する必要を理解した。