(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】制御方法及びコンピュータプログラム
(51)【国際特許分類】
G05B 13/02 20060101AFI20231219BHJP
【FI】
G05B13/02 A
(21)【出願番号】P 2019163739
(22)【出願日】2019-09-09
【審査請求日】2022-08-26
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際弁理士法人
(72)【発明者】
【氏名】▲高▼橋 英輔
【審査官】影山 直洋
(56)【参考文献】
【文献】高橋 英輔,一組の実験データを直接用いた閉ループ系の応答予測の新しいアプローチ,計測自動制御学会論文集 第55巻 第4号,日本,公益社団法人計測自動制御学会,2019年04月,第55巻
【文献】中本 宏 Hiroshi Nakamoto,逆伝達関数2自由度補償器による精密温度制御,電気学会論文誌D 112巻 6号,日本,一般社団法人電気学会,1992年,112巻 6号
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/02
(57)【特許請求の範囲】
【請求項1】
制御方法であって、
制御システムを設計することと、
設計された前記制御システムに基づいて、制御対象を制御することと、
を含み、
前記制御システムは、伝達関数C(ρ)に従う
前記制御対象への制御入力uを算出するフィードバック制御器を含み、目標指令rと前記制御対象からの制御出力yとに基づき前記制御入力uを算出して、前記制御対象を制御する
ように構成され、
前記制御システムを設計することは、
前記制御入力uの標本u
mと前記制御出力yの標本y
mとの組合せの時系列データを取得することと、
前記目標指令rに対応する前記制御出力yの目標値である目標応答y
r=T
d(θ
ini)rを定義する目標応答伝達関数T
d(θ)と前記伝達関数C(ρ)とを要素に含む評価関数J(ρ,θ,u
m,y
m)であって、前記目標応答y
rと前記標本y
mとの間の誤差を前記標本u
mと前記標本y
mとから評価するための前記評価関数J(ρ,θ,u
m,y
m)における変数θを、前記目標応答y
rに対応する初期値θ
iniに設定した状態で、前記時系列データに基づき、前記評価関数J(ρ,θ,u
m,y
m)の値を最小にする変数ρの値ρ
*を算出することと、
前記評価関数J(ρ,θ,u
m,y
m)の変数ρを前記値ρ
*に設定した状態で、前記時系列データに基づき、前記評価関数J(ρ,θ,u
m,y
m)の値を最小にする前記変数θの値θ
*を算出することと、
前記初期値θ
iniと前記算出された値θ
*及び値ρ
*とに基づき、前記制御システムを設計することであって、前記目標指令rの入力を受けて伝達関数G(θ
ini,θ
*)に従う値r
*=G(θ
ini,θ
*)rを算出するフィードフォワード制御器と、前記フィードフォワード制御器からの前記値r
*と前記制御出力yとの間の偏差r
*-yに基づき、伝達関数C(ρ=ρ
*)に従う制御入力u=C(ρ
*)(r
*-y)を算出するフィードバック制御器と、を含む制御システムを設計することと、
を含み、前記伝達関数G(θ
ini,θ
*)は、伝達関数T
d(θ
ini)/T
d(θ
*)に対応
し、
前記制御方法は、
前記制御対象を制御した期間における前記制御出力yの観測値と、前記期間において前記フィードフォワード制御器で算出された前記値r
*
とに基づき、前記フィードフォワード制御器の前記伝達関数G(θ
ini
,θ
*
)の値θ
*
を補正することにより、前記設計された前記制御システムを更新すること
を更に含む制御方法。
【請求項2】
前記評価関数J(ρ,θ,u
m,y
m)は、式
【数1】
に従う関数H(ρ,θ,u
m,y
m)のノルムに対応する請求項1記載の
制御方法。
【請求項3】
前記更新することは、
前記期間における前記制御出力yの観測値及び前記値r
*に基づき、前記目標応答伝達関数T
d(θ)を含む次の評価関数K1(θ)又は評価関数K2(θ)
【数2】
の値を最小にする前記変数θの値θ
nを算出することと、
前記フィードフォワード制御器の前記値θ
*を、前記算出した値θ
nに基づき補正することと、
を含む請求項
1又は請求項2記載の制御方法。
【請求項4】
前記制御システムを更新することは、繰返し実行され、
前記補正することは、前記算出した値θ
nの移動平均に、前記フィードフォワード制御器の前記値θ
*を補正することを含む
請求項
3記載の制御方法。
【請求項5】
前記制御システムを更新することは、繰返し実行され、
前記補正することは、前記算出した値θ
nからローパスフィルタを用いて高周波成分を除去した値に、前記フィードフォワード制御器の前記値θ
*を補正することを含む
請求項
3記載の制御方法。
【請求項6】
前記更新することは、前記期間として、前記制御が安定する期間における前記制御出力yの観測値及び前記値r
*に基づき、前記値θ
nを算出し、前記フィードフォワード制御器の前記値θ
*を、前記算出した値θ
nに基づき補正することにより、前記設計された前記制御システムを更新することを含む請求項
3~請求項5のいずれか一項記載の制御方法。
【請求項7】
制御システム
に関する処理をコンピュータに実行させるためのコンピュータプログラムであって、
前記制御システムは、伝達関数C(ρ)に従う制御対象への制御入力uを算出するフィードバック制御器を含み、目標指令rと前記制御対象からの制御出力yとに基づき前記制御入力uを算出して、前記制御対象を制御するように構成され、
前記処理は、
前記制御入力uの標本u
mと前記制御出力yの標本y
mとの組合せの時系列データを取得することと、
前記目標指令rに対応する前記制御出力yの目標値である目標応答y
r=T
d(θ
ini)rを定義する目標応答伝達関数T
d(θ)と前記伝達関数C(ρ)とを要素に含む評価関数J(ρ,θ,u
m,y
m)であって、前記目標応答y
rと前記標本y
mとの間の誤差を前記標本u
mと前記標本y
mとから評価するための前記評価関数J(ρ,θ,u
m,y
m)における変数θを、前記目標応答y
rに対応する初期値θ
iniに設定した状態で、前記時系列データに基づき、前記評価関数J(ρ,θ,u
m,y
m)の値を最小にする変数ρの値ρ
*を算出することと、
前記評価関数J(ρ,θ,u
m,y
m)の変数ρを前記値ρ
*に設定した状態で、前記時系列データに基づき、前記評価関数J(ρ,θ,u
m,y
m)の値を最小にする前記変数θの値θ
*を算出することと、
前記初期値θ
iniと前記算出された値θ
*及び値ρ
*とに基づき、前記制御システムを設計することであって、前記目標指令rの入力を受けて伝達関数G(θ
ini,θ
*)に従う値r
*=G(θ
ini,θ
*)rを算出するフィードフォワード制御器と、前記フィードフォワード制御器からの前記値r
*と前記制御出力yとの間の偏差r
*-yに基づき、伝達関数C(ρ=ρ
*)に従う制御入力u=C(ρ
*)(r
*-y)を算出するフィードバック制御器と、を含む制御システムを設計することと、
を含み、前記伝達関数G(θ
ini,θ
*)は、伝達関数T
d(θ
ini)/T
d(θ
*)に対応
し、
前記処理は、
前記設計された前記制御システムに基づいて前記制御対象が制御された期間における前記制御出力yの観測値と、前記期間において前記フィードフォワード制御器で算出された前記値r
*
とに基づき、前記制御システムにおける前記フィードフォワード制御器の前記伝達関数G(θ
ini
,θ
*
)の値θ
*
を補正することにより、前記設計された前記制御システムを更新すること
を更に含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システムの設計方法、並びに、関連する制御方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
制御器のパラメータを調整するための技術として、FRIT(Fictitious Reference Iterative Tuning)技術が既に知られている。この技術では、制御出力が目標応答に近づくような制御器のパラメータが、評価関数に基づき算出される。この算出値が制御器に設定されることにより、制御器は、目標応答に対応した制御を実現する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術に従って単に評価関数に基づく算出値を制御器のパラメータに設定しても、目標応答に完全に一致するように、制御器のパラメータを設計することはできない。
【0005】
そこで、本開示の一側面によれば、目標応答に対する誤差の少ない制御を実現可能な制御システムの設計方法、及び、当該設計方法を用いた制御方法を提供できることが望ましい。
【課題を解決するための手段】
【0006】
本開示の一側面によれば、伝達関数C(ρ)に従う制御対象への制御入力uを算出するフィードバック制御器を含む制御システムの設計方法が提供される。制御システムは、目標指令rと制御対象からの制御出力yとに基づき制御入力uを算出して、制御対象を制御するように構成される。
【0007】
本開示の一側面に係る設計方法は、制御入力uの標本umと制御出力yの標本ymとの組合せの時系列データを取得することを含む。本開示の一側面に係る設計方法は、目標応答yrと標本ymとの間の誤差を、標本umと標本ymとから評価するための評価関数J(ρ,θ,um,ym)における変数θを、目標応答yrに対応する初期値θiniに設定した状態で、時系列データに基づき、評価関数J(ρ,θ,um,ym)の値を最小にする変数ρの値ρ*を算出することを更に含む。
【0008】
目標応答yrは、制御出力yの目標値である。評価関数J(ρ,θ,um,ym)は、目標指令rに対応する目標応答yr=Td(θini)rを定義する目標応答伝達関数Td(θ)と伝達関数C(ρ)とを要素に含む。
【0009】
本開示の一側面に係る設計方法は更に、評価関数J(ρ,θ,um,ym)の変数ρを値ρ*に設定した状態で、時系列データに基づき、評価関数J(ρ,θ,um,ym)の値を最小にする変数θの値θ*を算出することを含む。
【0010】
本開示の一側面に係る設計方法は更に、初期値θiniと上記算出された値θ*及び値ρ*とに基づき、フィードフォワード制御器と、フィードバック制御器と、を含む制御システムを設計することを含む。
【0011】
本開示の一側面によれば、フィードフォワード制御器は、目標指令rの入力を受けて伝達関数G(θini,θ*)に従う値r*=G(θini,θ*)rを算出するフィードフォワード制御器であり得る。
【0012】
本開示の一側面によれば、フィードバック制御器は、フィードフォワード制御器からの値r*と制御出力yとの間の偏差r*-yに基づき、伝達関数C(ρ=ρ*)に従う制御入力u=C(ρ*)(r*-y)を算出するフィードバック制御器であり得る。本開示の一側面によれば、伝達関数G(θini,θ*)は、伝達関数Td(θini)/Td(θ*)に対応する伝達関数であり得る。
【0013】
上述した設計方法によれば、設計者が所望する目標応答yr=Td(θini)rに対する誤差の少ない制御を実現可能なフィードバック制御システムを、容易に設計することができる。
【0014】
従来では、目標応答yrを考慮した伝達関数C(ρ)の設計変数ρの値の決定のために、設計者は、多くの実験を行う必要があったが、本開示の一側面に係る設計方法によれば、設計変数ρの決定に係る設計者の作業を低減して、設計者が所望する制御システムを容易に設計することができる。
【0015】
本開示の一側面によれば、上述した設計方法により制御システムを設計することと、設計された制御システムに基づいて、制御対象を制御することと、制御対象を制御した期間における制御出力yの観測値と、当該期間においてフィードフォワード制御器で算出された値r*とに基づき、フィードフォワード制御器の伝達関数G(θini,θ*)の値θ*を補正することにより、上記設計された制御システムを更新することと、を含む制御方法が提供されてもよい。
【0016】
この制御方法によれば、制御対象の特性変化に応じて制御システムを適切に更新することができる。すなわち、この制御方法によれば、制御対象の特性変化によっても、高精度に制御対象を制御可能な制御方法を提供することができる。
【0017】
本開示の一側面によれば、上述した設計方法又は制御方法をコンピュータに実現させるためのコンピュータプログラムが適用されてもよい。本開示の一側面によれば、上述した設計方法又は制御方法をコンピュータに実現させるためのコンピュータプログラムを記録したコンピュータ読取可能な記録媒体が提供されてもよい。
【図面の簡単な説明】
【0018】
【
図2】標準制御系の構成を表すブロック線図である。
【
図3】プロセッサが実行する設計処理を表すフローチャートである。
【
図4】改良制御系の構成を表すブロック線図である。
【
図5】モータ駆動システムの構成を表すブロック図である。
【
図6】プロセッサが実行する構築処理を表すフローチャートである。
【
図7】プロセッサが実行する更新処理を表すフローチャートである。
【発明を実施するための形態】
【0019】
以下に本開示の例示的実施形態を、図面を参照しながら説明する。
[第一実施形態]
図1に示す本実施形態の設計装置1は、汎用の情報処理装置に、専用のコンピュータプログラムがインストールされて構成される。この設計装置1は、プロセッサ11と、メモリ12と、ストレージデバイス13と、操作デバイス15と、表示デバイス17と、入出力インタフェース19とを備える。プロセッサ11は、CPUを含む。メモリ12は、一次記憶装置として機能し、RAMを含む。ストレージデバイス13は、二次記憶装置として機能し、コンピュータプログラム及びデータを記憶する。
【0020】
プロセッサ11は、ストレージデバイス13が記憶するコンピュータプログラムに従う処理を実行する。メモリ12は、プロセッサ11による処理実行時に作業領域として使用される。
【0021】
操作デバイス15は、ユーザからの操作信号をプロセッサ11に入力するように構成される。操作デバイス15の例には、キーボード及びポインティングデバイスが含まれる。表示デバイス17は、プロセッサ11により制御されて、ユーザ向けの情報を表示するように構成される。表示デバイス17の例には、液晶ディスプレイ及び有機ELディスプレイが含まれる。
【0022】
入出力インタフェース19は、外部装置から設計装置1にデータを入力したり、設計装置1から外部装置にデータを出力したりするためのインタフェースである。入出力インタフェース19の例には、USBインタフェースが含まれる。
【0023】
この設計装置1では、プロセッサ11がコンピュータプログラムに従う設計処理(
図3参照)を実行することにより、制御対象のプラント20に対する最適な制御系を設計する。設計される制御系の標準形である標準制御系30が、
図2に示される。標準制御系30は、目標指令rとプラント20からの制御出力yとに基づきプラント20への制御入力uを算出することにより、プラント20を制御するように構成される。
【0024】
標準制御系30は、偏差算出器31と、フィードバック制御器35とを備える。偏差算出器31は、目標指令rと制御出力yとの偏差(r-y)を算出するように構成される。フィードバック制御器35は、伝達関数C(ρ)に従うプラント20への制御入力uを算出するように構成される。具体的には、フィードバック制御器35は、偏差算出器31から入力される偏差(r-y)を伝達関数C(ρ)に入力して制御入力u=C(ρ)(r-y)を算出するように構成される。
【0025】
プラント20がモータからの動力を受けて運動する機械である場合、制御入力uの例には、モータに対する電流指令値又は電圧指令値が含まれる。制御入力uは、操作量uとも呼ばれる。制御出力yの例には、機械の運動パラメータが含まれる。運動パラメータの例には、機械における構成要素の位置、速度、及び加速度が含まれる。
【0026】
伝達関数C(ρ)は、プラント20における制御入力uと制御出力yとの間の理論上の関係を考慮して、ユーザにより定義される。伝達関数C(ρ)は、調整可能な設計変数ρを有する。設計装置1は、この設計変数ρの適値を算出するように構成される。
【0027】
設計変数ρの適値を算出するために、目標応答yr=Td(θini)rが、ユーザによって定義される。目標応答yrは、目標指令rに対する制御出力yの目標値である。目標応答yrは、設計変数θを含む目標応答伝達関数Td(θ)と、設計変数θに対する初期値θiniとの組合せによって定義される。すなわち、目標応答yrは、伝達関数Td(θ=θini)に目標指令rを入力した値yr=Td(θini)rとして定義される。
【0028】
制御系の設計のために、制御入力u及び制御出力yに関するサンプルデータが更に用意される。サンプルデータは、複数の時刻のそれぞれにおける制御入力uの標本um及び制御出力yの標本ymが時系列に配列された時系列データである。
【0029】
ユーザは、設計変数ρを初期値ρiniに設定した標準制御系30を用意し、標準制御系30によるプラント20の制御動作を観測して、標本um及び標本ymの時系列データとして、目標指令rに対する制御入力uの観測値um及び制御出力yの観測値ymの組合せの時系列データを作成することができる。
【0030】
ユーザは、上記作成した時系列データを、サンプルデータとして、入出力インタフェース19を通じて設計装置1に入力することができる。プロセッサ11は、このサンプルデータを、ストレージデバイス13に記憶することができる。更に、ユーザは、設計装置1に、標準制御系30の伝達関数C(ρ)と、目標応答伝達関数Td(θ)及び初期値θiniとを、操作デバイス15又は入出力インタフェース19を通じて設計装置1に登録することができる。
【0031】
その後、ユーザは、操作デバイス15を通じて設計処理の実行指令を設計装置1に入力することができる。設計処理の実行指令が入力されると、プロセッサ11は、
図3に示す設計処理の実行を開始し、ストレージデバイス13に登録されたサンプルデータ、伝達関数C(ρ)、目標応答伝達関数T
d(θ)、及び、設計変数θの初期値θ
iniを読み出す(S110)。
【0032】
読出後、プロセッサ11は、設計変数θを初期値θiniに固定した状態で、評価関数J(ρ,θ=θini,um,ym)の値を最小にする設計変数ρの値ρ*を算出する(S120)。ここでは、評価関数J(ρ,θ,um,ym)に、設計変数θの値として、初期値θiniが代入されると共に、サンプルデータが有する標本um及標本ymが代入される。評価関数J(ρ,θ,um,ym)は、FRIT技術に従う評価関数であり、次式で表される。
【0033】
【0034】
評価関数J(ρ,θ,um,ym)は、目標応答伝達関数Td(θ)と伝達関数C(ρ)とを要素に含む式(2)に示される関数H(ρ,θ,um,ym)のノルム、具体的にはL2ノルムに対応する。上式から理解できるように、評価関数J(ρ,θ,um,ym)は、制御入力uの標本umと制御出力yの標本ymとから、設計変数ρ,θに関連する制御出力yと目標応答yrとの間の誤差を評価可能に構成される。評価関数J(ρ,θ,um,ym)は、上記誤差が小さいほど小さい値を示す。
【0035】
プロセッサ11は、評価関数J(ρ,θ=θini,um,ym)の値を最小にする設計変数ρの値ρ*を算出すると、次に設計変数ρを算出値ρ*に固定した状態で、評価関数J(ρ=ρ*,θ,um,ym)の値を最小にする設計変数θの値θ*を算出する(S130)。ここでは、評価関数J(ρ,θ,um,ym)に、設計変数ρの値として、S120での算出値ρ*が代入されると共に、サンプルデータが有する標本um及標本ymが代入される。
【0036】
その後、プロセッサ11は、予測応答y*と目標応答yrとの差の評価値Lを算出する(S140)。目標指令rに対応する予測応答y*は、目標応答伝達関数Td(θ)の設計変数θを、S130で算出された値θ*に設定した目標応答伝達関数Td(θ*)に目標指令rを入力して得られる値y*=Td(θ*)rである。評価値Lは、差(y*-y)=(Td(θ*)-Td(θini))rのノルム、具体的にはL2ノルムに対応する。
【0037】
【0038】
この場合の評価値Lは、各時刻tにおける予測応答y*[t]-yr[t]の二乗誤差(y*[t]-yr[t])2の和Σ(y*[t]-yr[t])2に対応する。別例として、評価値Lは、差(y*-y)=(Td(θ*)-Td(θini))rのL1ノルム又は無限大ノルムを用いて算出されてもよい。
【0039】
その後、プロセッサ11は、評価値Lが予め定められた基準値以上であるか否かを判断する(S150)。そして、評価値Lが基準値未満であると判断すると(S150でNo)、設計変数ρにS120で算出された値ρ*を採用し、標準制御系30におけるフィードバック制御器35の伝達関数C(ρ)を伝達関数C(ρ=ρ*)に設定した制御系を、目標応答yr=Td(θini)rの実現に最適な制御系として設計する(S160)。この制御系では、制御入力u=C(ρ=ρ*)(r-y)が算出される。
【0040】
S160における制御系の設計後、プロセッサ11は、この制御系の設計情報を出力して(S180)、設計処理を終了する。設計情報は、値ρ*、及び、目標指令rに対する制御入力uの演算式u=C(ρ*)(r-y)の情報を含むことができる。
【0041】
S180において、設計情報は、例えば、表示デバイス17を通じてユーザに表示される。S180において、プロセッサ11は、機械駆動システムに、入出力インタフェース19を通じて設計情報を入力して、機械駆動システム内に、対応する制御系を構築することができる。
【0042】
一方、評価値Lが基準値以上であると判断すると(S150でYes)、プロセッサ11は、初期値θ
iniとS120,S130での算出値ρ
*,θ
*とに基づき、
図4に示す改良制御系40を設計する(S170)。
図4に示すように、改良制御系40は、ρ=ρ
*に調整された標準制御系30の前段に、フィードフォワード制御器41を備える。すなわち、改良制御系40は、フィードフォワード制御器41、偏差算出器43、及びフィードバック制御器45を備える。
【0043】
フィードフォワード制御器41は、目標応答伝達関数Td(θ)と、設計変数θの初期値θiniと、S130における設計変数θの算出値θ*とに基づいて設計される。具体的には、フィードフォワード制御器41は、目標指令rの入力に対して伝達関数G(θini,θ*)=Td(θini)/Td(θ*)に従う値r*=G(θini,θ*)r={Td(θini)/Td(θ*)}rを出力するように構成される。偏差算出器43は、フィードフォワード制御器41から入力される値r*と制御出力yとの偏差(r*-y)を算出するように構成される。
【0044】
フィードバック制御器45は、フィードフォワード制御器41の後段に位置し、S120における設計変数ρの算出値ρ*に基づく伝達関数C(ρ=ρ*)に従って、制御入力uを算出するように構成される。具体的には、フィードバック制御器45は、偏差(r*-y)の入力に対して伝達関数C(ρ*)に従う制御入力u=C(ρ*)(r*-y)を算出するように構成される。
【0045】
評価値Lが大きい値を示す場合には、値ρ*に基づいた制御入力u=C(ρ*)(r-y)を算出する標準制御系30に従う制御系を設計しても、精度のよい目標応答yrが実現されず、目標指令rに対する制御応答が、目標応答yrからの誤差の大きい予測応答y*に従うことになる。
【0046】
これに対して、
図4に示すように、次式(5)(6)に従う制御入力uを算出する改良制御系40を設計すれば、目標指令rに対応する制御応答が、目標応答y
r=T
d(θ
ini)rに従う制御系を構築することができる。
【0047】
【0048】
伝達関数Td(θini)/Td(θ*)に対応する伝達関数G(θini,θ*)に従って目標指令rが値r*=G(θini,θ*)r={Td(θini)/Td(θ*)}rに変換されることで、目標指令rに対応する制御応答が、目標応答yr=Td(θini)rに補正される。
【0049】
S170における改良制御系40の設計後、プロセッサ11は、この改良制御系40の設計情報を出力して(S180)、設計処理を終了する。設計情報は、値ρ*,θ*,θini及び目標指令rに対する制御入力uの演算式u=C(ρ*)(r*-y)及び演算式r*={Td(θini)/Td(θ*)}rの情報を含むことができる。
【0050】
以上に、本実施形態の設計装置1の構成を説明した。本実施形態によれば、ユーザは、設計変数ρの値を何度も変えて実験を行うことで設計変数ρの適値を探索しなくても、設計装置1を通じて、設計変数ρの適値を知ることができ、目標応答yrに従う制御系を比較的容易に構築することができる。
【0051】
特に本実施形態では、FRIT技術に従うρの適値探索だけでは制御応答に目標応答yrからの誤差が生じる欠点を、伝達関数Td(θini)/Td(θ*)に従うフィードフォワード制御器41を導入することで改善した。従って、本実施形態の設計装置1は、高精度なプラント20の制御に大変役立つ。
【0052】
[第二実施形態]
続いて、第二実施形態として、
図5に示すモータ駆動システム100の構成及び動作を説明する。このモータ駆動システム100は、改良制御系40に対応するモータ制御系150を備え、モータ制御系150における設計変数ρの適値を、第一実施形態の同様の手法で探索し、モータ制御系150を構築及び更新するように構成される。
【0053】
図5に示すように、モータ駆動システム100は、モータ110と、モータドライバ120と、機械130と、観測器140と、モータ制御系150と、目標指令器160と、メインコントローラ170と、を備える。モータ駆動システム100は、モータ110を制御することにより、モータ110からの動力を受けて運動する機械130の運動を制御するように構成される。
【0054】
モータドライバ120は、モータ制御系150からの指令信号に従って、モータ制御系150で算出された制御入力uに従う駆動電流又は電圧を、モータ110に印加して、モータ110を駆動するように構成される。
【0055】
観測器140は、制御出力yとしての機械130の運動パラメータを観測し、その観測値を出力するように構成される。機械130の運動パラメータの例には、機械130の運動部位の位置、速度、及び加速度が含まれる。観測器140の例には、機械130に配置された各種センサ及び各種センサからの入力信号を解析して運動パラメータの観測値を算出する信号処理回路が含まれる。
【0056】
モータ制御系150は、目標指令器160からの目標指令rと観測器140により観測された制御出力yとに基づいて、モータ110に対する制御入力uを算出し、算出した制御入力uでモータ110を駆動するように指令する指令信号を、モータドライバ120に入力するように構成される。
【0057】
モータ制御系150は、
図5に示すように、フィードフォワード制御器151と、偏差算出器153と、フィードバック制御器155と、を備える。フィードフォワード制御器151は、目標指令rの入力に対して伝達関数T
d(θ
ini)/T
d(θ)に従う値r
*={T
d(θ
ini)/T
d(θ)}rを出力するように構成される。
【0058】
偏差算出器153は、フィードフォワード制御器151から入力される値r*と制御出力yとの偏差(r*-y)を算出するように構成される。フィードバック制御器155は、偏差(r*-y)の入力に対して伝達関数C(ρ)に従う制御入力u=C(ρ)(r*-y)を算出するように構成される。
【0059】
目標指令器160は、目標指令rをモータ制御系150に入力するように構成される。メインコントローラ170は、目標指令器160に目標指令rの入力を指示することにより、目標指令rに対する目標応答yr=Td(θini)rが実現されるように、モータ制御系150にモータ110を制御させる。
【0060】
また、メインコントローラ170は、目標応答y
r=T
d(θ
ini)rが実現されるように、モータ制御系150内の設計変数ρ,θの値を設定及び更新するように構成される。
メインコントローラ170は、
図5に示すように、プロセッサ171と、RAM173と、フラッシュROM175とを備える。プロセッサ171は、フラッシュROM175に記録されたコンピュータプログラムに従う処理を実行するように構成される。RAM173は、プロセッサ171による処理の実行時に作業領域として使用される。
【0061】
具体的に、プロセッサ171は、フラッシュROM175に記録されたコンピュータプログラムに従って、
図6に示す構築処理を実行することにより、モータ制御系150の設計変数θ,ρの適値θ
*,ρ
*を求め、求めた適値θ
*,ρ
*をモータ制御系150に設定するように構成される。この設定により、モータ駆動システム100内では、機械130の特性に応じた適切なモータ制御系150が構築される。
【0062】
この設定のために、フラッシュROM175には、目標応答伝達関数Td(θ)及びフィードバック制御器155の伝達関数C(ρ)の情報、更には、設計変数θの初期値θini及び設計変数ρの初期値ρiniの情報が記憶される。
【0063】
プロセッサ171は、外部からの指令を受けて
図6に示す構築処理を実行する。指令は、例えば、モータ駆動システム100が製品として出荷される前に、モータ駆動システム100が備える図示しないユーザインタフェース、又は、モータ駆動システム100に通信可能に接続された専用ツールから入力される。
【0064】
プロセッサ171は、
図6に示す構築処理を開始すると、予め定められた方法でモータ110を試験的に動作させることで、制御入力u及び制御出力yのサンプルデータを取得し、取得したサンプルデータをRAM173に一時記憶する(S210)。
【0065】
プロセッサ171は、モータ制御系150の設計変数θ,ρに、初期値θini,ρiniを設定すると共に、モータ制御系150に所定の目標指令rを入力するように目標指令器160に指令入力することにより、モータ110を試験的に動作させることができる。
【0066】
プロセッサ171は、モータ110の試験的な動作時に、モータ制御系150からモータドライバ120に入力された制御入力uと、この制御入力uに対応する観測器140により観測された制御出力yと、の組合せの時系列データを、標本um,ymの時系列データとして取得することができる。上記サンプルデータは、この標本um,ymの時系列データに対応する。
【0067】
その後、プロセッサ171は、S210で取得したサンプルデータに基づいて、第一実施形態と同様の手法で、モータ制御系150を設計する(S220)。すなわち、評価関数J(ρ,θ=θini,um,ym)の値を最小にする値ρ*を算出し、更には、評価関数J(ρ=ρ*,θ,um,ym)の値を最小にする設計変数θの値θ*を算出する。
【0068】
本実施形態において、プロセッサ171は、第一の実施形態とは異なり、評価値Lによらず、モータ制御系150として初期値θini及び算出値θ*,ρ*に基づく改良制御系40を設計する。すなわち、モータ制御系150の設計変数θ,ρに対する適値θ*,ρ*を決定する。
【0069】
S220での処理実行後、プロセッサ171は、モータ制御系150の設計変数θ,ρをそれぞれ、決定した適値θ
*,ρ
*に設定することにより、目標応答y
r=T
d(θ
ini)rが実現されるモータ制御系150を構築する(S230)。その後、
図6に示す構築処理を終了する。構築されたモータ制御系150の情報、具体的には、値θ
*,ρ
*の情報は、プロセッサ171が必要に応じて読出可能にフラッシュROM175に記録される。
【0070】
更に、プロセッサ171は、モータ駆動システム100の出荷後、モータ駆動システム100が起動される度に、モータ制御系150における設計変数θ,ρの値θ*,ρ*を更新する。
【0071】
具体的には、プロセッサ171は、コンピュータプログラムに従って、
図7に示す更新処理を実行することにより、モータ制御系150における設計変数θ,ρの値θ
*,ρ
*を更新する。プロセッサ171は、モータ110の制御が行われている期間において、更新処理を繰返し実行する。具体的には、プロセッサ171は、制御周期毎に、
図7に示す更新処理を実行する。
【0072】
更新処理を開始すると、プロセッサ171は、現在が更新対象期間であるか否かを判断する(S310)。制御出力yが一定の目標値に収束していない制御出力yの過渡期では、制御が安定せず、制御出力yと目標応答yrとの間の誤差である制御誤差が大きく変動する。
【0073】
従って、過渡期は、制御誤差を評価するのに適切な期間ではない。過渡期に、制御誤差を小さくする方向に設計変数θ,ρの値θ*,ρ*を更新することは、更新後の制御誤差の低減に役立たないばかりか、悪影響を与える可能性もある。
【0074】
そのため、本実施形態では、設計変数θ,ρの値θ*,ρ*を更新する期間を、過渡期ではなく、制御出力yが一定の目標値に収束し、制御が安定する定常状態に対応する期間に限定している。更新対象期間は、この制御が安定する期間に対応する。
【0075】
例えば、
図8Aに示すように、機械130を定速運動させることを目的としたモータ制御が実行されるときには、機械130が定速運動する期間内に、更新対象期間が定められる。更新対象期間は、制御開始からの経過時間により定義され得る。機械130が定速状態に移行するまでの加速期間、及び、機械130が定速状態から停止するまでの減速期間は、更新対象期間から外される。
【0076】
例えば、
図8Bに示すように、機械130の運動部位を目標停止位置まで移動させることを目的としたモータ制御が実行されるときには、運動部位が目標停止位置より所定距離手前の地点に到達する時点から、運動部位が目標停止位置で停止してモータ制御が終了する時点までの期間内に、更新対象期間が定められる。換言すれば、運動部位が運動開始位置から目標停止位置より所定距離手前の地点を通過するまでの期間は、更新対象期間から外される。
【0077】
プロセッサ171は、現在が上記更新対象期間内にはないと判断すると(S310でNo)、設計変数θ,ρの値θ*,ρ*を更新せずに、更新処理を終了する。一方、プロセッサ171は、現在が更新対象期間内にあると判断すると(S310でYes)、S320に移行する。
【0078】
S320において、プロセッサ171は、更新対象期間における制御出力yの観測値及び値r*に基づき以下の評価関数K1(θ)の値を最小にする設計変数θの値θnを算出する。
【0079】
【0080】
評価関数K1(θ)は、誤差e1(θ)=y-Td(θ)r*のノルム、特にはL2ノルムに対応する。上式(7)(8)から理解できるように、評価関数K1(θ)の値を最小にする設計変数θの値θnは、制御出力yの目標応答yrに対する制御誤差を最小する。
【0081】
S320において、プロセッサ171は、逐次最小二乗法を利用して、値θnを算出することができる。逐次最小二乗法を利用するために、評価関数K1(θ)は、変形することができる。例えば、目標応答伝達関数Td(θ)が次式(9)で表される場合を考える。
【0082】
【0083】
この場合には、評価関数K1(θ)を式(10)(11)に示すように変形することができる。
【0084】
【0085】
式(11)に示される誤差e2(θ)は、式(8)における誤差e1(θ)=y-Td(θ)r*に対して{-Td(θini)/Td(θ)}を作用させた値に対応する。{-Td(θini)/Td(θ)}のうち、{1/Td(θ)}の成分は、目標応答伝達関数Td(θ)の分母を分子側に移動させる目的で導入される。Td(θini)は、プロパー化のために導入される。目標応答伝達関数Td(θ)が式(9)で表されるとき、式(11)は、式(12)に変形することができる。
【0086】
【0087】
誤差e2(θ)は、次式に書き換えることができる。上付きTは、転置記号である。
【0088】
【0089】
従って、評価関数K1(θ)が最小となる設計変数θの値θnの算出は、評価関数K2(θ)が最小となる設計変数θの値θnを、次式(14)に従って、逐次最小二乗法により算出することで実現することができる。kは、整数値を示し、θn(k-1)及びP(k-1)は、前回算出値に対応し、θn(k)及びP(k)は、今回算出値に対応する。
【0090】
【0091】
S320において、値θnを算出すると、プロセッサ171は、S330に移行する。S330において、プロセッサ171は、S320で算出された値θnを移動平均フィルタに入力して、値θnの補正値θn
*として、値θnの移動平均θn
*を算出する。移動平均は、単純移動平均又は加重移動平均であり得る。プロセッサ171は、移動平均の算出のために、過去所定期間分の算出値θnを、RAM173に記憶することができる。
【0092】
その後、プロセッサ171は、フィードフォワード制御器151の設計変数θの値を、算出した値θ
nの移動平均θ
n
*に更新する(S340)。その後、
図7に示す更新処理を終了する。
【0093】
別例として、プロセッサ171は、
図7に示すように、S330の処理に代えてS331の処理を実行してもよく、S340の処理に代えて、S341の処理を実行してもよい。
【0094】
S331において、プロセッサ171は、S320で算出された値θnをローパスフィルタに入力して、値θnの補正値θn
*として、値θnから高周波成分を除去した値θn
*を算出することができる。
【0095】
S341において、プロセッサ171は、フィードフォワード制御器151の設計変数θの値を、高周波成分除去後の値θn
*に更新することができる。このようにして、プロセッサ171は、フィードフォワード制御器151の設計変数θを更新することができる。
【0096】
以上に説明した本実施形態のモータ駆動システム100によれば、プロセッサ171が更新処理を実行することにより、外的要因や温度等の周辺環境に応じて機械130に作用する負荷が変化する環境においても、モータ制御系150の設計変数ρ,θを適切に調整することができる。
【0097】
従って、本実施形態のモータ駆動システム100によれば、負荷の変化によらず、高精度なモータ110の制御を実現することができ、更には、機械130の運動を高精度に制御することができる。
【0098】
例えばモータ駆動システム100がインクジェットプリンタに搭載される場合、モータ駆動システム100は、機械130としてのキャリッジ搬送機構における記録ヘッドを搭載するキャリッジの搬送運動を高精度に制御することができる。
【0099】
あるいは、モータ駆動システム100は、機械130としての用紙搬送機構における用紙を搬送するローラの回転運動を高精度に制御することができる。本実施形態によれば、これらの高精度な制御により、インクジェットプリンタにおいて、用紙に高品質な画像を形成することが可能である。
【0100】
本開示の技術が、上述の例示的実施形態に限定されるものではなく、種々の態様を採り得ることは言うまでもない。例えば、モータ駆動システム100は、
図6に示す構築処理を実行せずに、
図7に示す更新処理のみを実行するように構成されてもよい。モータ駆動システム100は、設計装置1により設計された改良制御系40を搭載したシステムとして構成されてもよい。
【0101】
設計装置1は、S140~S160の処理を実行せずに、S130の処理を実行後、S170,S180の処理を実行するように構成されてもよい。すなわち、設計装置1は、予測応答y*と目標応答yrとの差によらず、一律に、改良制御系40を設計するように構成されてもよい。
【0102】
モータ駆動システム100は、更新処理(
図7参照)において、モータ制御系150の過度な変動を抑えるために、S320で算出された値θ
nを移動平均フィルタ又はローパスフィルタを用いて高周波成分を取り除くように補正し、補正後の値θ
n
*を用いて、フィードフォワード制御器151の伝達関数G(θ
ini,θ)=T
d(θ
ini)/T
d(θ)の設計変数θの値を補正した。しかしながら、モータ駆動システム100は、S320で算出された値θ
nを補正せずに、そのまま用いて、フィードフォワード制御器151の伝達関数G(θ
ini,θ)=T
d(θ
ini)/T
d(θ)の設計変数θの値をθ=θ
nに補正してもよい。
【0103】
モータ駆動システム100は、更新処理において、S310で現在が更新対象期間であるか否かを判断した。しかしながら、現在が更新対象期間であるか否かを、時刻で判断せず、機械130からの制御出力yに基づいて判断しても良い。例えば、機械130を所定速度で定速運動させることを目的としたモータ制御が実行されるときに、制御出力である速度が、所定速度であるか否かを判断して、更新対象期間であるか否かを判断しても良い。また、モータ駆動システム100は、S310の判断を行わず、常にS320以降の処理を実行しても良い。
【0104】
この他、本開示の技術は、モータ制御に限定されない。本開示の技術は、インクジェットプリンタへの適用に限定されない。本開示の技術は、制御を伴う種々のシステムに適用することができる。
【0105】
上記実施形態における1つの構成要素が有する機能は、複数の構成要素に分散して設けられてもよい。複数の構成要素が有する機能は、1つの構成要素に統合されてもよい。上記実施形態の構成の一部は、省略されてもよい。上記実施形態の構成の少なくとも一部は、他の上記実施形態の構成に対して付加又は置換されてもよい。特許請求の範囲に記載の文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【符号の説明】
【0106】
1…設計装置、11…プロセッサ、12…メモリ、13…ストレージデバイス、15…操作デバイス、17…表示デバイス、19…入出力インタフェース、20…プラント、30…標準制御系、31…偏差算出器、35…フィードバック制御器、40…改良制御系、41…フィードフォワード制御器、43…偏差算出器、45…フィードバック制御器、100…モータ駆動システム、110…モータ、120…モータドライバ、130…機械、140…観測器、150…モータ制御系、151…フィードフォワード制御器、153…偏差算出器、155…フィードバック制御器、160…目標指令器、170…メインコントローラ、171…プロセッサ、173…RAM、175…フラッシュROM。