以下に、本発明の実施の形態について、図面を参照して詳細に説明する。なお、以下では、図中の同一又は相当部分には同一符号を付して、その説明は原則的に繰返さないものとする。
実施の形態1.
図1は、実施の形態1に係る電力変換器の制御装置の代表例として示されるDC/DCコンバータの制御装置5aの構成を説明する機能ブロック図である。以下、本実施の形態では、制御対象となる電力変換器としてDC/DCコンバータを例示して説明する。
図1を参照して、制御装置5aの制御対象である電力変換器の一例として示されるDC/DCコンバータ7は、負荷に対して、出力電圧Vout及び負荷電流Ioutの積で示される直流電力を供給する。制御装置5aは、DC/DCコンバータ7の出力電圧Voutを目標電圧Vfに制御する。制御装置5aは、電圧制御部100、入力データファイル110、及び、学習制御部120を備える。出力電圧Vout及び負荷電流Ioutは、図示しない電圧センサ及び電流センサによって検出されて、当該センサによる検出値は、制御装置5aへ入力される。
電圧制御部100は、フィードフォワード(FF)制御判定部10と、フィードフォワード(FF)制御量算出部20と、減算部30と、フィードバック(FB)制御量算出部40と、制御量加算部50と、スイッチング制御信号発生部60とを有する。学習制御部120は、学習データ作成部130と、学習データファイル140と、学習データ処理部150と、ニューラルネットワークデータファイル160とを有する。
制御装置5aは、ハードウェアとしては、図示しない、演算装置、記憶装置、入力回路、及び、出力回路を含むように構成することができる。例えば、演算装置は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)等によって構成することができる。
図1に記載された、制御装置5aを構成する各機能ブロックは、代表的には、上記演算装置が、ROM等の記憶装置に記憶されたソフトウェア(プログラム)を実行し、かつ、記憶装置、入力回路、及び出力回路等の他のハードウェアと協働することにより、各機能を実現することができる。また、各機能ブロックによる機能の一部又は全部について、専用の電子回路(ハードウェア)によって実現することも可能である。又、電圧制御部100、入力データファイル110、及び、学習制御部120の機能を実現するためのハードウェアは、同一のチップに搭載されてもよく、複数のチップに分割して搭載されてもよい。
電圧制御部100は、フィードバック制御及びフィードフォワード制御の組み合わせによって、DC/DCコンバータ7の負荷側における出力電圧Voutについて、目標電圧Vfと一致するとともに、負荷の急峻な変化に対して変動幅を軽減するように制御する。フィードバック制御及びフィードフォワード制御に用いられるゲイン値は、入力データファイル110に保持される。
まず、これらのゲイン値を用いた電圧制御部100による制御動作について説明する。以下では、電圧制御部100による制御動作は、一定の時間刻みΔt毎、即ち、制御周期毎に実行されるものとし、今回の制御周期を第n番目(n:自然数)、前回の制御周期を第(n−1)番目と表記する。以下では、添字(n),(n−1)を付記することにとり、特定の制御周期での値であることを示すものとする。
減算部30は、各制御周期において、目標電圧Vfから出力電圧Voutを減算することによって、目標電圧Vfに対する出力電圧Voutの電圧偏差Uを算出する。従って、U(n)=Vf−Vout(n)で示される。算出された電圧偏差U(n)は、FF制御判定部10及びFB制御量算出部40へ入力される。即ち、出力電圧Voutは「電力変換器の出力」の一実施例に対応し、目標電圧Vfは「電力変換器の目標出力」の一実施例に対応する。又、電圧偏差U(n)は「出力の偏差」の一実施例に対応する。
図2は、FB制御量算出部40の構成をさらに説明する機能ブロック図である。
図2を参照して、FB制御量算出部40は、比例動作部41、積分動作部42、微分動作部43、及び、加算部44を有する。
比例動作部41は、比例ゲインKp及び電圧偏差U(n)の積を比例制御量として出力する。積分動作部42は、電圧偏差U(1)〜U(n)の積分値及び積分ゲインKiの積を積分制御量として出力する。微分動作部43は、電圧偏差U(n)及びU(n−1)の差分値と微分ゲインKdとの積を微分制御量として出力する。
加算部44は、比例制御量、積分制御量、及び、微分制御量を加算して、FB制御量Cfbを算出する。FB制御量Cfb(n)は、各制御周期において算出されて、制御量加算部50へ入力される。
比例ゲインKp、積分ゲインKi及び微分ゲインKdは、図1に示したように、入力データファイル110に保持されており、DC/DCコンバータ7の動作時に、保持されたゲイン値がFB制御量算出部40へ読み込まれる。
図2の構成例では、FB制御量算出部40は、いわゆるPID(Proportional Integral Differential)制御によってフィードバック制御を実現するが、これ以外の手法でフィードバック制御が実現されてもよい。フィードバック制御により、主に、目標電圧Vfに対する出力電圧Voutの定常特性が制御される。FB制御量算出部40は、「フィードバック制御部」の一実施例に対応し、FB制御量Cfb(n)は「第1の制御量」に対応する。
一方で、フィードフォワード制御によって、主に、動作開始時や負荷変動時における出力電圧Voutのアンダーシュートやオーバーシュートが制御される。制御量加算部50には、図1のFF制御量算出部20によって算出されたFF制御量Cff(n)がさらに入力される。
制御量加算部50は、FB制御量算出部40からのFB制御量Cfb(n)と、FF制御量算出部20からのFF制御量Cff(n)とを合算して、合算された電圧制御量Cvo(n)をスイッチング制御信号発生部60へ送出する。
スイッチング制御信号発生部60は、各制御周期において、電圧制御量Cvo(n)に従って、DC/DCコンバータ7の制御信号を生成する。例えば、DC/DCコンバータ7は、トランジスタ等のスイッチング素子(図示せず)のデューティ比制御によって出力電圧Voutを制御するように構成される。本実施の形態では、電圧制御量Cvoスイッチング素子のデューティ比を高くすると出力電圧Voutが上昇し、当該デューティ比を低くすると出力電圧Voutが低下するものとする。この場合には、スイッチング制御信号発生部60は、電圧制御量Cvoの上昇に応じてデューティ比を上昇させる一方で、電圧制御量Cvoの低下に応じてデューティ比を低下させるように、DC/DCコンバータ7の制御信号を生成する。
この結果、スイッチング制御信号発生部60からの制御信号に従ったデューティ比でDC/DCコンバータ7のスイッチング素子がオンオフ制御されることにより、電圧制御量Cvoに従って、出力電圧Voutは目標電圧Vfに制御される。
図3には、出力電圧Voutの波形図の一例が示される。
図3を参照して、出力電圧Voutを0から目標電圧Vfへ立ち上げる際、及び、負荷変動によって目標電圧Vfから外れた出力電圧Voutを目標電圧Vfへ復帰するように制御する際の過渡状態には、いわゆる、オーバーシュート(Vout>Vf)又はアンダーシュート(Vout<Vf)が発生する。
図3のような、出力電圧Voutの上昇を伴う過渡状態では、オーバーシュートにより出力電圧Voutが最大となった後、電圧偏差の絶対値|Vout−Vf|が減衰しながら出力電圧Voutが目標電圧Vfに整定する。この際における、|Vout−Vf|の最大値(即ち、オーバーシュート発生時点での|Vout−Vf|)を最大振幅Wmaxと定義する。
図3と反対に、出力電圧Voutの低下を伴う過渡状態では、アンダーシュートによって出力電圧Voutが最小となった後、電圧偏差の絶対値|Vout−Vf|が減衰しながら出力電圧Voutが目標電圧Vfと一致する。この際における、|Vout−Vf|の最大値(即ち、アンダーシュート発生時点での|Vout−Vf|)が最大振幅Wmaxと定義される。
フィードフォワード制御は、図1に示されたFF制御判定部10及びFF制御量算出部20によって実行される。即ち、FF制御判定部10及びFF制御量算出部20によって、「フィードフォワード制御部」の機能を実現することができる。本実施の形態に係る制御装置5aは、過渡状態における最大振幅Wmaxを許容振幅W0以下とするためにフィードフォワード制御を実行する。
図4には、FF制御判定部10による制御処理を説明するフローチャートが示される。
図4を参照して、FF制御判定部10は、DC/DCコンバータ7の動作が開始されると、ステップS110により、制御開始時(n=1)の初期設定のために、U(n−1)=0に設定する。FF制御判定部10は、ステップS120により、減算部30の出力から、今回の制御周期における電圧偏差U(n)を取得する。さらに、ステップS130では、今回の制御周期の電圧偏差U(n)及び前回の制御周期の電圧偏差U(n−1)の積が負になるか否かが判定される。また、ステップS110では、後述するFF制御フラグFff=“0”に初期設定される。
ステップS130は、U(n−1)<0、かつ、U(n)>0、又は、U(n−1)>0、かつ、U(n)<0のとき、即ち、電圧偏差U(n)及びU(n−1)の極性が異なるときにYES判定とされ、そうでないときにはNO判定とされる。
FF制御判定部10は、電圧偏差U(n)及びU(n−1)の極性が異なる場合(S130のYES判定時)には、ステップS140により、FF制御フラグFff=“1”に設定するとともに、ステップS150により、電圧偏差U(n)及びU(n−1)をFF制御量算出部20へ送信する。さらに、ステップS160により、次回の制御周期に備えて、U(n−1)=U(n)とされる。
一方で、FF制御判定部10は、電圧偏差U(n)及びU(n−1)の極性が同じである場合(S130のNO判定時)には、ステップS145により、FF制御フラグFff=“0”に設定する。さらに、ステップS150をスキップして、処理はステップS160進められる。従って、この場合には、電圧偏差U(n)及びU(n−1)はFF制御量算出部20へ送信されない。
FF制御判定部10は、DC/DCコンバータ7が停止するまでの間(S170のNO判定時)には、ステップS120〜S160による処理を、時間刻みΔt(制御周期)毎に繰り返し実行する。
再び図1を参照して、FF制御量算出部20は、FF制御判定部10からのFF制御フラグFff、並びに、電圧偏差U(n)及びU(n−1)と、図1の入力データファイル110から読み込まれたFF制御ゲインβとを用いて、FF制御量Cffを算出する。
図5には、FF制御量算出部20の制御動作例を説明する概念的な波形図が示される。
図5を参照して、時刻t1〜t5の各タイミングにおいて、出力電圧Voutは目標電圧Vfと交差している。従って、時刻t1〜t5に対応する各制御周期において、Fff=“1”に設定され、それ以外のタイミングの各制御周期ではFff=“0”に設定される。
FF制御量算出部20は、Fff=“1”の制御周期では、式(1)に従ってFF制御量Cff(n)を算出する一方で、Fff=“0”の制御周期では、Cff(n)=0に設定する。
Cff(n)=β・(U(n)−U(n−1)) …(1)
即ち、FF制御量Cff(n)は「第2の制御量」に対応し、電圧偏差U(n)は「第1の電圧偏差」に対応し、電圧偏差U(n−1)は「第2の電圧偏差」に対応する。
この結果、時刻t1に対応する制御周期では、オーバーシュートの振幅を抑制するために、出力電圧Voutを低下する方向に制御量が設定されるように、Cff<0に設定される。一方で、時刻t2に対応する制御周期では、アンダーシュートの振幅を抑制するために、出力電圧Voutを上昇する方向に制御量が設定されるように、Cff>0に設定される。
以降では、時刻t3及びt5に対応する制御周期では、Cff<0に設定される一方で、時刻t4に対応する制御周期では、Cff>0に設定される。時間経過と共に、出力電圧Voutの変化速度が徐々に低下するため、|U(n)−U(n−1)|も徐々に小さくなる。従って、FF制御量の絶対値|Cff|についても、時刻t1〜t5で徐々に小さく算出される。
上述の時刻t1〜t5に対応する制御周期以外では、Cff=0に設定されて、フィーバック制御によって出力電圧Voutが制御される。即ち、フィードフォワード制御は、出力電圧Voutが目標電圧Vfと交差するのに応じて、当該タイミングでの出力電圧Voutの変化(上昇又は低下)を妨げるように作用することができる。
これにより、実施の形態1に従うDC/DCコンバータの制御装置によれば、特許文献1のように、FF制御ゲインの減衰演算、及び、制御周期毎の機械学習演算を伴うことなく、出力電圧Voutを目標電圧Vfに一致させるとともに、過渡状態におけるオーバーシュート及びアンダーシュートを抑制することができる。
次に、フィードフォワード制御に用いられるFF制御ゲインβの設定について詳細に説明する。実施の形態1に係るDC/DCコンバータの制御装置では、FF制御ゲインβは、学習制御部120によるニューラルネットワーク学習によって設定される。
図1に示された、学習データ作成部130は、DC/DCコンバータ7の動作中において、ニューラルネットワーク学習に用いる動作データを収集する。
図6は、学習データ作成部130によるデータ収集処理を説明するフローチャートである。
図6を参照して、学習データ作成部130は、DC/DCコンバータ7の動作が開始されると、ステップS210により、制御に用いられる比例ゲインKp、積分ゲインKi、微分ゲインKd、時間刻み(制御周期)Δt、及び、FF制御ゲインβを、入力データファイル110から読み込む。さらに、ステップS220により、データ収集のための初期設定として、最大振幅実績値WPmax=0及び収集フラグFLG=“1”に設定される。DC/DCコンバータ7の動作中において、出力電圧Voutは、ステップS210で読み込まれた各ゲイン値及び制御周期に従って、電圧制御部100により制御される。
学習データ作成部130は、DC/DCコンバータ7の動作中には、ステップS230により、当該時点での目標電圧Vf、出力電圧Vout、負荷電流Iout、及び、電圧偏差U(U=Vf−Vout)を取得し、ステップS240により、ステップS230で取得した電圧偏差の絶対値|U|がε1よりも小さいか否かを判定する。なお、ε1は、出力電圧Voutが目標電圧Vfに整定しているか否かを判定するための予め定められた基準値である。
学習データ作成部130は、|U|≧ε1のとき(S240のNO判定時)には、ステップS250により、ステップS230で取得した出力電圧Vout及び目標電圧Vfの差分の絶対値|Vf−Vout|が、現在の最大振幅実績値の絶対値|WPmax|よりも大きいか否かを判定する。
|Vf−Vout|>|WPmax|のとき(S250のYES判定時)には、ステップS252により、最大振幅実績値WPmax=|Vf−Vout|に更新される。さらに、ステップS254により、収集フラグFLG=“1”に維持される。
|Vf−Vout|≦|WPmax|のとき(S250のNO判定時)のときには、処理は、ステップS252をスキップして、ステップS254へ進められる。従って、最大振幅実績値WPmaxは現在値に維持されたまま、収集フラグFLG=“1”に維持される。
一方で、学習データ作成部130は、|U|<ε1のとき(S240のYES判定時)には、ステップS260により、収集フラグFLG=“1”であるか否かを判定する。収集フラグFLG=“1”のとき(S260のYES判定時)、即ち、|U|≧ε1から|U|<ε1へ変化したタイミングであれば、ステップS272により、収集フラグFLG=“0”に変化するとともに、ステップS274により、当該時点での動作データ及びFF制御ゲインβが、学習データとして学習データファイル140へ書き込まれる。
例えば、動作データには、ステップS210で読み込まれた制御用パラメータである、比例ゲインKp、積分ゲインKi、微分ゲインKd、及び、時間刻みΔtと、当該時点での出力電圧Vout、負荷電流Iout、及び、最大振幅実績値WPmaxとの合計7個のデータが含まれる。さらに、学習データ作成部130は、ステップS276では、現在の最大振幅実績値WPmaxが学習データファイル140に書き込まれたのに伴い、再びWPmax=0に初期化する。
なお、ステップS260において、FLG=“0”のとき(NO判定時)には、ステップS272〜S276の処理はスキップされる。即ち、|U|<ε1が連続する場合には、学習データファイル140への学習データの書込は実行されない。
学習データ作成部130は、DC/DCコンバータ7が停止するまでの間(S280のNO判定時)、ステップS230〜S276による処理を繰り返し実行する。当該繰り返しの周期は、電圧制御部100による制御周期Δtと同等であることが好ましい。
ステップS230〜S276によれば、出力電圧Voutが目標電圧Vfに整定していない非定常期間(FLG=“1”)では、ステップS250〜S254により最大振幅実績値WPmaxが抽出される。そして、出力電圧Voutが目標電圧Vfに整定した定常期間(FLG=“0”)へ遷移すると、それまでの非定常期間における最大振幅実績値WPmaxが他の動作データ及びFF制御ゲインβとともに収集されて、学習データファイル140へ書き込まれる。即ち、非定常期間から定常期間への遷移に応じてステップS274が実行される毎に、最大振幅実績値WPmaxを含む動作データ及びFF制御ゲインβから構成される学習データが1組収集される。このときのFF制御ゲインβの値は「実績ゲイン値」に対応する。
従って、DC/DCコンバータ7の動作中において、上述の学習データを複数組収集して、学習データファイル140に格納することができる。以下では、学習データ作成部130によりJ組(J:2以上の整数)の学習データが収集されて、学習データファイル140に格納されているものとする。
学習データ処理部150は、学習データファイル140、ニューラルネットワークデータファイル160及び入力データファイル110との間のデータ授受を伴って、FF制御ゲインβを算出する。算出されたFF制御ゲインβは、入力データファイル110に書き込まれて、DC/DCコンバータ7の動作時に、電圧制御部100によるフィードフォワード制御に用いられる。
図7は、学習データ処理部150によるFF制御ゲインの算出処理を説明するフローチャートである。
図7を参照して、学習データ処理部150は、ステップS300により、比例ゲインKp、積分ゲインKi、微分ゲインKd、及び、時間刻み(制御周期)Δt、並びに、許容振幅W0、最小電力Pmin、最大電力Pmax、及び、分割数Nを、入力データファイル110から読み込む。
最小電力Pmin及び最大電力Pmaxは、DC/DCコンバータ7の定格電力範囲に対応させて設定することができる。又、許容振幅W0は、最大振幅Wmaxの許容上限値に相当する。
学習データ処理部150は、さらに、ステップS400により、学習データファイル140に格納された学習データを用いて、ニューラルネットワークを作成する。ステップS400による処理によって「第1の算出部」の機能が実現される。
さらに、学習データ処理部150は、ステップS500により、ステップS400で作成されたニューラルネットワークを用いて、Wmax(WPmax)≦W0となるようにFF制御ゲインβを算出する。分割数Nは、ステップS500の算出処理で用いられる、予め定められた整数である。ステップS500による処理によって「第2の算出部」の機能が実現される。
図8には、ステップS400のニューラルネットワーク作成ルーチンの詳細を説明するフローチャートが示される。
図8を参照して、学習データ処理部150は、ステップS410により、ニューラルネットワークの構造を設定するとともに、ステップS420により、ニューラルネットワーク内の重み係数の初期値を設定する。
図9には、ニューラルネットワークの構造の一例が示される。
図9を参照して、ニューラルネットワーク200は、入力層を構成するKa個(Ka:2以上の整数)のニューロンと、出力層を構成するKb個(Kb:自然数)のニューロンNoと、入力層及び出力層の間に接続された隠れ層を構成する複数のニューロンとを含む。図9の例では、Ka=6、かつ、Kb=1であるので、入力層には、ニューロンN11〜N16が配置され、出力層には1個のニューロンNoが配置される。
隠れ層は、M層に亘って最大L個(M,L:2以上の整数)のニューロンが相互接続されて構成される。上述のパラメータK1,K2,M,LをステップS410で決定することにより、ニューラルネットワーク200の構造が設定される。図9中に円記号で表記した各ニューロンについて、「1」と表記されたニューロンにはバイアス値が入力されており、その他のニューロンには、活性化関数が入力される。例えば、活性化関数にはシグモイド関数を用いることができるが、公知の任意の活性化関数を適用することができる。このように、入力層、隠れ層、出力層の数、及び、各層のニューロン数によって、ニューラルネットワーク200の構造が設定される。
図10には、ニューロン間の重み係数を説明する概念図が示される。
図10を参照して、ニューラルネットワーク200内で相互接続された複数のニューロンについて、2個のニューロン間の各接続に対して重み係数が設定される。図10の例では、相互接続された、第(j−1)層の第x番目のニューロンN(x,j−1)と、第j層の第y番目のニューロンN(y,j)との間には、重み係数W(xy,j)が設定される。
なお、ニューロンN(x,j−1)は、第j層及び第(j−2)層の他のニューロン(複数個)とも接続されており、当該他のニューロンの各々との間には別個の重み係数が設定される。同様に、ニューロンN(y,j)についても、第(j−1)層及び第(j+1)層の他のニューロン(複数個)とも接続されており、当該他のニューロンの各々との間には別個の重み係数が設定される。ステップS420では、例えば乱数を用いて、各重み係数の初期値が設定される。
再び図8を参照して、学習データ処理部150は、ステップS430により、学習データファイル140に格納されたJ組の学習データを読み込む。本実施の形態では、学習データとして、比例ゲインKp(i)、積分ゲインKi(i)、微分ゲインKd(i)、時間刻みΔt(i)、出力電圧Vout(i)、負荷電流Iout(i)、最大振幅実績値WPmax(i)、及び、FF制御ゲインβ(i)が、i=1〜Jにわたって読み込まれる。即ち、添字(i)は、第i組目(i=1〜J)の学習データであることを区別するために付されている。
学習データ処理部150は、ステップS440により、学習データの各組について、電力P(i)を求める。具体的には、P(i)=Vout(i)・Iout(i)により演算される。さらに、学習データ処理部150は、ステップS450により、学習データの各組のFF制御ゲインβ(1)〜β(J)の加重平均による平均値βavを算出する。さらに、ステップS455により、平均値βavに予め定められた係数αを掛けることにより、後述のステップS465での収束判定に用いられる判定値ε2が設定される(ε2=βav・α)。例えば、α=0.01に設定することができる。
学習データ処理部150は、ステップS460により、ニューラルネットワーク200(S410)の重み係数の修正演算を実行する。
再び図9を参照して、ニューラルネットワーク200の入力層を構成するニューロンN11〜N16の各々に学習データが入力される。図9の例では、学習データに含まれる出力電圧Vout(i)及び負荷電流Iout(i)は、電力P(i)として入力される。即ち、本実施の形態において、収集された学習データの各々は、そのまま入力層に設定されてもよく、予め定められた定数又は他の学習データとの演算等による加工後に入力層に設定されてもよい。
上記のように入力層が設定された状態で、出力層のニューロンNoの値が、FF制御ゲイン(即ち「実績ゲイン値」)β(i)と一致するように各重み係数の値が修正される。重み係数の修正処理には、例えば、誤差逆伝搬法を用いることが可能であるが、公知の任意の手法を適用することが可能である。ステップS460の処理が学習データの各組(i=1〜J)について実行されると、ステップS465による収束判定が実行される。
ステップS465では、学習データの各組(i=1〜J)での出力層の値Y(i)と、FF制御ゲインβ(i)との2乗誤差の総和Eが、ステップS455で設定された判定値ε2よりも小さいか否かが判定される。即ち、ステップS455では、下記の式(2)が成立するか否かが判定される。式(2)中の“Σ”は、i=1〜Jの総和を示す。
E=(1/2)・Σ(Y(i)−β(i))<ε2 …(2)
学習データ処理部150は、式(2)による収束判定が成立するまで(S465のNO判定時)、ステップS460による重み係数の修正を繰り返し実行する。収束判定が成立すると(S465のYES判定時)、ステップS470により、ニューラルネットワーク200の構造(即ち、入力層、隠れ層、出力層の数、及び、各層のニューロン数)、並びに、ニューロン間の各接続における重み係数の収束値を示すデータが、ニューラルネットワークデータファイル160へ書き込まれる。
このようにして、ステップS400(図7)でのニューラルネットワーク作成ルーチンの処理が終了すると、ステップS500(図7)によるFF制御ゲイン算出ルーチンが続いて実行される。
図11には、FF制御ゲイン算出ルーチンの詳細を説明するフローチャートが示される。
図11を参照して、学習データ処理部150は、ステップS510により、ニューラルネットワークデータファイル160から、ニューラルネットワーク作成ルーチンで求められた、ニューラルネットワーク200の構造及び重み係数を示すデータを読み込む。
学習データ処理部150は、電力レベルに応じて非定常期間の電圧変化速度が変わることを考慮して、複数の電力レベルで別個に算出処理を実行する。このため、学習データ処理部150は、ステップS520により、演算のための電力刻みΔPを、ステップS300(図7)で読み込まれた最大電力Pmax、最小電力Pmin、及び、分割数Nから、式(3)によって算出する。
ΔP=(Pmax−Pmin)/N …(3)
さらに、学習データ処理部150は、ステップS530により、カウント値k=0に初期化するとともに、ステップS535により、FF制御ゲインβ=0に初期化する。
学習データ処理部150は、ステップS540により、カウント値kを1増加すると、ステップS545により、増加後のカウント値kが(N+2)に達していないか判定する。k<(N+2)のとき(S545のNO判定時)には、ステップS550により、現在のカウント値kに対する電力P(k)が、下記の式(4)によって算出される。式(4)より、P(1)=Pmin、かつ、P(k+1)=Pmaxであることが理解される。
P(k)=Pmin+(k−1)・ΔP …(4)
学習データ処理部150は、ステップS555,S560により、ステップS510で読み込んだニューラルネットワーク200を用いて、FF制御ゲインのゲイン候補値β(k)を算出する。
図12には、FF制御ゲイン算出ルーチンで用いられるニューラルネットワークの構造を説明する概念図が示される。
図12を参照して、ニューラルネットワーク200は、図9と同一の構造を有し、かつ、ニューロン間の各重み係数は、ニューラルネットワーク作成ルーチン(図8)で求められた値(収束値)に設定されている。
ステップS555では、入力層のニューロンN11〜N16のうち、ニューロンN11〜N14には、図9と同様に、比例ゲインKp、積分ゲインKi、微分ゲインKd、及び、時間刻みΔtについて、ステップS300での入力値が設定される。又、ニューロンN16には、図9と同様の電力Pとして、ステップS550で算出されたP(k)が入力される。
さらに、ニューロンN15には、図9での最大振幅実績値WPmaxに代えて、ステップS300で入力された許容振幅W0が入力される。この結果、ステップS560により、出力層のニューロンNoでは、ニューロンN11〜N14,N16に設定された動作データでの作動時において、最大振幅Wmaxが許容振幅W0となるようなゲイン候補値β(k)が得られることになる。
学習データ処理部150は、ゲイン候補値β(k)が得られると、ステップS570により、β(k)と、ステップS535で初期化されたFF制御ゲインβとを比較する。β(k)>βのとき(S570のYES判定時)には、β=β(k)に更新した上で、処理はステップS540に戻される。一方で、β(k)≦βのとき(S570のNO判定時)には、ステップS575はスキップされるので、FF制御ゲインβを更新せずに、処理はステップS540に戻される。
ステップS540では、カウント値kが現在値より1増加されて、ステップS545での判定が実行される。これにより、ステップS545がYES判定となるまで、k=1〜N+1のN回に亘って、ステップS545〜S575の処理が実行される。
この結果、PminからPmaxまでの範囲内でΔPずつ増加された電力P(k)のそれぞれに対してゲイン候補値β(k)が算出されるとともに(k:1〜N+1)、β(k)のうちの最大値が抽出されて、FF制御ゲインβに設定される。
学習データ処理部150は、N回の繰り返し演算が終了すると(S545のYES判定時)、ステップS590に処理を進めて、入力データファイル110に対して、比例ゲインKp、積分ゲインKi、微分ゲインKd、時間刻みΔt、許容振幅W0、最大電力Pmax,及び、最小電力Pminの動作データと組み合わせて、FF制御ゲインβを書き込む。これにより、上記動作データによるDC/DCコンバータ7の動作時における最大振幅Wmaxを許容振幅W0以下とするための、FF制御ゲインβを設定することができる。
電圧制御部100は、DC/DCコンバータ7の動作開始時に、入力データファイル110から、比例ゲインKp、積分ゲインKi、微分ゲインKd、時間刻みΔt、及び、FF制御ゲインβを読み出すことにより、出力電圧Voutを適切に制御することができる。
このように、実施の形態1に従うDC/DCコンバータの制御装置では、図1〜図5で説明したフィードフォワード制御に用いられるFF制御ゲインβを、ニューラルネットワークを用いて、最大振幅Wmaxが許容振幅W0以下となるように設定することができる。
特に、学習データ作成部130がDC/DCコンバータ7の動作時に収集した学習データを用いて、学習データ処理部150は、DC/DCコンバータ7の停止時に、ニューラルネットワークの作成処理(S400)及びFF制御ゲインの算出処理(S500)を実行することができるので、制御周期毎の機械学習演算が必要となる特許文献1と比較して、演算負荷の軽減を図ることができる。なお、上記ステップS400,S500の処理の少なくとも一部については、DC/DCコンバータ7の動作時に実行することも可能であるが、少なくとも、収束判定を伴う繰返し計算を伴うニューラルネットワークの作成(S400)については、DC/DCコンバータ7の停止中に実行することが好ましい。
実施の形態1の変形例.
実施の形態1の変形例では、学習データ処理部150によるFF制御ゲインの算出処理(S500)の変形例を説明する。
図13は、実施の形態1の変形例に係るDC/DCコンバータの制御装置におけるFF制御ゲイン算出ルーチンを説明するフローチャートである。即ち、実施の形態1の変形例では、図8のステップS500(FF制御ゲインの算出ルーチン)において、図11のフローチャートに代えて図13に示すフローチャートが実行される。
図13を参照して、学習データ処理部150は、図11と同様のステップS510〜S560を実行するとともに、ステップS560に続いて、ステップS580を実行した後に、ステップS540に処理を戻す。
学習データ処理部150は、ステップS580により,現在のカウント値kに対応する電力P(k)及びゲイン候補値β(k)を都度記憶する。従って、ステップS510〜S580により、電力P(1)〜P(N+1)及びゲイン候補値β(1)〜β(N+1)が記憶される。
学習データ処理部150は、N回の繰り返し演算が終了すると(S545のYES判定時)、ステップS590により、比例ゲインKp、積分ゲインKi、微分ゲインKd、時間刻みΔt、許容振幅W0、最大電力Pmax,及び、最小電力Pminに加えて、電力P(1)〜P(N+1)及びゲイン候補値β(k)を入力データファイル110へ書き込む。
これにより、実施の形態1の変形例では、Pmin〜Pmaxの範囲内の電力P(1)〜P(N+1)のそれぞれに対応して、各電力レベルで最大振幅Wmaxを許容振幅W0以下とするためのゲイン候補値β(1)〜β(N+1)が入力データファイル110へ書き込まれる。これにより、入力データファイル110において、FF制御ゲインβを設定するためのマップを作成することができる。
図14を参照して、マップ300は、電力P(1)〜P(N+1)におけるゲイン候補値β(1)〜β(N+1)をプロットすることによって構成することができる。マップ300上において、P(1)〜P(N+1)は、最小電力Pmin〜最大電力Pmaxの範囲をカバーしている。又、P(k)及びP(k+1)の間の中間的な電力値については、線形補間によって、ゲイン候補値β(k)及びβ(k+1)の中間値を設定することができる。
電圧制御部100は、DC/DDCコンバータ7の動作開始時に、入力データファイル110から、比例ゲインKp、積分ゲインKi、微分ゲインKd、時間刻みΔtとともに、マップ300の構成データを読み出す。さらに、電圧制御部100のFF制御量算出部20は、図15のフローチャートに示す制御処理によって、フィードフォワード制御を実行する。
図15を参照して、FF制御量算出部20は、時間刻みΔt経過毎の各制御周期において、ステップS610の処理を起動する。FF制御量算出部20は、ステップS610により、FF制御判定部10からのFF制御フラグFff=“1”であるか否かを判定し、Fff=“0”のとき(S610のNO判定時)には、ステップS650により、FF制御量Cff(n)=0に設定する。
一方で、FF制御量算出部20は、Fff=“1”のとき(S610のYES判定時)には、ステップS620により、目標電圧Vf及び負荷電流Ioutの乗算により現在の電力レベルPrを算出する。FF制御量算出部20は、ステップS630により、ステップS620で算出した電力レベルPrを用いてマップ300を参照することにより、FF制御ゲインβを設定する。
さらに、FF制御量算出部20は、ステップS640により、ステップS630で設定されたFF制御ゲインβを用いて、上述の式(1)に従ってFF制御量Cff(n)を算出する(Cff(n)=β・(U(n)−U(n−1))。
実施の形態1の変形例において、FF制御ゲインの設定以外は実施の形態1と同様であるので詳細な説明は繰り返さない。このように、実施の形態1の変形例では、マップ300を用いて設定されたFF制御ゲインを用いて、実施の形態1と同様のフィードフォワード制御を実行することができる。なお、FF制御量算出部20は、図15のフローチャートにおいて、ステップS620を省略するとともに、ステップS630では、FF制御ゲインβを入力データファイル110から読み出した固定値とすることで、実施の形態1で説明した機能を実現することができる。
この結果、実施の形態1の変形例に係る制御装置によれば、DC/DCコンバータ7の電力レベルの変化に応じてFF制御ゲイン値を適切に変化させることができるので、実施の形態1での効果に加えて、広範な電力範囲でDC/DCコンバータ7が動作する場合にも、オーバーシュート及びアンダーシュートをフィードフォワード制御によって抑制することができる。
実施の形態2.
図16は、実施の形態2に係るDC/DCコンバータの制御装置の構成を説明する機能ブロック図である。
図16を参照して、実施の形態2に係るDC/DCコンバータの制御装置5bは、電圧制御部100と、入力データファイル110とを備える。電圧制御部100は、実施の形態1と同様に構成されて、図2で説明したフィードバック制御と、図4及び図5で説明したフィードフォワード制御とを組み合わせて、DC/DCコンバータ7の出力電圧Voutを目標電圧Vfに制御する。
実施の形態2では、フィードフォワード制御におけるFF制御ゲインβは、予め決定されて入力データファイル110に書き込まれたゲイン値に設定される。即ち、電圧制御部100による、電圧偏差U(n)の極性が反転した制御周期のみでFF制御量を算出する一方で、それ以外の制御周期ではFF制御量をゼロとするフィードフォワード制御と、フィードバック制御との組み合わせによる出力電圧制御は、FF制御ゲインβの算出手法を制限することなく実現することが可能である。
実施の形態3.
実施の形態1で説明したフィードフォワード制御では、目標電圧Vf及び出力電圧Voutの交差が検出された制御周期から1周期のみ(即ち、当該制御周期のみ)でFF制御量を算出したが、実施の形態3では、上記交差の検出をトリガに、複数の制御周期に亘ってFF制御量を算出するフィードフォワード制御を説明する。
図17は、実施の形態3に係るDC/DCコンバータの制御装置の構成を説明する機能ブロック図である。
図17を参照して、実施の形態3に係るDC/DCコンバータの制御装置5cは、実施の形態1に係るDC/DCコンバータの制御装置5a(図1)と比較して、FF制御判定部10がFF制御判定部10Aに変更されている点で異なる。DC/DCコンバータの制御装置5cのその他の構成は、DC/DCコンバータの制御装置5aであるので詳細な説明は繰り返さない。したがって、実施の形態3に係るDC/DCコンバータの制御装置5cでは、FF制御量Cff(n)の算出処理のみが実施の形態1と異なっており、その他の制御演算は、実施の形態1と同様である。
図18は、図17に示されたFF制御判定部10Aの制御処理を説明するフローチャートである。
図18を参照して、FF制御判定部10Aは、DC/DCコンバータ7の動作が開始されると、図4と同様のステップS110〜S130により、今回の制御周期での電圧偏差U(n)の極性が前回の制御周期における電圧偏差U(n−1)から逆転したか否かを判定することにより、目標電圧Vf及び出力電圧Voutの交差を検出する。
FF制御判定部10Aは、電圧偏差U(n)及びU(n−1)の極性が異なる制御周期では(S130のYES判定時)、目標電圧Vf及び出力電圧Voutの交差を検出して、図4と同様のステップS140及び150を実行する。これにより、FF制御フラグFff=“1”に設定されるとともに、電圧偏差U(n)及びU(n−1)がFF制御量算出部20へ送信される。この結果、当該制御周期からFF制御の算出が開始される。
さらに、FF制御判定部10Aは、ステップS112〜S116により、FF制御の継続判定フラグFfigを設定する。具体的には、S112では、電圧偏差U(n)の極性が判定され、U(n)>0のとき(S112のYES判定時)、即ち、Vf−Vout>0によるアンダーシュートの発生時には、ステップS114により、Ffig=“+1”に設定される。一方で、U(n)≦0のとき(S112のNO判定時)、即ち、Vf−Vout<0によるオーバーシュートの発生時には、ステップS116により、Ffig=“−1”に設定される。さらに、ステップS112〜S116の後、図4と同様の、ステップS160により、次回の制御周期に備えて、U(n−1)=U(n)とされる。
一方で、FF制御判定部10Aは、電圧偏差U(n)及びU(n−1)の極性が同じである場合(S130のNO判定時)には、ステップS131により、FF制御フラグFff=“0”であるか否かを判定する。Fff=“0”であり、前回の制御周期でFF制御量が算出されていない場合(S131のYES判定時)には、図4と同様のステップS145により、FF制御フラグFff=“0”に設定する。従って、当該制御周期では、FF制御量算出部20は、Cff(n)=0に設定する。
これに対して、FF制御判定部10Aは、FF制御フラグFff=“1”であり、前回の制御周期でFF制御量が算出されている場合(S131のNO判定時)には、ステップS132〜S139によるFF制御量算出の継続判定を実行する。
ステップS132では、S114で設定された継続判定フラグFfigの極性が判定される。Ffig>0、即ち、Ffig=“+1”のとき(S132のYES判定時)、即ち、アンダーシュートの発生によりフィードフォワード制御が開始された場合には、ステップS134に処理を進めて、今回の制御周期の電圧偏差U(n)が前回の制御周期での電圧偏差U(n−1)よりも大きいか否かが判定される。U(n)>U(n−1)のとき(S134のYES判定時)には、S135により、FF制御フラグFff=“1”に維持されて、当該制御周期においてもFF制御量の算出が継続される。これに対して、U(n)≦U(n−1)のとき(S134のNO判定時)には、S136により、FF制御フラグFff=“0”に設定されて、当該制御周期においてもFF制御量の算出が終了される。
反対に、Ffig=“−1”のとき(S132のNO判定時)、即ち、オーバーシュートの発生によりフィードフォワード制御が開始された場合には、ステップS137に処理を進めて、今回の制御周期の電圧偏差U(n)が前回の制御周期での電圧偏差U(n−1)よりも小さいか否かが判定される。U(n)<U(n−1)のとき(S137のYES判定時)には、S138により、FF制御フラグFff=“1”に維持されて、当該制御周期においてもFF制御量の算出が継続される。これに対して、U(n)≧U(n−1)のとき(S137のNO判定時)には、S139により、FF制御フラグFff=“0”に設定されて、当該制御周期においてもFF制御量の算出が終了される。
図19には、オーバーシュートの発生に対応してフィードフォワード制御が開始されたときの継続判定処理の一例が示される。
図19を参照して、時刻t1において、Vout<Vf、即ち、U(n−1)>0から、Vout>Vf、即ち、U(n)<0に極性が変化することによって、Fff=“1”に設定されて(S140)、FF制御量Cffの算出が開始される。この場合には、Ffig=“−1”であるので、S137〜S139による判定が実行される。
Ffig=“−1”のときにはU(n)<0であるため、出力電圧Voutが上昇して、電圧偏差が拡大、即ち、|U(n)|が増大する期間では、U(n)<U(n−1)である。一方で、出力電圧Vout、即ち、電圧偏差U(n)が時刻t1xの制御周期で極大値に達すると、次回の制御周期である時刻t1x+Δtでは、|U(n)|が減少するため、U(n)>U(n−1)となることが理解される。
したがって、S137〜S139による判定の結果、時刻t1〜t1xの期間内の制御周期では、S137がYES判定とされて、FF制御フラグFff=“1”に維持されて(S138)、FF制御量Cffの算出は継続される。一方で、時刻t1x+Δtの制御周期では、S137がNO判定とされて、FF制御フラグFff=“0”に設定されることにより(S139)、FF制御量Cffの算出は終了される。
図20には、アンダーシュートの発生に対応してフィードフォワード制御が開始されたときの継続判定処理の一例が示される。
図20を参照して、時刻t2において、Vout>Vf、即ち、U(n−1)<0から、Vf>Vout、即ち、U(n)>0に極性が変化することによって、Fff=“1”に設定されて(S140)、FF制御量Cffの算出が開始される。この場合には、Ffig=“+1”であるので、S134〜S136による判定が実行される。
Ffig=“+1”のときにはU(n)>0であるため、出力電圧Voutが低下して、電圧偏差が拡大、即ち、|U(n)|が増大する期間では、U(n)>U(n−1)である。一方で、電圧偏差U(n)が時刻t2xの制御周期で極小値に達すると、次回の制御周期である時刻t2x+Δtでは、|U(n)|が減少するため、U(n)<U(n−1)となることが理解される。
したがって、S134〜S136による判定の結果、時刻t2〜t2xの期間内の制御周期では、S134がYES判定とされて、FF制御フラグFff=“1”に維持されて(S135)、FF制御量Cffの算出は継続される。一方で、時刻t2x+Δtの制御周期では、S134がNO判定とされて、FF制御フラグFff=“0”に設定されることにより(S136)、FF制御量Cffの算出は終了される。
このように、ステップS132〜S139によるFF制御量算出の継続判定によれば、オーバーシュート又はアンダーシュートの発生に応じて開始されたFF制御量Cffの算出は、出力電圧Voutが極値(極大値又は極小値)に達するまでの複数の制御周期にわたって継続される。
再び図17を参照して、FF制御量算出部20は、実施の形態1及びその変形例、又は、実施の形態2と同様に設定されたFF制御ゲインβ及び演算式に従って、FF制御判定部10AからのFF制御フラグFff、並びに、電圧偏差U(n)及びU(n−1)を用いてFF制御量Cffを算出する。
図21には、実施の形態3に係るFF制御量算出部20の制御動作例を説明する概念的な波形図が示される。
図21を参照して、時刻t1,t3,t5に対応する制御周期では、オーバーシュートの振幅を抑制するために、出力電圧Voutを低下する方向に制御量が設定された(Cff<0)フィードフォワード制御が開始される。オーバーシュートの発生に応じて開始されたフィードフォワード制御は、時刻t1x,t3x,t5xにおいて、出力電圧Voutが極大値に達して減少に転じるまで、継続される。
これに対して、時刻t2,t4に対応する制御周期では、アンダーシュートの振幅を抑制するために、出力電圧Voutを上昇する方向に制御量が設定された(Cff>0)フィードフォワード制御が開始される。アンダーシュートの発生に応じて開始されたフィードフォワード制御は、時刻t2x,t4xにおいて、出力電圧Voutが極小値に達して増加に転じるまで、継続される。
尚、図18に例示した制御処理では、ステップS135,S138において電圧偏差U(n),U(n−1)は送信されないため、フィードフォワード制御の開始時、即ち、時刻t1、t2、t3、t4、及び、t5のそれぞれにおいてステップS150で送信された電圧偏差U(n),U(n−1)に基づくFF制御量が、時刻t1〜t1x間、時刻t2〜t2x間、時刻t3〜t3x間、時刻t4〜t4x間、及び、時刻t5〜t5x間のそれぞれで、同一値に維持されている。但し、ステップS135,S138において当該制御周期での電圧偏差U(n),U(n−1)を都度送信して、FF制御量を更新することも可能である。
以上説明したように、実施の形態3に係るDC/DCコンバータの制御装置では、目標電圧Vf及び出力電圧Voutの交差が検出された制御周期から、出力電圧Vout、即ち、電圧偏差U(n)が極値(極大値又は極小値)に達するまでの複数の制御周期にわたってFF制御量を算出する態様で、過渡状態におけるオーバーシュート及びアンダーシュートを抑制することができる。即ち、本実施の形態に係る制御装置では、目標電圧Vf及び出力電圧Voutの交差の検出に応じて開始されるフィードフォワード制御において、FF制御量が算出される制御周期の数は特に限定されないことが理解される。
又、本実施の形態に係る電力変換器の制御装置について、実施の形態1及びその変形例、並びに、実施の形態2及び3では、制御対象としてDC/DCコンバータを例示したが、DC/DCコンバータについて、出力電圧以外の出力(出力電流、出力電力等))の制御にも、実施の形態1及びその変形例、実施の形態2、又は、実施の形態3に係る制御装置を適用することが可能である。即ち、制御量に従った制御信号の変化に応じて出力(出力電圧、出力電流、出力電力等)が変化するのであれば、任意の回路構成及び入出力特性(非線形特性を含む)のDC/DCコンバータの出力を、実施の形態1及びその変形例、実施の形態2、又は、実施の形態3に係る制御装置によって制御することが可能である。
さらに、制御対象はDC/DCコンバータに限定されるものではなく、AC/DCコンバータ、DC/ACコンバータ等の他の電力変換器を制御対象としても、当該電力変換器の出力(電圧、電流、又は、電力等)について、実施の形態1及びその変形例、実施の形態2、又は、実施の形態3に係る制御装置によって制御することが可能である。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。