【モータ応用制御】——ステッピングモータ制御原理(四相5線/二相4線/細分駆動)&ドライバ&台形/S字加減速アルゴリズム&直線/円弧補間

目次

1. ステッピングモーターの紹介

第二に、ステッピングモーターの制御原理

1. 四相5線式

2.二相4線式

3. 細分化駆動

3. ステッピングモータードライバー

4. 台形加減速アルゴリズム

5. S字加減速アルゴリズム

6. 線形補間

7. 円弧補間

 8. ステッピングモーター閉ループシステム (位置閉ループ)

要約する


序文

免責事項: この学習ノートはステーション B での時間厳守のアトミック チュートリアルからのものであり、学習とコミュニケーションのみを目的としています。


1. ステッピングモーターの紹介

ステッピング モーターは、電気パルス信号を角変位 (左) または線形変位 (右) に変換するモーターです。

ステップ角:二相通常 1.8°、三相通常 1.2°、無相通常 0.72°、角変位 = パルス数 X ステップ角。

過負荷や過周波数がない場合、モーターの回転位置はパルス数のみに依存し、速度はパルス信号の周波数のみに依存します。そのため、パルス数と周波数をカウントするだけでよく、速度や位置を測定するためのエンコーダは不要となり、オープンループ能力に優れています、もちろんエンコーダを接続して速度をフィードバックすることも可能ですおよび位置データを使用して、より正確な閉ループ制御を実現します。

分類: 

励磁による分類:永久磁石型、リアクティブ型(リラクタンス型)、ハイブリッド型:

永久磁石式は運動性能が良く出力トルクが大きいが、ステップ角が大きいのが一般的に7.5°、リアクティブ型(リラクタンス型)は構造が簡単でコストが低く、ステップ角が小さいのが一般的に1.2°であるが、振動や騒音が大きく、運動性能が劣るハイブリッドタイプ ロータコアの歯数が多く、ステップ角が小さく、滑らかな動き、高トルクで良好な運動性能が得られるため、最も広く使用されていますが、構造が複雑で価格も高い。

 相数による: 相数はモーター内のコイルのグループの数を指し、一般的には 2 相、3 相、4 相、5 相が使用されます。

コイルのグループは 1 相、2 つのグループは 2 相、というように、コイルのグループは 1 本のワイヤで巻かれます。

以下の図に示すように、 4 相と 5 つのワイヤ: 5 はコイル 1、2、3、4 の共通端子であるため、4 セットのコイルがあります (一部のパスは重複しています); 5 つのワイヤ端を引き出します。GND に接続するなど、5 の極性が確実である場合、電流は一方向に 1 から 5、2 から 5、3 から 5、4 から 5 にしかならないため、この種のモーターはユニポーラ ステッピング モーターとも呼ばれます。

下図に示すような2 相 4 線式: 電流方向は双方向であり、バイポーラ ステッピング モーターとも呼ばれます。右側の緑色が1本巻かれ、赤色が1本巻かれており、2組のコイルになります。

第二に、ステッピングモーターの制御原理

1. 四相5線式

下図は 4 相 5 線式ステッピング モーター (ユニポーラ) を示しています。+ はコモン端子で、A、B、C、D の 4 つの相に分かれています。 

ユニポーラフルステップドライブ (単一コイル励磁):

                  

           

ユニポーラフルステップドライブ (ダブルコイル励磁、より大きな磁界強度、より大きなトルク):

                   

 ユニポーラハーフステップドライブにより、ローターは毎回半ステップ進み、回転がよりスムーズになります。

2.二相4線式

下図は二相4線式ステッピングモーター(バイポーラ)です。

バイポーラフルステップ駆動(シングルコイルに通電し、マグネットのNS極の両端に応力がかかるため、ユニポーラよりトルクが大きくなります)

バイポーラフルステップドライブ(ダブルコイル励磁、より大きなトルク)

バイポーラハーフステップドライブ (ステップ角が小さい場合)

 ただし、この方法ではステップ角はまだ非常に大きく、ハードウェアで位相と極歯の数を増やすことはできますが、これには制限があり、ソフトウェアを使用して電流を制御してステップ角の細分化を実現できます。

3. 細分化駆動

細分化駆動:電流分配方式によりステップ角を細分化する技術。一般的なモーター製品にはこの技術が組み込まれており、使用する際には数値を細分化することで実現できます。

原理:磁場の強さは電流の大きさに比例します。Ia = Ibの場合は隣り合う2つのコイルの中央で回転子が停止し、等しくない場合は電流の大きい側で回転子が停止しますが、入力電流の比率を変えることでより小さいステップ角で動作させることができます。従来のドライブよりも超小角化が可能で、よりスムーズな動作を実現し、振動や騒音を効果的に低減する駆動方式です。

静的インジケーター:

 相数:コイルのグループの数 一般的に二相ステッピングモーターのステップ角は1.8°、三相ステッピングモーターのステップ角は1.2°であり、相数が増えるほど小さくなります。ステップ角度。

ステップ角: パルス信号に対応するモータの回転角です。このステップ角は、必ずしもモータの実際の仕事の実際のステップ角であるとは限りません。実際のステップ角は、ドライブの細分化に関係します

ビート: 磁場の周期的な変化を完了するために必要なパルスの数。

位置決めトルク: モーターに電力が供給されていないとき、モーターローター自体のロックトルク (磁場の歯形の高調波と機械的誤差によって引き起こされます)。

動的インジケーター:

ステップ角精度: ステップ角を回転させるステッピング モーターの実際の値と理論値の間の誤差。パーセンテージで表します: 誤差/ステップ角 * 100%。

ステップ外: モーターが動作するステップ数が理論上のステップ数と等しくありません。これはステップ損失とも呼ばれ、通常は過剰な負荷または速すぎる周波数が原因で発生します。

最大無負荷始動周波数:無負荷で直接始動できる最大周波数。

最大無負荷運転周波数: 無負荷時のモーターの最大速度周波数。

走行距離周波数特性:出力トルクと入力パルス周波数の関係がモータ選定の基本となります。動作中にステップが失われないようにするには、この曲線よりも下にある必要があります。

モーターの正転および逆転制御: 電源シーケンスを変更して、モーターの正転および逆転を変更します。

3. ステッピングモータードライバー

        ステータ巻線の周期的かつ交互の通電を制御し、ステッピング モーターの段階的な前進を制御するコントローラーがステッピング モーター ドライバーです。細分化機能を備えたステッピングドライバーは、ステッピングモーターの自然なステップ角を変更して、より高い制御精度を達成し、振動を低減し、出力トルクを増加させることができます。

 例として時間厳守アトムステッピングモータードライバーATK-2MD5050を取り上げます

特徴: 12~50VDC電源、最大5.0Aの出力ピーク電流、一般的に使用される42mm、57mm、86mm二相ハイブリッドステッピングモーターの駆動に適しています、超高解像度マイクロステッピング、最大サポート256サブディビジョン。該当するシナリオ: 3D プリンター、彫刻機、CNC 工作機械、包装機械、および高解像度が必要なその他の機器。

 左図の右側中段がSW1~SW8のパラメータ設定、下段がディップスイッチで細分化と電流を設定します。ダイヤルスイッチを使用する場合は、電源を切ってください。ドライバにはコモンアノードとコモンカソードの2つの配線方法があり、下図はコモンアノードがコントローラVccに接続され、イネーブル信号、方向信号、パルス信号がローレベルでアクティブになることを示しています。

ピンの紹介:

イネーブルピン ENA-、ENA+: この信号が有効な場合、ドライバーはモーター巻線電流を自動的に遮断し、モーターはオフラインピンとも呼ばれるフリー状態 (保持トルクなし) になります。

方向端子 DIR+、DIR-: この信号が有効の場合、モーターは時計方向に回転し、無効の場合、モーターは反時計方向に回転します。

パルスピン PUL+、PUL-: パルスを受信するたびに、ステッピング モーターが駆動されてステップ角が回転し、パルス周波数は回転速度に比例します。

モータ端子 A+、A-、B+、B-:A+、A- はステッピングモータの A 相巻線の 2 つの端子、B+、B- はステッピングモータの B 相巻線の 2 つの端子です。

ハードウェアインターフェイスの紹介: (時間厳守アトムの F4 開発ボード)

 通常のフォトカプラはイネーブル ピンと方向ピンに接続され、高速フォトカプラ (中央の青) はパルス ピンに接続されます。フォトカプラは、外部電流の逆流を防ぎ、チップの損傷を防ぎ、駆動能力を強化します。


4. 台形加減速アルゴリズム

下図に示すように、物体 X の移動にはステッピング モーターが使用されます。システムでは、物体 X が点 A から開始し、点 B で停止する必要があります。移動時間は短いほど良く、システムは安定します。台形加速と減速を使用すると、システムを安定させることができます。

実装原則: (どれがユーザー規制によって既知であるかに注意してください)

                   


アルゴリズムの分析:

 次のパルス周期 T を求めるのが最も難しく (T は一連の値をまとめたものであることに注意してください。下図では T は δt です)、次に加減速セクションのステップ数が続きます。プログラムでは反転時間を使用し、2 回の反転で完全なパルス周期 T となるため、プログラムを使用する場合は T を 2 で割ります。

次のパルス周期 T を求めます。

t1: 2 番目のパルスが送信される瞬間。t2: 3 番目のパルスが送信される瞬間。δt: 2 つのパルス間の間隔時間。c0: t0からt1までのタイマーのカウント値。c1: t1 から t2 までのタイマーのカウント値。ttはタイマの計数周期、すなわち計数周波数の逆数であり、計数周波数=基本周波数/分周値となります。したがって、T を見つけることは、c0、c1、c2...cn を見つけることになります。

加減速フェーズ

既知の条件: ft はタイマーのカウント周波数、α はステップ角、Spr はステッピング モーターの 1 回転あたりのパルス数 (モーター関連の定数)、θ は位置、ω は速度、n はパルス数。

カウント値 C の計算にはルート記号を 2 回続けて開く必要があり、リアルタイム動作では時間がかかるため、テイラー式の特殊なケースであるマクラフリン式を使用して最適化されます。無限小の剰余は単純化中に破棄されます。n=1 の場合、0.4485 の偏差があります。この誤差を解決するには、C0 に 0.676 の係数を乗算します。

次のステップの時間を加速中と減速中に再計算する必要があります。ただし、計算過程で割り切れない数が発生する場合があるため、余り部分を加算する必要があります(インターバル時間の精度と精度を向上させるため)。

 ②等速ステージ

定速段では、速度値は自分で設定した値なので分かります ftタイマーのカウント周波数は分かり、ステップ角も分かりますので、定速段でのカウント値が得られます。 1 つを定義します: A_T_x10

加減速ステップ数解(つまりパルス数n)

加速プロセス中に、速度属性を計算する 2 つのシナリオがあります: 最高速度に達する前に減速が開始されます (左); 設定した最高​​速度 (定速フェーズ) まで加速が継続します (右)

加減速度とステップ数nの関係を求める必要があります。

左図:最高速度が高すぎ、加速度が小さすぎる、max_s_lim >= accel_lim

図からわかるように、初速度は 0、加速区間の終了速度は減速区間の初速度に等しく、t1 は加速区間の全過程にかかる時間、t2 は加速区間の全過程にかかる時間です。減速プロセスにかかる時間:

 ②右図:最高速度が小さすぎる、加速度が大きすぎる、max_s_lim < accel_lim 

最終結果では、decel_val 減速セクションのステップ数のみが異なり、他の 2 つは同じです。


 全体的なプロセスの概要:

タイマ割り込み処理フロー

タイマー割り込みはステップ パルスを生成し、ステッピング モーターが移動するときにのみ入ります。図に示すように、4 つの異なる動作状態は、停止、加速、実行、減速、停止です。

 台形加減速フローチャート&割り込みフローチャート(上図の詳細版)

      

         


5. S字加減速アルゴリズム

序章:

加速と減速の変化過程において、速度曲線は英語の「S」字型を描きます。これを S 字加減速アルゴリズムと呼びます。発停時や高速移動時のS字加減速度の変化が緩やかで衝撃音が小さく、精密なワークハンドリングや工作作業に適しています台形加速および減速は、一部の固定長送りの場合により適しています。

S 字加減速は 7 段階アルゴリズムと 5 段階アルゴリズムに分かれており、7 段階方式は安定性と精度が高いという特徴がありますが、アルゴリズムのパラメータが複雑であるため、作業効率が大幅に低下し、高い精度が得られます。ハードウェア要件を満たしており、5 段階のアルゴリズムはシンプルです。リアルタイムかつ高精度の加減速制御アルゴリズムで、リソースがコンパクトな小規模組み込みシステムに非常に適しています。

主に5段階のアルゴリズム、T1加速、T2減速、T3定速、T4加減速、T5減速度の5段階を紹介します。

基本的な結論:加加速度の開始点と終了点はゼロであり、加速度の傾きは同じであるため、T1=T2、T4=T5、加速度の変化率 (J) は等しいが、方向は逆です。 ;加速セグメントと減速セグメントの変位アルゴリズムは同じですが、速度の逆順です

この原理は、台形加速および台形減速と比較できます。

            


アルゴリズムの分析:

 加速セクションの変位アルゴリズムは、速度のソートが逆の順序であることを除いて、減速セクションのアルゴリズムと同じです。したがって、加速・加速フェーズのステップ数、減速・加速フェーズのステップ数、次のパルス周期 T が必要となります。

ステップ数はパルス数、つまり対応する変位であり、各時点に対応するパルス数は変位式を計算することで求めることができ、次のパルス周期T=Cn*tt=Cn/ft(つまり、カウント数 * 1 回カウントする時間) なので、T を見つけることは Cn を見つけることを意味します。速度表現によれば、ステップ/秒の単位に変換でき、1 ステップは完全なパルス (2 回のフリップ) に相当します。このとき、ステップ/秒は 2 回のフリップ (1 パルス周期) に変換できます。 /s であり、T と速度 v は互いに逆数になります。

①ジャークフェーズのステップ数を解く

②減速・加速フェーズのステップ数を解く

③次のパルス周期を決定する

まず、1秒間に何ステップ移動できるかを表すために、設定速度の単位rpmをステップ/sに変換する必要があり、速度vの逆数1/V単位はs/ステップ(各ステップに対応する時間)が出力されるパルスの周期にそのまま対応します二相ステッピングモーターのステップ角は 1.8°で、360°には 200 ステップが必要ですが、ドライバーは 8 分割に設定されており、これには 1600 ステップが必要です。つまり、360°は 1600 ステップに相当します。

1rpm=1圈/min=360°/min=1600step/min=1600/60(step/s)

T=Cn*tt=Cn/ft=1/Vn则Cn=ft/Vn

処理としては、まず、変位公式から1ステップ目の時間t1を求める S=1のとき、このときの1ステップ目の時間はt1となる 1ステップ目にかかる時間t1を知り、速度Vを計算するt1 までの次のステップの逆数 1/V は 2 番目のパルスの周期です... ...


基本的なプロセス:

①ユーザー設定パラメータ:ステップ総ステップ数、加速区間の総時間、減速区間の総時間、最高速度を設定します。

②未知量を解く:既知量に基づいて、中点速度、加速度、ジャークステップ、減速ステップなどを解きます。

③ スピードメーターの生成:S = 1 に設定し、最初のステップの時間値と速度値を計算し、スピードメーターを計算します。

④ 最初のステップを実現します。スピードメーターを通して最初のステップの C 値を見つけ、タイマー比較値を設定してパルス出力をオンにし、割り込みを有効にします。

⑤割り込みサービス機能:速度計から各ステップのタイマーカウント値を取得し、現在の動作状態(加速区間、定速区間、減速区間、停止状態)を判断します。

ここまではステッピングモーターの一次元の問題でしたが、一次元だけでなく多次元や多軸の連携もあり、以下ではステッピングモーターの二次元制御に関する知識を紹介します!


6. 線形補間

序章:

    指定された輪郭に沿って、始点と終点の間の複数の座標点を計算し、小さな直線分(単位ベクトル)の移動でアプローチします。補間の本質は、データ ポイントを高密度化することです。ここでは 2 次元の場合を紹介しますが、これには 2 つのステッピング モーターが必要で、xy 軸の単位ベクトルは必ずしも同じではありません。

ここでは、パルス増分補間アルゴリズムにおけるポイントごとの比較方法 のみを学習しますパルスインクリメンタル補間:工作機械の各移動軸に駆動パルスを分配して座標軸の協調移動を制御し、一定の輪郭形状を加工するアルゴリズム。点ごとの比較: 各ステップで加工点の瞬間座標と指定されたグラフィック軌跡を比較し、偏差を判断し、次のステップを決定します。どの軸に駆動パルスを分配するかは、1点ずつ比較する方式で決定されます。


補間の原理:

直線の終点の座標をA(Xe,Ye)、移動点をP(Xi,Yi)とする。

①点Pが直線上にある場合、Yi / Xi = Ye / Xe、つまり偏差判別式F = Xe*Yi – Xi*Ye = 0をとります。

②点Pが直線の上にあるとき、Yi / Xi > Ye / Xe、つまりF = Xe*Yi – Xi*Ye > 0となります。

③点Pが直線より下にある場合、Yi / Xi < Ye / Xe、つまりF = Xe*Yi – Xi*Ye < 0となります。

F > 0 の場合は +X がさらに、F < 0 の場合は +Y がさらに進み、F = 0 で Xe ≧ Ye を満たす場合は +X がさらに進み、それ以外の場合は +Y がさらに進みます。

  


 代入手順:

① 偏差判別:偏差関数値に応じて加工点の相対直線距離を判断します。

②座標送り:誤差を小さくする方向に1ステップ送ります。

③偏差計算:送り後、直線に対する新しい加工点の位置を計算します。

④終点判定:終点に到達したかどうかを判断し、到達していない場合は最初のステップに戻って補間を継続し、終点に到達したら停止します。

再帰的アルゴリズム: 簡略化された偏差計算、既知の偏差エンジニアリング公式: F(Xi,Yi) = Xe*Yi – Xi*Ye。

次のステップが +X に向かう場合、Xi = Xi+1、Yi = Yi となります。

次のステップが +Y に向かう場合、Xi = Xi、Yi = Yi+1 となります。

 エンドポイントの識別:

合計ステップ長法: 終了位置の x 座標と y 座標を加算して合計ステップ数を取得します。補間を開始すると、どの軸を取っても、合計ステップ数は 0 になるまで 1 つ減らされます。これは、終点に到達すると補間が停止することを意味します。

 第 1 象限および任意の象限補間:

X と Y を |X| と |Y| に置き換えるだけで、どの象限補間方法でも第 1 象限から派生できます。異なる象限の座標送り方向は座標値の符号によって決定され、前方には追加の順方向と逆方向の区別があります。


 コード実装のアイデア:

①タイマーの初期化:IOの初期化、ARR、PSC、カウントモード、パルス出力モードなどの設定を行います。

② モータ回転方向判定:任意の象限で直線補間を実現するには、事前に象限を判定しモータ回転方向を設定する必要があります。

③ 線形補間アルゴリズムを作成します。補間、偏差判別、座標送り、偏差計算の最初のステップを実現し、パルス出力と割り込みを有効にします。

④割り込みサービス関数を記述する:最初のステップ以外の偏差判定、座標送り、偏差計算、終点判定を実現します。


7. 円弧補間

円弧の始点と終点の間で、実際の円弧に近づく点群を計算し、その点に沿ってツールを移動させて円弧曲線を加工します。

 

補間の原理:

処理対象の図形を第1象限内を反時計回りに走る円弧AEとし、半径をR、原点を円の中心、移動点をP(Xi,Yi)とする。

 ①点 P が円弧上にあるとき、Xi²+Yi² = R²、つまり偏差判別式 F = Xi²+Yi²-R² = 0 の関係が成り立ちます。

②点 P が円弧の外側にある場合、Xi²+Yi² > R²、つまり F = Xi²+Yi²-R² > 0 となります。

 ③点 P が円弧内にある場合、Xi²+Yi² < R²、つまり F = Xi²+Yi²-R² < 0 となります。

結論: F ≥ 0 の場合、-X はさらに 1 ステップ、つまり円の内側に 1 ステップ進みます。F < 0 の場合、+Y はさらに 1 ステップ、つまり円弧の外側に 1 ステップ進みます。


代入手順:

処理は直線補間と同様で、偏差演算も簡略化されており、終点判定もトータルステップ方式を採用しています。

偏差計算の簡略化:既知の処理偏差判別式から:F = Xi²+Yi²-R²、

①移動点P(Xi,Yi)が円弧上または円弧外にあり、F≧0の場合、X軸負方向(-X)に1ステップ送る必要があります。このとき、新たな加工位置は点 P: X = Xi- 1、Y = Yi、このときの処理偏差は次のようになります。

 ②移動点 P が円弧内 F < 0 の場合、y 軸を 1 ステップ前進(+Y)する必要があります このとき、新たな加工点 P の位置:X = Xi, Y = Yi+1、このときの処理偏差は次のようになります。

 

 終点判別:総ステップサイズ法でもあり、補間処理を開始する前に、総ステップサイズカウンタ n = |Xe - Xa|+ |Ye - Ya| を設定します。このうち、円弧の終点座標は E(Xe,Ye)、始点座標は A(Xa,Ya) となりますが、補間処理中はどの軸を 1 ステップ送りしても、合計のステップ数は変わりません。合計ステップ数が 0 になるまで 1 ずつ減っていきます。これは終点に到達したことを意味し、補間計算が停止されます。

第 1 象限および任意の象限補間:

 


コード実装のアイデア:

①タイマーの初期化:IOの初期化、ARR、PSC、カウントモード、パルス出力モードなどの設定を行います。

円弧の方向を設定します:円弧に従うか円弧を反転するかを事前に設定する必要があります

③ モータ回転方向判定:任意の象限で円弧補間を実現するには、事前に象限を判定しモータ回転方向を設定する必要があります。

円弧補間アルゴリズムを作成: 補間の最初のステップ、偏差判別、座標送り、偏差計算を実現し、パルス出力と割り込みをイネーブルします。

④ 割り込みサービス関数を記述する:移動点の新たな座標を計算し、最初のステップ以外のステップの偏差判定、座標送り、偏差計算、終点判定を実現します。


 8. ステッピングモーター閉ループシステム (位置閉ループ)

閉ループシステムの構成: ステッピングモーター + エンコーダー、エンコーダーはステッピングモーターの実際の回転位置をフィードバックします。

 位置ループ PID コードの実装アイデア:

①タイマーの初期化:IOの初期化、ARR、PSC、カウントモード、パルス出力モードなどの設定を行います。

②エンコーダインターフェースモード:フィードバック信号を収集するためにエンコーダインターフェースモードを初期化します。

③PIDアルゴリズムの実装:インクリメンタル/位置PIDアルゴリズムを実現し、比例P、積分I、微分Dのパラメータを調整します。

④ 位置ループモーション制御:モーターの回転方向と、モーターの動きに作用するPIDコントローラーの出力の期待値を設定します。

⑤ ライト割り込みサービス機能:エンコーダオーバーフローカウント、タイミングコントロールモーター、設定比較値

STM32&keil 実践運用...


要約する

挫折に遭遇したときは、勇気を持って前に進み、すぐに行動し、最後までやり遂げ、決して諦めないことです。成功する人は決して諦めませんし、諦める人は決して成功しません。成功への道には必ず失敗があります、失敗に対しては失敗を正しく扱い、正しく対処しなければなりません、失敗を恐れない人は必ず成功します、失敗を恐れる人は役に立たずさらに失敗します。
今日の学習共有はこれで終わりです。また次回お会いしましょう。

過去のハイライト:

制御理論 PIDアルゴリズム
STM32タイマインプットキャプチャ(IC)
STM32タイマ出力比較(PWM波)
STM32タイミング割り込み
STM32外部割り込み
STM32GPIO集中講義
...

おすすめ

転載: blog.csdn.net/weixin_51658186/article/details/130092516