TT Lab
はじめる
学ぶ 学習パス コース

電子回路入門 — センサー入力の検証

値が正しくても早く読むと間違う

TT Labで続きを見る

一言でいうと

定常状態の範囲と、その状態に到達する時間は、別々の検証項目です。

なぜ必要なのか

開発ボード1枚ではうまく動いていたセンサーが、量産後に、一部だけ範囲を外れます。抵抗に書かれた数字は公称値であり、すべての部品の実測値ではありません。そこに、電源の誤差まで重なります。公称値の計算が1つ合っているからといって、設計の余裕が十分だとは限りません。

±1%の抵抗を複数使うからといって、電圧の誤差を単純に±1%と決めることはできません。出力電圧は、抵抗どうしの比率に依存するからです。分圧回路の上側だけが大きくなれば出力は下がりますが、下側だけが大きくなれば上がります。すべてを同じ割合で大きくする実験は、まさにこの最悪の組み合わせを見逃します。

どう動くのか

電源と3つの抵抗がそれぞれ2つの端の値を持つなら、16通りの組み合わせを計算します。正の抵抗だけがあるこの回路では、出力は、電源・下側・負荷が大きくなると増加し、上側が大きくなると減少するので、端の値の最小・最大が範囲を決めます。非線形素子や複雑な回路でも常に角だけを見ればよいという一般法則ではありません。また、一様分布や正規分布を与えていないので、この範囲から不良率を計算することはできません。

出力にコンデンサCをつなぐと、電圧は瞬間的には最終値になりません。理想的な1次回路では、V(t)=Vfinal+(Vinitial-Vfinal)*exp(-t/τ)です。時定数は、τ=Rth*Cです。Rthを求めるときは、独立した理想電圧源を0 V、つまり短絡に置き換えます。そのため、この回路では、上・下・負荷の3つの抵抗がすべて接地につながって見え、並列になります。電源の抵抗を無限大にすると、別の時定数が出ます。

最終値に対する残差が1%以下でなければならないなら、exp(-t/τ)<=0.01、つまりt>=-τ*ln(0.01)です。1τで約63.2%に到達したという話と、1%まで整定したという話は、別のものです。Cを大きくすれば変化をより遅くできますが、入力を速く読まなければならない時間バジェットとぶつかります。

1次RC回路が最終値に近づく指数曲線の上に、1タウで63.2パーセント、3タウで95.0パーセント、残差が1パーセントになる4.61タウ、残差が0.674パーセントの5タウ、12ビットの1/2 LSBまで整定する9.01タウを一緒に示した図

現場での姿

ADCの全体のサンプル間隔と、入力を取得する時間は、同じとは限りません。データシートの取得時間、入力回路、許容されるソース抵抗を、一緒に確認する必要があります。この教材の100 nFは、出力に追加した教育用のコンデンサであり、特定のADCの内部サンプリングコンデンサだという意味ではありません。実際には、スイッチ抵抗・アンプの安定度・ノイズも確認する必要があります。

境界と確率は別の問い

電源が最も高く、上側の抵抗が最も小さく、下側と負荷が最も大きいとき、このモデルの出力は最大になります。逆の組み合わせは最小です。ここで16通りの組み合わせをすべて数えるのは、量産品16個を測定するという意味ではありません。起こりうる境界を広げて見せたものです。端の値で悪い結果が出たからといって、製品の1/16が不良だとは言えません。実際の分布と、変数どうしの相関を知らなければ、その割合はありません。

実務では、「常温の公称値」「電気的な公差の範囲」「温度変化」「部品の経年劣化」を分けて記録します。今回の±1%には、温度係数や長期変化を加えていません。したがって、公差の計算が通っても、温度別の検証が終わったわけではありません。分からない効果をすべてまとめて、適当に10%の余裕を付けると、保守的に見えますが、何を見逃したのかと、その数値の根拠を説明できません。

波形を3点で検算する

RCの計算は、初期値、1時定数後、十分に長い時間後の3点で確認できます。初期0 Vから最終2 Vへ向かい、τ=2 msである別の例なら、t=0で0 V、t=2 msで約1.264 V、t=10 msで約1.987 Vです。電圧が最終値を超えたり、時間とともに下がったりするなら、指数の符号や初期条件を誤って書いています。この単調増加という性質は、今回の受動的な1次の充電モデルの性質であり、インダクターがある場合や、能動回路で振動が生じる場合には、一般化しません。

「5τで終わり」という表現も、要求する誤差と一緒に使う必要があります。5τ後の残差は約0.674%です。1%の基準には十分ですが、はるかに小さい誤差を要求する高分解能の変換器には、十分でないかもしれません。12ビットで、フルスケールのステップの1/2 LSBは、全範囲の1/8192なので、理想的な1次モデルだけでも、約ln(8192)=9.01τが必要です。実際の取得ステップの大きさがフルスケールかどうかや、他の誤差バジェットは、別に決める必要があります。

コンデンサの100 nFは、100×10⁻⁹ Fです。Pythonで100e-9と書けば、単位を計算の前に統一できます。時間の結果をmsで見せたいなら、計算はsで終えてから、出力のときに1000を掛けてください。途中の計算でmsとsを混ぜると、1,000倍間違った応答も、滑らかな曲線として描かれます。グラフがもっともらしいことと、単位が合っていることは、別の検証です。

最後に、電源が0 Vになったからといって、抵抗まで消えるわけではありません。出力から見ると、上側の抵抗も接地につながるので、残りの2つの抵抗と一緒に残ります。回路図をもう一度描くことのほうが、複雑な公式を1つ覚えることよりも、このような間違いを確実に防ぎます。

次の確認

すぐ後のクイズで、公差の組み合わせと時間の基準を区別します。最後のモジュールのラボでは、16通りの公差の組み合わせを作り、公称値の回路が1 ms後にどこまで到達したかを計算します。測定機器を使ったという表現の代わりに、「理想的な1次モデルの予測」と結果に説明を付けてください。抵抗を大きくすると消費電力は減りますが、出力インピーダンスが大きくなりうるというトレードオフも、一緒に検討します。