・モータの電気的な極数(何周期の駆動波形を与えるとモータ軸が1回転するか、もしくは、モータのホール素子出力のモータ軸1回転あたりのパルス数)を教えて下さい。これは、モータのタイプによりますが、コイルの個数と配線で決まります。
のコマンドは、ロボットを基準としてx(正面方向)=0.1メートル、y=0メートルの座標を通る、0度方向を向いている直線に従って走行する、という意味です。つまり、今向いている方向真っ直ぐ走り続ける、という意味になります。
> 渡辺様
>
> 進藤です。
>
> ご回答頂きありがとうございます。
>
> 初回メールの情報に誤りが有りました事と
> モータの情報が入手できましたので再度掲載します。
>
> 【モータの仕様】
> ・ギヤードブラシレス3相モーター
> ・駆動電源電圧24V
> ・無負荷回転数/無負荷電流値:出力軸で105rpm程度,
> モーター軸1575rpm/0.5A以下
> ・連続駆動トルク:2.7 N・m以下
> ・最大トルク:6.0 N・m
> ・15:1(減速比15)
> ・局数:磁石数が20のため10極(N局数)
> ・端子間抵抗:1.8Ω
>
> 【主なパラメータ設定値】と設定内容の確認
> (2軸ブラシレスモータドライバTF-2MD3-R6 User's Manualの5.1項を参考にしました)
> VERSION 4.00000000
> COUNT_REV 12.00000000 #[Counts/rev]←1/nの0.1設定でcoordinator起動不可
> VOLT 22.20000000 #[V]
> CYCLE 0.00100000 #[s]
> GEAR 150.00000000 #[in/out]←n(極数)倍のため15*10を設定
> MOTOR_R 1.35000000 #[ohm]←3/4*Rのため1.8*(3/4)を設定
> MOTOR_TC 0.134667879 #[Nm/A]
> MOTOR_VC 70.94594595 #[rpm/V]
> MOTOR_PHASE 3.00000000 #blashi less
> RADIUS[0] 0.06250000 #[m]
> RADIUS[1] 0.06250000 #[m]
> TREAD 0.38 #[m]
> CONTROL_CYCLE 0.02000000 #[s]
> MAX_VEL 200.1 #[m/s]
> MAX_W 1.57 #[rad/s]
> MAX_ACC_V 10.20000000 #
> MAX_ACC_W 3.14000000 #
>
> 【駆動コマンド】
> Spur_set_vel( 1.0 );
> Spur_set_accel( 0.1 );
> Spur_set_angvel( M_PI / 2.0 );
> Spur_set_angaccel( M_PI / 2.0 );
> Spur_stop();
> Spur_free();
>
> Spur_set_vel( 1.1 );
> Spur_line_FS( 0.1, 0, 0 ); // 0.1で10cm
>
> 【目標回転速度】
> 125π(タイヤ周長)×105rpm(最高回転数)×60(min)≒2.5[km/h]
>
> 【問題点】
> ・目標回転速度に達していない理由が、
> パラメータ値によるものなのか?
> 動作方法によるものなのか?
> 現行suprファームでの対応の問題なのか?
> 絞りきれません。
>
> 以上の内容で何か判定ができましたら、御教授願います。
>
> よろしくおねがいします。
>
>
>
>
>
> On Tue, 4 Nov 2014 20:04:02 +0900
> Atsushi Watanabe <
atsushi dot w at ieee dot org
> wrote:
>
>> 進藤様
>>
>> 渡辺です。
>>
>> モータのエンコーダパルス数についての情報、ありがとうございます。
>> 大変申し訳ないのですが、ご利用のモータはエンコーダの分解能が低いため
>> 現在のTF-2MD3-R6ファームウェアでは制御が難しいようです。
>>
>> T-frogのモータドライバは、ロボットの位置を高精度かつなめらかに、
>> ミリ秒オーダーの応答速度で制御できるように設計しているため、
>> 1ミリ秒周期で、エンコーダの信号から速度を計算して駆動・制御を行います。
>>
>> そのため、主なターゲットのモータとしては、
>> 例えば、最大3000rpmのモータに500パルス程度のエンコーダ
>> (100rpmであれば、1万パルス以上)が付いていることを想定しています。
>>
>>
>> 100rpmで、150パルスのエンコーダですと、
>> 制御周期(1ミリ秒)中のエンコーダカウント数が
>> 最大でも1パルスしか無いため、速度をほとんど検出できず、制御が困難です。
>> (NJM2626は、ホール素子のみで矩形波駆動するため、駆動できます。)
>>
>> エンコーダ分解能の低いモータ用に、ファームウェアを大幅に変更すれば
>> 制御可能になりますが、私の所属がドライバ設計時とは変わっており、
>> あまり時間がとれないため、すぐに対応することができません。
>> もし、ファームウェアの変更をご自身で行う場合には、
>> ソースコードは既に下記のリポジトリで公開していますので、
>> 改変してご利用頂けます。
>>
http://t-frog.com/repos/?p=motor-controller.git>>
>>
>> 大変申し訳ありませんが、よろしくお願いいたします。
>>
>> // Atsushi WATANABE
>> // E-mail:
atsushi dot w at ieee dot org
>>
>> 2014年11月4日 17:16 "進藤@三矢" <
shindo at mitsuya-lab dot co dot jp
>:
>> > 渡辺 様
>> >
>> > 進藤です。
>> >
>> > 下記について実施してみましたので、報告します。
>> >
>> >> 1. カタログ値から事前に与えるパラメータの設定
>> > →以下の設定としました。
>> > ・エンコーダパルス数は150Countsで減速比(15)のため
>> > 150*(1/15)=10としその4逓倍で40としました
>> > ・OTOR_VCは105*15/22.2=70.94594595
>> > ・MOTOR_TCは60/(2π*70.94594595)=0.134667879
>> >
>> > ** xxxx.param *****************************************************
>> > VERSION 4.00000000
>> > COUNT_REV 40.00000000 #[Counts/rev]
>> > VOLT 22.20000000 #[V]
>> > CYCLE 0.00200000 #[s]
>> > GEAR 15.00000000 #[in/out]
>> > MOTOR_R 14.80000000 #[ohm]
>> > MOTOR_TC 0.134667879 #[Nm/A]
>> > MOTOR_VC 70.94594595 #[rpm/V]
>> > MOTOR_PHASE 3.00000000 #blashi less
>> > RADIUS[0] 0.06250000 #[m]
>> > RADIUS[1] 0.06250000 #[m]
>> > TREAD 0.38 #[m]
>> > CONTROL_CYCLE 0.02000000 #[s]
>> > MAX_VEL 10.1 #[m/s]
>> > MAX_W 0.57 #[rad/s]
>> > MAX_ACC_V 1.20000000 #
>> > MAX_ACC_W 3.14000000 #
>> > MAX_CENTRI_ACC 9.80000000 #[G]
>> > L_C1 0.01000000 #
>> > L_K1 0.00000000 #
>> > L_K2 0.00000000 #
>> > L_K3 0.00000000 #
>> > L_DIST 0.40000000 #
>> >
>> > GAIN_KP 0.0 # *PI control parameter Kp
>> > GAIN_KI 0.0 # *PI control parameter Ki
>> > TORQUE_MAX 0.0 # * [Nm]
>> > TORQUE_LIMIT 6.0 #[Nm]
>> > TORQUE_NEWTON 0.0 # * [Nm]
>> > TORQUE_VISCOS 0.00001 # * [Nm/(count/1ms)]
>> > INTEGRAL_MAX 0.0 # * [rev]
>> >
>> > TORQUE_OFFSET 0.00000000 #[Nm]
>> > MASS 0.0250000 #[kg](robot+PC)
>> > TORQUE_FINENESS 0.000005
>> > MOMENT_INERTIA 0.05476133
>> > MOTOR_M_INERTIA 0
>> > TIRE_M_INERTIA 0.04321800
>> > *******************************************************************
>> >>
>> >> 2. 摩擦補償パラメータの調整
>> >> 2.1 ypspur-coordinator を立ち上げた状態で、ypspur-free コマンドを実行
>> > →プログラムでSpur_free();関数を実行(フリーモード)させました。
>> >
>> >> (摩擦補償のみを行うモードに入ります。)
>> >> 2.2 TORQUE_NEWTON(クーロン摩擦力項)を少しずつ大きくしながらタイヤを手で回転させて、軽く回転するように調整
>> > →値を0.1~900とかにしてみても軽く回転するようにならない
>> >
>> >> 2.3 同様にTORQUE_VISCOS(粘性摩擦項)を少しずつ大きくして調整
>> > →値を0.1~900とかにしてみても軽く回転するようにならない
>> >>
>> >> ※バックドライブが全くできず、手でタイヤを回そうとしたときに、エンコーダのパルスが1つも発生しないモータではこの方法は困難です。
>> >> その場合には新しい方法を考える必要があります。
>> > →重いがバックドライブ(手回し)するとパルスは出ている。
>> >>
>> >> 3. PI制御ゲインの調整
>> >> 3.1 ypspur-coordinator を立ち上げてサーボがかかっている状態にする
>> > →「サーボがかかっている状態」手回しして重く回る状態で良いでしょうか?
>> >> 3.2 作成したプログラム等で、適当な走行指令を出す
>> >> 3.3 GAIN_KIを0にし、GAIN_KPを発振しない範囲で大きくする
>> > →上記、パラメータでは回らなかった。TORQUE_MAXに0.1をいれたら回った
>> > 「発振」といわれる音がまったくしないので0.1から1200ぐらいまで
>> > 数値を大きくしたが目標の回転スピードにはならない(回転速度上がらず)
>> > 50として起動し、Spur_set_vel()で0.01から数値を上げて
>> > ドライブすると加速はできている
>> >> 3.4 GAIN_KIを発振しない範囲で大きくする
>> > →「発振」といわれる音がまったくしないので0.1から1200ぐらいまで
>> > 数値を大きくしたが目標の回転スピードにはならない(回転速度上がらず)
>> >
>> > 以上が状況です。
>> >
>> > ちなみ、「PWM型三相DCブラシレスモータ制御IC(NJM2626)」(新日本無線)ドライバにて
>> > ソフトなしでモータのみ単純駆動をしたところ、目標スピードで
>> > 回る事が確認できました。
>> >
>> > 「yp-spur」と上記IC(制御IC)との単純な動作の違いが有り
>> > ・モータ無通電時は双方とも手で軽く回る(ギア抵抗分の重さ?)が
>> > 通電により制御ICは正転方向(スイッチにより指定)に軽く回り、逆方向に重い
>> > 状態となるが、yp-spurは両方向とも重くなる(フリーモード時も同様)
>> >
>> > この違いは、yp-spurで回転速度が上がらない事と関連するとは思えませんが
>> > 報告しておきます。
>> >
>> > 以上、宜しくお願いします。
>> >
>> >
>> >
>
>
>