(57)【要約】【課題】ＨＩＬＳのシミュレーション計算部分のようなループするシミュレーション計算において計算安定性を向上させる。【解決手段】入力インターフェース１３に入力される電圧を取得する入力部２’は端子電圧を一定時間間隔で検出して汎用計算部１１のメモリに格納する。出力インターフェース１４の出力電圧を設定する出力部４’は端子からの出力電圧を一定時間間隔で変更する。計算アルゴリズム１２は出力が時間と共に増大しないことがどのような入力部端子電圧の時刻暦応答及び前記物理モデルに対しても保証されている。汎用計算部１１による計算の計算周期により出力値が計算される周期が前記入力及び出力インターフェースの間隔よりも短い。【選択図】図２
2014199635.tif 000002
【特許請求の範囲】
【請求項１】
電圧を受け付ける入力インターフェースと、
前記入力インターフェースに入力された電圧を取得し、当該電圧に対応する情報を汎用計算部に格納する入力部と、
特定の物理系を表現する物理モデルを備え、前記電圧に対応する情報に基づき支配方程式の値と付帯情報を算出する機能を持つモデル計算部と、
アルゴリズムを有し、前記支配方程式の値と付帯情報に基づき状態量を算出する前記汎用計算部と、
前記汎用計算部から得られた状態量から出力電圧を求め、出力インターフェースへ出力する出力部と、
前記出力電圧の出力を行う前記出力インターフェースと、
出力電圧が計算される周期が前記入力インターフェース及び前記出力インターフェースが電気信号を入力又は出力する間隔よりも短いことを特徴とする計算装置。
【請求項２】
前記モデル計算部により算出される付帯情報は、物理系の特定の時刻での状態量を元に線形近似を行った結果得られる行列であり、前記汎用計算部により算出された状態量が連立方程式により得られることを特徴とする請求項１に記載の計算装置。
【請求項３】
前記行列が常に一定であることを特徴とする請求項２に記載の計算装置。
【請求項４】
機械の挙動を模擬するシミュレーションシステムであって、
前記機械の電気系入力と互換性を持つ入力インターフェースと、
前記機械の電気系出力と互換性を持つ出力インターフェースと、
請求項１から３のいずれか１項に記載の計算装置と、前記計算装置に内蔵または外付けされた記憶メモリと、
を持ち、
前記記憶メモリは、計算装置の計算機能を規定する計算機能と機械を特定する保管パラメータを含み、
前記計算機能と前記保管パラメータは、単一の計算実行ファイルに含まれることを特徴とし、
前記保管パラメータは、人間に可読な単一または複数のパラメータファイルからなるパラメータファイル群を元に生成され、
前記計算機能は、前記出力インターフェースの出力値を決定する機能を持ち、
前記出力値は、前記入力インターフェースからの入力値と前記記憶メモリ内の計算機能及び保管パラメータを用いて任意時間以内に決定されることが保証されていること
を特徴とするシミュレーションシステム。
【請求項５】
前記保管パラメータを前記計算実行ファイルの内に複数保持することを特徴とする請求項４に記載のシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算装置及びシミュレーションシステムに関し、特に、ループするシミュレーション計算において計算安定性を向上させる技術に関する。
【背景技術】
【０００２】
制御アルゴリズムの検証のため、Hardware In the Loop Simulation(以下ＨＩＬＳ)という技術が発展している。ＨＩＬＳは制御対象物の挙動、特に電気の入出力特性をシミュレーションする技術である。ＨＩＬＳを使うと、制御対象物を利用することなく制御アルゴリズムを検証可能となる。
【０００３】
制御対象物を利用することなく制御アルゴリズムを検証することには、安全面とコスト面の２つの利点がある。安全面については、制御不良時の危険が伴う試験を開発段階で実施する必要がなくなる。コスト面については、制御対象物を作成する回数が少なくなるため、金銭的なコストに加え、テスト実施工数の削減や環境負荷の削減などにも効果を発揮する。
【０００４】
ＨＩＬＳは前項であげた安全面の利点を活かし、主に自動車・航空船舶などの安全試験が必要な業界で利用されている。その上で、これからは後者のコスト面に対するメリット、つまり実機の作成不要という特徴を活かし、制御対象物の存在するあらゆる分野で利用が進むと考えられる。
【０００５】
また、ＨＩＬＳ計算での安定化に不可欠な計算量増大への対策に関して、以下のような提案がされている。
【０００６】
特許文献１（特開２０１０−２０３８４）に記載の「シミュレーションシステムおよびシミュレーション方法、ＨＩＬＳ装置、ならびにシミュレーション支援装置、方法およびプログラム」は、高速・高精度なＨＩＬＳを行うために制御対象物の挙動計算にＦＰＧＡを導入し、外部プロセッサと通信を行うことを特徴とする。挙動計算にＦＰＧＡを利用することでシステム全体の計算能力を大きく向上させ、リアルタイム性を高く保つことができることが開示されている。
【０００７】
特許文献２（特開２０１０−２２３６７５）に記載の「鉄道車両の挙動模擬装置及び挙動模擬方法」は、高速・高精度なＨＩＬＳを行うために列車の車両１台ごとにモデルを分割し、連結部での運動を模擬する連携計算を行って全体の列車を再現する。１台分の計算を１組のＨＩＬＳ装置に行わせ、その結果を組み合わせることで車両結合時の挙動を予測することが開示されている。
【０００８】
特許文献３（特開２００５−９２６４０）に記載の「画像形成装置」は、駆動系のＨＩＬＳを対象とし、オフラインでのモデル推定により入出力関係を数式で近似する。予めモデルの解析を行い、その結果を数式で近似することによりシミュレーションを行うことが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１では、外部計算装置であるＦＰＧＡを利用してＨＩＬＳの計算性能を向上させ、陽解法の時間刻みを細かくして計算安定性を向上させている。不安定性の原理的な解決になっていないため、モデルサイズの増大に対応できない。
【００１０】
特許文献２では、計算の不安定性を回避するため、制御対象である列車のモデルを分割し、安定になるように低次元化している。現在はこのような手法が主流だが、モデルの分割にはノウハウが必要である上、解の存在は保証されない。
【００１１】
特許文献３では、実機に対して先にオフラインでモデルの近似計算を行う必要がある。近似計算により得られたモデルは部品の設計パラメータと関係が薄く知見に乏しいため、なるべく近似計算を使わないほうが望ましい。
【００１２】
本発明は、ＨＩＬＳにおける計算安定性を改善するものである。ＨＩＬＳでは、計算前に特定の時間刻みを決め、その時間刻みよりも短い時間でＨＩＬＳの計算を終了させることが必要になる。しかし、ＨＩＬＳのシミュレーション計算部分に使われている陽解法では、原理上特定のモデルにおいて計算が不安定になり、出力の値が発散することが知られている。
【００１３】
陽解法において計算を安定に進めるには、陽解法の計算において時間刻みを細かくすると効果がある。しかし、陽解法において時間刻みを小さくしても全ての系に対して安定性を確保することはできず、またそのアプローチは計算機の性能やコストによって大きな制限をうける。
【００１４】
そこで、本発明では、シミュレーション計算の安定性を向上させることを狙う。
【００１５】
本発明は、上記課題に鑑みてなされたものであって、ループするシミュレーション計算において計算の安定性を向上させることを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために本発明の一態様は、電圧を受け付ける入力インターフェースと、前記入力インターフェースに入力された電圧を取得し、当該電圧に対応する情報を汎用計算部に格納する入力部と、特定の物理系を表現する物理モデルを備え、前記電圧に対応する情報に基づき支配方程式の値と付帯情報を算出する機能を持つモデル計算部と、アルゴリズムを有し、前記支配方程式の値と付帯情報に基づき状態量を算出する前記汎用計算部と、前記汎用計算部から得られた状態量から出力電圧を求め、出力インターフェースへ出力する出力部と、前記出力電圧の出力を行う前記出力インターフェースと、出力電圧が計算される周期が前記入力インターフェース及び前記出力インターフェースが電気信号を入力又は出力する間隔よりも短いことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ループするシミュレーション計算において計算の安定性を向上させることが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態における検証対象系のブロック線図である。
【図２】本発明の第１の実施形態の計算装置の構成図の例である。
【図３】本発明の第１の実施形態における支配方程式の例を示す図である。
【図４】本発明の第１の実施形態の計算装置において用いられるアルゴリズムのフローチャートの例である。
【図５】本発明の第２の実施形態において、図３の支配方程式を線形近似して得られるヤコビ行列の定義を示す図である。
【図６】本発明の第２の実施形態において、図５で得たヤコビ行列Jを元に支配方程式を線形近似した結果である。
【図７】本発明の第２の実施形態の計算装置において用いられるアルゴリズムのフローチャートの例である。
【図８】本発明の第３の実施形態の計算装置において用いられるアルゴリズムのフローチャートの例である。
【図９】本発明の実施例のモータ駆動系の概略図である。
【図１０】上記実施例における支配方程式を示す図である。
【図１１】上記実施例において、アルゴリズム１２に採用する実施例の１つとして、図１０の式に陰的オイラー法を適用した式である。
【図１２】上記実施例において、図１１に示す支配方程式を本実施例により計算した結果を示す図である。
【図１３】上記実施例の比較例の陽解法により計算した結果を示す図である。
【図１４】第４の実施形態の構成を示すブロック図である。
【図１５】第４の実施形態の処理の流れを示すフローチャート図である。
【図１６】第５の実施形態の構成を示すブロック図である。
【図１７】第４又は第５の実施形態に関する実施例が適用される画像形成機器の駆動系の構成を示すブロック図である。
【図１８】第４の実施形態に関する実施例の構成を示すブロック図である。
【図１９】第４の実施形態に関する実施例における中間バイナリの構成方法の概念図である。
【図２０】第５の実施形態に関する実施例の構成を示すブロック図である。
【図２１】第５の実施形態に関する実施例における中間バイナリの構成方法の概念図である。
【発明を実施するための形態】
【００１９】
以下、本発明による実施形態について図を参照しながら説明する。
【００２０】
＜第１の実施形態＞
本実施形態の計算装置について、最初に検証対象とする物理系を説明する。図１に検証対象の物理系のブロック線図を示す。検証対象の物理系は一般に制御部１、入力部２、動作部３、出力部４からなる。制御部１から入力部２へ制御出力５が、入力部２から動作部へは動作出力６が、動作部３から出力部４へはセンサ出力７が、出力部４から制御部１へは制御入力８が伝えられる。
【００２１】
図１の検証対象の物理系の例としてモータ駆動制御系を用いる場合について説明する。制御器１はコントローラ、入力部２はモータドライバ、動作部３はモータ及び被駆動負荷、出力部４はロータリエンコーダに相当する。入力が多入力である物理系、出力が多出力である物理系、センサを通じた出力がない物理系なども考えられる。出力部から制御部へ状態量を送出することにより適切な制御量を入力部で得る仕組みの系は全て対象であり、本発明で扱う検証対象としての物理系をモータ駆動制御系に限定するものではない。
【００２２】
図２は本実施形態の計算装置の構成図の例である。計算装置は論理回路として入力部２’、モデル計算部９、汎用計算部１１、出力部４’を持つ。モデル計算部９は物理モデル１０を持ち、汎用計算部１１はアルゴリズム１２を持つ。物理モデル１０は支配方程式の情報及び系を決定するパラメータを持つ。計算装置は電気入出力回路として入力インターフェース１３と出力インターフェース１４を持つ。制御部１、制御出力５、制御入力８は図１の系と同一である。
【００２３】
図３は支配方程式の例である。支配方程式とは支配方程式とは系の時間発展を決める方程式のことであり、駆動系であれば運動方程式、熱反応であれば熱伝導方程式などを指す。
【００２４】
図３において、右辺に記載されているfは支配方程式を指し、左辺を支配方程式の値（ベクトルで示される）と呼ぶ。さらに右辺に記載されているxは状態量のベクトル、bは入力インターフェース１３から入力部２’で検出した電圧の値に関するベクトル、tは時間を表す。状態量とは物理モデルの情報のうち経時によって変化するもの、具体例としては位置や速度などの情報を指す。
また、次式以降で登場する下付き添え字の存在する文字は、共通の添え字について表す状態量の時間が同時刻であることを示す。
【００２５】
図４は本実施形態の計算装置において用いられる処理のフローチャートの例である。計算は初期設定を行う部分とループ部に分かれる。ループ部の処理は入力インターフェース１３および出力インターフェース１４が入力電圧及び出力電圧を行う時間よりも短いことを求められる。リアルタイムに処理する必要があり、このような時間的な制約が必要となる。このような時間の制約がある中で、陰解法を用いることは、これまではなされていなかった。
【００２６】
ループ開始前にはパラメータ設定の処理を行う。具体的には、物理モデル１０と汎用計算部１１において、計算中に変化しない条件を設定することである。ここで設定した値はループ中で変更できない。この条件とは、例えば、シミュレーション対象となった機器や、部品の重量、バネの硬さ等が挙げられる。さらに、初期設定として、状態量も設定される。この初期設定としての状態量は、時間が止まっている状態を意味しているため、ゼロとして設定されることが多い。
【００２７】
ループ開始後は、計算用情報の取得、物理モデルに基づき支配方程式および付帯情報の計算、出力電圧の決定を、リアルタイム計算で行う。リアルタイム計算とは、ループの開始からループの終了までの時間が、事前に規定された計算時間以内に収まっている状態とする。リアルタイム計算が成立するかはＨＩＬＳシステムの計算性能、初期設定で決定した汎用計算部１１の設定、計算アルゴリズム１２及び物理モデル１０の複雑さなどに依存する。
【００２８】
図４におけるループ内の処理を解説する。まず、制御部が「駆動部の電圧の情報」、「駆動部のトルクの情報」などの情報を電圧値に変えた形で入力インターフェース１３に入力する。この入力インターフェース１３は、この電圧値を入力部２’に渡す。そして、入力部２’は、この電圧値を取得し、汎用計算部１１のメモリに電圧を任意に加工した情報を格納する。この任意の形とは、制御部が電圧値に変える前の情報（ベクトル）の形で格納されることが一般的である。
【００２９】
次に、汎用計算部１１は計算開始からの経過時間、入力部２’によって計算された電圧値に対応する情報、自らのメモリに保持されている状態量を基にモデル計算部９を呼び出す。ここで、汎用計算部１１は、マイクロ秒まで計時できるタイマーを内蔵している。なお、最初の状態では状態量の値は無い。このメモリに記憶されている状態量は、過去に計算された状態量（ベクトル）を意味する。例えば、現在がｔ１であれば、ｔ０における状態量を意味する。なお、過去に計算された状態量は１つでもよいし、複数の状態量であってもよい。
【００３０】
そして、モデル計算部９は、物理モデル１０に基づいて図３で示した支配方程式の右辺に、経過時間、入力された電圧に対応する情報（ベクトル）、状態量のベクトルが与えられ、左辺の支配方程式の値を算出する。
【００３１】
また、モデル計算部９は、この際に計算を安定にするための付帯情報の計算も同時に行う。この付帯情報の計算が非常に重要である。この付帯情報を計算しなければ、安定したシミュレーションが行えない。次に、汎用計算部１１は支配方程式の値（ベクトル）および付帯情報を用いて内部のアルゴリズム１２を呼び出し、求解のステップを経て状態量を算出して出力部４’に格納する。なお、汎用計算部１１が、状態量を算出する際に、必ずしも支配方程式の値を利用しなくてもよい。
【００３２】
出力部４’については格納された状態量を基に出力電圧を計算し、出力インターフェース１４に送出する。この後、出力インターフェース１４は状態量に対応する出力電圧を制御部１へ提供する。この制御部１が、例えば、出力電圧から駆動部（モータ）のトルクに展開する。制御部１は、この駆動部のトルクが目標の値にあるのかを判断して、駆動部のトルクの値を決定し、このトルクの値を電圧値に変えて、入力インターフェース１３に与えることとなる。
【００３３】
アルゴリズム１２によって出力部４’に格納される値が必ず安定であることにより、安定性の保証が実現される。本実施形態においては、このアルゴリズムや付帯情報の具体例について手法を限定しない。しかしながら、汎用計算部１１が持つアルゴリズム１２の具体例としては、第２の実施形態の計算装置における線形近似を用いた手法や、繰り返し計算によるヤコビ行列の動的推定などの採用が考えられる。
【００３４】
＜第２の実施形態＞
本実施形態の計算装置では、汎用計算部１１が持つアルゴリズム１２において、支配方程式の線形近似式を利用することを特徴とする。モデル計算機能９によって物理モデル１０の線形近似を行い、線形近似時点の近傍において線形時不変な支配方程式を定義する。
【００３５】
図５は前記図３の支配方程式を線形近似して得られるヤコビ行列の定義である。ヤコビ行列は、線形近似した時間及び状態量において、状態量の変化に対する支配方程式の値の変動感度を表す行列である。一般的な支配方程式の場合、ヤコビ行列は対象とする時間およびその時間での状態量に依存する。
【００３６】
図６は前記図５で得たヤコビ行列Jを元に支配方程式を線形近似した結果である。図６の式の右辺第二項は既知の定数であるので、同一ステップ内では線形時不変（線形かつ時間によって係数が変化しないこと）なシステムとして近似できる。すなわち、図３で表される支配方程式に関しては、図５のような線形時不変システムとして扱える。線形時不変なシステムは一般的なシステムに比べて制御しやすいという利点がある。
【００３７】
特に、線形行列で表された物理モデルに対しては、特別に安定な求解法を利用できる。その代表例は陰的オイラー法である。他にも、安定性と計算精度を非常に高いレベルで両立できるＲＡＤＡＵ法など高度な計算手法を用いることが可能となる。この点において、線形近似を行わない同種の計算装置に比べて明確なメリットがある。
【００３８】
図７は本実施形態の計算装置において用いられるアルゴリズムのフローチャートの例である。図４で示したアルゴリズムに対し、図７では付帯情報としてヤコビ行列を採用していること以外は図４のアルゴリズムと同等であるため、詳細は省略する。
【００３９】
＜第３の実施形態＞
本実施形態の計算装置では、物理モデル１０が線形時不変なモデルで表現されていることを特徴とする。線形時不変なモデルでは図５の式によるヤコビ行列の算出結果が時間及び状態量に依らず一定であるため、求解のために行う行列変形を繰り返す必要がない。そのため、第２の実施形態の装置で採用したアルゴリズムから、行列変形の回数を削減したアルゴリズムを採用できる。
【００４０】
図８は本実施形態の計算装置において用いられるアルゴリズムのフローチャートの例である。図７のアルゴリズムと比べると、ヤコビ行列の算出及び変形を初期設定時に移動したアルゴリズムになっている。図７のアルゴリズムではヤコビ行列の算出及び変形の処理は計算時間の大部分を占めるので、アルゴリズムの改良によりループ内の処理時間は図７のアルゴリズムに比べて大きく減少する。
【００４１】
＜上記実施形態の作用効果＞
上記実施形態は、以上の説明から次の各作用及び効果を有する。
第１の実施形態の計算装置によれば、従来のＨＩＬＳシステムとは異なり、安定な系のモデルならば必ず安定に計算可能であるという作用がある。その結果、安定した数値計算を行うノウハウが物理モデルの作成者に不要になり、実施時の人的負荷が削減される効果がある。
【００４２】
第２の実施形態の計算装置によれば、図６のようにモデルを線形時不変なシステムとして近似し、その結果に対して陰解法を採用できる。陰解法を採用すると、線形時不変システム近似による悪影響を差し引いても時間発展計算の安定性を大幅に向上させる作用がある。その結果、従来不安定でＨＩＬＳに使えなかったモデルを使えるようになり、適用範囲が大きく広がる効果がある。モデルの幅が広がることにより、より精度の高いシミュレーションを事前測定なしで行うことができるようになる。
【００４３】
更に、陰解法を線形時不変システムに適用したときには反復計算が不要になるという作用がある。計算量を系の自由度の関数として規定することが可能となるため、対象のモデルを計算するために必要なＨＩＬＳシステムの性能を明確に規定できるようになるという効果がある。
【００４４】
第３の実施形態の計算装置によれば、第１の実施形態により得られる作用及び効果に加え、求解のためのヤコビ行列変形を計算中に全部で１回しか必要としなくなるという作用がある。これにより、計算速度が大きく向上し、同じ計算装置で得られる結果の精度が向上する、または同じ計算精度でより大きな系を扱えるようになるという効果がある。
【実施例】
【００４５】
実施例として、複合機の動力機構系としてよく使われる回転方向軸系のリアルタイムシミュレーションについて記す。特に、モータの動力を回転負荷に伝達するための駆動系を実施例として挙げる。
【００４６】
図９にモータ駆動系の概略図を示し、図１０に支配方程式を示す。図９に示す部品で、モータ１５と第１慣性体１６が第１接続軸１８で、第１慣性体１６と第２慣性体１７が第２接続軸１９で接続されている。モータ及びそれぞれの慣性体を繋ぐ軸について、質量を持たないが強い剛性を持つバネ要素として定義する。この駆動系はモデルが線形時不変なので、第３の実施形態の計算装置を用いて計算可能である。一般に、複合機のＨＩＬＳで要求される精度は線形時不変モデルによって十分であることが多い。そのため、先に線形行列を算出することによって大規模なモデルの計算が可能である。
【００４７】
図９の駆動系において、式を簡単にするために入力の種類はモータ１５で発生するトルクとする。このとき、図１０に示した支配方程式においてＦはトルクであり、ＨＩＬＳの計算装置においては電圧で指示値を入力する。具体的には、入力インターフェース１３に入力された電圧を入力部２’の内部で図１０の第２式の値にスケーリングして代用する。図１０の右辺の右側の行列がＪに相当する。
【００４８】
入力インターフェース１３及び出力インターフェース１４は有限のサンプリング時間を持つため、支配方程式は時間方向について離散化される必要がある。アルゴリズム１２に採用する実施例の１つとして、図１０の式に陰的オイラー法を適用した式を図１１に示す。この陰的オイラー法は「時間と共に増大しないことがどのような入力部端子電圧の時刻暦応答及び前記物理モデルに対しても保証される」アルゴリズムの１つである。また、図１１の式で右辺に登場する係数及び状態量は、全て時間ｔ0における入力及び状態量ｘ0から導くことができるので、図１１の式の左辺は一度の計算で求めることができる。このように、新たな状態量を求める際に、必ずしも支配方程式の値を必要とはしない。
【００４９】
図１０に示す支配方程式を本実施例により計算した結果を図１２に、陽解法による結果を図１３に示す。図１２及び図１３の横軸は時間を表し、縦軸は第二慣性体１７の軸各速度を表す。図１２は図１３に見られるような振動発散を抑えることができている。
【００５０】
上記実施形態で示したように、陽解法を用いない計算装置は、複合機におけるＨＩＬＳに対して非常に有用である。複合機の内部には回転体が多く、本実施例のような回転軸が多く存在するために陽解法によるＨＩＬＳを適用するには、さまざまなノウハウや技術者の能力が求められる。このような回転軸が多く存在するような物理系は、一般的には硬い系であると呼ぶ。一般的に硬い系と呼ばれるのは、系を表す係数行列の固有値の絶対値について最大値と最小値がおおむね１００倍以上大きく異なっている場合を指す。このような硬い系では、物理系の挙動は固有値の小さい振動によって大きく左右されてしまう。もし、このような硬い系に対して陽解法を用いると、固有値の大きい振動が発達して計算を発散させてしまう。一方、陽解法を用いない、実施形態の手法を用いることにより計算を安定に進められる。
【００５１】
＜第４及び第５の実施形態の技術的課題＞
第３の実施形態までの開示においては、モデルパラメータによって決まるモデル固有値に依存しない、安定したリアルタイム計算環境を実現する「モデル固有値非依存ＨＩＬＳシステム」が開示された。
【００５２】
以下、本発明による第４及び第５の実施形態について図面を参照しながら説明する。実施形態の説明に先立って、以下に開示される技術的思想の背景、産業上の利用可能性、関連する従来技術について説明を加える。
【００５３】
自動車や鉄道・航空船舶産業などの駆動制御対象物の制御に失敗すると膨大な被害が生じる産業分野では、開発段階における制御アルゴリズム構築にも安全性が求められている。ここでいう駆動制御対象物とはモータやアクチュエータ、およびそれらによって駆動されるギヤ列や筐体など様々な機構を指す。これらの挙動は高度な演算によって制御されているため、開発には多大なコストが掛かっている。もし制御アルゴリズムの欠陥により安全性が損なわれると、人体に対する被害が出る以外にも、事故を起こした装置が使えなくなることが多く、制作費の増大を招く結果になる。
【００５４】
そこで、これらの産業分野で発達した技術として、制御アルゴリズムの検証のHardware In the Loop Simulation(以下ＨＩＬＳ)という技術がある。このＨＩＬＳという技術は駆動制御対象物のリアルタイムシミュレーションを指す。具体的には、駆動制御対象物が制御基板（制御アルゴリズムが実装される）と、やりとりする入出力信号を計算により模擬し、あたかも制御基板の相手方に駆動制御対象物が存在するような信号入出力を作り出すものである。この技術を使うと、制御対象物を利用することなく制御アルゴリズムを検証可能となる。
【００５５】
ＨＩＬＳの利用により、制御不良時の危険が伴う試験を開発段階で実施する必要がなくなる上、テスト実施工数の削減や環境負荷の削減などにも効果を発揮する。
【００５６】
ＨＩＬＳには安全面とコスト面という２つの利点がある。現在は安全面が注目され、主に自動車・鉄道・航空船舶などの安全試験が必要な業界で利用されている。その上で、これからは後者のコスト面に対するメリット、つまり駆動制御対象物を実際に作らずにシミュレーションモデルを作るだけで済むためコストが安いという特徴を活かし、駆動制御対象物の存在するあらゆる分野、例えば、画像処理機器分野などでも利用が進むと考えられる。特に以下で開示される発明は、ＨＩＬＳのシミュレーションモデルの取り扱いを向上するものであり、広い分野への活用が可能である。
【００５７】
特許文献４（特開２００７−１５７１０６号公報）に記載の「コンポーネント基盤の衛星モデリングによる衛星シミュレーションシステム」は、計算対象のモデル・モデルの固有パラメータ・モデルの計時変化パラメータを分離して保持し、モデル作成の簡便化と再利用性の上昇を狙う。
【００５８】
特許文献５（特開２０１２−１０４０８１号公報）に記載の「分離型リアルタイム車両運動シミュレーション・システム」は、ＨＩＬＳシステムの低速動作で十分な部分と高速動作が必要な部分を分離し、それぞれ別の計算機（マスターとスレーブ）で計算することにより、ユーザビリティを向上させる。
【００５９】
特許文献４ではパラメータファイルとシミュレーションモジュールを完全に分離している。この方式はパラメータ授受用のＵＩ及び関数を作成する必要がある。ＵＩによりシミュレーション全てのパラメータを設定するのは作業量が多く、またデータ転送専用の関数を作成する開発コストが必要である。
【００６０】
特許文献５ではモデルの形式（車であれば駆動方式や車種など）を表現するマスターと車の性状（重さや出力など）を表現するスレーブの間で情報のやり取りを行うため、必然的にモデルとパラメータが分離している。そのため、第１ないし第３の実施形態までに開示された技術的思想と同様の問題が生じる。
【００６１】
第１ないし第３の実施形態までに開示された技術的思想は、与えられたプラントモデルに対する計算の安定性を向上させるための発明の実施形態であり、そのプラントモデルの与え方については余り考慮されていなかった。これらの実施形態で示された先の発明に、後述の発明と組み合わせることにより、ユーザが任意のプラントモデルをＨＩＬＳシステムで安定に計算できるようになり、ＨＩＬＳシステムの有用性がさらに飛躍的に向上する。
【００６２】
下記実施形態は、駆動制御対象物のリアルタイム応答を代替計算可能とするＨＩＬＳにおいて、シミュレーションモジュールにパラメータファイルが容易に交換可能な形式で埋め込まれている特長を備えていることにより、駆動制御対象物を容易に変更可能なＨＩＬＳシステムを提供する。
【００６３】
以下、第４及び第５の実施形態について図を参照しながら説明する。
＜第４の実施形態＞
図１４に本実施形態の対象とするシミュレーションシステムの概要を示す。シミュレーションシステム１４１には、入力インターフェース１４２、出力インターフェース１４３、通信インターフェース１４４、計算装置１４５が含まれる。計算装置１４５には記憶メモリ１４６および計算を行うプロセッサ等が含まれている。記憶メモリ１４６にはプロセッサへの指令を行うソフトウェアである計算機能１４７と、計算の引数となる保管パラメータ１４８が共に含まれている。保管パラメータ１４８は、パラメータに限定して記述されたパラメータファイル群１４９から生成される。パラメータファイル群１４９とは、人間に可読な形式で記述されたパラメータファイルの集合体であり、それを計算装置１４５が可読なように変換した上で単一のオブジェクトとして結合したものが保管パラメータ１４８である。通信インターフェース１４４は外部の制御用ＰＣ１４１０とのやり取りにより、シミュレーションシステム１４１内に計算機能１４７と保管パラメータ１４８を含む記憶メモリ１４６の内容を転送し、実行時の状態モニタを行う。
【００６４】
図１５はシミュレーションシステム１４１で行われる処理のフローチャート図である。以下、図１５を用いてシステムの動作を説明する。
【００６５】
図１５のフローチャートでは「入力値の取得」から「出力値の決定」までの機能を「停止命令」があるまで繰り返す構造になっている。この繰り返しを計算ループと名付ける。この計算ループに対して、「入力値の取得」を行ってから、次回の「入力値の取得」を行うまでの時間間隔を計算時間間隔と呼ぶ。
【００６６】
本実施形態のようなＨＩＬＳシステムの特徴として、「入力値の取得」から「出力値の決定」までの計算が"必ず"計算時間間隔よりも短いことが挙げられる。この特徴により、「入力値の取得」機能が起動するタイミングを計算時間間隔に揃えられる。また、この目的のために計算ループの末端にはウェイト(何もせずに時間経過を待つ機能)が挿入されている。
【００６７】
シミュレーションシステム１４１は、計算ループを開始する前に「初期設定」を行う。「初期設定」では計算を開始するためのメモリ初期化動作のほか、計算ループ部で変化しない機能について設定を行う。計算ループ内で変化しない機能としては、入力インターフェース１４２、出力インターフェース１４３の入出力の特性（例えば入力インターフェースに入力される電圧の範囲、出力インターフェースから出力する電気信号の電圧範囲など）の設定や、計算ループ部を実行する時間間隔が挙げられる。入出力特性は検証する基板の特性によって決められるものであるから計算ループ内で変更になることはなく、また計算ループの時間間隔は計算の連続性を保つために変更することができない。
【００６８】
計算ループ部は「入力値の取得」、「状態量の取得」、「パラメータの出力」、「状態量の計算」、「出力値の決定」という５つの機能で構成される。これらの機能について、それぞれ次に解説する。
【００６９】
まず、「入力値の取得」では、入力インターフェース１４２の端子に入力された電気信号を読み取り、計算装置１４５に提供可能なデジタルデータを取得する。入力インターフェースに入力される電気信号は、本来であれば駆動制御対象物に入力される電気信号である。そのような電気信号の例としては、モータに加える電圧やそれに比例したduty比を持つPWM信号電圧などの駆動モータ速度を規定する信号や、外部摩擦力などの駆動を妨げる働きをする信号、他には電磁クラッチの作動・停止などの機械の構成そのものを切り替える信号などがある。これらの信号は電圧の値やPWM信号のduty比、あるいはON/OFFそのものに情報を持たされているため、これらを計算装置１４５内で扱いやすいように数字やBoolean値(計算装置内でON/OFFを表す値)へと変換する機能である。
【００７０】
「状態量の取得」では、記憶メモリ１４６に格納された状態量を計算で利用できるように準備する。状態量とは計算中に変化する値であり、具体的には位置、速度、角度、角速度などの情報を指す。特に、一回転運動は重心を中心にして考えると運動方程式の立式が容易になるため、物体の状態量は重心位置での情報を採用することが多い。
【００７１】
「パラメータの出力」では、駆動制御対象物の特性を計算で利用できるよう、微係数やヤコビアンの出力を行う。微係数やヤコビアンとは保管パラメータから計算可能なベクトル及び行列である。これらの値は駆動制御対象物のパラメータである質量や剛性、粘性から算出される。質量、剛性、粘性の値は駆動制御対象物の部品ごとの立体形状、材質、それらを組み合わせる構造によって規定されるため、実験的手法やシミュレーションによって推定することが可能である。また、駆動制御対象物の駆動現象が力の授受のみによって表される純粋な力学系であれば、微係数を求めるための式は運動方程式と一致する。
【００７２】
「状態量の計算」では、上記処理で得た入力値、状態量、パラメータを元に支配方程式を立式・求解して、ある時間における状態量を算出する。支配方程式の求解方法にはオイラー法、ルンゲクッタ法など様々な解法が知られている。本実施形態では特に求解方法として上記第１ないし第３の実施形態で記述した方法を用いる。この方法の特徴としてどのような運動方程式に対しても安定であり、かつ計算時間が一定時間内に収まるという特徴を持っているため、ＨＩＬＳシステムでの利用に適した方法である。
【００７３】
「出力値の決定」では、求解によって得られた新しい状態量から出力インターフェースから出力する信号値を決定する。出力する信号値の例としては、駆動モータの回転速度などに比例した電圧として出力されるアナログ信号や、軸に取り付けたエンコーダから出力されるデジタル形式のエンコーダ信号などがある。これらの信号値は状態量の値から計算可能であり、例えば回転速度に紐付けされたアナログ信号は比例計算によって決定される他、エンコーダ信号ならば回転速度に比例した信号周期を持つように信号特性が決定される。
【００７４】
以上の計算ループの中で、「入力値の取得」、「状態量の取得」については入力インターフェースや出力インターフェースから電圧値を読み取る処理であり、所要時間は無視できる。また、「パラメータの出力」、「出力値の決定」については比例計算や三角関数計算が中心であり、「状態量の計算」に比べるとやはり所要時間を無視できる。ゆえに、この計算ループの所要時間は実質的に「状態量の計算」に必要な所要時間で表現される。
【００７５】
計算ループが特定の計算時間以内に終了することがＨＩＬＳシステムを成立させる前提条件である。この条件を成立させるには、計算量の小さい計算処理を採用することが重要となる。例えば、特定時間内に計算が終了しない場合には、計算を打ち切ってダミー信号を送るなど様々な手法を採用できる。そのひとつの例として、「状態量の計算」で採用した手法及び他の機能での処理内容では、ある特定の計算時間以内に終了することを保証できる。例えば、線形行列で表された物理モデルに対して陰的オイラー法を適用するとき、その計算量は物理モデルの大きさと時間刻みのみ比例し、計算中に変化しない。この特徴から、ある特定の物理モデルの大きさ及び時間刻みにおいて計算が特定の計算時間以内で終了することを示せば、常に計算が特定の時間以内に終了することを保証できる。この条件が成立しているとき、その特定の計算時間よりも入力インターフェース１４２の取得間隔を長くすることにより、入力インターフェース１４２から得た信号に対応する出力インターフェース１４３の出力値を確実に更新できる。このとき、入力信号に対する出力信号が一定時間以内に出力されるリアルタイムシミュレーションが可能になる。
【００７６】
ここで入力および出力される電気信号は２本線を用いて伝達された非平衡電圧信号や正負ＧＮＤの３本線による平衡信号、あるいはラインドライバ信号など、駆動制御対象物の電気信号仕様に依存する。したがって、本発明で記述するシミュレーションシステムにおいては形式を規定せず、必要に応じてシミュレーションシステム側の追加装置によって信号仕様を変換する。
【００７７】
従来の同様なシミュレーションシステムでは、パラメータはファイルによって設定されるのではなく、設定用のユーザインターフェースを介してパラメータの値そのものが計算機能１４７に埋め込まれていた。このユーザインターフェースを使う方法では入力欄に入力すべきパラメータの説明を表示したり異常入力値に対する警告を表示したりできるという利点がある一方、入力するパラメータ数が増えると操作が煩雑になるほか、入力するパラメータを追加するときに必要な作業がシステムとユーザインターフェースの両方に亘るという欠点がある。
【００７８】
それに対して第４の実施形態のシステムではパラメータファイルを使用してパラメータの値を決定する。パラメータファイルには機械の配置や特性が記述されていて、シミュレーションする対象の機械ごとに１つあるいは複数のファイルが存在する。パラメータファイルは容易に編集が可能なようテキスト形式であることが望ましく、ＨＩＬＳのためにはテキスト形式をシステムが読めるオブジェクトファイル形式に変換する必要がある。そうして生成されたオブジェクトファイル形式の中間バイナリは計算機能１４７を構成するファイルの一部として埋め込まれていて、その埋め込み部分からパラメータを読み取って決定する機能が計算機能１４７に備えられている。ここで、計算機能１４７を単一のファイルによって構成しなければならないという制約があったとしても、機械に応じた適当な中間バイナリを計算機能１４７の中に埋め込むことにより、計算機能１４７を単一ファイルで扱いつつ機械の構成を変更できる。中間バイナリを一度経由することで、パラメータのファイル編集にはユーザが慣れたソフトウェアを使うことができる他、中間バイナリ読み取り機能を変更することによって複数種類のＨＩＬＳシステムについて共通のパラメータファイルを使うことができる。
【００７９】
＜第５の実施形態＞
図１６に本実施形態のシステムの概要を示す。図１４に示した第４の実施形態の構成と比較し、保管パラメータ１４８の代わりに複数のパラメータファイル群１４９が格納されている保管パラメータ１４８’が複数格納されていることが特徴である。この特徴により、第４の実施形態の保管パラメータ１４８に相当する機能を、第５の実施形態のシステムでは計算ループ内の「パラメータ取得部」を開始するタイミングで変更することができる。つまり、このシステムはパラメータ取得部を複数持ち、前回の計算ループで呼び出した「パラメータ取得部」とは異なる「パラメータ取得部」を呼び出せるような機能を持つ。
【００８０】
第４、第５の実施形態は、以上の説明から次の各作用および効果を有する。
【００８１】
第４の実施形態のシステムによれば、ファイルシステムやＵＩという概念を持たないマイコンのような計算装置においてもパラメータファイルを中間バイナリという形式で計算機能１４７に埋め込むことができ、その中間バイナリを読むことで機械を表現するパラメータを容易に設定できるという作用がある。その結果、計算対象を変更可能なＨＩＬＳシステムの構成が容易になるという効果がある。言い換えると、ＣＰＵと大規模記憶装置の両方を搭載する高級なＨＩＬＳシステムだけではなく、低速なマイコンレベルで構成される安価なＨＩＬＳシステムでも、容易にパラメータ変更が可能になる。また、この２つの例のように、アーキテクチャや計算性能の異なる複数のシステムで中間バイナリを共通化することが可能となり、要求するリアルタイム計算間隔に応じた適切な性能のシステムを提供することが容易に可能になる。
【００８２】
第５の実施形態のシステムによれば、第４の実施形態の作用効果に加え、計算対象の機械特性を複数持ち、それらを計算の途中結果に応じて使い分けられるようになるという作用がある。つまり、計算開始からの秒数や設定したモータ回転数への到達といったある出来事を切欠にして、パラメータを全く別の機械のものに変更できるという作用がある。この作用により、ＨＩＬＳによって急激な機械特性の変化や動作条件の変更が起きた時の機械特性の変化を表現するのが飛躍的に容易になるため、第５の実施形態による検証は従来に比べて大幅な工数削減が見込めるという効果を持つ。もし従来のシミュレーションシステムで同様の検証を行おうとすると、複数の設定パラメータを同時に切り替える必要があるので、その仕組みを構成する手間やパラメータを入力するための時間が必要である。
【００８３】
上記第４及び第５の実施形態の実施例として、２つの実施例を挙げる。まず共通の項目として、検証対象ボードとその制御対象である画像形成機器のモータ駆動系を図１７に示す。
【００８４】
モータ駆動系はドライバ２１、モータ２２、回転対象２３からなり、その回転対象の挙動を検出するセンサ２４が取り付けられている。センサ２４は検証対象制御ボード２５に対して回転対象２３の回転速度をパルス信号２５の形式で出力する。制御ボード２５はモータ２２のドライバ２１へプリドライバ信号２６を出力する。
【００８５】
この駆動系を第４の実施形態のシミュレーションシステムで置き換える実施例を図１８に示す。検証対象ボードに入出力されるパルス信号２６とプリドライバ信号２７は図１７のものと同一である。システムは通信インターフェース１４４（ＮＷ）を持ち、制御用のＰＣ１４１０と接続されている。本特許のシステムにおいては、計算機能１４７とＰＣ１４１０を接続し、計算を開始する前にＰＣ１４１０から単一の計算実行ファイルを取得する。計算機能１４７は計算実行ファイルの中の保管パラメータ１４８を読み取ることにより計算に必要なパラメータを取得する。保管パラメータを表す中間バイナリはＰＣ１４１０上にてパラメータファイルから生成される。
【００８６】
計算機能１４７はＰＣ１４１０からの始動命令によって計算を開始する。シミュレーションシステムは初期設定を行った後、計算ループを開始する。まず、システムは入力インターフェース１４１で検証対象制御ボード１４１１から出力されたプリドライバ信号を受け取りその電圧の値を記憶メモリ１４１２内の計算機能１４７に渡す。計算機能１４７は別途保存してある状態量を呼び出し、駆動系のパラメータを表す保管パラメータ１４８から受け取ったパラメータを元に状態量を計算する。更に、計算機能１４７は計算した状態量を内部に保存し、更に出力インターフェース１４２で出力するパルス信号２６の信号周期を決定する。パルス信号２６は出力インターフェース１４３から出力され、検証対象制御ボード１４１１の入力部へ伝達される。
【００８７】
ここで、中間バイナリの構成方法を説明する。通常のＰＣでの計算において非リアルタイムなシミュレーションを行う際には、外部ファイルを用いることが一般的である。そのため、計算部として利用する汎用シミュレーションではテキストファイルの読み込み機能を持っている。そこで、ファイル自体を中間バイナリであるオブジェクトファイル(オブジェクトファイルは命令を記述したソースコードから生成したバイナリファイル)に変換し、後にオブジェクトファイルを結合して計算実行ファイルを作る。この構成方法の実施例を図１９に示す。
【００８８】
まず、開発者は計算機能を記述したソースコード４１を専用のソフトウェアによってコンパイルおよびリンクし、単一の計算機能オブジェクトファイル４２を作成する。このオブジェクトファイルは計算の方法や手順を指示したものであり、計算装置７を規定するものである。また、一般的なシミュレーションにおいてはシミュレーションソフトの実行ファイルに相当する。コンパイルにはLinux（登録商標）標準であるgccのコンパイラを用いる。
【００８９】
利用者側ではパラメータファイル４３からパラメータオブジェクトファイル４４を作成する。このパラメータオブジェクトファイル４４は保管パラメータ１４８に相当する。パラメータファイル４３内には機械の配置や特性が記述されていて、シミュレーションする対象の機械ごとに１つあるいは複数のファイルが存在する。パラメータファイル４３は人間が可読なテキスト形式なので、これをシステムが読めるオブジェクトファイル形式に変換する必要がある。パラメータファイルからオブジェクトファイルを生成するのには汎用ツールを利用する必要があり、ここではLinux（登録商標）の開発環境に標準でインストールされているobjcopyを利用する。
【００９０】
計算機能１４７がシミュレーションシステムで計算を実行する直前に計算機能オブジェクトファイル４２とパラメータのパラメータオブジェクトファイル４４を結合し、計算実行ファイル４５を生成する。オブジェクトファイル同士の結合はリンクと呼ばれる処理であり、Linux標準であるgccのリンカを利用する。リンクによって生成された計算実行ファイル４５は計算機能オブジェクトファイル４２に記述された計算機能１４７とパラメータパラメータオブジェクトファイル４４に記述された保管パラメータ１４８によって構成されている。
【００９１】
また、第５の実施形態のシミュレーションシステムでの実施例を図２０に示す。図２０において、図１８と同一の要素の番号付けは省略した。図２０と図１８の違いは保管パラメータ１４８が複数存在することである。これを実現するためには、図１９において計算機能オブジェクトファイル４２とパラメータオブジェクトファイル４４をリンクするときに複数のパラメータオブジェクトファイル４４をリンクする設定を行い、計算機能１４７を記述したソースコード４１において、パラメータオブジェクトファイルが複数存在することを前提とし、保管パラメータ１４８を設定条件に基づいて切り替えるような処理を記述しておく必要がある。これを図２１に示す。
【００９２】
例えば、正常に製造・動作しているときの特性を記述した保管パラメータＡに加え、長時間の駆動によって生じるパラメータのぶれを表現した保管パラメータＢ、あるいは故障時（故障の例としては「軸固着によって回転に必要なトルクが異常に大きくなっている」という状態や長時間の駆動によって許容できないほど機械要素が発熱している状態など）を表す故障時パラメータＣなど、様々な状態に対応する保管パラメータをあらかじめ準備し、計算実行ファイル４５の中に複数リンクしておく。
【００９３】
計算機能７はある条件によって保管パラメータを切り替える処理を行う。ある条件の例を２つ挙げる。まず１つは計算時間であり、ある一定時間後に長時間の駆動により特性の変化が起きるような系があるとする。これを表現するために利用するパラメータを保管パラメータＡから保管パラメータＢに切り替える処理を行う。もう１つの条件として、状態量を閾値と比較することによる判定の例を挙げる。これはあらかじめ設定した閾値と比較し、値が閾値を超えていた場合には利用するパラメータを保管パラメータＡから保管パラメータＣに切り替える処理を行う。
【００９４】
このように、計算装置１４７は利用する保管パラメータ１４８を条件によって取捨選択し、適切なパラメータにより出力を決定する。この機能により、製造時のばらつきを考慮したロバスト性検討、あるいは故障状態への急なパラメータ変更機能などが容易に実現できるようになる。
【符号の説明】
【００９５】
１    制御部
２    入力部
３    動作部
４    出力部
５    制御出力
６    動作出力
７    センサ出力
８    制御入力
９    モデル計算部
１０    物理モデル
１１    汎用計算部
１２    アルゴリズム
１３    入力インターフェース
１４    出力インターフェース
１５    モータ
１６    第１慣性体
１７    第２慣性体
１８    第１接続軸
１９    第２接続軸
２１    ドライバ
２２    モータ
２３    回転対象
２４    センサ
２６    パルス信号
２７    プリドライバ信号
４１    計算機能ソースコード
４２    計算機能オブジェクトファイル
４３    パラメータファイル
４４    パラメータオブジェクトファイル
４５    計算実行ファイル
１４１    シミュレーションシステム
１４２    入力インターフェース
１４３    出力インターフェース
１４４    ＮＷインターフェース
１４５    計算装置
１４６    記憶メモリ
１４７    計算機能
１４８    保管パラメータ
１４９    パラメータファイル群
１４１０    制御ＰＣ
１４１１    検証対象制御ボード
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２０１０−０２０３８４号公報
【特許文献２】特開２０１０−２２３６７５号公報
【特許文献３】特開２００５−０９２６４０号公報
【特許文献４】特開２００７−１５７１０６号公報
【特許文献５】特開２０１２−１０４０８１号公報
【図１】
2014199635.tif 000003
【図２】
2014199635.tif 000004
【図３】
2014199635.tif 000005
【図４】
2014199635.tif 000006
【図５】
2014199635.tif 000007
【図６】
2014199635.tif 000008
【図７】
2014199635.tif 000009
【図８】
2014199635.tif 000010
【図９】
2014199635.tif 000011
【図１０】
2014199635.tif 000012
【図１１】
2014199635.tif 000013
【図１２】
2014199635.tif 000014
【図１３】
2014199635.tif 000015
【図１４】
2014199635.tif 000016
【図１５】
2014199635.tif 000017
【図１６】
2014199635.tif 000018
【図１７】
2014199635.tif 000019
【図１８】
2014199635.tif 000020
【図１９】
2014199635.tif 000021
【図２０】
2014199635.tif 000022
【図２１】
2014199635.tif 000023