以下に、本発明にかかるモータ制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
実施の形態1にかかるモータ制御装置100について図1〜図7に基づいて詳細に説明する。図1は、実施の形態1にかかるモータ制御装置100の構成を示すブロック図である。
図1において、制御対象1はモータ1a、バネ(振動要素)1b、機械負荷1cから構成され、電流制御器3から出力される電流Iを入力し、検出器2によりモータ1aの位置(例えば、モータ1a内におけるロータの回転位置又は可動子の駆動位置)を表すモータ動作検出値pmを出力する。制御対象1は、電流Iによりモータ1aが駆動することで、モータ1aの駆動力がバネ1bを通して機械負荷1cへ伝達され、機械負荷1cが駆動する。これにより、機械負荷1cに所望の動作をさせる。
本実施の形態1にかかるモータ制御装置100は、制御対象1の動作位置をフィードバック制御により目標値に追従させる位置制御を行う構成として、駆動する制御対象1の位置目標値を表す動作目標値(位置指令)prefを、外部(例えば、図示しない上位コントローラ)から受けるとともに、後述するモデルゲインgの定常値を表すモデルゲイン目標値gcを外部から設定され、検出器2(例えば、エンコーダ)により検出されたモータ動作検出値pmを受ける。そして、モータ制御装置100は、モータ動作検出値pmが動作目標値prefへ追従するようにトルク指令τmを発生させて電流制御器3へ出力する。これにより、電流制御器3がトルク指令τmに応じた電流I(に依存した電力)を制御対象1内部にあるモータ1aへ供給するので、モータ1aは、トルク指令τmに応じたモータトルクを発生して制御対象1内部にあるバネ(振動要素)1bおよび機械負荷1cを動作させる。また、モータ制御装置100はフィードフォワード制御部111、フィードバック制御112、トルク加算器113を備える。なお、動作目標値は速度に対する目標値である場合、あるいは速度に対する目標値も含む場合もあり得る。
次にモータ制御装置100の構成と動作について説明する。フィードフォワード制御部111は、外部から動作指令として動作目標値prefが入力され、モデルゲインgの定常値としてモデルゲイン目標値gcが設定される。即ち、設定したモデルゲイン目標値gcにモデルゲインgは定常的に一致するよう定められる。フィードフォワード制御部111は、この動作目標値prefに対し、想定した制御対象1がモデルゲインgに基づき設定される伝達関数F(s)の特性で追従するモデル位置paを計算し、このように求めたモデル位置paにモータ1aが一致して動作した場合の理想的な速度であるモデル速度vaと、モデル位置paにモータ1aが一致して動作するための理想的なトルクであるモデルトルクτaを計算する。そして、計算されたモデル位置pa、モデル速度vaはフィードバック制御部112に出力され、モデルトルクτaはトルク加算器113に出力される。モデルトルクτaは、動作目標値prefに制御対象1の動作を追従させるために必要な値となっており、動作目標値prefに制御対象1の動作を追従させるための理想的な位置および速度が、それぞれモデル位置paおよびモデル速度vaである。
フィードバック制御器112は、フィードフォワード制御器111から出力されたモデル位置pa、モデル速度vaを受けるとともに、検出器2で検出された制御対象1(モータ1a)のモータ動作検出値pmを受けて、モータ動作検出値pmがモデル位置paに、モータ動作検出値pmの時間微分がモデル速度vaに追従するようにフィードバックトルクτBを計算する。そして計算したフィードバックトルクτBをトルク加算器113へ出力する。
トルク加算器113はフィードバックトルクτBとモデルトルクτaを入力し、これらの和を計算し、その計算結果をトルク指令τmとして電流制御器3へ出力する。電流制御器3はトルク加算器113から出力されたトルク指令τmを受けて、トルク指令τmに一致するモータトルクを実現する実電流I(に依存した電力)をモータ1aへ加える(供給する)。
次に、フィードバック制御部112の内部構成とその動作について説明する。フィードバック制御部112は、速度制御器131、位置制御器132、速度演算器133を有する。
位置制御器132は、モデル位置paとモータ動作検出値pmを入力し、モータ動作検出値pmとモデル位置paとの誤差が減少するように速度指令vuを計算する。そして、計算した速度指令vuを速度制御器131へ出力する。例えば、位置制御器132が比例制御を行う場合、位置比例ゲインをKpとして、以下の式(1)の演算を行い、その計算結果を速度指令vuとして、速度制御器131に出力する。
速度演算器133は、検出器2より検出されたモータ動作検出値pmを受ける。速度演算器133は、受けたモータ動作検出値pmに対して時間微分、差分やフィルタ処理等を行い、モータ速度演算値vmを計算する。例えば、時間微分を行ってモータ速度演算器vmを出力する場合は以下の式(2)によりモータ速度演算値vmを計算する。計算したモータ速度演算値vmは速度制御器131へ出力される。ここで、pm
(1)はモータ動作検出値pmの時間に関する1階微分を表しており、以後各記号の右上にある()内の数値は時間に関する微分の回数を表す。
速度制御器131は、フィードフォワード制御部111から出力されたモデル速度vaと、位置制御器132から出力された速度指令vuと、速度演算器133から出力されたモータ速度演算値vmを受ける。速度制御器131は、モータ速度演算値vmをモデル速度vaに追従させるように、すなわちモータ速度演算値vmがモデル速度vaと速度指令vuとの和に一致するようにPI制御などの演算によりフィードバックトルクτBを計算する。計算されたフィードバックトルクτBはトルク加算器113へ出力される。速度制御器131における計算処理の例として、以下の式(3)のようにPI制御とフィルタとの組み合わせがある。式(3)においてsはラプラス演算子、Kvは速度比例ゲイン、Kiは速度積分ゲインである。フィルタH(s)は速度制御器131の速度比例ゲインKv、速度積分ゲインKiで決まる制御帯域よりも高い周波数おいて所定の周波数成分を除去するもので、ローパスフィルタやノッチフィルタと呼ばれるものを用いる。
トルク加算器113は、フィードバック制御器112で計算されたフィードバックトルクτBとフィードフォワード制御部111で計算されたモデルトルクτaを入力し加算する。そして、その和をトルク指令τmとして電流制御器3へ出力する。
次に、フィードフォワード制御部111の内部構成と動作について図2、図3、図4、および図5を用いて説明する。フィードフォワード制御部111は、制振フィルタ121、およびモデルゲイン変更部122を有する。
制振フィルタ121は、モータ制御装置100の外部から動作目標値prefを、後述するモデルゲイン変更部122からモデルゲインgを入力し、モデルゲインgより遮断周波数を決定し、動作目標値prefに含まれる遮断周波数以上の高周波成分と想定した制御対象1の振動周波数(共振・反共振周波数)成分を減衰させた信号から、モデル位置pa、モデル速度va、モデルトルクτaを計算し、モデル位置pa、モデル速度va、モデルトルクτaを計算する過程で制振フィルタ121の内部状態量xa(状態変数)を生成する。そして、モデル位置paとモデル速度vaをフィードバック制御部112、モデルトルクτaをトルク加算器113に出力し、内部状態量xaをモデルゲイン変更部122に出力する。
制振フィルタ121における具体的なモデル位置pa、モデル速度va、モデルトルクτaの計算方式を実現する構成として、図2の構成がある。図2の構成では、以下の式(4),(5),(6)を用いてモデル位置pa、モデル速度va、モデルトルクτaを計算する。
ここで、gはモデルゲイン、p0,p1,p2,p3,p4はそれぞれ、第0特性係数、第一特性係数、第二特性係数、第三特性係数、第四特性係数、ζzは反共振減衰値、ωzは反共振周波数、ζpは共振減衰値、ωpは共振周波数、JLは機械負荷慣性モーメント、Jmはモータの慣性モーメントを表している。式(4)は状態方程式と呼ばれることがよく知られており、状態方程式では式(4)のr,r(1),r(2),r(3),r(4)に相当する値を状態変数と呼ぶことが知られている。別の言い方をすると、状態変数r,r(1),r(2),r(3),r(4)は、動作目標値prefからモデル位置pa、モデル速度va、モデルトルクτaを計算する過程で生成される内部状態量であるとも言える。また、状態変数xaを1つにまとめた数値ベクトルを状態ベクトルと呼ぶことも良く知られており、式(4)の場合はxa=[r,r(1),r(2),r(3),r(4)]Tが状態ベクトルに相当する。なお、本実施の形態では状態ベクトルxaを内部状態量と呼ぶ。
また、制振フィルタ121の別の構成として図3の構成が考えられる。制振フィルタ121を図3の構成とした場合は、以下の式(7),(8),(9),(10)を用いて、動作目標値prefからモデル位置pa、モデル速度va、モデルトルクτaを計算することになる。
式(7)では、r−,r−
(1),r−
(2),r−
(3),r−
(4)が状態変数に当たり、式(9)では、r〜,r〜
(1),r〜
(2),r〜
(3),r〜
(4)が状態変数に相当する。これらの値も、動作目標値prefからモデル位置pa、モデル速度va、モデルトルクτaを計算する過程で生成される内部状態量xaである。また、状態変数r−,r−
(1),r−
(2),r−
(3),r−
(4)やr〜,r〜
(1),r〜
(2),r〜
(3),r〜
(4)を1つの数値ベクトルとしてまとめたものも状態ベクトルと呼ばれる。なお、制振フィルタ121の構成を図2、図3のどちらにしても、モデル位置pa、モデル速度va、モデルトルクτaの伝達関数はそれぞれ以下の式(11)、式(12)、式(13)となり、計算されるモデル位置pa、モデル速度va、モデルトルクτaの値は同じである。
これらの構成にすることにより、モデルゲインgより遮断周波数を決定し、動作目標値prefから遮断周波数以上の高周波成分を取り除く特性とし、第0特性係数、第一特性係数、第二特性係数、第三特性係数、第四特性係数より制振フィルタ121の高周波減衰特性を決定することが可能となる。例えば、第0特性係数、第一特性係数、第二特性係数、第三特性係数、第四特性係数を所定の値に設定すると、高周波成分を減衰させるフィルタの従来技術として知られているバターワースフィルタやベッセルフィルタと同様の高周波減衰特性が得られることが知られている。また、図4に示す通り、モデルゲインgを大きくすることにより、高周波減衰特性を弱めることが可能となる。制振フィルタ121は図4のような周波数特性となるため、動作目標値prefの高周波特性と共振・反共振周波数より設定される制御対象の振動周波数を減衰させた特性となる。
また、制振フィルタ121に設定するこれらの値を制御対象1の特性と一致させ、式(5),または式(10)のようにモデルトルクτaを出力することにより、摩擦やモデル誤差などの外乱がなければ、モータ1aの位置の計測値であるモータ動作検出値pmをモデル位置paに偏差なく追従させることが可能となる。その結果、振動を抑制することも可能となる。また、外乱が存在する場合でも、フィードバック制御部112を用いることにより、制振フィルタ121が計算するモデル位置pa、モデル速度vaにモータ動作検出値pmとモータ速度演算値vmをそれぞれ追従させることで、振動を励起させずに制御対象1を動作させることが可能となる。なお、本実施の形態では説明の簡略化のため、制振フィルタ121の構成を図2として説明する。ただし、これにより、本実施の形態による制振フィルタの構成が限定されるものではない。
モデルゲイン変更部122は、モータ制御装置100の外部から入力される動作目標値prefとモデルゲイン目標値gc、制振フィルタ121から出力される内部状態量xaを受け、これらの値に基づき、モデルゲインgが変更された場合のモデルトルクτaの2階時間微分τa(2)が所定の値以下τa(2)limitとなるようにモデルゲインgを変更する。変更したモデルゲインgは制振フィルタ121へ出力される。次にモデルゲイン変更部122の動作について図5を用いて説明する。なお、本実施の形態においてはモデルトルクτaの2階時間微分τa(2)が所定の値以下τa(2)limitとなるようにモデルゲインgを変更するとして説明するが、一般にモデルトルクτaのn階時間微分(n>1)が所定の値以下となるようにしてモデルゲインgを求めるようにしてもよい。
図5はモデルゲイン変更部122の一例を示した図である。図5のモデルゲイン変更部122は、モデルゲイン減算器122a、モデルゲイン時定数乗算部122b、モデルゲイン微分値リミッタ決定部122c、モデルゲイン微分値リミッタ122d、およびモデルゲイン積分器122eから構成される。
モデルゲイン減算器122aはモデルゲイン目標値gcとモデルゲインgを入力し、これらの差を以下の式(14)から計算し、計算した結果をモデルゲイン誤差geとしてモデルゲイン時定数乗算部122bに出力する。
モデルゲイン時定数乗算部122bはモデルゲイン減算器122aから出力されるモデルゲイン誤差geを入力し、以下の式(15)により、モデルゲイン誤差geにモデルゲイン時定数gTを掛け、その積をリミッタ前モデルゲイン微分値g^
(1)としてモデルゲイン微分値リミッタ122dへ出力する。
モデルゲイン微分値リミッタ決定部122cは、動作目標値prefと内部状態量xaを入力し、モデルトルクの2階時間微分τa(2)が所定の値以下τa(2)limitとなるモデルゲインgの時間微分g(1)の範囲を計算する。次に、モデルトルクの2階時間微分τa(2)が所定の値以下τa(2)limitとなるモデルゲインgの時間微分g(1)の範囲の計算方法について説明する。
モデルトルクτaは式(5)で表されるため、モデルトルクの時間微分τa
(1)は以下の式(16)で計算され、モデルトルクの2階時間微分τa
(2)は以下の式(17)で計算される。
よって、式(17)よりモデルトルクの2階時間微分τa
(2)の絶対値が所定の値τa
(2)limit以下となるためには、以下の式(18)を満たせばよいことがわかる。
モデルゲイン微分値リミッタ決定部122cは式(18)を用いて、モデルトルクの2階時間微分τa(2)が所定の値τa(2)limit以下となるモデルゲインの時間微分g(1)を計算し、求められた範囲を満たす最大値をゲイン微分値最大制限値g(1)maxとして、最小値をゲイン微分値最小制限値g(1)minとして、モデルゲイン微分値リミッタ122dに出力する。例えば、γ>0の場合は、式(18)のβがモデルゲイン微分値最大制限値g(1)max、αがモデルゲイン微分値最小制限値g(1)minに、γ<0の場合は、式(18)のαがモデルゲイン微分値最大制限値g(1)max、βがモデルゲイン微分値最小制限値g(1)minとなる。
モデルゲイン微分値リミッタ122dは、モデルゲイン時定数乗算部122bから出力されたモデルリミッタ前ゲイン微分値g^
(1)と、モデルゲイン微分値リミッタ決定部122cから出力されたモデルゲイン微分値最大制限値g
(1)max、モデルゲイン微分値最小制限値g
(1)minを入力し、モデルゲイン微分値g
(1)を出力する。モデルゲイン微分値g
(1)は、以下の式(19)を用いて、モデルゲイン微分値g
(1)がモデルゲイン微分値最大制限値g
(1)max以下となり、かつモデルゲイン微分値g
(1)がモデルゲイン微分値最小制限値g
(1)min以上となるように制限される。
モデルゲイン積分器122eはモデルゲイン微分値リミッタ122dから出力されたモデルゲイン微分値g
(1)を入力し、以下の式(20)により、モデルゲイン微分値g
(1)を積分し、積分した結果をモデルゲインgとして制振フィルタ121に出力する。これにより、定常的にはモデルゲインgはモデルゲイン目標値gcへ収束する。なお、式(20)の積分の初期値はモータ制御装置100が動作し始めた時刻(初期時刻)に入力されたモデルゲイン目標値gcと同じ値とする。よって、モデルゲインgの初期値もモデルゲイン目標値gcと一致することとなる。
図6−1および図6−2を用いて本実施の形態の効果を説明する。図6−1は本実施の形態のモータ制御装置100を用いた場合の動作目標値の微分値pref(1)、モデルトルクτa、モデルゲイン目標値gc、モデルゲインgの時間変化を表しており、図6−2はモデルゲイン微分値g(1)を制限せず、モデルゲイン目標値gcとモデルゲインgを常に一致させた場合の動作目標値の微分値pref(1)、モデルトルクτa、モデルゲイン目標値gc、モデルゲインgの時間変化を表している。また、図6−1および図6−2において、taはモデルゲイン目標値gcが変化する時刻を表している。図6−2を見ると、モデルゲインgを不連続に変化させると、モデルトルクτaが急激に変化してしまい、それに伴い、モデルトルクτaの絶対値もかなり大きくなっている。それに対し、図6−1を見ると、モデルゲイン目標値gcが変化しても、モデルゲイン微分値リミッタ122dにより、モデルゲイン微分値g(1)が制限されているため、モデルゲインgが徐々にモデルゲイン目標値gcに収束し、それにより、モデルトルクτaが急激に変化せず、かつモデルトルクτaがかなり大きくなることも防止されている。
以上のように、実施の形態1では、モータ制御装置100において、制振フィルタ121の内部状態xaと外部から入力される動作目標値prefに基づき、モデルトルクの2階時間τa(2)が所定の値τa(2)limit以下となるようなモデルゲイン微分量g(1)を計算し、この値に基づきモデルゲインgを変更する。これにより、本実施の形態において操作量に相当するモデルトルクτaを急激に変化させることなく、モデルゲインgを変更することが可能となる。また、モデルトルクτaが急激に変化することがないため、モデルゲインgを変更した場合にモデルトルクτaが過大になることも解決できる。
また、モデルトルクの2階微分τa(2)が所定の値τa(2)limit以下となるようにモデルゲイン微分量g(1)を制振フィルタ121の内部状態量xaを用いて自動的に計算するため、調整の手間が不要でかつ様々な動作パターンに自動的に対応することが可能となる。
なお、本実施の形態では、所定の値τa(2)limitを一定の値として説明したが、所定の値τa(2)limitは時間で変化する値でも良い。
また、本実施の形態では、制振フィルタ121の構成を図2、または図3として説明したが、制振フィルタ121、構成は図2および図3の構成とは異なる構成でもよい。例えば、4次や6次のフィルタにしてもよい。例えば、制振フィルタが図7のような4次フィルタを持つ構成の場合、本実施の形態で説明したような計算をすると、以下の式(21)を満たすようにモデルゲイン微分値g
(1)を決定すると、モデルトルクの時間微分τa
(1)は所定の値τa
(1)limit以下となる。
また、本実施の形態では、位置制御器132はP制御、速度制御器131はPI制御とフィルタとを行う構成としているが、これらは、PID制御、H∞制御、μ制御、適応制御、スライディングモード制御のような制御器であっても良い。
実施の形態2.
次に、図8に示す実施の形態2にかかるモータ制御装置200について説明する。以下では、実施の形態1と異なる点を中心に説明する。
本実施の形態のモータ制御装置200と実施の形態1のモータ制御装置100との差異は、モデルゲイン変更部222の構造にある。実施の形態1のモータ制御装置100内部にあるモデルゲイン変更部122は連続的にモデルゲインgを変更していたが、本実施の形態2にかかるモデルゲイン変更部222においては所定のサンプリング時間でモデルゲインgを変更する。
フィードフォワード制御部211は、外部から動作指令として動作目標値prefが、モデルゲインgの定常値としてモデルゲイン目標値gcが入力される。フィードフォワード制御部211は、この動作目標値prefに対し、想定した制御対象1がモデルゲインgに基づき設定される伝達関数F(s)の特性で追従するモデル位置paを計算し、このように求めたモデル位置paにモータ1aが一致して動作した場合の理想的な速度であるモデル速度vaと、モデル位置paにモータ1aが一致して動作するための理想的なトルクであるモデルトルクτaを計算する。そして、計算されたモデル位置pa、モデル速度vaはフィードバック制御部112に出力され、モデルトルクτaはトルク加算器113に出力される。フィードフォワード制御部211は制振フィルタ121と図9に示すモデルゲイン変更部222を有する。制振フィルタ121の動作は実施の形態1と同じであるため説明を割愛する。なお、本実施の形態では制振フィルタ121の構成は図2の構成であるとして説明する。
図9に示すモデルゲイン変更部222は、動作目標値prefとモデルゲイン目標値gcを入力し、モデルトルクの2階微分τa(2)が所定の値τa(2)limitを越えないように、モデルゲインgを変更する。モデルゲイン変更部222はモデルゲイン減算器122a、モデルゲイン微分値リミッタ決定部122c、モデルゲイン微分値リミッタ222d、モデルゲイン加算器222e、モデルゲインメモリ222fから構成される。次に、これらに構成要素の動作について説明する。なお、モデルゲイン減算器122aとモデルゲイン微分値リミッタ決定部122cは実施の形態1と同じ動作をするため、説明を割愛する。
モデルゲイン微分値リミッタ222dは、モデルゲイン誤差ge、モデルゲイン微分値最大制限値g
(1)max、モデルゲイン微分値最小制限値g
(1)minを入力し、以下の式(22)を用いて、モデルゲイン微分値g
(1)がモデルゲイン微分値最大制限値g
(1)max以下、かつモデルゲイン微分値最小制限値g
(1)min以上となるようにモデルゲイン微分値g
(1)を制限する。制限した結果は、モデルゲイン微分値g
(1)として、モデルゲイン加算器222eへ出力する。
モデルゲイン加算器222eは、モデルゲイン微分値g
(1)と後述する1ステップ前ゲインgz
-1を入力し、以下の式(23)を用いて、これらの和を計算する。計算した結果は、モデルゲインgとして、制振フィルタ121とゲインメモリ222fへ出力される。
モデルゲインメモリ222fはモデルゲインgを入力し、1サンプリング時間の間、モデルゲインgを保存する。そして、現在保存している1サンプリング時間前のモデルゲインの値を1ステップ間モデルゲインgz-1としてモデルゲイン加算器222eへ出力する。
以上説明したようにモデルゲイン変更部222を図9のような構成にすることで、モデルゲイン変更部222の特性を、実施の形態1のモデルゲイン変更部122の特性と同じにすることが可能となり、離散系のフィルタを用いても実施の形態1と同様の効果が得られる。それにより、マイコンなどを用いて実装することが可能となる。
なお、本実施の形態ではモデルトルクの2階微分τa
(2)が所定の値τa
(2)limit以下となるようにゲイン微分値g
(1)を決定しているが、以下の式(24)を用いることにより、1サンプリング時間Tsf後のモデルトルクの時間微分τa(t+Tsf)
(1)が所定の値τa
(1)limitとなるように決定することも可能である。
ここでTsfはモデルゲイン変更部222のサンプリング時間である。
また、1サンプリング時間Tsf後のモデルトルクの時間微分τa(t+Tsf)(1)が所定の値τa(1)limitとなるように決定することも可能であるため、モデルゲインgを変更した場合にモデルトルクτaが急激に変化することを防止でき、かつモデルトルクの時間微分τa(1)自体を制限することも可能である。
また、本実施の形態では制振フィルタ121の構成は図2の構成であるとして説明したが、図2の構成以外の構成であってもよい。例えば、図3、図7のような構成であっても良い。
実施の形態3.
次に、図10に示す実施の形態3にかかるモータ制御装置300について説明する。以下では、実施の形態1と異なる点を中心に説明する。
本実施の形態のモータ制御装置300と実施の形態1のモータ制御装置100との差異は、実施の形態1ではモデルトルクの2階微分τa(2)が所定の値τa(2)limit以下となるようにモデルゲイン微分値g(1)を求めていたのに対し、本実施の形態はトルク指令τmの2階微分τm(2)が所定の値τm(2)limit以下となるようにモデルゲイン微分値g(1)を決定することにある。なお、以下ではトルク指令τmの2階微分τm(2)が所定の値τm(2)limit以下となるようにして説明するが、一般には、トルク指令τmのn階時間微分(n>1)が所定の値以下となるようにしてモデルゲインgを求めるようにしてもよい。
図10に示すようにモータ制御装置300はフィードフォワード制御部311、フィードバック制御部112、トルク加算器113を備える。なお、フィードバック制御部112とトルク加算器113は実施の形態1と同じ動作をするため説明を割愛する。
フィードフォワード制御部311は、外部から動作指令として動作目標値prefが入力され、モデルゲインgの定常値としてモデルゲイン目標値gcが設定される。フィードフォワード制御部311は、この動作目標値prefに対し、想定した制御対象1がモデルゲインgに基づき設定される伝達関数F(s)の特性で追従するモデル位置paを計算し、このように求めたモデル位置paにモータ1aが一致して動作した場合の理想的な速度であるモデル速度vaと、モデル位置paに想定したモータ1aが一致して動作するための理想的なトルクであるモデルトルクτaを計算する。そして、計算されたモデル位置pa、モデル速度vaはフィードバック制御部112に出力され、モデルトルクτaはトルク加算器113に出力される。
次にフィードフォワード制御部311の内部構成と動作について説明する。フィードフォワード制御部311は、制振フィルタ121、モデルゲイン変更部322を有する。制振フィルタ121の動作は実施の形態1と同じであるため、説明を割愛する。なお、本実施の形態では、制振フィルタ121の構成は図2の構成であるものとして説明する。
モデルゲイン変更322は、モータ制御装置300の外部から入力される動作目標値prefとモデルゲイン目標値gc、制振フィルタ121から出力される内部状態量xaを受け、これらの値に基づき、モデルゲインgが変更された場合のトルク指令τmの2階時間微分τm(2)が所定の値以下τm(2)limitとなるようにモデルゲインgを変更する。変更したモデルゲインgは制振フィルタ121へ出力される。次にモデルゲイン変更部322の動作について図11を用いて説明する。
図11はモデルゲイン変更部322の一例を示した図である。図11のモデルゲイン変更部322は、モデルゲイン減算器122a、モデルゲイン時定数乗算部122b、モデルゲイン微分値リミッタ決定部322c、モデルゲイン微分値リミッタ122d、モデルゲイン積分器122eから構成される。本実施の形態において、モデルゲイン減算器122a、モデルゲイン時定数乗算部122b、モデルゲイン微分値リミッタ122d、モデルゲイン積分器122eの動作は実施の形態1と同じであるため説明を割愛する。ここでは、実施の形態1と異なる動作をするモデルゲイン微分値リミッタ決定部322cの動作について説明する。
モデルゲイン微分値リミッタ決定部322cは、動作目標値grefと内部状態量xaを入力し、トルク指令の2階時間微分τm(2)が所定の値以下τm(2)limitとなるモデルゲインgの時間微分g(1)の範囲を計算する。そして、計算した範囲の内、最大値をモデルゲイン微分値最大制限値g(1)maxとして、最小値をモデルゲイン微分値最小制限値g(1)minとして、モデルゲイン微分値リミッタ122dに出力する。次に、トルク指令の時間微分τm(2)が所定の値以下τm(2)limitとなるモデルゲインgの時間微分g(1)の範囲の計算法について説明する。
フィードバック制御部112がモデル位置paとモータ動作検出値pmの差が十分に小さくなるよう調整されている場合は、モータ制御装置300が出力するトルク指令τmは以下の式(25)で近似出来る。式(25)において、d・vaは粘性摩擦によるトルク指令τmの増加分を表す項であり、c・sgn(va)はクーロン摩擦によるトルク指令τmの増加分を表す項である。また、dは粘性摩擦係数、cはクーロン摩擦係数を表しており、sgn(va)はモデル速度vaの符号を表す関数である。
式(25)を2階微分することにより、トルク指令τmの2階時間微分τm
(2)は以下の式(26)で表すことが可能である。
従って、トルク指令の2階時間微分τm
(2)が所定の値以下となるモデルゲインの時間微分g
(1)の範囲は以下の式(27)で計算できる。そして、計算された範囲を満たす最大値をゲイン微分値最大制限値g
(1)maxとして、最小値をゲイン微分値最小制限値g
(1)minとして、モデルゲイン微分値リミッタ122dに出力する。例えば、γ>0の場合は、式(27)のβがモデルゲイン微分値最大制限値g
(1)maxに、γ<0の場合は、式(27)のαがモデルゲイン微分値最小制限値g
(1)minとなる。
モデルゲイン微分値リミッタ決定部322cからモデルゲイン微分値最大制限値g(1)maxと、モデルゲイン微分値最小制限値g(1)minが出力されると、モデルゲイン微分値リミッタ122dは、式(19)を用いて、リミッタ前モデルゲイン微分値g^(1)がモデルゲイン微分値最小制限値g(1)max以上、かつモデルゲイン微分値最小微分値g(1)min以下となるように、モデルゲイン微分値g(1)を出力する。
モデルゲイン積分器122eはモデルゲイン微分値リミッタ122dよりモデルゲイン微分値g(1)を入力し、式(20)を用いて、モデルゲイン微分値g(1)を積分する。そして、積分した結果をモデルゲインgとして、制振フィルタ121へ出力する。
以上のように実施の形態3によれば、式(25)によりトルク指令τmを推定することで、モデルゲイン目標値gcを変更した場合に、トルク指令τmの2階時間微分τm(2)を所定の値τm(2)limit以下とすることができる。これにより、モデルゲイン目標値gcを変更した場合に、トルク指令τmが急激に変化することが防止でき、またトルク指令τmの絶対値が非常に大きくなることも防止可能である。
また、本実施の形態では制振フィルタ121の構成は図2の構成であるとして説明したが、図2の構成以外の構成であってもよい。例えば、図3、図7のような構成であっても良い。
以上のように、実施の形態1乃至3によれば、モデルトルクまたはトルク指令のn階時間微分が所定の値以下となるようにモデルゲインを変更することで、モデルゲインを変更した場合でもモデルトルク、トルク指令が急激に変化することや、大きくなることを防止できる。また、速度制御においても、同様の効果が得られる。また、モデルトルクもしくは、トルク指令のn階時間微分(n>1)が所定の値以下となるようにモデルゲインの時間微分を計算し、モデルゲインの時間微分に基づきモデルゲインを変更することにより、様々な動作目標値に対しても、モデルゲインを変更した場合にトルク指令が急激に変化することや、大きくなることを防止できる。
実施の形態4.
次に、実施の形態4にかかるモータ制御装置400について説明する。以下では、実施の形態1と異なる点を中心に説明する。図12は、本発明の実施の形態4にかかるモータ制御装置400を示すブロック図である。
本実施の形態のモータ制御装置400と実施の形態1のモータ制御装置100との差異は、実施の形態1はモデルゲイン目標値gcを外部から入力していたのに対し、本実施の形態では、動作目標値prefや内部状態量xaなどからモデルゲイン目標値gcも計算する点にある。
具体的にはモータ制御装置400は、制御対象1の動作位置をフィードバック制御により目標値に追従させる位置制御を行う構成として、駆動する制御対象1の位置目標値を表す動作目標値prefを外部から受けるとともに、検出器2により検出されたモータ動作検出値pmを受ける。そして、モータ制御装置400は、モータ動作検出値pmが動作目標値prefへ追従するようにトルク指令τmを発生させて電流制御器3へ出力する。
図12に示すようにモータ制御装置400はフィードフォワード制御部111、フィードバック制御部112、トルク加算器113、およびモデルゲイン目標値決定部414を備える。なお、フィードフォワード制御部111、フィードバック制御部112、トルク加算器113は実施の形態1と同じ動作であるため、説明を割愛する。
モデルゲイン目標値決定部414は、動作目標値prefと内部状態量xaを入力し、モデルゲインgが定常的には一致すべきモデルゲイン目標値gcを計算し、フィードフォワード制御部111に出力する。
次に、モデルゲイン目標値決定部414によるモデルゲイン目標値gcの計算方法の例について図13を用いて説明する。図13は、本発明の実施の形態4の効果を示す図である。本例では、モータ1aが出力可能なトルクに制限がある場合において有効となるモデルゲイン目標値gcの計算方式を示す。
動作目標値prefの時間微分pref(1)が0になった以後は、フィードフォワード制御部111が出力するモデルトルクτaは大きくならないことが知られている。このため、動作目標値prefの時間微分pref(1)が0となった以後は、モデルゲインgを大きくしてもモデルトルクτaが所定の値τalimit以上となりづらい。図13のモデルゲイン目標値の計算例はこの性質を用いたものである。
図13において、taは動作目標値の時間微分pref(1)が0となった時刻、gcaは時刻ta以前のモデルゲイン目標値gcの値、gcbは時刻ta以後のモデルゲイン目標値gcの値を表している。図13において、時刻0から時刻taまでのモデルゲイン目標値gcはgcaであるため、モデルゲインgもgcaと一致している。時刻taになり、動作目標値prefの時間微分pref(1)が0になると、モデルゲイン目標値決定部414はモデルゲイン目標値gcをgcaからgcbへ変更する。モデルゲイン目標値gcがgcaからgcbへ変更されると、モデルゲイン変更部122が式(14)、式(15)、式(19)、式(20)の計算を行い、モデルゲインgを出力する。
そして制振フィルタ121はモデルゲインへ変更部122が計算したモデルゲインgを用いて、モデル位置pa、モデル速度va、モデルトルクτa、内部状態量xaを計算する。ここで、時刻ta以前のモデルゲイン目標値gcaと、時刻ta以後のモデルゲイン目標値gcbはパラメータとして予め調整しておいても良いし、動作目標値prefや内部状態量xaを用いて計算しもよい。例えば、動作目標値prefの2階微分pref(2)とモータの慣性モーメントJm、機械負荷の慣性モーメントJLなどの値に基づき、モデルトルクτaの値が所定の値τalmiit以下となるようなモデルゲインgを計算し、このモデルゲインgに基づき、時刻ta以前のモデルゲイン目標値gca、時刻ta以後のモデルゲイン目標値gcbを計算しても良い。
以上のように、実施の形態4では、モータ制御装置400において、モデルゲイン目標値決定部414を備えているため、動作目標値prefの値や制振フィルタ121の内部状態量xaに基づき、最適なモデルゲイン目標値gcを計算することが可能となる。よって、さまざまな動作目標値prefに対し、高応答なモータ制御装置を得ることが可能となる。即ち、モデルゲイン目標値gcを外部から入力しないでモータ制御装置の内部で計算することにより、さまざまな動作目標値に対して、モデルトルクやトルク指令を急激に変化させることなく、モデルゲインを最適な値にすることが可能である。
なお、本実施の形態ではフィードフォワード制御部111は実施の形態1と同じ動作をするものとして説明しているが、実施の形態2のフィードフォワード制御部211、実施の形態3のフィードフォワード制御311を用いても同様の効果が得られる。
実施の形態5.
次に、図14を用いて実施の形態5にかかるモータ制御装置500について説明する。以下では、実施の形態3と異なる点を中心に説明する。
本実施の形態のモータ制御装置500と実施の形態3のモータ制御装置300との差異は、実施の形態3はフィードフォワード制御部311がモデル位置pa、モデル速度va、モデルトルクτaを出力していたのに対し、実施の形態5ではモデル位置paを出力する点にある。
具体的にはモータ制御装置500は、制御対象1の動作位置をフィードバック制御により目標値に追従させる位置制御を行う構成として、駆動する制御対象1の位置目標値を表す動作目標値pref、モデルゲイン目標値gcを外部から受けるとともに、検出器2により検出されたモータ動作検出値pmを受ける。そして、モータ制御装置500は、モータ動作検出値pmが動作目標値prefへ追従するようにトルク指令τmを発生させて電流制御器3へ出力する。
図14に示すようにモータ制御装置500はフィードフォワード制御部511、フィードバック制御部512を備える。
次にフィードフォワード制御部511の構成と動作について説明する。フィードフォワード制御部511は外部から動作目標値prefを入力、モデルゲイン目標値gcを設定し、フィードバック制御部512にモデル位置paを出力する。そして、図14に示すように、動作目標値prefとモデルゲインgを入力し、モデル位置pa、内部状態量xaを出力する制振フィルタ521と動作目標値pref、内部状態量xaを入力し、モデルゲインgを出力するモデルゲイン変更部522から構成される。
制振フィルタ521は、モータ制御装置500の外部から動作目標値prefを、後述するモデルゲイン変更部522からモデルゲインgを入力し、モデルゲインgより高周波成分の減衰特性を決定し、決定した減衰特性に基づき、動作目標値prefに含まれる高周波成分と想定した制御対象1の振動周波数(共振・反共振周波数)成分を減衰させた信号から、モデル位置paを計算し、モデル位置paを計算する過程で内部状態量xaを生成する。そして、モデル位置paをフィードバック制御部512に出力し、内部状態量xaをモデルゲイン変更部522に出力する。本実施の形態ではモデル位置paは式(4)、式(5)もしくは式(7)、式(8)から計算されるものとする。
モデルゲイン変更部522は動作目標値pref、モデルゲイン目標値gcを入力し、トルク指令τmの2階微分値τm(2)が所定の値τm(2)limit以下となるようにモデルゲインgを出力する。そして図15に示すように、モデルゲイン変更部522は、モデルゲイン減算値522a、モデルゲイン時定数乗算部522b、モデルゲイン微分値リミッタ決定部522c、モデルゲイン微分値リミッタ522d、モデルゲイン積分器522eから構成される。
モデルゲイン減算値522aはモデルゲイン目標値gcとモデルゲインgを入力し、式(14)を用いて、これらの値の差を計算する。そして、計算した差をモデルゲイン誤差geとして、モデルゲイン時定数乗算部522bに出力する。
モデルゲイン時定数乗算部522bは、モデルゲイン誤差geを入力し、式(15)を用いて、入力されたモデルゲイン誤差geにモデルゲイン時定数gTを掛けて、その積をリミッタ前モデルゲイン微分値g^(1)としてモデルゲイン微分値リミッタ522dに出力する。
モデルゲイン微分値リミッタ決定部522cは、動作目標値prefと制振フィルタ521から出力される内部状態量xaを入力し、トルク指令τmの2階微分τm(2)が所定の値τm(2)limit以下となるようにモデルゲイン微分値g(1)の範囲を計算し、計算した範囲における最大値をモデルゲイン微分値最大制限値g(1)max、最小値をモデルゲイン微分値最小制限値g(1)minとして、モデルゲイン微分値リミッタ522dに出力する。なお、以下ではトルク指令τmの2階微分τm(2)が所定の値τm(2)limit以下となるようにして説明するが、一般には、トルク指令τmのn階時間微分(n>1)が所定の値以下となるようにしてモデルゲインgを求めるようにしてもよい。
次に、本実施の形態におけるトルク指令τmの2階微分τm(2)が所定の値τm(2)limit以下となるようにモデルゲイン微分値g(1)の範囲を決定する方式について説明する。
実施の形態3では、トルク指令τmを式(25)で推定していたが、本実施の形態では、以下の式(28)でトルク指令τmを推定する。
式(28)を時間に関して2階微分すると、以下の式(29)となる。
式(29)と式(26)が同じであるため、トルク指令τmの2階微分τm(2)が所定の値τm(2)limit以下となるようなモデルゲイン微分値g(1)の範囲は式(27)から計算できる。よって、例えば、γ>0の場合は式(27)のβがモデルゲイン微分値最大制限量g(1)max、αがモデルゲイン微分値最小制限量g(1)minに相当し、γ<0の場合はαがモデルゲイン微分値最大制限量g(1)max、βがモデルゲイン微分値最小制限値g(1)minに相当する。
モデルゲイン微分値リミッタ522dはモデルゲイン微分値リミッタ決定部522cからモデルゲイン微分値最小制限値g(1)maxとモデルゲイン微分値最大制限値g(1)minが入力され、式(19)を用いて、モデルゲインの微分値g(1)がモデルゲイン微分値最小制限値g(1)min以上、かつモデルゲイン微分値最大制限値g(1)max以下となるようにモデルゲイン微分値g(1)を制限する。そして、式(19)により制限されたモデルゲイン微分値g(1)をモデルゲイン積分器522eへ出力する。
モデルゲイン積分器522eはモデルゲイン微分値g(1)を入力し、式(20)を用いて、モデルゲイン微分値g(1)を積分する。積分した結果の値をモデルゲインgとして、制振フィルタ521に出力する。
次に、フィードバック制御部512の内部構成とその動作について説明する。フィードバック制御部512は、速度制御器531、位置制御器532、速度演算器133を有する。位置制御器532は、モデル位置paとモータ動作検出値pmを入力し、モータ動作検出値pmとモデル位置paの誤差が減少するように速度指令vuを計算する。そして、計算した速度指令vuを速度制御器531へ出力する。例えば、位置制御器532が比例制御を行う場合、位置比例ゲインをKpとして、式(1)の演算を行い、その計算結果を速度指令vuとして、速度制御器531に出力する。速度演算器133の動作は実施の形態1と同じであるため、説明を割愛する。
速度制御器531は、位置制御器532から出力された速度指令vuと、速度演算器133から出力されたモータ速度演算値vmを受ける。速度制御器531は、すなわちモータ速度演算値vmが速度指令vuに一致するようにPI制御などの演算によりトルク指令τmを計算する。計算されたトルク指令τmは電流制御器3へ出力される。速度制御器531における計算処理の例として、以下の式(30)のようにPI制御とフィルタとの組み合わせがある。式(30)においてsはラプラス演算子、Kvは速度比例ゲイン、Kiは速度積分ゲインである。
以上のように、実施の形態5では、モータ制御装置500において、モデル位置paしか計算しない場合においても、トルク指令の2階微分τm(2)から所定の値τm(2)limit以下となるようにモデルゲインgを変更することができ、モデルゲインgを変更した際に、トルク指令τmが急激に変化したり、大きくなったりすることを防止することが可能となる。また、トルク指令のn階時間微分(n>1)が所定の値以下となるようにモデルゲインを変更することで、モデルゲインを変更した場合でもトルク指令が急激に変化することや、大きくなることを防止できる。また、モデル位置しか計算できない場合でも同様の効果が得られる。また、トルク指令のn階時間微分が所定の値以下となるようにモデルゲインの時間微分を計算し、モデルゲインの時間微分に基づきモデルゲインを変更することにより、様々な動作目標値に対しても、モデルゲインを変更した場合にトルク指令が急激に変化することや、大きくなることを防止できる。
さらに、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、上記実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。