ロボット工学5

Dublin Core

Creator

Date Created

Rights

CC BY-NC 4.0 - 非営利目的のみ許可

note Item Type Metadata

note

ロボット制御システム

記号・単位の統一表

  • $G(s)$: 制御対象(プラント)の伝達関数(無次元)
  • $C(s)$: 制御器の伝達関数(無次元)
  • $H(s)$: センサ/フィードバック経路の伝達関数(無次元)
  • $\omega$: 角速度 [rad/s]、$J$: 慣性モーメント [kg・m²]、$B$: 粘性摩擦係数 [N・m・s/rad]
  • $V$: 電圧 [V]、$i$: 電流 [A]、$T$: トルク [N・m]
  • $K_p/K_i/K_d$: PIDゲイン、$T_s$: サンプリング周期 [s]

1. オープンループ制御(Open-Loop Control)

基本構造: 目標値 → アクチュエータ → メカニズム

制御理論:

  • フィードバック機構を持たない制御系
  • 入力信号のみで出力を制御
  • システムの伝達関数: $G(s) = \frac{Y(s)}{U(s)}$
  • 開ループ利得が有限で、外乱に対する補償能力が限定的

特徴:

  • 負荷変動等で速度や変位量が変化してしまう
  • 一定電圧、一定速度で動作
  • 外乱に対する補償能力が低い
  • システムの非線形性や時変特性に弱い

数学的表現:

$$Y(s) = G(s)U(s) + D(s)$$

ここで、$Y(s)$は出力のラプラス変換、$U(s)$は入力のラプラス変換、$D(s)$は外乱のラプラス変換、$G(s)$は伝達関数

状態空間表現:

$$\dot{x}(t) = Ax(t) + Bu(t) + Ed(t)$$

$$y(t) = Cx(t) + Du(t) + Fd(t)$$

ここで、$A \in \mathbb{R}^{n \times n}$(システム行列)、$B \in \mathbb{R}^{n \times m}$(入力行列)、$C \in \mathbb{R}^{p \times n}$(出力行列)、$D \in \mathbb{R}^{p \times m}$(直通行列)、$E \in \mathbb{R}^{n \times d}$(外乱入力行列)、$F \in \mathbb{R}^{p \times d}$(外乱出力行列)

周波数応答解析:

$$G(j\omega) = |G(j\omega)|e^{j\phi(\omega)}$$

ここで、$|G(j\omega)|$はゲイン、$\phi(\omega)$は位相、$\omega$は角周波数 (開ループ伝達関数は $L(j\omega)=G(j\omega)C(j\omega)H(j\omega)$ とする)。

安定性判別:

  • ハーウィッツ判別:特性多項式の係数から構成されるハーウィッツ行列の主小行列式がすべて正
  • ナイキスト判別:$Z = P - N = 0$($Z$: 右半平面の零点、$P$: 右半平面の極、$N$: ナイキスト軌跡の-1点周りの回転数。本資料では反時計回り(CCW)を正)

特例:

  • ステッピングモータ:ドライバは複雑で低電力効率だが、これもオープンループ
  • オープンループ制御の利点:シンプルな構成、低コスト、高速応答
  • 欠点:精度が低い、外乱に弱い、システム変動に敏感

参考文献:

  • Franklin, G.F., Powell, J.D., & Emami-Naeini, A. (2019). Feedback Control of Dynamic Systems (8th ed.). Pearson. Amazon
  • Ogata, K. (2010). Modern Control Engineering (5th ed.). Prentice Hall. Amazon
  • IEEE Control Systems Society. https://www.ieeecss.org/

2. セミクローズドループ制御(Semi-Closed Loop Control)

基本構造: アクチュエータからフィードバックを行って補正

制御理論:

  • アクチュエータレベルでのフィードバック制御
  • メカニズムの実際の動作は監視されない
  • 中間制御点での位置・速度フィードバック

注意点: 実際の動作からフィードバックを行っているわけではない

誤差の原因:

  • ギアのバックラッシュ(ギアの隙間により誤差が出る)
  • メカニズムにずれが出る
  • 弾性変形による位置ずれ
  • クリアランスによる累積誤差

制御ブロック図:

目標値 → [制御器] → [アクチュエータ] → [メカニズム] → 出力
            ↑                    ↓
        [センサ] ← [位置/速度検出]

例: ラジコンサーボ(RCサーボモータ)

  • アクチュエータ:DCモータ
  • センサ:ポテンショメータ(回転角度検出)
  • 制御方式:PID制御による位置制御
  • これらはフィードバックする

利点:

  • オープンループより高精度
  • アクチュエータの非線形性を補償
  • 比較的シンプルな構成

欠点:

  • メカニズムの誤差は補償されない
  • 負荷変動の影響を完全には除去できない

参考文献:

  • Kuo, B.C. (1995). Automatic Control Systems (7th ed.). Prentice Hall. Amazon
  • Dorf, R.C., & Bishop, R.H. (2017). Modern Control Systems (13th ed.). Pearson. Amazon
  • Control Engineering Online. https://www.controleng.com/

3. クローズドループ制御(Closed-Loop Control)

基本構造: メカニズムの実際の動作から補正を行う

制御理論:

  • 完全なフィードバック制御系
  • 出力を直接監視して制御入力に反映
  • システムの伝達関数: $T(s) = \frac{G(s)}{1 + G(s)H(s)}$
  • 閉ループ利得が高く、外乱に対する補償能力が高い
  • 安定性解析が重要(ナイキスト安定判別、ルート・ロークス判別)

特徴:

  • 高精度に制御可能
  • メカニズムにセンサを取り付けて補正制御する
  • 外乱に対する強靭性(ロバスト性)
  • システム変動に対する適応性

制御ブロック図:

目標値 → [制御器] → [アクチュエータ] → [メカニズム] → 出力
    ↑                                        ↓
    └──────── [センサ] ← [位置/速度検出] ←────┘

数学的表現:

$$e(t) = r(t) - y(t) \quad \text{(誤差信号)}$$

$$u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt} \quad \text{(PID制御)}$$

ここで、$K_p$は比例ゲイン、$K_i$は積分ゲイン、$K_d$は微分ゲイン

ラプラス変換での表現:

$$E(s) = R(s) - Y(s) \quad \text{(誤差信号)}$$

$$U(s) = \left(K_p + \frac{K_i}{s} + K_d s\right)E(s) \quad \text{(PID制御器の伝達関数)}$$

閉ループ伝達関数:

$$T(s) = \frac{G(s)C(s)}{1 + G(s)C(s)H(s)}$$

ここで、$C(s)$は制御器の伝達関数、$H(s)$はセンサの伝達関数

感度関数:

$$S(s) = \frac{1}{1 + G(s)C(s)H(s)} \quad \text{(外乱感度)}$$

$$T(s) = \frac{G(s)C(s)}{1 + G(s)C(s)H(s)} \quad \text{(補感度関数)}$$

ロバスト制御理論:

  • H∞制御:$||W_1(s)S(s)||_\infty < \gamma_1$, $||W_2(s)T(s)||_\infty < \gamma_2$
  • μ解析:$\mu(M(j\omega)) < 1$ for all $\omega$(構造化不確実性に対する安定性)
  • スライディングモード制御:$s = cx + \dot{x} = 0$(スライディング面)

3.1 離散時間制御(ディジタル制御)

Z変換とゼロ次ホールド(ZOH):

  • ZOHにより連続系は等価に離散化され、$G(z)$で設計する。

離散時間PID(位置型の例):

$$u[k] = u[k-1] + K_p (e[k] - e[k-1]) + K_i T_s e[k] + \frac{K_d}{T_s} (e[k] - 2e[k-1] + e[k-2])$$

注意: $T_s$ は制御帯域(クロスオーバ周波数)の10倍以上速くするのが目安。

実装上の注意:

  • ADC/DACの量子化誤差は積分器で蓄積しやすい。デッドバンド設定で緩和。
  • 演算飽和時のアンチワインドアップ(後述)を必須とする。

実装例(C, AW/微分フィルタ付きPID):

typedef struct {
    float Kp, Ki, Kd;
    float Ts;            // サンプリング周期
    float N;             // 微分フィルタ係数(推奨:10〜100)
    float u_min, u_max;  // 飽和
    // 内部状態
    float e_prev;
    float e_prev2;
    float I;             // 積分状態
    float D;             // 微分状態(フィルタ出力)
} PIDd;

static inline float clampf(float x, float lo, float hi) {
    return x < lo ? lo : (x > hi ? hi : x);
}

float pid_discrete_update(PIDd* pid, float e) {
    // 微分フィルタ(Tustin形式): D(s)=Kd*N/(1+N s)
    const float a = 1.0f / (1.0f + pid->N * pid->Ts);
    const float b = (pid->N * pid->Ts) * a;
    float de = (e - pid->e_prev) / pid->Ts;
    pid->D = a * pid->D + b * pid->Kd * de;

    // 積分: アンチワインドアップのため、飽和後に補正を行う
    float I_new = pid->I + pid->Ki * pid->Ts * e;

    // 絶対量での形成(Kp*e + I + D)
    float u_unsat = pid->Kp * e + I_new + pid->D;
    float u = clampf(u_unsat, pid->u_min, pid->u_max);

    // 逆計算型アンチワインドアップ: 飽和分だけ積分器を巻き戻す
    pid->I = I_new + (u - u_unsat);

    pid->e_prev2 = pid->e_prev;
    pid->e_prev = e;
    return u;
}

初期値例: $T_s=1$ ms, $N=50$, $u_{min}=-1.0$, $u_{max}=1.0$(正規化電圧指令の場合)。

例1: 一定角度で停止するグリッパー

  • 動作をセンサで補正制御すると、小さい方に設定されても、持つ大きさに合わせて調整できる
  • 力センサによる力制御と位置センサによる位置制御の組み合わせ

例2: 倒立振子

  • アクチュエータ:DCモータ
  • センサ:ジャイロセンサ(角速度検出)+ エンコーダ(角度検出)
  • 制御方式:LQR制御、PID制御、状態フィードバック制御
  • 非線形制御理論の応用

例3: 壁にぶつからないミニ四駆

  • アクチュエータ:DCモータ
  • センサ:距離センサ(超音波、赤外線、LiDAR)
  • 制御方式:障害物回避アルゴリズム
  • 停止時逆回転にすることで停止する

利点:

  • 最高精度の制御が可能
  • 外乱に対する補償能力が高い
  • システムの非線形性を補償可能

欠点:

  • 複雑な制御系設計が必要
  • 高コスト
  • 制御系の安定性確保が重要

参考文献:

  • Åström, K.J., & Murray, R.M. (2021). Feedback Systems: An Introduction for Scientists and Engineers (2nd ed.). Princeton University Press. Amazon
  • Skogestad, S., & Postlethwaite, I. (2005). Multivariable Feedback Control: Analysis and Design (2nd ed.). Wiley. Amazon
  • IEEE Xplore Digital Library. https://ieeexplore.ieee.org/

4. 制御精度の比較

定量的比較:

  • オープンループ制御 < セミクローズドループ制御 < クローズドループ制御
  • 位置精度:±0.5mm → ±0.1mm → ±0.01mm
  • 繰り返し精度:±0.2mm → ±0.05mm → ±0.005mm
  • 応答時間:50ms → 20ms → 5ms

制御性能指標:

  • 定常偏差(Steady-state error)
  • 過渡応答特性(Overshoot, Settling time)
  • 周波数応答特性(Bandwidth, Phase margin)

参考文献:

  • Goodwin, G.C., Graebe, S.F., & Salgado, M.E. (2001). Control System Design. Prentice Hall. Amazon
  • Zhou, K., Doyle, J.C., & Glover, K. (1996). Robust and Optimal Control. Prentice Hall. Amazon
  • ScienceDirect. https://www.sciencedirect.com/

5. トルク・速度制御

基本原理:

  • トルクや速度を一定に保つためには負荷に合わせて電圧を調整する必要がある
  • 速度制御で遅くなっているとき電圧を上げる
  • 回転数を保つなら回転数が少ない場合電圧を上げる
  • 電圧を調整することで一定に保つ

DCモータの数学モデル:

$$V = Ri + L\frac{di}{dt} + K_b\omega \quad \text{(電圧方程式)}$$

$$T = K_t i - J\frac{d\omega}{dt} - B\omega \quad \text{(トルク方程式)}$$

状態空間表現:

$$\frac{dx}{dt} = Ax + Bu$$

$$y = Cx + Du$$

ここで、$x = [i, \omega]^T$(状態変数)、$u = V$(入力)、$y = \omega$(出力)

物理パラメータ:

  • $V$: 印加電圧 [V]
  • $R$: 電機子抵抗 [Ω]
  • $L$: 電機子インダクタンス [H]
  • $K_b$: 逆起電力定数 [V・s/rad]
  • $K_t$: トルク定数 [N・m/A]
  • $J$: 慣性モーメント [kg・m²]
  • $B$: 粘性摩擦係数 [N・m・s/rad]

参考文献:

DCモータのトルク制御

構成要素:

  • 電流制御器(PI制御器)
  • 電流増幅器(Hブリッジ回路)
  • モータ
  • メカニズム
  • 電流センサ(ホールセンサ、シャント抵抗)

制御方法:

  • 負荷によって電流が増加するので電流センサで検出し電流制御器でフィードバック制御する
  • 電流制御ループの応答周波数:1-10kHz
  • 制御帯域幅:モータの電気時定数に依存

制御ブロック図:

目標トルク → [電流制御器] → [Hブリッジ] → [DCモータ] → 出力トルク
                ↑                              ↓
            [電流センサ] ← [電流検出回路] ←──────┘

PWM方式(パルス幅変調)

基本原理:

  • コンピュータは直接電圧を制御できない
  • パルスのオンとオフの頻度を設定してそれによって実効電圧を操作している
  • スイッチング周波数:1-100kHz(モータの時定数より十分高い)

デューティ比:

$$\text{デューティ比} = \frac{\text{制御パルス幅}}{\text{PWMサイクル}} \times 100$$

$$\text{実効電圧} = \text{供給電圧} \times \text{デューティ比}$$

例:

  • 5V供給しているとき70%のものを使っているとき、その70%の3.5Vが実効電圧
  • オンになっている時間の幅で制御する

注意点:

  • 時定数よりパルスが早すぎると電圧のON/OFFがうまく切り替わらない
  • スイッチング損失の考慮が必要
  • EMI(電磁妨害)対策が重要

PWM制御の種類:

  • 単極性PWM:一方向のみスイッチング
  • 双極性PWM:両方向スイッチング(Hブリッジ)
  • 正弦波PWM:高調波成分を低減

参考文献:

  • Mohan, N., Undeland, T.M., & Robbins, W.P. (2003). Power Electronics: Converters, Applications, and Design (3rd ed.). Wiley. Amazon
  • Rashid, M.H. (2017). Power Electronics: Circuits, Devices and Applications (4th ed.). Pearson. Amazon
  • IEEE Power Electronics Society. https://www.ieee-pels.org/

DCモータの位置制御

構成:

  • DCモータ + インクリメンタルエンコーダをセンサとしてフィードバック制御を行う
  • 負荷を検知しPWMでコンピュータのパルス調整を行う

制御系設計:

  • 位置制御ループ(外側ループ)
  • 速度制御ループ(中間ループ)
  • 電流制御ループ(内側ループ)

PID制御パラメータ:

  • $K_p$: 比例ゲイン(応答速度)
  • $K_i$: 積分ゲイン(定常偏差除去)
  • $K_d$: 微分ゲイン(振動抑制)

PID実務ノウハウ:

ローパスフィルタ(一次, C):

typedef struct { float y, alpha; } LPF1;
// alpha = Ts/(Ts + tau) (tauは時定数)
static inline float lpf1_update(LPF1* f, float x) {
    f->y += f->alpha * (x - f->y);
    return f->y;
}

初期値例: $T_s=1$ ms, $\tau=20$ ms のとき $\alpha = \frac{T_s}{T_s+\tau} \approx 0.0476$。

  • アンチワインドアップ: 出力が飽和中は積分器の更新を停止、または逆計算で積分状態を補正。
  • 微分フィルタ: $K_d$ ブロックに一次ローパス(伝達関数 $\frac{K_d N}{1+N s}$、$N=10$–$100$)を挿入し高周波ノイズを抑制。
  • 入力飽和/出力制限: $u_{min}/u_{max}$ を明示し、ソフト/ハードの両方で保護。

RCサーボの角度指定

制御方法:

  • デューティ比 = どれだけパルスが立ち上がっているか
  • パルスデューティ比によって制御機器に渡してそれにより制御する

PWM信号仕様:

  • 周期:20ms(50Hz)
  • パルス幅:1.0ms(-90°)~ 2.0ms(+90°)
  • 中立位置:1.5ms(0°)
  • 標準範囲:0.5ms(-90°)~ 2.5ms(+90°)

制御精度:

  • 角度分解能:約0.1°(高精度サーボの場合)
  • 繰り返し精度:±1°(標準サーボ)、±0.1°(高精度サーボ)
  • 応答時間:0.1-0.3秒(負荷により変動)
  • トルク:0.1-50kgf・cm(サーボサイズにより変動)

参考文献:

  • Craig, J.J. (2017). Introduction to Robotics: Mechanics and Control (4th ed.). Pearson. Amazon
  • Spong, M.W., Hutchinson, S., & Vidyasagar, M. (2020). Robot Modeling and Control (2nd ed.). Wiley. Amazon
  • IEEE Robotics and Automation Society. https://www.ieee-ras.org/

6. 先進制御技術

適応制御(Adaptive Control)

モデル参照適応制御(MRAC):

$$e(t) = y_m(t) - y(t) \quad \text{(モデル追従誤差)}$$

$$\dot{\theta}(t) = -\Gamma \phi(t) e(t) \quad \text{(適応則)}$$

ここで、$y_m(t)$は参照モデル出力、$\theta(t)$は適応パラメータ、$\Gamma$は適応ゲイン

自己調整制御(STC):

  • 最小二乗法によるパラメータ同定
  • 再帰的最小二乗法:$\hat{\theta}(k+1) = \hat{\theta}(k) + K(k+1)[y(k+1) - \phi^T(k+1)\hat{\theta}(k)]$
  • 適応制御と組み合わせたハイブリッド制御

予測制御(Model Predictive Control)

制約付き最適化問題:

$$\min J = \sum_{i=0}^{N-1} [||y(k+i|k) - r(k+i)||^2_Q + ||\Delta u(k+i)||^2_R]$$

subject to: $u_{min} \leq u(k+i) \leq u_{max}$, $\Delta u_{min} \leq \Delta u(k+i) \leq \Delta u_{max}$

実装上の指針:

  • 例: $T_s=1$ ms の場合、予測ホライズン $H_p=20$、制御ホライズン $H_u=5$ 程度から試行し、計算時間をプロファイル。
  • 制約は物理上限(電流・電圧・速度・加速度)と安全制約を優先。

強化学習制御(Reinforcement Learning Control)

Q学習:

$$Q(s,a) \leftarrow Q(s,a) + \alpha[r + \gamma \max_{a'} Q(s',a') - Q(s,a)]$$

ここで、$\alpha$は学習率、$\gamma$は割引率、$r$は報酬

Actor-Critic法:

$$\theta \leftarrow \theta + \alpha \nabla_\theta \log \pi(a|s) A(s,a)$$

$$w \leftarrow w + \beta \nabla_w A(s,a)$$

ここで、$\pi(a|s)$は方策、$A(s,a)$はアドバンテージ関数

ニューラルネットワーク制御

多層パーセプトロン:

$$y = f\left(\sum_{j=1}^n w_j f\left(\sum_{i=1}^m w_{ij} x_i + b_j\right) + b\right)$$

リカレントニューラルネットワーク(RNN):

$$h_t = \tanh(W_{hh} h_{t-1} + W_{xh} x_t + b_h)$$

$$y_t = W_{hy} h_t + b_y$$

ファジー制御

ファジールール:

$$\text{IF } x_1 \text{ is } A_1 \text{ AND } x_2 \text{ is } A_2 \text{ THEN } u \text{ is } B$$

デファジィ化:

$$u = \frac{\sum_{i=1}^n \mu_i u_i}{\sum_{i=1}^n \mu_i}$$

参考文献:

計測ノイズ対策と推定(最小例)

1次元カルマンフィルタ(C, 位置xの例):

typedef struct {
    float x;   // 推定値
    float P;   // 分散
    float Q;   // プロセス雑音分散
    float R;   // 観測雑音分散
} KF1;

static inline void kf1_predict(KF1* kf, float u) {
    // x <- x + u (単純モデル)
    kf->x = kf->x + u;
    kf->P = kf->P + kf->Q;
}

static inline void kf1_update(KF1* kf, float z) {
    float S = kf->P + kf->R;
    float K = kf->P / S;
    kf->x = kf->x + K * (z - kf->x);
    kf->P = (1.0f - K) * kf->P;
}
  • Astrom, K.J., & Wittenmark, B. (2013). Adaptive Control (2nd ed.). Dover Publications. Amazon
  • Sutton, R.S., & Barto, A.G. (2018). Reinforcement Learning: An Introduction (2nd ed.). MIT Press. Amazon
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. Amazon
  • Zadeh, L.A. (1965). "Fuzzy Sets." Information and Control, 8(3), 338-353. ScienceDirect

7. 実装技術詳細

ハードウェア実装

マイクロコントローラ選択基準:

  • 処理速度:ARM Cortex-M4F(168MHz)以上推奨
  • メモリ:Flash 256KB以上、RAM 64KB以上
  • ADC分解能:12bit以上(16bit推奨)
  • PWM分解能:16bit以上(タイマー分解能)
  • 通信インターフェース:CAN、Ethernet、USB
  • リアルタイム性能:割り込み応答時間 $< 1\mu$s

センサインターフェース:

  • エンコーダ:A/B相差分信号、Z相(インデックス)
  • ホールセンサ:3相120°位相差信号
  • ポテンショメータ:0-5Vアナログ出力
  • ジャイロセンサ:SPI/I2C通信、16bit分解能

ソフトウェア実装

リアルタイムOS(RTOS):

  • FreeRTOS:タスク優先度、セマフォ、キュー
  • 制御周期:1kHz(1ms)、センサ読み取り:10kHz(0.1ms)
  • 割り込み処理:タイマー割り込み、ADC完了割り込み
  • タスク切り替え時間:$< 10\mu$s(FreeRTOS)
  • メモリ使用量:最小2KB RAM、8KB Flash

遅延・ジッタ・量子化の考慮:

  • 伝達遅延 $\tau$ は位相余裕の低下に直結。$e^{-s\tau}$ は一時近似として1次パデ近似で設計検討可。
  • 制御周期ジッタは目標帯域の5%以下を目標(例: 帯域100 Hzならジッタ$\leq$0.5 ms)。
  • 量子化刻み $\Delta$ の影響は微小振動やハンチングを生むため、デッドゾーン/ローパス併用で緩和。

制御アルゴリズム実装:

// PID制御実装例
typedef struct {
    float Kp, Ki, Kd;
    float integral, previous_error;
    float dt;
} PID_Controller;

float pid_update(PID_Controller* pid, float error) {
    float integral_term = pid->integral + error * pid->dt;
    float derivative_term = (error - pid->previous_error) / pid->dt;
    
    float output = pid->Kp * error + 
                   pid->Ki * integral_term + 
                   pid->Kd * derivative_term;
    
    pid->integral = integral_term;
    pid->previous_error = error;
    
    return output;
}

PWM生成:

// PWM設定例(STM32)
void pwm_init(void) {
    // タイマー周波数設定
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    TIM_TimeBaseStructure.TIM_Period = PWM_PERIOD - 1;
    TIM_TimeBaseStructure.TIM_Prescaler = PWM_PRESCALER - 1;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
    
    // PWM出力設定
    TIM_OCInitTypeDef TIM_OCInitStructure;
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 0;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC1Init(TIM1, &TIM_OCInitStructure);
}

通信プロトコル

CAN通信:

  • ボーレート:1Mbps(短距離)、250kbps(長距離)
  • メッセージID:11bit標準、29bit拡張
  • データ長:0-8バイト

Ethernet通信:

  • TCP/IPスタック:lwIP
  • 制御周期:1ms、データ更新:10ms
  • プロトコル:Modbus TCP、EtherCAT

安全機能

故障検出:

  • センサ異常検出:範囲外値、信号欠落
  • 通信異常検出:タイムアウト、チェックサムエラー
  • 過電流保護:電流センサによる監視

フェイルセーフ:

  • 緊急停止:安全リレーによる電源遮断
  • 減速停止:段階的な減速制御
  • 位置保持:ブレーキによる位置固定

参考文献:

安全規格の参照:

  • 機能安全: IEC 61508(SIL)、機械安全: ISO 13849-1(PL)
  • 産業用ロボット: ISO 10218-1/-2(システム統合含む)

8. 性能解析と最適化

制御性能評価指標

時間領域特性:

  • 立ち上がり時間(Rise Time):$t_r \approx \frac{2.2}{\omega_n}$(目安、2次系では減衰係数 $\zeta$ に依存)
  • 整定時間(Settling Time):$t_s = \frac{4}{\zeta\omega_n}$(2%許容誤差)
  • オーバーシュート(Overshoot):$M_p = e^{-\pi\zeta/\sqrt{1-\zeta^2}} \times 100\%$
  • 定常偏差(Steady-state Error):$e_{ss} = \lim_{t \to \infty} e(t)$

周波数領域特性:

  • 帯域幅(Bandwidth):$|T(j\omega)| = \frac{1}{\sqrt{2}}$ となる周波数
  • 位相余裕(Phase Margin):$PM = 180° + \angle L(j\omega_c)$($L(j\omega)=G(j\omega)C(j\omega)H(j\omega)$)
  • ゲイン余裕(Gain Margin):$GM = \frac{1}{|L(j\omega_{180°})|}$($L(j\omega)=G(j\omega)C(j\omega)H(j\omega)$)
  • ピーク値(Peak Value):$M_p = \max|T(j\omega)|$

最適化手法

PIDパラメータ調整:

  • Ziegler-Nichols法:
    • 限界感度法:$K_p = 0.6K_u$, $T_i = 0.5T_u$, $T_d = 0.125T_u$
    • ステップ応答法:$K_p = \frac{1.2}{a}$, $T_i = 2L$, $T_d = 0.5L$
  • 遺伝的アルゴリズム(GA):

    $$J = \int_0^\infty [e^2(t) + \lambda u^2(t)]dt$$

  • 粒子群最適化(PSO):

    $$v_i^{(k+1)} = wv_i^k + c_1r_1(p_i - x_i^k) + c_2r_2(g - x_i^k)$$

    $$x_i^{(k+1)} = x_i^k + v_i^{(k+1)}$$

LQR最適化:

$$J = \int_0^\infty [x^T(t)Qx(t) + u^T(t)Ru(t)]dt$$

$$u^*(t) = -Kx(t), \quad K = R^{-1}B^TP$$

ここで、$P$はリカッティ方程式の解:$A^TP + PA - PBR^{-1}B^TP + Q = 0$

H∞最適化:

$$\min ||T_{zw}||_\infty \text{ subject to } ||W_1S||_\infty < 1, ||W_2T||_\infty < 1$$

ロバスト性解析

μ解析:

$$\mu(M(j\omega)) = \frac{1}{\min\{\sigma(\Delta) : \det(I - M\Delta) = 0\}}$$

  • $\mu < 1$:ロバスト安定性
  • $\mu < \frac{1}{||W||_\infty}$:ロバスト性能

感度解析:

  • パラメータ感度:$\frac{\partial y}{\partial \theta} = \frac{\partial G/\partial \theta}{1 + GC}$
  • 外乱感度:$\frac{\partial y}{\partial d} = \frac{1}{1 + GC}$

H∞ 重み設計の要点:

  • $W_1$(感度重み)は低周波で大(定常偏差低減)、中高周波で小。
  • $W_2$(補感度重み)は中高周波で大(ノイズ/アクチュエータ抑制)。

システム同定

最小二乗法:

$$\hat{\theta} = (\Phi^T\Phi)^{-1}\Phi^TY$$

ここで、$\Phi$は回帰行列、$Y$は出力ベクトル

再帰的最小二乗法:

同定とPIDチューニングの実務手順(推奨):

  1. 小振幅ステップで飽和を避けつつステップ応答取得(温度・電源条件を安定化)。
  2. 2次遅れ+むだ時間へ近似(時定数・減衰・遅延の推定)。
  3. 初期PIDをZiegler–NicholsやIMCチューニングで設定。
  4. 実機で微調整(オーバーシュートと整定時間のトレードオフ、飽和監視)。
  5. 外乱注入/負荷変動試験でロバスト性を確認。

$$P(k+1) = P(k) - P(k)\phi(k+1)[1 + \phi^T(k+1)P(k)\phi(k+1)]^{-1}\phi^T(k+1)P(k)$$

$$\hat{\theta}(k+1) = \hat{\theta}(k) + P(k+1)\phi(k+1)[y(k+1) - \phi^T(k+1)\hat{\theta}(k)]$$

性能モニタリング

リアルタイム性能評価:

  • 制御誤差の統計解析:RMS、最大値、分散
  • 周波数応答のオンライン解析:FFT、ウェーブレット変換
  • 異常検知:統計的制御限界、機械学習による異常検知

予測保全:

試験計画(最小セット):

付録: 3重ループ(電流・速度・位置)制御 擬似コード

// 電流(内側)—速度(中間)—位置(外側)のカスケード
PIDd pid_i = { .Kp=Ki_p, .Ki=Ki_i, .Kd=0, .Ts=Ts_i, .N=50, .u_min=-Vmax, .u_max=Vmax };
PIDd pid_w = { .Kp=Kw_p, .Ki=Kw_i, .Kd=Kw_d, .Ts=Ts_w, .N=50, .u_min=-Imax, .u_max=Imax };
PIDd pid_x = { .Kp=Kx_p, .Ki=Kx_i, .Kd=Kx_d, .Ts=Ts_x, .N=50, .u_min=-Wmax, .u_max=Wmax };

void control_step(float x_ref, float x_meas, float w_meas, float i_meas) {
    // 外側: 位置 → 速度指令
    float e_x = x_ref - x_meas;
    float w_ref = pid_discrete_update(&pid_x, e_x);

    // 中間: 速度 → 電流指令
    float e_w = w_ref - w_meas;
    float i_ref = pid_discrete_update(&pid_w, e_w);

    // 内側: 電流 → 電圧指令(PWMデューティ)
    float e_i = i_ref - i_meas;
    float v_cmd = pid_discrete_update(&pid_i, e_i);
    // v_cmd をPWMに変換しHブリッジへ
}
  • ステップ/ランプ追従試験、外乱トルク注入試験、ノイズ重畳時の追従性試験。
  • 周波数応答(擬似ランダムバイナリ列: PRBS)からの同定と帯域確認。
  • モンテカルロ(ばらつき・温度・電源)での安定性/性能評価。
  • 振動解析:FFT、包絡線解析
  • 温度監視:熱モデルによる予測
  • 電流波形解析:高調波解析による故障予測

参考文献:

  • Khalil, H.K. (2014). Nonlinear Systems (3rd ed.). Pearson. Amazon
  • Boyd, S., & Vandenberghe, L. (2004). Convex Optimization. Cambridge University Press. Amazon
  • Ljung, L. (1999). System Identification: Theory for the User (2nd ed.). Prentice Hall. Amazon
  • Randall, R.B. (2011). Vibration-Based Condition Monitoring: Industrial, Aerospace and Automotive Applications. Wiley. Amazon

総合参考文献

基礎制御理論

  1. Franklin, G.F., Powell, J.D., & Emami-Naeini, A. (2019). Feedback Control of Dynamic Systems (8th ed.). Pearson. Amazon
  2. Ogata, K. (2010). Modern Control Engineering (5th ed.). Prentice Hall. Amazon
  3. Åström, K.J., & Murray, R.M. (2021). Feedback Systems: An Introduction for Scientists and Engineers (2nd ed.). Princeton University Press. Amazon

ロボット工学

  1. Craig, J.J. (2017). Introduction to Robotics: Mechanics and Control (4th ed.). Pearson. Amazon
  2. Spong, M.W., Hutchinson, S., & Vidyasagar, M. (2020). Robot Modeling and Control (2nd ed.). Wiley. Amazon

実装技術

  1. Barr, M., & Massa, A. (2006). Programming Embedded Systems (2nd ed.). O'Reilly Media. Amazon
  2. Mohan, N., Undeland, T.M., & Robbins, W.P. (2003). Power Electronics: Converters, Applications, and Design (3rd ed.). Wiley. Amazon

最新制御技術

  1. Sutton, R.S., & Barto, A.G. (2018). Reinforcement Learning: An Introduction (2nd ed.). MIT Press. Amazon
  2. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. Amazon
  3. Astrom, K.J., & Wittenmark, B. (2013). Adaptive Control (2nd ed.). Dover Publications. Amazon

学術機関・学会

Collection

Citation

unjuno, “ロボット工学5,” unjuno'sResearchLibrary, accessed October 7, 2026, https://archive.unjuno.org/items/show/106.

コメント