1. ブラシレス DC モーターの BLDC 速度の計算と推論

前提: まず、モータのコラム2. BLDC 整流原理を Hall sensor_lakers_cbb のブログ - CSDN ブログで読むことができます。ノートは最初に Youdao クラウド ノートから整理されており、形式が間違っている可能性があります。Youdao クラウド ノートを見たい場合は、プライベート メッセージでリンクを送信できます。または、必要な読者は以下にコメントして、C++、Linux、GNSS ナビゲーション、自動運転、QT、C 言語、C#、Python、STM32 などを含む Youdao クラウド ノートのリンクを共有してください。ノートを共有してください。モーターに関する次のトピックでは、モーター、ナビゲーション、自動運転などのアルゴリズムのソース コードをアップロードする予定です。

1. BLDC速度ユニット

@1. 運動分野における速度の単位は、円/秒または円/分です。

@2. 円/分とはモーターが1分間に何回転するかを表し、単位はRPM(回転数/分)です。

2. ホールセンサーを使用した高感度BLDC速度測定方式

@1. ホールを使用した BLDC モーターの速度測定は正確です。ホールセンサー自体は電磁界の変化に応じてU、V、Wの三相波形を出力します。U、V、W三相ラインをコントローラシステムに接続し、ホールU、V、W三相入力のハイレベル変化とローレベル変化を立ち上がりエッジ+立ち下がりエッジの方式で収集します。両刃断続。

@2. ホール U、V、W の三相波形の周期(周期)とデューティ比(デューティ)は単位時間において全く同じとみなします。そこで、U、V、Wの1相を取り出して解析します。

@3. U 相を分析するとしましょう。U相をコントローラのタイマのインプットキャプチャ端子に接続します。

@4. タイマーの周波数 Ft をキャプチャするようにこの入力を設定します。適切な周波数 Ft、周波数 Ft とタイマーのカウンターのビット数 (通常は 12 ビット、16 ビット、32 ビット) を設定することにより、全体的な構成は、キャプチャされたハイレベル間隔を計算できます。 レベル間隔の最大時間、つまり C*(1/Ft) は、インプットキャプチャタイマカウンタが 16 であると仮定した場合の、インプットキャプチャタイマカウントのハイレベル間隔の最大時間です。

ビットの場合、捕捉された高レベル間隔の最大カウント値は 2^16、つまり 65535 です。カウント値 Cmax*(1/Ft) は、高レベルを捕捉するための最大時間を計算できます。一般に、ホール センサーの U、V、W の三相周波数の高レベル間隔と低レベル間隔は、それぞれ単位時間の 50% を占めます。つまり、デューティ サイクルはデフォルトで 50% になります。

Cmax*(1/Ft) * 2 は、ハイレベルとローレベルのパルスサイクル時間です。1 /(Cmax*(1/Ft) * 2 は、インプットキャプチャ タイマでキャプチャできる最小パルス周波数を計算します。最大パルス周波数は、C 値が 1 の場合であり、計算されたインプットキャプチャ周波数値はキャプチャできます。最大パルス周波数を増幅します。

@5. ソフトウェアは、U 相のハイレベルまたはローレベル区間のカウント値 C を取り込みますが、通常はハイレベル区間のカウント値 C を取り込みます。

インプットキャプチャタイマの周波数は一般に Ft と呼ばれます。上記の分析により、次の計算式が得られます。

C: ハイレベル時のパルスカウント値

Ft: インプットキャプチャタイマー周波数

1/Ft: タイマータイマーがパルス値を取得するのに必要な時間

C*(1/Ft): ハイレベル時間

C*(1/Ft)*2: ハイレベル時間 + ローレベル時間 = サイクル時間

BLDC 原理では、複数の極対があるため、モーターのステーターは 1 回転で複数のサイクルを持ちます。ここで、モーターの極対の数を N と仮定すると、次のようになります。

C*(1/Ft)*2*N: モーターが 1 回転する時間です。単位は次のとおりです。

2*N*C/フィート秒/回転

しかし、モーターの分野では、一般的に「1秒あたりの回転数」または「1分あたりの回転数」と言われます。

2*N*C/Ft は秒/ターンであり、逆数の関係は Ft/(2*N*C) ターン/秒です。

円/分に換算すると、60Ft/(2*N*C) となります。

ハイレベル期間のカウント値をCとすると、計算式は次のようになります。

RPM = 60フィート/(2*N*C)

ハイレベル+ローレベル時のカウント値をCとすると、計算式は次のようになります。

RPM = 60フィート/(N*C)

3. ホールセンサーを使用しない無誘導BLDC速度測定ソリューション

@1. ホールを使用しない無誘導 BLDC 速度測定方式は非常に複雑です。基本原理は、モーターのU、V、W三相制御回路による逆起電力ゼロクロス検出方式の基礎です。

以上で実現しました。

@2. 逆起電力ゼロクロス検出は主に、高速および低速の閉ループ整流にソフトウェア フィルタリングを使用します。

 

逆起電力の変化量はコンパレータを介して比較され、スイッチ変化量に変換される。逆起電力ゼロクロス検出方式の実装原理については、ここでは詳しく説明しません。ソフトウェアによってフィルタリングされた U、V、W の三相波形のみを分析して速度法を計算します。

もう 1 つの方法は、プロセッサ内部のコンパレータを使用することです。これは原理的には外部コンパレータと同じですが、耐干渉能力は外部コンパレータよりも優れています。

@3. 無誘導速度測定方式を分析するには、必ず体感速度測定方式を比較する必要があります。誘導速度測定は、タイマタイマインプットキャプチャを使用して、ホールU、V、Wの3相のいずれかのハイレベル期間(またはハイレベルとローレベルの1サイクル期間)のタイマカウント値をキャプチャし、モータの回転速度を計算します。 。では、無誘導速度測定ソリューションとはどのようなソリューションなのでしょうか?

@4. まず、タイマインプットキャプチャのやり方では無誘導速度計算は実現できません。無誘導の最大の問題は、回路内のさまざまなクラッターの干渉が深刻すぎることです。クラッターがフィルタリングされていない場合、干渉と誤差は非誘導を収集するインプット キャプチャ方式を使用して計算できないほど深刻です。・誘導ゼロクロス波形周期 ハイレベル期間のカウント値C。ロジックアナライザで取得した波形の解析により、下図の緑色のボックス内の 3 つの波形は、ホールフリー逆起電力なしのゼロクロス検出波形のフィルタリング アルゴリズムによってフィルタリングされた波形であり、赤色の波形は、ボックスは、ホールフリー逆起電力ゼロクロス検出なしの波形、ゼロ検出フィルターをかけた波形です。タイマインプットキャプチャ方式を使用する場合、上位レベルの周期計算は意味を失います。

 

@5. @4 の分析を通じて、高レベルのカウント値を計算したい場合は、まずフィルタリングする必要があります。フィルタリング方法についてはここでは詳しく紹介しませんが、一般的な計画としては、U、V、W の三相出力 PWM 周波数は 12KHZ で、タイマ オーバーフロー割り込みはソフトウェア上で設定されます。各 PWM サイクルの割り込み周波数も 12KHZ、つまり 0.083ms ごとに 83us 割り込みが生成され、フィルタリングのために割り込みから U、V、W ゼロクロス検出 IO ピンの値が読み取られます。フィルタリングが完了しました。これらは、上に示した緑色のボックス内の 3 つの波形です。

もちろん、MCU タイマー リソースが十分であれば、非誘導ゼロクロス モニタリング ポイント フィルタリングのために固定周波数で割り込みに入る別個のタイマーを作成することもできます。

@6. フィルタリング後、パルス波のハイレベルまたはハイレベル+ローレベルの間隔をカウントでき、そのカウント値をCとして記録し、その周波数はタイマ出力PWMの周波数Ft=12KHZとなります。

@7. ホールセンサーレス方形波制御なし BLDC 速度計算:

C: ハイレベル時のパルスカウント値

Ft: フィルタータイマー (つまり、出力 PWM タイマー) の周波数

1/Ft: タイマータイマーがパルス値を取得するのに必要な時間

C*(1/Ft): ハイレベル時間

C*(1/Ft)*2: ハイレベル時間 + ローレベル時間 = サイクル時間

BLDC 原理では、複数の極対があるため、モーターのステーターは 1 回転で複数のサイクルを持ちます。ここで、モーターの極対の数を N と仮定すると、次のようになります。

C*(1/Ft)*2*N: モーターが 1 回転する時間です。単位は次のとおりです。

2*N*C/フィート秒/回転

しかし、モーターの分野では、一般的に「1秒あたりの回転数」または「1分あたりの回転数」と言われます。

2*N*C/Ft は秒/ターンであり、逆数の関係は Ft/(2*N*C) ターン/秒です。

円/分に換算すると、60Ft/(2*N*C) となります。

ハイレベル期間のカウント値をCとすると、計算式は次のようになります。

RPM = 60フィート/(2*N*C)

ハイレベル+ローレベル時のカウント値をCとすると、計算式は次のようになります。

RPM = 60フィート/(N*C)

おすすめ

転載: blog.csdn.net/qq_27568125/article/details/126631725