current-sense

電流計測

電流計測は大切.モータを高精度に制御するには必須と言える(と思ってる)
ホール効果を用いるもの,シャント抵抗に流れる電流をアンプで増幅する.

シャント抵抗を配置する箇所により測定方法が異なる。
計測できるタイミングが限られる(シャント抵抗の位置によるが)
スイッチングのタイミングによってSN比が大きく異なる点に注意する。
配線のインダクタンスの影響を最小限にするため,対称かつ平行に配線するといい.
シャント抵抗は4端子の物があり,これをケルビン接続と言ったりする.

  • GNDの影響受けず
  • 電源電圧の短絡を検出可能
  • コストが高くなること多い(ローサイドと比較して)
  • コモンモード電圧が高い(電源電圧に近い)

電流計測アンプと差動入力アンプは回路の構成が結構似ているが,特性がそれなりに違う.
差動入力アンプの入力インピーダンスは100kΩほどであるが,電流計測アンプは5kΩほどである.
このため,入力部分に同送ノイズ除去のためのRCローパスを構成する場合,抵抗の大きさ,精度のアンバランスが大きく影響する.
電流計測アンプの場合,小さめの抵抗値(一般に10Ω未満)を使う必要がある.
ここの精度がいまいちだとコモンモード除去比が大きく悪化する.
ここで
プレフィルタ…アンプなどに入力される信号のところにつけるフィルタ 前段のフィルタ
ポストフィルタ…アンプの出力部分に取り付けられるフィルタ 後段のフィルタ

  • コモンモードがほぼ0(ほぼGND)
  • 電源電圧で発生するスパイクやサージの考慮が不要
  • 低コスト
  • システムGNDと負荷GND間で電位差が生じる。
  • 電源の短絡は検出不可

理想的な正弦波電流がモータに流れているとき、ローサイドのシャント抵抗に流れる電流は正弦波の半周気分になる。
シャント抵抗に必要な電力を計算するときはこの半周気分の正弦波電流の実効値を用いればよい。

ローサイドシャントで電流検出する際は、ローサイドのFETがONの時のみ電流が流れる。このため,電流計測のサンプリングのタイミングが制限される.ローサイドのFETがONの時のみ計測可能.
また、ローサイドのFETが再びOFFになるまでの間に出力信号がセトリングする必要がある。 よって,十分に高速なスルーレートの電流検出アンプが必要となる。 これらの対策として(というか三相ローサイドシャント抵抗ならわりと基本スタイル)三相のハーフブリッジのうちFETのOFF時間最もが短い(Duty比が大きい)ものは計算に用いず、キルヒホッフの法則からその相の電流を演算するという方法がある。

]

オペアンプを使って,ローサイドのシャント抵抗に流れる電流を計測したい.   図は参考文献に記載したUM2154より引用 $$ G = G_{\text p} \times G_{\text n} = \frac{(R_{\text a}//R_{\text b})}{R_{\text p} +(R_{\text a}//R_{\text b})} \times (1 + \frac{R_{\text f}}{R_{\text n}}) $$ ここで,$R_{\text a}//R_{\text b}$は$R_{\text a}$と$R_{\text b}$の並列接続
$G$が決まったら,なるべく$G_{\text p}$を大きく,$G_{\text n}$を小さくするほうが良い.SN比を上げるだけではなく,出力に対するオペアンプ固有のオフセットをへらすためにも大切.(オフセットは$G_{\text n}$に比例するため)
$$ V_{OP_{OUT,pol}} = \frac{(R_{\text p}//R_{\text b})}{R_{\text a} +(R_{\text p}//R_{\text b})} \times (1 + \frac{R_{\text f}}{R_{\text n}}) \times V_{\text{DD}} $$

分極電圧(オフセット電圧?)$V_{OP_{OUT,pol}}$と,ゲイン$G$で電流検出可能は範囲が決定される.
$$ I_{S-} = \frac{V_{OP_{OUT,pol}}}{R_{\text s} \cdot G} $$ $$ I_{S+} = \frac{V_{\text{DD}}-V_{OP_{OUT,pol}}}{R_{\text s} \cdot G} $$

B-G431B-ESC1

例として,B-G431B-ESC1の場合.上図の抵抗値になる.この時,$G = 9.14$
0Aのときに1.96Vくらい.
STM32G4にはPGAが内蔵されているけど正確な特性はわからないのでとりあえず.
再現の仕方がわからなかったのでとりあえずレールtoレールのオペアンプで代用しようとおもう.
LTSpiceに入ってるレールtoレールのオペアンプで探してヒットしたLT1677を使うことした.
stm32F4に内蔵されているオペアンプの帯域が13MHzに対してLT1677の帯域は7.2MHzだけどまぁ抵抗値やアンプのゲインの検討には大きく影響はしないだろう.

B-G431B-ESC1
UM2154 User manual STEVAL-SPIN3201: advanced BLDC controller with embedded STM32 MCU evaluation board

ICS(独立電流センサの略だったような)のようにモータの相にシャント抵抗を配置する。 VESC6はモータの3相のそれぞれにシャント抵抗が入っている。
ハイサイド,ローサイドのシャント抵抗方式と異なり,スイッチングのタイミングに依存はない.
しかし,高いコモンモード電圧に対応できる必要がある.

特に相電流での電流計測を行う場合,電流検出アンプから見た電圧は電源電圧からGNDまで大きく揺れる.
(例 シャント抵抗の両端が0.1Vの電位差ががあるとして,オペアンプから見ると0Vと0.1Vの電位差を見るのか24.0Vと24.1Vの電位差を見るのか?) このため,電流検出アンプを含めた差動アンプではコモンモード除去比が大切なパラメータの一つとなる.

シャント抵抗の両端から電流計測アンプの入力部分までのローパスフィルタ

差動モードRCフィルタ


図はアナログ・デバイセズ社製電流計測アンプ「AD8210」データシートより引用
差動モードRCフィルタのカットオフ周波数は $$ f_{-3dB\_{\rm DIFF}} = \frac{1}{2\pi \times (2 \times R_{\rm FILTER})\times C_{\rm FILTER}} $$

図にもあるように,シャント抵抗とアンプの間に抵抗を追加することでこれが誤差の要因につながある.抵抗のミスマッチもその一つ.
なので$R_{\rm FILTER}$はなるべく小さい抵抗値にする.AD8210の資料では10Ω以下を推奨している.
入力段抵抗は10Ω以下を推奨することがOnsemiの記事にも記載あり→電流検出アンプの入力および出力のフィルタリング

コモンモードRCフィルタ

抵抗の位置は差動モードRCフィルタと同一.コンデンサが2つの入力の間ではなく,それぞれの入力からGNDに接続
静電量料$C_{\rm FILTER\_CM}$を差動モードRCフィルタのカットオフ周波数は $$ f_{-3dB\_{\rm CM}} = \frac{1}{2\pi \times R_{\rm FILTER}\times C_{\rm FILTER\_CM}} $$

差動モード用のコンデンサとコモンモード用のコンデンサの静電容量の関係は以下を満たすことを推奨.これは2つある$C_{\rm FILTER\_CM}$の静電容量のミスマッチを影響を抑えるため $$ C_{\rm FILTER} \geqq 10 \times C_{\rm FILTER\_CM} $$

コモンモード用コンデンサが取り付けられている場合差動モードRCフィルタのカットオフ周波数は以下のようになると記載してある資料もある.
$$ f_{-3dB\_{\rm DIFF}} = \frac{1}{2\pi \times R_{\rm FILTER}\times(C_{\rm FILTER\_CM} + 2 \times C_{\rm FILTER})} $$ あれ?とも思ったが,$C_{\rm FILTER}, C_{\rm FILTER\_CM}$について上記の関係が満たされていれば $$ C_{\rm FILTER\_CM} + 2 \times C_{\rm FILTER} \fallingdotseq 2 \times C_{\rm FILTER} $$ と近似できそう.そうなると式としては一緒になるのでどっちで計算しても結果が大きく違うことはないと思われる.

参考文献

  • current-sense.txt
  • 最終更新: 2023/04/27
  • by yuqlid