渡辺 様
進藤です。
下記について実施してみましたので、報告します。
> 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で回転速度が上がらない事と関連するとは思えませんが
報告しておきます。
以上、宜しくお願いします。