多入出力(MIMO)制御システムの チューニングを Simulink でよ … ·...

Post on 14-Mar-2020

6 views 0 download

Transcript of 多入出力(MIMO)制御システムの チューニングを Simulink でよ … ·...

1 © 2013 The MathWorks, Inc.

多入出力(MIMO)制御システムの

チューニングを Simulink でより簡単に

MathWorks Japan

アプリケーションエンジニアリング部

アプリケーションエンジニア

赤阪 大介

2

アウトライン

1. はじめに

2. MIMO制御システムのチューニング例

3. ゲインスケジューリング設計

4. まとめ

3

アウトライン

1. はじめに

2. MIMO制御システムのチューニング例

3. ゲインスケジューリング設計

4. まとめ

4

どのようにチューニングしますか?

制御器

制御対象

5

多入出力(MIMO)制御システムとは?

世の中の多くは,複雑な多入出力制御システム

複数の制御ループ から構成

3 入力 5 出力

制御器

※ MIMO= Multiple-Input Multiple-Output

6

適用分野は?

7

例題: ロボットアームの姿勢制御

4つの 2自由度PID制御器 で各軸を制御

8

例題: ディーゼルエンジンの制御

PI制御器 と 外乱補償器

EGRガス流量 と VGTブースト圧力 を制御

9

例題: DCモーターの回転数制御

リニア駆動

DCモーター

ドライバー回路

速度制御器 電流制御器

10

例題: 蒸留塔の制御

デカップラ(非干渉化) と 2つの PID制御器

留出液の組成 と 缶出液の組成 を制御

11

と を要する

チューニングの課題は?

ループ間の干渉によりチューニングが困難

制御システム全体の最適な設計が困難

で一体どうすれば !?

12

解決策は?

を活用し

Simulink モデルの を

13

キーポイントは?

複雑な制御システムのチューニングを

Simulinkで 迅速 かつ 簡単 に実現

14

アウトライン

1. はじめに

2. MIMO制御システムのチューニング例

3. ゲインスケジューリング設計

4. まとめ

15

こちらの関数をご存じですか?

looptune

systune

16

近年では…

since 1988

Robust Control Toolbox とは?

𝐻∞/𝐻2 制御

𝜇 シンセシス

線形行列不等式(LMI)

固定構造型 𝐻∞制御

MIMO制御システム自動チューニング

ロバスト性解析(不確かさを持つシステムの解析)

基本はロバスト制御設計ツール

高度な制御設計がより使いやすく

簡単に実現できるツールへ進化

17

例題: ヘリコプターの飛行制御

アウターループ

インナーループ

設定値

コマンド

ロールオフ

フィルター

制御器

制御対象

18

例題のポイントは?

設計要求を柔軟かつ容易に設定

短時間で高い性能を達成

Simulinkで制御システム構造を指定

MIMO制御システムの

チューニングを かつ に

19

制御対象は?

20

制御の主目的は?

回転面の傾きを制御 (メインローターの傾き)

飛行制御

前後 左右

回転面

21

具体的に何を制御?

ピッチ

ヨー

ロール

飛行制御

角度やレートを制御

22

プラント(制御対象)モデルは?

・ 縦サイクリック

・ 横サイクリック

・ テールローター

コレクティブ

ローターブレード

ピッチ指令値

入力×3

・ ピッチ角

・ ロール角

・ ヨーレート

・ ピッチレート

・ ロールレート

出力×5

設計用プラントモデルは 線形システム

𝑥 = 𝐴𝑥 + 𝐵𝑢 𝑦 = 𝐶𝑥 + 𝐷𝑢

23

プラントモデルが非線形システムの場合は?

※ モデル線形化には Simulink Control Design が必要

Simulinkモデルを自動的に線形化し

自動チューニングを実行

looptune

systune

Simulink モデル

slTunable

チューニングコマンド

連携

24

制御仕様は?

1. 追従性能

ピッチ角 𝜽,ロール角 𝝋,ヨーレート 𝒓 を設定値へ追従

整定時間: 2 sec

定常偏差: 1 %

3. 帯域幅の制限

不確かな高周波のローターダイナミクスや

観測ノイズによる影響を回避

2. 外乱抑制

ローターに加わる低周波外乱を抑制

25

制御器の構造は?

各ループで ピッチ角,ロール角,ヨーレート を制御

PI 制御

26

制御器の構造は?

安定性増大 と デカップリングの効果

静的出力フィードバック

27

制御器の構造は?

帯域幅を制限 40rad/sでカットオフ

ロールオフ・フィルター

28

ワークフロー

チューニングする ブロックの指定

設計要求の定義

妥当性の確認 設計要求の調整

制御器の チューニング

ここがポイント

29

ワークフロー

チューニングする ブロックの指定

設計要求の定義

妥当性の確認 設計要求の調整

制御器の チューニング

Step 1

30

Step 1: チューニングするブロックの指定

ST0 = slTunable(‘HelicoModel’, {'PI1', 'PI2', 'PI3', 'SOF'})

モデル名 チューニングする ブロック名

31

slTunable インターフェース

1. 制御構造の指定

2. チューニングするブロックの指定 と パラメーター化

3. 制御システムに関する情報の抽出 (線形化された開/閉ループ応答など)

※ slTunableを使用するためには,Simulink Control Design が必要

looptune

systune

Simulink モデル

slTunable

チューニングコマンド

連携

32

チューニング可能な Simulink ブロック (※ R2013b時点)

ヘルプドキュメント

Robust Control Toolbox > Robust Controller Design > Automated Tuning > Supported Blocks for Tuning in Simulink

ブロック名 Simulink ライブラリ

Gain • Math Operations

Transfer function • Continuous

• Discrete

PID Controller • Continuous

• Discrete

PID Controller (2DOF) • Continuous

• Discrete

State-Space • Continuous

• Discrete

• Simulink Extras Additional Linear

LTI System • Control System Toolbox

Discrete Filter • Discrete

Zero-pole • Continuous

• Discrete

33

slTunable のプロパティ

34

制御対象の入出力を指定(制御信号と測定信号)

ST0.addControl('u')

ST0.addMeasurement('y')

入力信号名

出力信号名

入力 出力

35

解析・評価する入出力の指定

ST0.addIO({'theta-ref', 'phi-ref', 'r-ref'}, 'input')

ST0.addIO({'theta', 'phi','r'}, 'output')

36

ワークフロー

チューニングする ブロックの指定

設計要求の定義

妥当性の確認 設計要求の調整

制御器の チューニング

Step 2

37

Step 2: 設計要求の定義

1. 追従性能

ピッチ角 𝜽,ロール角 𝝋,ヨーレート 𝒓 を設定値へ追従

整定時間: 2 sec

定常偏差: 1 %

3. 帯域幅の制限

不確かな高周波のローターダイナミクスや

観測ノイズによる影響を回避

2. 外乱抑制

ローターに加わる低周波外乱を抑制

38

設計要求の与え方は?

ループ整形

ゲイン制約(H∞)

極配置

MIMO安定余裕 分散抑制

39

TuningGoal オブジェクト

設計要求の指定 チューニング

引数 TuningGoal

時間領域の応答仕様

外乱抑制

安定余裕

設計要求の例

TuningGoal.Tracking

TuningGoal.Margins

TuningGoalの例

TuningGoal.Rejection

looptune

systune

40

使用可能なTuningGoal オブジェクト(※ R2013b時点)

設計要求 TuningGoal

時間領域の応答仕様 TuningGoal.Tracking TuningGoal.Overshoot

外乱抑制 TuningGoal.Rejection TuningGoal.Sensitivity

安定余裕 TuningGoal.Margins

ループ整形 TuningGoal.LoopShape TuningGoal.MinLoopGain TuningGoal.MaxLoopGain

ゲイン制約

TuningGoal.Gain TuningGoal.WeightedGain TuningGoal.Variance TuningGoal.WeightedVariance

極配置 TuningGoal.Poles TuningGoal.StableController

ヘルプドキュメント

Robust Control Toolbox > Robust Controller Design > Automated Loop-Shaping Design > Performance and

Robustness Specifications for looptune

41

Step 2: 設計要求の定義

1. 追従性能

ピッチ角 𝜽,ロール角 𝝋,ヨーレート 𝒓 を設定値へ追従

整定時間: 2 sec

定常偏差: 1 %

3. 帯域幅の制限

不確かな高周波のローターダイナミクスや

観測ノイズによる影響を回避

2. 外乱抑制

ローターに加わる低周波外乱を抑制

42

追従性能の要求 時間領域の指定

TrackReq =

TuningGoal.Tracking({‘theta-ref’, ‘phi-ref’, ‘r-ref’}, ...

{'theta', 'phi', 'r'}, 2, 1e-2)

応答時間 2 sec 定常偏差 1 %

設定値(入力)

プラント(出力)

ターゲット応答時間を時間で直接指定

43

設計要求の確認

viewSpec(TrackReq)

追従性能の要求

(オブジェト名)

自動的に重み関数を生成 (感度関数の重み)

設計要求を時間領域から 周波数領域へ自動変換

44

追従性能の要求 周波数領域の指定

err = tf([1 0.01], [1 1])

制御の王道 伝達関数で重みを指定

TrackReq =

TuningGoal.Tracking({‘theta-ref’, ‘phi-ref’, ‘r-ref’}, ...

{'theta', 'phi', 'r'}, err)

周波数応答

45

Step 2: 設計要求の定義

1. 追従性能

ピッチ角 𝜽,ロール角 𝝋,ヨーレート 𝒓 を設定値へ追従

整定時間: 2 sec

定常偏差: 1 %

3. 帯域幅の制限

不確かな高周波のローターダイナミクスや

観測ノイズによる影響を回避

2. 外乱抑制

ローターに加わる低周波外乱を抑制

46

外乱抑制の要求 周波数領域の指定

DistReq = TuningGoal.Rejection(‘u’, Wd)

外乱の重み関数

(周波数応答ゲイン)

外乱入力

信号名

Wd(s)は,抑制したい周波数帯域 に

高いゲイン を持つように指定

Wd = tf(1, [1 0])

Wd = frd([100 100 1 0.1], [0 0.01 1 10])

例:

47

例題: 低周波外乱の抑制

Wd(s) = 𝟏

𝒔

低周波外乱を抑制したい

低域はハイゲイン

ステップ状の外乱を想定

高域はローゲイン

設計が保守的にならないように…

48

ワークフロー

チューニングする ブロックの指定

設計要求の定義

妥当性の確認 設計要求の調整

制御器の チューニング

Step 3

49

looptune / systune とは?

固定構造型制御システムのチューニング関数

looptune

帯域幅,性能,ロバスト性を満たす自動チューニング

複数の設計要求を指定することが可能

※ 上記の関数は,固定構造型の制御器に対してH∞チューニングを行う hinfstruct 関数がベース

systune

制約(ハードな要求)を守りながら,目標(ソフトな要求)をできるだけ満たすように自動チューニング

設計要求を「目標」と「制約」に分けて与えることが可能

50

Step 3: 制御器のチューニング

[ST1, gam, Info] =

ST0.looptune([TrackReq, DistReq])

設計要求

オブジェクト名

設計要求を引数として与えて

チューニング を実行するのみ

slTunable

オブジェクト名

(チューニング前)

slTunable オブジェクト名(チューニング後)

51

ワークフロー

チューニングする ブロックの指定

設計要求の定義

妥当性の確認 設計要求の調整

制御器の チューニング

Step 4

52

Step 4: 妥当性の確認

viewSpec([TrackReq, DistReq], ST1)

53

追従性能の妥当性確認

ステップ設定値 に対する 制御出力 𝜽, 𝝋, 𝒓 の時間応答

2 sec

2 sec

2 sec

55

楽になるのはどこ !?

自動チューニング

定義・調整

手動チューニング

56

楽になるのはどこ !?

自動チューニング

定義・調整

57

勘所になるのはどこ?

自動チューニング

定義・調整

設計仕様間のトレードオフや物理的限界

制御対象や制御構造の性質

58

アウトライン

1. はじめに

2. MIMO制御システムのチューニング例

3. ゲインスケジューリング設計

4. まとめ

59

ゲインスケジューリングとは?

時間・動作条件・環境変動 などに応じて

制御ゲインをうまく変化(スケジューリング)

𝑲𝒑

𝑲𝒊

60

なぜゲインスケジューリングが必要?

環境変動や操業条件で

特性が大幅に変化

ある動作点で設計した

制御器を固定して使うと

制御性能が劣化

ゲインを適切にスケジューリングして性能UP

各動作点で制御ゲインを設計し,テーブルや関数を作成

61

R2013b 新機能 Robust Control Toolbox

looptune/systune による ゲインスケジュー

リング制御器 の 自動チューニング

gainsurf コマンドによる

スケジューリング関数の作成

設計要求を満たすようにスケジューリング関数の自動チューニング

62

例題: 飛翔体のオートパイロット

𝑲𝒑

𝑲𝒊

𝑲𝒂 𝑲𝒈

機体

アクチュエータ

4 つの制御ゲイン

𝑲𝒂

63

例題のポイントは?

任意の動作点でモデルを線形化

各動作点で設計要求を満たすチューニング

滑らかなゲインサーフィスを作成

制御設計ツールの はここまで来ました

64

制御の主目的

飛行制御 𝑽

𝜸

𝜶

機体

飛行経路角の制御 𝜹

65

ワークフロー

プラントの 平衡化と線形化

スケジューリング 関数の作成

閉ループ系の構成 (MATLAB)

looptune/systune

設計要求の定義など…

66

Step 1: 各動作点でプラントを平衡化・線形化

𝜶 = 𝟎 ~ 𝟐𝟎度 を 5分割

𝑽 = マッハ 𝟐 ~𝟒 を 9分割

𝑽

𝜸

𝜶 45通りの飛行条件

で線形化

67

各動作点における機体の動特性は?

45通りの線形システム 周波数応答

(特異値プロット)

周波数 [rad/s]

動作点の違いで動特性が大幅に変化

68

Step 2: スケジューリング関数の作成

𝐾𝑝 𝛼, 𝑉 = 𝐾0 + 𝐾1𝛼 + 𝐾2𝑉 + 𝐾3𝛼𝑉

Kp = gainsurf('Kp', 0.1, alpha_n, V_n, alpha_n.*V_n)

偏差 比例

ゲイン

𝑲𝒑

𝜶 𝑽

正規化 𝜶𝒏, 𝑽𝒏

69

Step 3: 閉ループ系の構成

2次の伝達関数 と

入出力信号名

1. PI制御(Kp, Ki)

2. P制御(Ka)

3. P制御(Kg)

と 入出力信号名

信号の結合 と

閉ループの構成

70

Step 4: 制御器のチューニング

TuningGoal による設計要求の定義

systune による自動チューニング

設計要求 閉ループ系

71

Step 5: 妥当性の確認

線形化された45通りのプラントモデル

に対するステップ設定値追従応答

各動作点でほぼ均一の追従性能

線形化された45通りのプラントモデル

に対するステップ外乱抑制応答

飛行経路角 𝜸

72

追従性の妥当性確認

設定値 に対する 制御出力 𝜸 と 制御入力 𝜹 の時間応答

73

スケジューリングゲインの時間変化

4つの 制御ゲイン 𝑲𝒑, 𝑲𝒊, 𝑲𝒂, 𝑲𝒈 の時間応答

74

アウトライン

1. はじめに

2. MIMO制御システムのチューニング例

3. ゲインスケジューリング設計

4. まとめ

75

まとめ

制御設計ツールの はここまで来ました

MIMO制御システムの

チューニングが かつ に

76

Robust Control Toolbox

を使ってみませんか?

77

ご清聴ありがとうございました

© 2013 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.