曲線加速を用いた超信地旋回
曲線加速を用いて超信地旋回の設計をしました。
なめらかな加速の設計を参考にしました。
$\dfrac{\pi}{2}$だけ超信地旋回する際の曲線加速の設計に適用します。
1. 目標値の関数を求める
角躍度, 角加速度, 角速度, 角度の目標値をそれぞれ$j_{ref}(t), a_{ref}(t), \omega_{ref}(t), \theta_{ref}(t)$ とします。
2. パラメータを決定する
$t_1,t_2,t_3,j_m,a_m$を決定します。(ただし, $t_1=t_3-t_2=\dfrac{a_m}{j_m}$)
とりあえずMATLABで描画しながら次のようにパラメータを決定しました。
$$t_1=0.03[s]$$
$$t_2=0.07[s]$$
$$t_3=0.1[s]$$
$$j_m=3500[rad/s^3]$$
$$a_m=105[rad/s^2]$$
これらを決定したとき$\omega_3=7.35[rad/s]$となりました。
3. 角速度の積分値が$\dfrac{\pi}{2}$となるように設計する
最大(一定)角速度$\omega_3$である時間で回転角を調整します。時刻$t_4$まで$\omega_3$であるとすると, 角速度の積分値となる面積$S$は次式で表されます。
$$S=2\left\{\omega_1(t_2-t_1)+\dfrac{1}{2}a_m(t_2-t_1)^2+\omega_3(t_3-t_2)\right\}+\omega_3(t_4-t_3)$$$S=\dfrac{\pi}{2}$となるように$t_4=213[ms]$と求めました。 $t_4は$整数で求まらなかったので四捨五入しました。
$\pi$回転する超信地旋回では$S=\pi$として$t_4$を求めます。
4. マイコンで目標値を生成する
マイコンで生成した目標値をMATLABでplotしました。
角速度
角加速度
角躍度
5. 2自由度制御を設計する
まず, 回転方向のシステム同定をします。 同定については以下の記事を参考にさせていただきました。
MATLABでマイクロマウスの機体をシステム同定してPIDチューニングする
1次の極をもつとして同定しました。 $$P_M(s)=\dfrac{K}{bs+1}$$ 2自由度制御によって目標値に追従させることにします。 $P_M^{-1}(s)$は非プロパーなので, 理論上では1次のフィルタを入れるなどしてフィードフォワードコントローラをプロパーにする必要がありますが, とりあえずフィルタを入れずに$F(s)=1$として考えます。
フィードバック
角速度の誤差にPID制御をかけます。 $$e_{\omega}=\omega_{ref}-\omega$$
$$u_{fb}=C(s)e_\omega=(k_{p_\omega}+k_{i_\omega}\dfrac{1}{s}+k_{d_\omega}\dfrac{s}{\tau s+1})e_{\omega}$$
フィードフォワード
フィードバックのみでは遅れがあるので, フィードフォワードを加えます。 $$u_{ff}=\omega_{ref}P_M^{-1}(s)=\omega_{ref}\dfrac{bs+1}{K}=\dfrac{ba_{ref}+\omega_{ref}}{K}$$
2自由度制御
$$u_{\omega}=u_{ff}+u_{fb}$$ 実際にはシステムを後退差分 $z=\dfrac{1}{1-Ts}$ で離散化しました。