リアルタイム制御環境を活用したフィードバック制御系設計実践 MathWorks Japan アプリケーションエンジニアリング部アプリケーションエンジニア赤阪大介 212 The MathWorks, Inc. 1
本講演では.. ギャップ? - フィードバック制御器の設計 設計 シミュレーション リアルタイム制御テスト ( ラピッドプロトタイピング ) 実機環境を活用し 制御系設計を効率的に行うには? 2
本講演では.. 仮想世界 実践的な 現実世界 フィードバック制御器の設計 ( モデル ) ( 実機 ) 実機環境を活用し 制御系設計を効率的に行うには? 3
メッセージ 机上と実機の間でうまくサイクルしながらモデルを育てましょう制御器設計にMathWorksが提供するツールをフルにご活用ください 4
トピック リアルタイム制御環境 例題 : DCモーターの速度制御 問題設定 制御器設計の流れ サイクル 1 周目 サイクル 2 周目 まとめ 5
リアルタイム制御環境 閉ループ制御テストでリアルタイム性は重要 6
リアルタイム ( 実時間 ) 制御環境の構築 コード生成 リアルタイム実機検証 Link I/O xpc Target (MathWorks 社 ) Real-Time Target Machines (Speedgoat 社 ) 実プラント ( お客様 ) xpc Target Turnkey リアルタイムテストのトータルソリューションタルソリュ ( ソフト & ハード ) 7
リアルタイム制御環境の活用 検証 : シミュレーション検討結果を実機で即座に確認 モデルと実機のギャップを理解することが重要 制御器設計 : オンラインで制御パラメータのチューニングシミュレーションで精度の高い当たりをつけて実機で微調整するのが理想的 プラント ( 制御対象 ) モデリング : プラントの動的な振る舞いに関する実験データを収集シミュレーションと実験結果の合わせ込みによりションと実験結果の合わせ込みによりプラントモデルの精度を向上 8
例題 : DC モーターの速度制御 問題設定 制御器設計の流れ サイクル 1 周目 サイクル 2 周目 9
例題 : DCモーターの速度制御 電圧 DC モーター 1. 摩擦や外乱 2. 柔軟性 フィードバック制御器 - C(s) センサー ギヤボックス 負荷 モーター回転速度 3. 負荷側の回転速度は未知 制御目標 : 負荷側を一定目標速度で回転 1
制御器設計の流れ プラントモデリング 実験データの利用 プラントモデルの精度 UP 制御器の性能 UP 制御器設計 実機テスト シミュレーション 組込コード生成ターゲット実装 11
1 周目 シンプルなモデルからスタート 12
制御器設計の流れ プラントモデリング 実験データの利用 プラントモデルの精度 UP 制御器の性能 UP 制御器設計 実機テスト シミュレーション このステージで 組込コード生成ターゲット実装 プラントの動特性をモデル化 13
シンプルな物理モデルからスタート ポイント : 主要な動特性を捉えることができるか? V+ 電圧 [V] V- 回転速度 [RPM] 回路方程式 運動方程式 Simulink によりプラントの構造をモデル化 14
プラントモデルの再現性を高めるためには? ポイント : パラメータ推定によりモデルを実機に合わせこむ 回路方程式 運動方程式 1/L 1/s Kt 1/J 1/s 3/pi Step 電圧 [V] Gain3 R Gain4 Integrator1 Gain Gain2 Integrator 1 慣性系 rad/s2rpm Scope 回転速度 [RPM] Ke Gain1 リアルタイム制御環境を活用し 実験 ( 入出力 ) データを取得 Simulink Design Optimization により実機とモデルの応答が一致するようにモデルのパラメータを推定 15
リアルタイム制御環境で実機データを取得するにはタを取得するには? 作成した電圧信号 Target Scope Id: 2 Scope (xpc) 1 リミッター プラント Target Scope Id: 1 Scope (xpc) モニタ データログ Repeating Sequence Stair U wm Voltage Limiter Voltage Plant w m 1 wm 実機の回転速度 PMC73 Acromag Setup Module: 1 Scope PMC73 5 Display Speedgoat 専用 I/O ドライバブロック xpc Target により簡単に実験データの収集が可能 16
取得した実機データ ステップ電圧 [5V] を入力したときのモーター回転速度 [RPM] 12 1 モータ回転速速度 [RPM] 8 6 4 2 青 : 実機赤 : モデル 1 2 3 4 5 6 7 8 9 1 時間 [sec] 17
デモンストレーション 1 Simulink Design Optimization パラメータ推定 18
パラメータ推定の結果 慣性 J のみを推定した場合 ステップ電圧 [5V] を入力したときのモーター回転速度 [RPM] 1 9 8 7 モータ回転速速度 [RPM] 6 5 4 3 2 1 青 : 実機赤 : モデル 1 2 3 4 5 6 7 8 9 1 時間 [sec] 19
ステップ電圧 [5V] を入力したときのモーター回転速度 [RPM] 8 ータ回転速速度 [RP PM] 7 6 5 4 3 2 モ 2 青 : 実機 赤 : モデル 1 1 2 3 4 5 6 7 8 9 1 時間 [sec] 2
制御器設計の流れ プラントモデリング 実験データの利用 プラントモデルの精度 UP 制御器の性能 UP 制御器設計 実機テスト シミュレーション このステージで 組込コード生成ターゲット実装 PI 制御器を設計 21
PI 制御器からスタート PI 制御器の構造はシンプル! 課題はやはりチューニング PI 制御器モデル DCモーターモデル pi/3 PI(s) voltage w m 3/pi ref 目標速度 rpm2rad/s PID Controller Plant rad/s2rpm Scope モーター回転速度 いかに短時間で所望の応答を満たすパラメータを探すか? Simulink Control Design により PID 制御器を簡単に ( 自動 ) チューニング 22
デモンストレーション 2 Simulink Control Design PID 制御器の自動チューニング 23
チューニング後のシミュレーション結果ション結果 目標速度 7 [RPM] に対するモーター回転速度 [RPM] モータ回転転速度 [ RPM] 7 目標速度モータ回転速度 6 5 4 3 2 1.4 秒 2.2 4.4 6.6 8.8 1 12 1.2 14 1.4 16 1.6 18 1.8 2 時間 [sec] 24
制御器設計の流れ プラントモデリング 実験データの利用 プラントモデルの精度 UP 制御器の性能 UP 制御器設計 実機テスト シミュレーション このステージで 組込コード生成ターゲット実装 リアルタイム制御 25
リアルタイム制御実験を行うには? PMC73 Acromag Setup Module: 1 PMC73 5 ref ref_signal 目標速度 PI 制御器 PI(s) U PID Controller wm Voltage Limiter オンラインチューニング可 Target Scope Id: 2 Scope (xpc) 2 2 volt voltage Plant w m プラント Target Scope Id: 1 Scope (xpc) 1 1 wm Scope 実機の回転速度 Display Speedgoat 専用 I/O ドライバブロック 26
デモンストレーション 3 xpc Target オンラインチューニング 27
モデル と 実機 の応答を比較 モデルと実機の間にどのようなギャップが存在するか? モータ回回転速度 [RPM] 1 5 実機の応答のほうが振動的 モデル実機 速応性 (PI ゲイン ) を上げるほど振動が顕著.2.4.6.8 1 1.2 1.4 1.6 1.8 2 トルク [Nm] 3 2 1 モデル実機.2.4.6.8 1 1.2 1.4 1.6 1.8 2 時間 [sec] 28
一方 負荷側の速度 は? 実際はモーター側しか検出できないが 負荷側を見てみると モータ回回転速度 [RPM] 1 5 負荷側がより振動的 負荷の柔軟性が要因? モデル実機 ( モータ側 ) 実機 ( 負荷側 ).2.4.6.8 1 1.2 1.4 1.6 1.8 2 トルク [Nm] 3 2 1 モデル実機.2.4.6.8 1 1.2 1.4 1.6 1.8 2 時間 [sec] 29
ここで一度考えてみましょう 振動モード..? モータ回転速度 [RPM] 12 1 8 6 4 2 パラメータ推定前の モデル と 実機 の応答モデル実機 1. 摩擦による損失? 2. 振動モード?.5 1 1.5 2 2.5 3 3.5 4 4.5 5 時間 [sec] 3
課題と指針 プラントモデルの再現性が不十分 柔軟性や摩擦特性を考慮する必要性 PI 制御のみで応答速度を上げるのは厳しそう 過渡応答の改善を目指し 制御器の構造を変更 プラントモデリング プラントモデルの精度 UP 制御器の性能 UP 制御器設計 実機テスト シミュレーション 31
2 周目 どう改善すればよいでしょうか? 32
制御器設計の流れ プラントモデリング 実験データの利用 プラントモデルの精度 UP 制御器の性能 UP 制御器設計 実機テスト シミュレーション このステージで 組込コード生成ターゲット実装 摩擦特性と柔軟性をモデル化 33
モータの摩擦特性をモデル化 粘性 / クーロン摩擦 静止摩擦 ストライベック効果 モデル化 数式モデル ルックアップテーブル 1 1 摩擦トルク [Nm].5 -.5 ク [Nm] 摩擦トル.5 -.5-1 -1-8 -6-4 -2 2 4 6 8 1 回転速度 [rad/s] -1-1 -8-6 -4-2 2 4 6 8 1 回転速度 [rad/s] Simulink ブロックでモデル化し 再びパラメータ推定 34
8 ステップ電圧 [5V] を入力したときのモータ回転速度 [RPM] モーータ回転速速度 [RPM M] 7 6 5 4 3 2 1 実機 モデル 青 : 実機赤 : モデル 1 2 3 4 5 6 7 8 9 1 時間 [sec] 35
負荷側 ( ギヤボックスや負荷 ) をモデル化 機械系を 1 慣性から 3 慣性モデルへ修正し 再びパラメータ推定 剛性を追加 柔軟性を2 慣性系として表現 駆動トルク モーターギヤボックス負荷 36
モーータ回転速速度 [RPM M] ステップ電圧 [5V] を入力したときのモーター回転速度 [RPM] 8 7 6 5 4 3 2 1 実機 モデルモータ側の速度はほぼ一致 青 : 実機赤 : モデル -1 1 2 3 4 5 6 7 8 9 1 時間 [sec] 37
モータ回転速速度 [RPM M] ステップ電圧 [5V] を入力したときの負荷回転速度 [RPM] 8 7 6 5 4 3 2 1 実機 モデル 負荷側の速度は少し誤差あり 青 : 実機赤 : モデル -1 1 2 3 4 5 6 7 8 9 1 時間 [sec] 38
プラントモデル ( 電圧からモーター速度 ) の周波数応答 4 2 ボード線図 ゲイイン (db) -2-4 -6-8 9 青 : 実機赤 : モデル 共振ピーク約 1 Hz 45 位相 ( deg) -45-9 -135-18 1-2 1-1 1 1 1 1 2 1 3 周波数 (Hz) Simulink Control Design により Simulinkモデルを線形化し 時間 / 周波数領域の解析 39
ここで少し考えてみましょう物理モデルのメリットは? 物理的な現象 ( 速度 / トルク 電圧 / 電流 ) を捉えて評価できる 測定できない負荷側の挙動を再現できる 物理モデル..? 1 voltage v i Electrical_System Kt Gain wm torque wl Mechanical_System 2 wl 1 wm 3 tau Ke Gain1 プラントモデリングにおいて物理モデルと実験データを組み合わせたアプローチは重要 4
制御器設計の流れ プラントモデリング 実験データの利用 プラントモデルの精度 UP 制御器の性能 UP 制御器設計 実機テスト シミュレーション このステージで 組込コード生成ターゲット実装 2 自由度制御系の設計 41
2 自由度制御系の構成 フィードフォワード補償を追加し 過渡応答を改善 F(s)/P(s) FF フィードフォワード補償 ( プラントの逆モデルを含む ) pi/3 F(s) PI(s) voltage w m 3/pi ref rpm2rad/s Filter PID Controller rad/s2rpm Scope Plant 所望の目標応答 ( 目標値整形フィルタ ) モデル化誤差が無い場合 目標値 ref F(s) Filter Scope 回転速度 42
2 自由度制御系の設計 Step 1. プラントの逆モデルを計算 電圧 voltage Plant wm wl 負荷側の速度 Step 2. 目標値整形フィルターを設計 Simulink Control Design Simulinkモデルの線形化 LTI オブジェクト伝達関数 / 状態空間 Control System Toolbox 伝達関数の演算 / 操作 Step 3. フィードバック補償器の設計 43
デモンストレーション 4 Control System Toolbox & Simulink Control Design 2 自由度制御器の設計 44
シミュレーションの結果ションの結果 モーター 負荷側ともに振動することなく目標速度に追従 モータ回転速度 [RPM] 1 目標速度モータ側速度 5 負荷側速度 整形された目標速度 ( 黒破線 ) に追従.2.4.6.8 1 1.2 1.4 1.6 1.8 2 [Nm] 2 1 モータトルク トルク -1 2.2 4.4 6.6 8.8 1 12 1.2 14 1.4 16 1.6 18 1.8 2 時間 [sec] 45
制御器設計の流れ プラントモデリング 実験データの利用 プラントモデルの精度 UP 制御器の性能 UP 制御器設計 実機テスト シミュレーション このステージで 組込コード生成ターゲット実装 リアルタイム制御 46
[RPM] モーータ回転速度 リアルタイム制御テストの結果 1 トルク [Nm m] 8 6 4 2 シミュレーション結果にかなり近い応答が再現 目標速度モータ側速度負荷側速度.2.4.6.8 1 1.2 1.4 1.6 1.8 2 15 1 5 ただし シミュレーションに比べ負荷側がやや振動的ションに比べ負荷側がやや振動的 モータトルク -5.2.4.6.8 1 1.2 1.4 1.6 1.8 2 時間 [sec] 47
モーータ回転速度 [RPM] 1 周目 vs. 2 周目 1 8 6 4 2 机上と実機間をうまくサイクルすることで制御性能が向上 1 周目 : 薄線 2 周目 : 濃線 目標値への速応性はほぼ同等 2 周目ほうが振動は小さい.2.4.6.8 1 1.2 1.4 1.6 1.8 2 時間 [sec] 25 2 トルク [Nm m] 15 1 5 2 周目のほうがトルクは小さい -5.2.4.6.8 1 1.2 1.4 1.6 1.8 2 時間 [sec] 48
ここまでのまとめ 実機テストをうまく併用することで段階的にモデリングの課題や指針が明確化 シミュレーション 実機テスト 実機ベースでは難しい制御器設計の課題をシミュレーションに持ち帰り解決 49
3 周目例 : さらに制御器を改善します 外乱やバラツキに強い制御器 異なる動作点で同一の制御性能 複数制約を同時に考慮したチューニング 5
まとめ 51
まとめ 机上と実機の間でうまくサイクルしながらモデルを育てましょう Control System Toolbox Simulink Control Design Simulink Design Optimization MATLAB/Simulink フィードバック制御器の設計 xpc Target Real-Time Target Machines (Speedgoat 社 ) モデルを有効に活用することで一歩進んだ制御系設計を実現できます 52
最後に - 皆様からのご意見やご要望に関する フィードバックを頂けると幸いです 53
ご清聴ありがとうございました 212 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 54
補足資料 55
外乱オブザーバ基本的な仕組み プラントモデルから外乱を予測し 打ち消す入力信号を加える モータトルク 外乱トルク - 機械系 回転速度 推定外乱 - Q フィルタ 逆モデルから入力トルクを逆算 56
外乱オブザーバ Qフィルタの設計 機械系 - - Q フィルタ Signal Processing Toolbox バターワースフィルタの設計 (butter コマンド ) >> [num den] = butter(2,1e2, low, s ); >> Q = tf(num,den); 57
目標値整形とノッチフィルタ ( 帯域除去フィルタ ) 振動モードを刺激しないように特定の帯域の入力信号を除去 ref pi/3 rpm2rad/s 1.2s+1 Filter PI(s) PID Controller.7s 2 +2.25s+2945 s 2 +129s+4186 Notch Filter voltage Plant wm wa 3/pi rad/s2rpm Scope 目標値整形 ノッチフィルタ プラント ゲイン (db) 4 2 ボード線図左端 : Notch Filter 右端 : Plant/1 周波数応答 Simulink Control Design -2 位相進み- 遅れやノッチフィル -4 タなどの補償器設計 -6 ピーク帯域の信号を制限 -8 1-1 1 1 1 1 2 1 3 1 4 周波数 (rad/s) 58