本文へ移動

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

Re: __Re:_ダ イレクト] ] ] ドラ イブモータの パラメータ設 定について

Date:
Sat, 06 Aug 2016 20:20:34 +0900
From:
Atsushi Watanabe <
atsushi dot w at ieee dot org
>
To:
tf-2md3-devel <
tf-2md3-devel at t-frog dot com
>
Subject:
[00128] Re: __Re:_ダ イレクト] ] ] ドラ イブモータの パラメータ設 定について
明治大学 細田さま、黒田先生

渡辺です。

エンコーダ信号のフィルタ周波数を高くしたところ、
元の4倍程度(2000kP/s)程度までは、何とか読めることがわかりました。
(理論値で、このモータ換算で最大500rpmくらい)

ドライバのEEPROMに保存されている設定を変更することで、
エンコーダのサンプリング周波数を上げられるようにしました。
(ノイズ耐性も下がるので、デフォルト設定は、元のままにしています。)
この設定により、300rpm弱までは、制御が可能になります。

加えて、300rpmぐらいの領域から、エンコーダから受け取っているパルス波形の
歪みが大きくなり、パルスの読み飛ばしが発生します。
現行のファームウェアでは、磁気式のホール素子の特性を考慮して、
電気角速度10Hz(このモータだと機械角速度1.25Hz = 75rpm)以上では、
UVW信号を使わず、パルスエンコーダのみを使用するようにしています。
そのため、300rpm以上では、読み飛ばしにより電気角がずれてしまい、
無効電流が大きくなってしまいます。
こちらも、新たに設定を追加して、常にUVW信号を信頼できるようにしました。
これにより、オドメトリは少しずれますが、モータ制御への影響は無くなり、
400rpm弱までは制御が可能です。

現状400rpm以上では読み飛ばしの量が非常に大きくなり、制御できなくなります。
原因であるパルス波形の歪みは、エンコーダの配線の問題で発生しているようです。
このエンコーダは差動ライン出力だと思いますので、
ドライバの近くにラインレシーバICを追加することをおすすめします。


これらの変更点のドライバへの適用ですが、
AlteraのFPGAに、アクティブシリアルモードで書き込めるダウンロードケーブル
(ALTERA USB Blasterなど)はお持ちでしょうか?
もしあるようでしたら、マニュアルのピン配置図に従って、ダウンロードケーブルを
接続すれば書き込めますので、ファイルをお送りします。

また、ファームウェアは devel_v0.1.4_rc5 以降を使用してください。
上記の設定は、モータドライバのUSBポートを、ターミナルソフトで開いて、
$HFREQENC1
$RELYHALL1
$EEPROMSAVE
と入力することで有効化できます。(行頭の$も入力してください。)
入力しても何も表示されない場合、改行コードが異なっている可能性がありますので、
改行コードの設定を変更して設定の有効化からやり直す必要があります。
また、
PP
と入力したときの出力で、OPTION:欄にRELYHALL, HFREQENCと
表示されていることを確認してください。

// 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月2日 23:28 HOSODA YUUKI <
ee33080 at meiji dot ac dot jp
>:
> 渡辺さま
>
>
> いつもお世話になっております.
>
> 細田です.
>
>
> お忙しい中での検証ありがとうございます.
>
> こちらで想定している回転数としては,通常時100rpm,高速回転時300rpmを想定しています.
>
>
> ご迷惑をおかけしますが,よろしくお願いします.
>
> ーーーーーーーーーーーーーー
>
> 明治大学
>
> ロボット工学研究室
>
> 細田 佑樹
>
>
> E-mail:
ee33080 at meiji dot ac dot jp

>
> ーーーーーーーーーーーーーー
>
>
> ________________________________
> 差出人: Atsushi Watanabe <
atsushi dot w at ieee dot org
>
> 送信日時: 2016年8月1日 17:55:49
> 宛先: tf-2md3-devel
> 件名: [tf-2md3-devel:00125] Re: __Re:_ダ イレクト ] ] ドラ イブモータの パラメータ設 定について
>
> 明治大 細田さま、黒田先生
>
> 渡辺です。
>
> お借りしたモータで、ファームウェア上の
> カウンタのオーバーフローの問題は一応解決しました。
> (PCからドライバのパラメータ送信のビット数はもともと32bitだったのですが、
> 内部で保持する変数が16bitだった点と、制御の計算式中でのオーバーフローが
> あった点を修正しました。)
>
> ファームウェアを、devel_v0.1.4_rc4 にアップデートし、
> yp-spur を、v1.15.0-rc2 ブランチにして実行すると、
> とりあえず制御は可能になります。
>
> パラメータファイルの生成に関して、
> 製品のデータシートの表記の解釈が若干難しいのですが、
> 600 rpm は、機械的な許容最大回転数で、
> 等価誘起電圧定数から計算すると無負荷最大回転数は 3000 rpm になります。
>
> 具体的には、16 V/krpm = 62.5 rpm/V
> 無負荷最大回転数@48V = 3000 rpm
> パラメータとしては、62.5 rpm/V * 8 極 = 500
>
> また、モータと極センサのUVW相の配線(?)が違っているようで、
> PHASE_OFFSETのパラメータを指定する必要がありました。
> (-120度なので、センサの配線が1つずつシフトしている?)
>
> 加えて、現状では以下2点の制約があります。
>
> 1. エンコーダパルスが、ノイズフィルタの周波数以上になってしまう
>
> FPGA上で、3 MHz, 3 bit median filter をかけているため、
> High、Low それぞれ 1 us 以上ホールドする必要があります。
> これより、A,B各相の最大周波数は 500 kP/s
>
> モータ仕様は 324 kP/R なので
> 1.5 Hz = 90 rpm 以上の回転数ではエンコーダの読み飛ばしが発生します。
>
> この制約は、FPGAのファームウェアによる物で、
> 3 MHz のところを最大 48 MHz まで大きくできますが、
> ノイズフィルタとの兼ね合いなので、しっかり検証する必要があります。
>
> このファームウェア書き換えは、基板上のUSBコネクタからは行えません。
> 一方、マイコンのファームウェアとは独立に変更を加えられるので、
> ひとまずこのモータ用に使っているドライバのFPGAだけ、
> 高速仕様に変更するのは行い易いです。
>
>
> 2. パルス数を送る通信がオーバーフロー
>
> マイコン-PC間のオドメトリ計算用の5msごとの通信が
> 16bit signed なので ±32,768 cnt/5ms 未満の必要あり。
> 6,553,600 cnt/s = 1,638,400 P/s より
> 5.1 Hz = 303 rpm 以上の回転数ではエンコーダ値が取れなくなります。
>
> こちらは、オドメトリ計算上はここまでのパルス数は不要なので、
> 通信する値を 1/n にするような設定を用意するのが妥当かと考えています。
> (現状、1番目の制約が強いので、未着手です。)
>
> また、ドライバ内のマイコン-FPGA間の通信にも同じ問題がありますが、
> こちらは 50 us ごとの通信なので、上記の100倍の余裕があるため考慮する必要はなさそうです。
>
>
>
> 現状、約90rpm以下であれば、モータドライバの、通常のファームウェア書き換え
> のみで対応できますが、それ以上の回転数は、
> FPGAの書き換えが必要になり、もう少し検証が必要です。
>
>
> 調整したパラメータは下記のとおりです。
>
> -------
> VERSION 4
> VOLT 16
> CONTROL_CYCLE 0.02
> TORQUE_FINENESS 0.00000001
>
> MOTOR_PHASE 3
> COUNT_REV 162000
> ENCODER_TYPE 2
> CYCLE 0.001
> MOTOR_R 1.8
> TORQUE_MAX 0.0413
> TORQUE_LIMIT 0.113
> MOTOR_VC 550
> MOTOR_TC 0.016
> PHASE_OFFSET 4.188
>
> GEAR 8
> TREAD 1
> RADIUS[0] 0.3
> RADIUS[1] -0.3
>
> MASS 0.1
> MOMENT_INERTIA 0
> TIRE_M_INERTIA 0.0
> MOTOR_M_INERTIA 0.000000124
>
> L_C1 0.01
> L_K1 800
> L_K2 300
> L_K3 200
> L_DIST 0.6
>
> MAX_VEL 1
> MAX_W 2
> MAX_ACC_V 2
> MAX_ACC_W 4
> MAX_CENTRI_ACC 1.96
>
> GAIN_KP 10
> GAIN_KI 1000
> INTEGRAL_MAX 0.05
> TORQUE_NEWTON 0
> TORQUE_VISCOS 0
> -------
>
>
>
> // 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年7月28日 14:07 HOSODA YUUKI <
ee33080 at meiji dot ac dot jp
>:
>> 細田です.
>>
>>
>> モータ送ることができるので,修正の件よろしくお願いします.
>>
>> モータを送るにつきまして,宛名を教えていただいてもよろしいでしょうか?
>>
>> ________________________________
>> 差出人: Atsushi Watanabe <
atsushi dot w at ieee dot org
>
>> 送信日時: 2016年7月28日 11:10:02
>> 宛先: tf-2md3-devel
>> 件名: [tf-2md3-devel:00123] Re: __Re:_ダ イレクト ] ドラ イブモータの パラメータ設 定について
>>
>> 黒田先生
>>
>> 渡辺です。
>> 手元に該当するようなモータが無いため、このままだと手探りでの修正になり、時間がかかってしまいます。
>> モータをお借りすると早いのですが、可能でしょうか?
>>
>> // 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年7月27日 23:33 黒田洋司 <
ykuroda at meiji dot ac dot jp
>:
>>> 渡辺さん
>>>
>>> 黒田です.ご確認有難うございます.カウンタがオーバーフローしているなら
>>> あの挙動は納得できます.実は大変に急いでおります.最悪でもお盆になる前に
>>> なんとかなると有難いのですが.
>>>
>>> 黒田
>>>
>>>
>>>> 2016/07/27 19:14、Atsushi Watanabe <
atsushi dot w at ieee dot org
> のメール:
>>>>
>>>> 細田さま
>>>>
>>>> 渡辺です。
>>>>
>>>> 原因はドライバ内でエンコーダ分解能のパラメータを16bitで扱っている為とわかりました。
>>>> これは、PCからドライバにパラメータを送るプロトコルが16bit仕様なことに起因しています。
>>>> (カウント自体は32bitで行っているので、制御系そのものには問題ありません。)
>>>>
>>>> 現在、ファームウェアのメジャーアップデートの準備をしており、この修正も含めたいと思います。
>>>> すみませんが、少々お待ちください。
>>>> (ちなみに、どのくらい急いでいますか?)
>>>>
>>>> 2016/07/25 午後10:53 "HOSODA YUUKI" <
ee33080 at meiji dot ac dot jp
>:
>>>>
>>>> 細田です.
>>>>
>>>>
>>>>> パラメータ生成の極数欄でいうと、N極が8, S極が8で、8になるかもしれません。
>>>>> モータを回したときの、UVW矩形波のパルス数を見ると確実です。
>>>>
>>>> UVW短形波を確認したところ,パルスの数は8でした.
>>>>
>>>> パラメータ生成を極数8にして何度かパラメータをいじってみましたが,モータの挙動は前回同様不規則な回転と停止になってしまいました.このような場合どのように対処すればいいでしょうか
>>>>
>>>>
>>>> 現在のパラメータです.
>>>>
>>>> VERSION 4
>>>> VOLT 24
>>>> CONTROL_CYCLE 0.02
>>>> TORQUE_FINENESS 0.000001
>>>>
>>>> MOTOR_PHASE 3
>>>> COUNT_REV 162000
>>>> ENCODER_TYPE 2
>>>> CYCLE 0.001
>>>> MOTOR_R 8
>>>> TORQUE_MAX 41.25
>>>> TORQUE_LIMIT 125
>>>> MOTOR_VC 100
>>>> MOTOR_TC 0.0955
>>>>
>>>> GEAR 8
>>>> RADIUS[0] 0.159
>>>> RADIUS[1] -0.159
>>>>
>>>> MASS 3
>>>> TIRE_M_INERTIA 0.0379
>>>> MOTOR_M_INERTIA 0.938
>>>>
>>>> L_C1 0.01
>>>> L_K1 800
>>>> L_K2 300
>>>> L_K3 200
>>>> L_DIST 0.6
>>>>
>>>> MAX_CENTRI_ACC 1.96
>>>>
>>>> GAIN_KP 0
>>>> GAIN_KI 0
>>>> INTEGRAL_MAX 0.05
>>>> TORQUE_NEWTON 0
>>>> TORQUE_VISCOS 0
>>>>
>>>>
>>>> よろしくお願いします
>>>>
>>>> ________________________________
>>>> 差出人: Atsushi Watanabe <
atsushi dot w at ieee dot org
>
>>>> 送信日時: 2016年7月25日 15:03:20
>>>> 宛先: tf-2md3-devel
>>>> 件名: [tf-2md3-devel:00119] Re: ダイレクトドライ ブモータのパラメータ設定について
>>>>
>>>> 明治大学 細田さま
>>>>
>>>> 渡辺です。
>>>>
>>>> ダイレクトドライブモータの制御自体は、私も以前に使っていたので大きな問題はないはずです。
>>>> (ただし、モータの極数の関係で、パラメータの設定が若干難しいです)
>>>>
>>>> データシートを見ると、磁極が16となっているので、
>>>> パラメータ生成の極数欄でいうと、N極が8, S極が8で、8になるかもしれません。
>>>> モータを回したときの、UVW矩形波のパルス数を見ると確実です。
>>>>
>>>> // 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年7月21日 18:47 HOSODA YUUKI <
ee33080 at meiji dot ac dot jp
>:
>>>>> お世話になっております.
>>>>>
>>>>>
>>>>> 明治大学機械工学科の細田と申します.
>>>>>
>>>>>
>>>>>
>>>> 現在,t-frogのドライバを使用してモータの制御を試みようとしているのですが,パラメータ調整がうまくいかず,速度指令を与えてもうまく回転しません.具体的には,不規則な回転と停止を繰り返します.また,速度指令を与えるのを止めると,指令していた方向と反対の方向に回転し始めてしまいます.パラメータはyp-spur用パラメータ生成でできたものをベースに使用しています.使用しているモータはDDモータになっており,ダイレクトドライブのためギア比が1のためうまくいってないのではないかと思っているのですが,どうでしょうか?
>>>>>
>>>>>
>>>>> 現在使用しているモータの情報とパラメータを載せておきます.
>>>>>
>>>>> 使用モータ:mtlのマイクロDDモータの MDH-40になります.
>>>>>
>>>>> URL http://www.mtl.co.jp/products/motor/mds_mdh_40.html
>>>>>
>>>>> 【モータの仕様】
>>>>> ・3相ブラシレスモーター
>>>>> ・駆動電源電圧24V
>>>>> ・無負荷回転数/無負荷電流値:600rpm
>>>>> ・最大トルク:1000 N・m
>>>>> ・1:1(減速比1)
>>>>>
>>>>> <http://www.mtl.co.jp/products/motor/mds_mdh_40.html
>>>>> 現在使用しているパラメータは以下のようになっています.
>>>>>
>>>>> VERSION 4.00000000
>>>>>
>>>>> VOLT 24.0000000 #[V]
>>>>>
>>>>> CYCLE 0.00100000 #[s]
>>>>>
>>>>> CONTROL_CYCLE 0.02000000 #[s]
>>>>>
>>>>> TORQUE_FINENESS 0.00000100
>>>>>
>>>>>
>>>>> RADIUS[0] -0.15900000 #[m]
>>>>>
>>>>> RADIUS[1] 0.15900000 #[m]
>>>>>
>>>>> TREAD 1.00000000 #[m]
>>>>>
>>>>> MASS 3.0000001
>>>>>
>>>>> TIRE_M_INERTIA 0.10000001
>>>>>
>>>>> MOMENT_INERTIA 0.10000000
>>>>>
>>>>> TORQUE_VISCOS 0.00000000
>>>>>
>>>>> TORQUE_NEWTON 0.00000000
>>>>>
>>>>> TORQUE_MAX 20.50000000
>>>>>
>>>>> TORQUE_LIMIT 62.00000000
>>>>>
>>>>>
>>>>> MOTOR_PHASE 3.00000000 #3相DC
>>>>>
>>>>> COUNT_REV 81000.00000000 #[Counts/rev] 324000/16極*4
>>>>>
>>>>> ENCODER_TYPE 2.0000
>>>>>
>>>>> GEAR 16.00000000 #[in/out] 1*16極
>>>>>
>>>>> MOTOR_VC 300.00000000 #逆起電力係数[rpm/V] rmax/V ... V:定格電圧[24]
>>>> rmax:Vでの無負荷最大回転数[600]
>>>>>
>>>>> MOTOR_TC 0.04780000 #トルク係数[Nm/A] 60/2/Pi/Ke ...
>>>> Ke:逆起電力係数MOTOR_VC
>>>>>
>>>>> MOTOR_R 8.00000000 #[ohm]:モータの端子間抵抗*3/4
>>>>>
>>>>> MOTOR_M_INERTIA 0.11700001
>>>>>
>>>>> GAIN_KP 0.00000000
>>>>>
>>>>> GAIN_KI 0.00000000
>>>>>
>>>>> INTEGRAL_MAX 0.05000000 #[rev]
>>>>>
>>>>>
>>>>> MAX_VEL 1.00000000 #[m/s]
>>>>>
>>>>> MAX_W 20.28000000 #[rad/s]
>>>>>
>>>>> MAX_ACC_V 20.00000000 #[m/ss]
>>>>>
>>>>> MAX_ACC_W 41.89000000 #[rad/ss]
>>>>>
>>>>> MAX_CENTRI_ACC 1.95000000 #0.25G
>>>>>
>>>>>
>>>>> L_C1 0.01000000 #
>>>>>
>>>>> L_K1 800.00000000 #
>>>>>
>>>>> L_K2 300.00000000 #
>>>>>
>>>>> L_K3 200.00000000 #
>>>>>
>>>>> L_DIST 0.60000000 #
>>>>>
>>>>>
>>>>> STOP_LINEAR 0.01000000
>>>>>
>>>>> SPIN_LINEAR 0.05000000
>>>>>
>>>>> WHEEL_ANG_LINEAR 0.05000000
>>>>>
>>>>> このようになっています.
>>>>>
>>>>>
>>>>> お手数おかけしますが,ご回答のほどよろしくお願いします.
>>>>>
>>>>> ----------------------------------
>>>>>
>>>>> 明治大学
>>>>>
>>>>> 理工学部機械工学科 4年生
>>>>>
>>>>> ロボット工学研究室
>>>>>
>>>>>
>>>>> 細田佑樹
>>>>>
>>>>>
>>>>> E-mail:
ee33080 at meiji dot ac dot jp

>>>>>
>>>>> ----------------------------------
>>>>>
>>>>>
>>>>> <http://www.mtl.co.jp/products/motor/mds_mdh_40.html>
>>>>>
>>>>> <
>>>> http://www.mtl.co.jp/dcms_media/other/%CE%BCDD%E3%83%A2%E3%83%BC%E3%82%BF%E3%82%AB%E3%82%BF%E3%83%AD%E3%82%B0.pdf
>>>>> <http://www.mtl.co.jp/products/motor/mds_mdh_40.html><
>>>> http://www.mtl.co.jp/products/motor/mds_mdh_40.html><
>>>> http://www.mtl.co.jp/products/motor/mds_mdh_40.html><
>>>> http://www.mtl.co.jp/products/motor/mds_mdh_40.html><
>>>> http://www.mtl.co.jp/products/motor/mds_mdh_40.html><
>>>> http://www.mtl.co.jp/products/motor/mds_mdh_40.html><
>>>> http://www.mtl.co.jp/products/motor/mds_mdh_40.html><
>>>> http://www.mtl.co.jp/products/motor/mds_mdh_40.html><
>>>> http://www.mtl.co.jp/products/motor/mds_mdh_40.html>
>>>
>>> ----
>>> Yoji KURODA, Dr.E
>>> Professor
>>> Director of Autonomous Mobile Systems Laboratory
>>> Department of Mechanical Engineering,
>>> School of Science & Technology, Meiji University
>>> http://www.isc.meiji.ac.jp/~amslab/racing
>>> http://www.isc.meiji.ac.jp/~amslab/
>>> Access Map: http://g.co/maps/tws8y
>>>
>>> ?????
>>>
>>>
>>>
>>>
>>>
>>>

References