LoginSignup
5
4

More than 5 years have passed since last update.

EV3way ETロボコンで使用している倒立振子APIパラメーターの再計算手順

Posted at

ETロボコンで使用している倒立振子APIのパラメーターの再計算手順について簡単に説明します。
いただいたもの、見つけたもの等々いくつかの情報の寄せ集めになります。

走行体の形状・重量に変更があった場合に、最適なパラメーターを再計算することができます。
ここで再計算するのは次のパラメーターになります。

balancer_param.c
float K_F[4] = {-0.870303F, -31.9978F, -1.1566F*0.6, -2.78873F};

モデルの入手

MathWorks社のサイトからnxtway_gsのモデルをダウンロードします。

計算ツールの入手

Octaveまたは、MATLABを使用します。
ここでは、Octaveを使用する場合の手順を説明します。

controlパッケージのインストール

Octaveを起動したら、再計算に必要なパッケージのインストールを行います。※初回のみ

>> pkg install -forge control [ENTER]

物理パラメーターの設定

param_plant.m
% NXTway-GS Parameters
m = 0.03;   % wheel weight [kg]
R = 0.04;   % wheel radius [m]
M = 0.6;    % body weight [kg]
W = 0.14;   % body width [m]
D = 0.04;   % body depth [m]
H = 0.144;  % body height [m]

各パラメーターの示す距離が具体的に何処から何処までなのかは、nxtway_gs\docs フォルダーのドキュメントを参照してください。
EV3way-ET2018年試作走行体では次の値を使用しています。 ※2017/11/24時点

param_plant.m
% EV3way-ET2018 Parameters
m = 0.050;  % wheel weight [kg]
R = 0.05;   % wheel radius [m]
M = 0.80;   % body weight [kg]
W = 0.180;  % body width [m]
D = 0.08;   % body depth [m]
H = 0.180;  % body height [m]

計算

Octaveを起動し、ホームパスを nxtway_gs\models にします。
controlパッケージをロードします。※Octave起動の都度

>> pkg load control [ENTER]

param_nxtway_gs で再計算を行います。

>> param_nxtway_gs [ENTER]

求まった。k_f の値を確認します。

>> k_f [ENTER]

-0.86242 -33.97778 -1.14361 -3.02191

表示された4つの値が K_F[] の値になります。

車輪回転角速度係数について

K_F[2]は最終段階で別途係数処理されています。
実際にパラメーターを再計算する際はこの K_F[2] の値を、走行体の挙動を確認しながら微調整する必要があります。

param_controller.m
% suppress velocity gain because it fluctuates NXTway-GS
k_f(3) = k_f(3) * 0.85;

速度ゲインkf(3)が大きいと倒立状態を維持するための振動が大きくなるため、param_controller.mでは速度ゲインの計算値を適当に調節しています。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4