本文へ移動

tf-2md3-devel@t-frog.com

Re: ブラシレスモータの動作確認方法について

Date:
Mon, 08 Aug 2016 23:15:54 +0900
From:
Atsushi Watanabe <
atsushi dot w at ieee dot org
>
To:
tf-2md3-devel <
tf-2md3-devel at t-frog dot com
>
Subject:
[00137] Re: ブラシレスモータの動作確認方法について
河原さま

ゲインを0にしたときの挙動はどのようになりますか?
(ギアがついている状態の方がわかりやすいですが)

ゲイン0の状態だと、逆起電力補償のみが働く状態になり、
モータ軸を外力で回したときの挙動は、
モータ特性のパラメータが正しければモータ端子を解放した状態をエミュレートします。


モータのパラメータについてですが、
スペックシート中のRated speedは、パラメータ生成ツールの無負荷回転数とは異なる意味のようです。
(おそらく、機械的な許容最大回転数を表している。)
Resistanceの項が回転数定数のようで
0.00413 V/rpm = 242 rpm/V
定格24Vなので、パラメータ生成ツールでの入力値としては、5811 rpm が正しく、
パラメータファイル上は968.5 になります。

これが正しいとすると、現在の値が500くらいになっているので、
過剰に逆起電力補償をして(この値が小さいほど大きく逆起電力補償をする)、暴走するような挙動を示すはずです。

ただし、このモータのスペックシートの値がかなりいい加減なように見えます。
(左側の方のモータは、トルク係数と逆起電力係数の関係から計算すると、
エネルギー効率100%以上(?)になる。指数部の誤植らしき場所も複数。)
ので、現物合わせで調整した方がよいかもしれません。


逆起電力係数の現物合わせの調整方法としては、
ゲイン0、摩擦係数0の状態で、逆起電力係数を実際より大きめの値にしておき(軸を手で回すと、パッシブのブレーキが掛かり、重いはず)
少しずつ逆起電力係数を小さくしていき、軸を手で回した時の重さが、モータをドライバから外して端子を解放したときと同じぐらいになるようにする
という手順で調整できます。
ただし、軸を手で回したときの重さが、方向によって非対称な場合は、UVW信号と、モータ端子の位相がずれていますので、
PHASE_OFFSETの値で対称になるように調整する必要があります。

// Atsushi WATANABE
// Assistant Professor
// Field Robotics Laboratory, Tohoku University
// 6-6-10, Aramaki-Aoba, Aoba-ku, Sendai, 980-8579, Japan
// Phone: [Telephone number removed] / E-mail:
atsushi dot w at ieee dot org



2016年8月7日 17:54 河原貴軌 <
b1295223 at planet dot kanazawa-it dot ac dot jp
>:
> 渡辺 様
>
> ご連絡ありがとうございます。
>
> 早速VVVFモードにてエンコーダの回転方向を確認してみたのですが、接続は正しいようでした。
>
>> モータ、エンコーダ、UVW信号すべての回転方向があっていないと、
>> 正しく制御できないので、そのあたりが怪しい気がしています。
>> (UVW信号・モータ駆動端子のUVWの対応はついていますか?)
>
>
> UVW信号・モータ駆動端子のUVWの対応は、
> カタログ上ではついていますが、海外製なので念のため差し替えて確認もしています。
> ホール素子の回転方向に関しては、オシロなどで立ち上がり順を確認しました。矩形波で、一回転につき4パルス出て来ます。
>
> ホール素子を差し替えた場合は、カタログの位相から120度ずらしたパターンと240度ずらしたパターンとなりますが、片方は挙動が変わらず制御がきかない状態で等速で周り続け、もう片方は発振して回りませんでした。
>
>
> センサ類の配線で無いようなのですが、他に考えられる事はありますでしょうか?
>
> お手数ですが、宜しくお願い致します。
>
>
>> モータ、エンコーダ、UVW信号すべての回転方向があっていないと、
>> 正しく制御できないので、そのあたりが怪しい気がしています。
>> (UVW信号・モータ駆動端子のUVWの対応はついていますか?)
>>
>>> U端子に対してVに120度送れた波形をかけて回転した時の立ち上がりをとマニュアルにありますが、
>>> 3相波形をテスト用に生成する事はこのMDで可能でしょうか?
>>
>> ファームウェア、とyp-spurのアップデートが必要なのですが、
>> エンコーダ・UVW信号を使わずに、VVVFで駆動して回転方向を確認することができます。
>> ファームウェアを devel_v0.1.4_rc5に、yp-spurを v1.15.0-rc3 にして、
>> パラメータファイルで、
>> ENCODER_TYPE 0
>> とすると、VVVFでの制御モードになります。
>>
>> この状態で、軸角速度指令を与えると、回転方向を確認できます。
>> ypspur-interpreter で
>>  set_wheel_vel (右角速度制限[rad/s]) (左角速度制限[rad/s])
>>  set_wheel_accel (右角加速度制限[rad/s]) (左右角加速度制限[rad/s])
>> と設定し、
>>  wheel_vel (右角速度[rad/s]) (左角速度[rad/s])
>> コマンドで各軸の角速度指令を与えられます。
>>
>> 各軸の角速度指令に正の値を与えたときの回転方向を覚えておき、
>> モータ駆動端子をはずすか、駆動系電源を供給せずに
>> ENCODER_TYPE 2 (2相エンコーダモード)
>> の状態で起動します。
>> 先ほどの回転方向に軸を手で回転させながら
>> ypspur-interpreter で
>>  get_wheel_vel
>> コマンドで、角速度を確認して下さい。
>> この角速度の符号が正であれば、エンコーダの位相と、モータの回転方向が一致しています。
>>
>>
>> ファームウェアのアップデート方法はマニュアルに、
>> yp-spurの開発中バージョンへのアップデートは、openspur.orgのwikiにあります。
>> なお、マニュアル中のLinuxでのファームウェアアップデート方法で、
>> google codeからsambaをダウンロードするところのURLが、無くなってしまっているので、
>> 1行目のところを
>> $ git clone https://github.com/at-wat/samba.git
>> に置き換えて下さい。
>>
>> // Atsushi WATANABE
>> // Assistant Professor
>> // Field Robotics Laboratory, Tohoku University
>> // 6-6-10, Aramaki-Aoba, Aoba-ku, Sendai, 980-8579, Japan
>> // Phone: [Telephone number removed] / E-mail:
atsushi dot w at ieee dot org

>>
>>
>> 2016年8月6日 22:56 河原貴軌 <
b1295223 at planet dot kanazawa-it dot ac dot jp
>:
>>> 東北大 渡辺 様
>>>
>>> 河原です。
>>> ご連絡ありがとうございます。
>>>
>>>> RADIUSの値は、キネマティクス・逆キネマティクスの計算のみに用いるので、
>>>> モータ制御には影響を与えません。
>>>> 現状、エンコーダのA,B相を逆に接続している場合に、
>>>> ソフトウェアで逆転する設定は用意していません。
>>>> もし、逆の場合は配線を修正して下さい。
>>>
>>>
>>> エンコーダのA,B相が逆の可能性もあると思い入れ替えもしましたが、動作時に発振して回らない状態になります。
>>> 発振している状態が、本来の回転方向と逆に接続されているための発振かと思い、とりあえず等速に回る方向に接続しています。
>>>
>>> U端子に対してVに120度送れた波形をかけて回転した時の立ち上がりをとマニュアルにありますが、
>>> 3相波形をテスト用に生成する事はこのMDで可能でしょうか?
>>>
>>>> 多極のモータなので、マニュアルにも記載していますが、
>>>> 2磁極(電気角と機械角が一致)するモータにギアがついているように換算してパラメータを与える必要があります。
>>>> このあたりの計算は、ドライバのページからリンクがある、パラメータ生成ツールで計算できます。
>>>> モータのスペックに4極と書いてあるのは、おそらく4磁極なので、
>>>> パラメータ生成ツールの極数欄には2を入力することになります。
>>>
>>>
>>> 失礼致しました。
>>> モータスペックに8極と書かれていたので、4のパラメータに設定してあります。
>>>
>>>
>>> 現象の追加情報ですが、ypspur-coodinaterの起動後にモータ軸を手で回すと、回した方向に等速で回り始めます。
>>> ホール素子の配線が間違えていればこういう現象が起こる事もありますでしょうか?
>>> 1カ所のみテストとしてホール素子の方向を変えた場合には発振して回らず、位相をずらした場合は挙動は変わらず等速で回り続けます。
>>>
>>>
>>> 何かアドバイス頂けたらと思います。
>>> 宜しくお願い致します。
>>>
>>>
>>>
>>>> ドライバ設計者の、東北大の渡辺です。
>>>>
>>>>> 12 RADIUS[0] 0.150000
>>>>> 12 RADIUS[1] -0.150000
>>>>> のパラメータを++や-+、--に変更しても正しく動作しません。++、--の場合は下記よりも角速度が速くなり、パラメータ通りその場回転の動作になります。
>>>>
>>>> RADIUSの値は、キネマティクス・逆キネマティクスの計算のみに用いるので、
>>>> モータ制御には影響を与えません。
>>>> 現状、エンコーダのA,B相を逆に接続している場合に、
>>>> ソフトウェアで逆転する設定は用意していません。
>>>> もし、逆の場合は配線を修正して下さい。
>>>>
>>>>
>>>>> 1回転1000パルスの2相エンコーダ、3相ホール素子、原点信号(index)のセンサを持ち、4極のブラシレスモータとなります。5V電源を入れた状態で、GNDとパルス間の波形はオシロで出ている事は確認してあります。
>>>>
>>>> 多極のモータなので、マニュアルにも記載していますが、
>>>> 2磁極(電気角と機械角が一致)するモータにギアがついているように換算してパラメータを与える必要があります。
>>>> このあたりの計算は、ドライバのページからリンクがある、パラメータ生成ツールで計算できます。
>>>> モータのスペックに4極と書いてあるのは、おそらく4磁極なので、
>>>> パラメータ生成ツールの極数欄には2を入力することになります。
>>>>
>>>> // Atsushi WATANABE
>>>> // Assistant Professor
>>>> // Field Robotics Laboratory, Tohoku University
>>>> // 6-6-10, Aramaki-Aoba, Aoba-ku, Sendai, 980-8579, Japan
>>>> // Phone: [Telephone number removed] / E-mail:
atsushi dot w at ieee dot org

>>>>
>>>>
>>>> 2016年8月3日 0:44 河原貴軌 <
b1295223 at planet dot kanazawa-it dot ac dot jp
>:
>>>>> お世話になっております。
>>>>> 金沢工業大学OBの河原と申します。
>>>>>
>>>>>
>>>>> 趣味用途で貴社のモータドライバTF-2MD3-R6Aを使用してブラシレスモータを回そうとしているのですが正常な動作を確認できず、ご教授願いたく連絡致しました。
>>>>>
>>>>> 現状、モータの接続と動作確認のため、ギアやタイヤなどを付けずにrun_testの動作を机上で見ているのですが、回転後に速度が変動せず制御されている動作が確認できません。
>>>>> また、-oで確認できるオドメトリの値も回転方向が補正されず、正しく動いているように見えません。
>>>>> パラメータなのか、何か問題があればご指摘お願い致します。
>>>>>
>>>>>
>>>>> 環境としては
>>>>> ・ypspurをインストールしたUbuntu14.04から、sampleのrun_testで動作確認を行っています。
>>>>>
>>>>> そのrun_testの動作中、本来は2つのモータが逆回転し、1m進んだ所で一度停止、同じ方向に回転して旋回動作、180度(th 1.57)になると再度停止し、1m戻ってくるような動作になると思いますが、
>>>>> 両モータとも反転動作も無く、等速で回転し続ける状態から変化しません。
>>>>> メールの最後に動作中のコンソールを添付しましたが、直進の制御になるはずが角度補正が制御されず回転を続けるような動作に見えます。
>>>>>
>>>>> エンコーダの回転方向が怪しいとは思いましたが、
>>>>> 12 RADIUS[0] 0.150000
>>>>> 12 RADIUS[1] -0.150000
>>>>> のパラメータを++や-+、--に変更しても正しく動作しません。++、--の場合は下記よりも角速度が速くなり、パラメータ通りその場回転の動作になります。
>>>>> たまたまx座標が1mを超えた事でspin指令に入る事がありますが、停止せず逆回転もなくそのまま周り続けます。
>>>>>
>>>>> ・モータはACサーボモータ(3相ブラシレス)の「42JSF630AS-1000」という中国製の物を使用しています。
>>>>> ( http://www.jmc-driver.com/h-pd-138.html )
>>>>> 1回転1000パルスの2相エンコーダ、3相ホール素子、原点信号(index)のセンサを持ち、4極のブラシレスモータとなります。5V電源を入れた状態で、GNDとパルス間の波形はオシロで出ている事は確認してあります。
>>>>> 定格は24Vですが、今は駆動電圧12Vで動作を行っています。
>>>>> エンコーダの位相遅れなどが明記されていなかったため、配線は手探りで安定して回転できる接続を探しました。
>>>>>
>>>>> MASSも1や25kgとしてみたりしましたが特に変化ありません。
>>>>> ファームウエアについては、既存の物とv0.1.3の両方を試しています。
>>>>> LEDなども異常アラームは発生していません。
>>>>>
>>>>>
>>>>>
>>>>> お手数ですが、宜しくお願い致します。
>>>>>
>>>>>
>>>>> ・参考までに動作中のコンソール表示を下記に添付致します。
>>>>> ~/ypspur/yp-robot-params/robot-params$ ypspur-coordinator -p test.param -d /dev/ttyACM1 --verbose -o
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>> YamabicoProject-Spur
>>>>> Ver. 1.14.0
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>> Device Information
>>>>> Port : /dev/ttyACM1
>>>>> Vender : T-frog Prject
>>>>> Product : T-frog Motor Driver rev.5
>>>>> Firmware: 98d3cea
>>>>> Protcol : YPP:06:00
>>>>> Serialno: 01300000
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>> Driver depending parameters
>>>>> Name : unknown
>>>>> PWM resolution: 1200
>>>>> Motor number : 2
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>> Parameter file: test.param
>>>>> 0 VERSION 4.000000
>>>>> 5 VOLT 12.000000
>>>>> 6 CYCLE 0.001000
>>>>> 16 CONTROL_CYCLE 0.020000
>>>>> 2 TORQUE_FINENESS 0.000005
>>>>> 12 RADIUS[0] 0.150000
>>>>> 12 RADIUS[1] -0.150000
>>>>> 15 TREAD 0.200000
>>>>> 37 MASS 0.500000
>>>>> 40 TIRE_M_INERTIA 0.000000
>>>>> 38 MOMENT_INERTIA 0.000000
>>>>> 31 TORQUE_VISCOS 0.000050
>>>>> 30 TORQUE_NEWTON 0.020000
>>>>> 29 TORQUE_MAX 0.200000
>>>>> 36 TORQUE_LIMIT 1.000000
>>>>> 11 MOTOR_PHASE 3.000000
>>>>> 4 COUNT_REV 1000.000000
>>>>> 7 GEAR 4.000000
>>>>> 10 MOTOR_VC 500.000000
>>>>> 9 MOTOR_TC 0.053000
>>>>> 8 MOTOR_R 1.100000
>>>>> 39 MOTOR_M_INERTIA 0.000000
>>>>> 27 GAIN_KP 10.000000
>>>>> 28 GAIN_KI 3.000000
>>>>> 34 INTEGRAL_MAX 0.500000
>>>>> 17 MAX_VEL 2.000000
>>>>> 18 MAX_W 3.000000
>>>>> 19 MAX_ACC_V 2.000000
>>>>> 20 MAX_ACC_W 12.000000
>>>>> 21 MAX_CENTRI_ACC 2.450000
>>>>> 22 L_C1 0.010000
>>>>> 23 L_K1 800.000000
>>>>> 24 L_K2 300.000000
>>>>> 25 L_K3 200.000000
>>>>> 26 L_DIST 0.600000
>>>>> A 0.000703
>>>>> B 0.000703
>>>>> C -0.000703
>>>>> D -0.000703
>>>>> E 0.000000
>>>>> F 0.000000
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>
>>>>> Warn: Baudrate setting is not supported on this device.
>>>>> Applying parameters.
>>>>> YP-Spur coordinator started.
>>>>> Trajectory control loop started.
>>>>> Command analyzer started.
>>>>> 0.007422 0.000000 -0.142550
>>>>> 0.007422 0.000000 -0.142550
>>>>> 0.007422 0.000000 -0.142550
>>>>> 0.007422 0.000000 -0.142550
>>>>> Command: vel 1.000000
>>>>> Mode: servo 1
>>>>> Command: dvel 1.000000
>>>>> Command: w 0.157080
>>>>> Command: dw 1.570796
>>>>> Command: set pos 0.000000 0.000000 0.000000
>>>>> Command: stop_line 0.997279 -0.142067 -0.142550
>>>>> Mode: servo 3
>>>>> Command: over line ( dist = -0.995000 )
>>>>> 0.007422 0.000000 -0.142550

References