センサー入力の設計レビューを作る
目標
分圧回路の入力をPythonの標準ライブラリで計算し、負荷・公差・時間・ADC・故障の仮説を検証します。SPICEや実物のボードではなく、明示された抵抗と、1次のRCモデルです。
なぜ重要なのか
電圧を1つ合わせるだけでは十分ではありません。負荷をつないだ後の電流、消費電力、公差の端の値、取得のタイミングまで検討して初めて、測定値がなぜ変わるのかを説明できます。実際の測定と、合成した観測を区別することも、検証の一部です。
ステップ
- 無負荷で5 V、10 kΩの2つの抵抗を計算して、
/root/circuit-review/01-unloaded.jsonに保存します。 - 10 kΩの負荷を追加して、
/root/circuit-review/02-loaded.jsonに電圧・電流・低下率を保存します。 /root/circuit-review/03-power.jsonに、3つの消費電力と供給電力をWで保存します。- 電源±5%、3つの抵抗がそれぞれ±1%の、16通りの端の値の組み合わせを比べて、
/root/circuit-review/04-corners.jsonに個数と範囲を保存します。 - 公称の回路に100 nFを追加して、
/root/circuit-review/05-settling.jsonに時定数・1 ms時点の電圧・1%整定時間を保存します。 - ステップのカードの仮想ADCの規約で、
/root/circuit-review/06-adc.jsonに2つのコードと入力の有効性を保存します。 - 2.49±0.02 Vの合成観測と、3つの故障候補を比べて、
/root/circuit-review/07-diagnosis.jsonに予測・候補・次の確認を保存します。
参考
ステップのカードに、すべてのフィールド名があります。JSONの数値は文字列ではなく、NaNや無限大は許容されません。数値の許容誤差は、相対0.00001または絶対0.00000001のうち、大きいほうです。仮想ADCのコードは、整数でなければなりません。標準ライブラリのjson・math・itertoolsだけを使うので、追加のインストールはありません。シェルとPythonが初めてなら、Linux基礎コースを先に見てください。セッションが終了する前に、成果物をコピーして保管してください。機器の接続、はんだ付け、実際の電圧の印加は行いません。
計測器をつなぐ前
理想的な5 Vの電源に、10 kΩの上側の抵抗と、10 kΩの下側の抵抗を直列につないだ、無負荷モデルのvout_vとcurrent_aを計算してください。
直列電流は、2つの抵抗の合計で決まります。出力は、下側の抵抗の両端の電圧です。
負荷が回路の一部になる
同じ回路の出力と接地の間に、10 kΩの負荷をつないでください。vout_v、上側の電流top_a、下側と負荷の電流の合計return_a、無負荷に対する電圧の低下率drop_fractionを計算してください。
下側の抵抗と負荷は並列です。電流の合計が合っているかどうかも、別に確認してください。
電力の帳簿を合わせる
02の負荷回路で、上側のtop_w、下側のbottom_w、負荷のload_w、電源が供給するsupply_wを、W単位で計算してください。3つの消費電力の合計と供給電力が、一致しなければなりません。
各抵抗の両端の電圧は異なります。上側に出力電圧をそのまま入れる間違いを避けてください。
公差の最悪の組み合わせを見つける
電源5 V ±5%、3つの抵抗がそれぞれ10 kΩ ±1%の、端の値の組み合わせ16通りを、すべて計算してください。case_count、min_v、max_vを記録してください。各誤差は独立しており、統計分布は仮定しません。
4つの変数がそれぞれ2つの端の値を持つので、2⁴通りです。すべての抵抗を同時に大きくするだけでは、最悪の条件になりません。
1 ms後もまだ動いている
02の公称の回路の出力に、100 nFを接地へつなぎます。初期電圧は0 V、t=0に電源を5 Vに上げる、理想的な1次モデルです。tau_s、1 ms時点のv_at_1ms、最終値に対する誤差が初めて1%以下に到達するt_1pct_sを求めてください。
電圧源を0 Vにすると、3つの抵抗が並列になります。最終値は、負荷がある出力電圧であり、残差の割合は、exp(-t/τ)です。
コードが飽和しても、安全な入力とは限らない
仮想12ビットADCは、code=min(4095,max(0,floor(v/3.3*4096)))です。通常の範囲は、0–3.3 Vと定義します。02の定常状態の出力のcode_loaded、5 V入力の表示のcode_overrange、5 Vが通常の入力範囲の内側かどうかのinput_validを記録してください。
コード計算の規約を、4095で割る補正式と混ぜないでください。飽和したコードを返すということは、物理的なピンが過電圧に耐えるという意味ではありません。
故障の候補と次の測定を区別する
教育用の合成観測は、2.49 V ±0.02 Vです(実際の計測ではありません)。公称の部品だけを使い、候補をnormal、bottom_open(下側の抵抗だけが断線)、load_short(負荷だけが理想的に短絡)の3つに限定します。predicted_vに候補ごとの電圧を、consistentに観測区間の内側にある候補名のリストを書いてください。次の確認next_checkは、電源を切った後に下側の抵抗を切り離して抵抗を確認するという意味の、power_off_isolated_resistanceと記録してください。
下側が切れても、10 kΩの負荷は残ります。候補が1つ残ったということと、現実のあらゆる故障の原因を実証したということは、別です。