(57)【特許請求の範囲】
【請求項１】
生産・物流プロセスの工程内製品仕掛状態を表す物流状態と物流制約を表現した生産・物流プロセスを模擬する離散系のシミュレータであって、スケジュールを作成するのに考慮すべき物流状態と物流制約とを全て記載する生産・物流シミュレータと、
上記生産・物流プロセスの物流状態と物流制約とのうち、スケジュール作成に影響が大きい重要な部分のみを数式で表現した数式モデルであって、着目している物流のスケジュールを作成するのに係わる情報を取り込んで作成された状態方程式を用いた数式モデルを保持する数式モデル保持装置と、
上記数式モデルと所定の評価関数とを入力して最適化計算処理を行って上記生産・物流シミュレータに対する、上記製品の移動の指示である物流指示を算出して出力する最適化計算装置とを有し、
上記最適化計算処理により、
物流状態である状態ベクトルに掛け合わせることによって物流指示である操作ベクトルとなる値であるフィードバックゲインを算出し、
次に、上記算出したフィードバックゲインと状態ベクトルとを用いて操作ベクトルを算出して上記生産・物流シミュレータに与えて、シミュレーションを進め、新たな状態ベクトルを得て、この新たな状態ベクトルと上記算出したフィードバックゲインをもとに新たな操作ベクトルを算出するという処理を、予め設定されたスケジュール作成の対象期間だけ繰り返すことにより得られたシミュレーション結果、すなわち該スケジュール作成の対象期間における一連の物流状態からスケジュールを作成する生産・物流スケジュール作成装置であって、
上記数式モデル保持装置で最適化計算処理の時間に比例したきざみ時間遅れに従って表される接続行列と遷移行列とを用いた、下記の式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）           （１）
（但し、Ａは遷移行列、Ｂは接続行列、Ｍ（ｋ）、Ｍ（ｋ＋１）は、それぞれ、時刻ｋ、ｋ＋１における状態ベクトル、ｕ（ｋ）は時刻ｋにおける操作ベクトル）
で定義される状態方程式を求めるとともに、上記求めた状態方程式と、設定した評価行列および、前記状態ベクトルの取るべき値の目標値であって、下記の式（２４）
Ｍr ＝Ａ・Ｍr           （２４）
（但し、Ａは遷移行列、Ｍrは目標状態量）の条件を満たす目標状態量によって表され、下記の式（３０）で定義される有限加算ステップの評価関数である上記所定の評価関数とから最適化計算装置でフィードバックゲイン行列の収束値として上記フィードバックゲインを求めておいて、
上記求めたフィードバックゲインと工程内製品仕掛状態を表す状態ベクトルとから、製品の移動の指示である操作ベクトルを求めたのち、上記操作ベクトルの中の正値で大きい操作量が得られた順に、上記生産・物流シミュレータによるシミュレーション上の制約を満足して移動可能であるかどうかを調べ、移動可能な数だけ製品を移動させるようにして生産・物流スケジュールを作成するようにしたことを特徴とする生産・物流スケジュール作成装置。
【数１４】
0004846376.tif 000031
【請求項２】
上記フィードバックゲイン行列の収束値を、上記状態方程式と上記評価関数とからリカッチ差分方程式を用いて求めるようにしたことを特徴とする請求項１に記載の生産・物流スケジュール作成装置。
【請求項３】
上記フィードバックゲイン行列の収束値を、上記数式モデルの可観測性を満たすように設定した出力方程式と、上記評価関数とからチャンドラセカール型の差分方程式を用いて求めるようにしたことを特徴とする請求項１に記載の生産・物流スケジュール作成装置。
【請求項４】
上記離散系の生産・物流シミュレータはペトリネットモデルを用いてシミュレータを構築するものであり、上記状態方程式はペトリネットモデルの状態方程式であることを特徴とする請求項１に記載の生産・物流スケジュール作成装置。
【請求項５】
上記離散系の生産・物流シミュレータはペトリネットモデルを用いてシミュレータを構築するものであり、上記状態方程式は処理時間に比例したきざみ時間遅れに従って表わされる接続行列と遷移行列とを用いた状態方程式であることを特徴とする請求項１に記載の生産・物流スケジュール作成装置。
【請求項６】
上記最適化計算処理は線形二次制御を利用するものであり、所定の評価行列を用いて表わされる評価関数を最小とするように上記フィードバックゲイン行列の収束値を算出することを特徴とする請求項１〜５のいずれか１項に記載の生産・物流スケジュール作成装置。
【請求項７】
生産・物流プロセスの工程内製品仕掛状態を表す物流状態と物流制約を表現した生産・物流プロセスを模擬する離散系のシミュレータであって、スケジュールを作成するのに考慮すべき物流状態と物流制約とを全て記載する生産・物流シミュレータと、
上記生産・物流プロセスの物流状態と物流制約とのうち、スケジュール作成に影響が大きい重要な部分のみを数式で表現した数式モデルであって、着目している物流のスケジュールを作成するのに係わる情報を取り込んで作成された状態方程式を用いた数式モデルを保持する数式モデル保持装置と、
上記数式モデルと所定の評価関数とを入力して最適化計算処理を行って上記生産・物流シミュレータに対する、上記製品の移動の指示である物流指示を算出して出力する最適化計算装置とを有し、
上記最適化計算処理により、
物流状態である状態ベクトルに掛け合わせることによって物流指示である操作ベクトルとなる値であるフィードバックゲインを算出し、
次に、上記算出したフィードバックゲインと状態ベクトルとを用いて操作ベクトルを算出して上記生産・物流シミュレータに与えて、シミュレーションを進め、新たな状態ベクトルを得て、この新たな状態ベクトルと上記算出したフィードバックゲインをもとに新たな操作ベクトルを算出するという処理を、予め設定されたスケジュール作成の対象期間だけ繰り返すことにより得られたシミュレーション結果、すなわち該スケジュール作成の対象期間における一連の物流状態から上記生産・物流プロセスの制御を行う際に、
上記最適化計算処理の時間に比例したきざみ時間遅れに従って表される接続行列と遷移行列とを用いた、下記の式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）           （１）
（但し、Ａは遷移行列、Ｂは接続行列、Ｍ（ｋ）、Ｍ（ｋ＋１）は、それぞれ、時刻ｋ、ｋ＋１における状態ベクトル、ｕ（ｋ）は時刻ｋにおける操作ベクトル）
で定義される状態方程式を求めるとともに、上記求めた状態方程式と、設定した評価行列および、前記状態ベクトルの取るべき値の目標値であって、下記の式（２４）
Ｍr ＝Ａ・Ｍr           （２４）
（但し、Ａは遷移行列、Ｍrは目標状態量）の条件を満たす目標状態量によって表され、下記の式（３０）で定義される有限加算ステップの評価関数である上記所定の評価関数とから最適化計算装置でフィードバックゲイン行列の収束値として上記フィードバックゲインを求めておいて、
上記求めたフィードバックゲインと工程内製品仕掛状態を表す状態ベクトルとから、製品の移動の指示である操作ベクトルを求めたのち、上記操作ベクトルの中の正値で大きい操作量が得られた順に、上記生産・物流シミュレータによるシミュレーション上の制約を満足して移動可能であるかどうかを調べ、移動可能な数だけ製品を移動させるようにして生産・物流プロセスの制御を行うことを特徴とする生産・物流プロセス制御装置。
【数１４】
0004846376.tif 000032
【請求項８】
生産・物流プロセスの工程内製品仕掛状態を表す物流状態と物流制約を表現した生産・物流プロセスを模擬する離散系のシミュレータであって、スケジュールを作成するのに考慮すべき物流状態と物流制約とを全て記載する生産・物流シミュレータと、
上記生産・物流プロセスの物流状態と物流制約とのうち、スケジュール作成に影響が大きい重要な部分のみを数式で表現した数式モデルであって、着目している物流のスケジュールを作成するのに係わる情報を取り込んで作成された状態方程式を用いた数式モデルを保持する数式モデル保持装置と、
上記数式モデルと所定の評価関数とを入力して最適化計算処理を行って上記生産・物流シミュレータに対する、上記製品の移動の指示である物流指示を算出して出力する最適化計算装置とを有する生産・物流スケジュール作成装置により生産・物流スケジュールを作成する方法であって、
上記最適化計算処理により、
物流状態である状態ベクトルに掛け合わせることによって物流指示である操作ベクトルとなる値であるフィードバックゲインを算出し、
次に、上記算出したフィードバックゲインと状態ベクトルとを用いて操作ベクトルを算出して上記生産・物流シミュレータに与えて、シミュレーションを進め、新たな状態ベクトルを得て、この新たな状態ベクトルと上記算出したフィードバックゲインをもとに新たな操作ベクトルを算出するという処理を、予め設定されたスケジュール作成の対象期間だけ繰り返すことにより得られたシミュレーション結果、すなわち該スケジュール作成の対象期間における一連の物流状態から上記生産・物流スケジュールを作成する際に、
上記最適化計算処理の時間に比例したきざみ時間遅れに従って表される接続行列と遷移行列とを用いた、下記の式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）           （１）
（但し、Ａは遷移行列、Ｂは接続行列、Ｍ（ｋ）、Ｍ（ｋ＋１）は、それぞれ、時刻ｋ、ｋ＋１における状態ベクトル、ｕ（ｋ）は時刻ｋにおける操作ベクトル）
で定義される状態方程式を求めるとともに、上記求めた状態方程式と、設定した評価行列および、前記状態ベクトルの取るべき値の目標値であって、下記の式（２４）
Ｍr ＝Ａ・Ｍr           （２４）
（但し、Ａは遷移行列、Ｍrは目標状態量）の条件を満たす目標状態量によって表され、下記の式（３０）で定義される有限加算ステップの評価関数である上記所定の評価関数とからフィードバックゲイン行列の収束値として上記フィードバックゲインを求めておいて、
上記求めたフィードバックゲインと工程内製品仕掛状態を表す状態ベクトルとから、製品の移動の指示である操作ベクトルを求めたのち、上記操作ベクトルの中の正値で大きい操作量が得られた順に、上記生産・物流シミュレータによるシミュレーション上の制約を満足して移動可能であるかどうかを調べ、移動可能な数だけ製品を移動させるようにして上記生産・物流プロセスにおける生産・物流スケジュールを作成するようにしたことを特徴とする生産・物流スケジュール作成方法。
【数１４】
0004846376.tif 000033
【請求項９】
生産・物流プロセスの工程内製品仕掛状態を表す物流状態と物流制約を表現した生産・物流プロセスを模擬する離散系のシミュレータであって、スケジュールを作成するのに考慮すべき物流状態と物流制約とを全て記載する生産・物流シミュレータと、
上記生産・物流プロセスの物流状態と物流制約とのうち、スケジュール作成に影響が大きい重要な部分のみを数式で表現した数式モデルであって、着目している物流のスケジュールを作成するのに係わる情報を取り込んで作成された状態方程式を用いた数式モデルを保持する数式モデル保持装置と、
上記数式モデルと所定の評価関数とを入力して最適化計算処理を行って上記生産・物流シミュレータに対する、上記製品の移動の指示である物流指示を算出して出力する最適化計算装置とを有する生産・物流プロセス制御装置により生産・物流プロセスを制御する方法であって、
上記最適化計算処理により、
物流状態である状態ベクトルに掛け合わせることによって物流指示である操作ベクトルとなる値であるフィードバックゲインを算出し、
次に、上記算出したフィードバックゲインと状態ベクトルとを用いて操作ベクトルを算出して上記生産・物流シミュレータに与えて、シミュレーションを進め、新たな状態ベクトルを得て、この新たな状態ベクトルと上記算出したフィードバックゲインをもとに新たな操作ベクトルを算出するという処理を、予め設定されたスケジュール作成の対象期間だけ繰り返すことにより得られたシミュレーション結果、すなわち該スケジュール作成の対象期間における一連の物流状態から上記生産・物流プロセスにおけるスケジュールを作成する際に、
上記最適化計算処理の時間に比例したきざみ時間遅れに従って表される接続行列と遷移行列とを用いた、下記の式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）           （１）
（但し、Ａは遷移行列、Ｂは接続行列、Ｍ（ｋ）、Ｍ（ｋ＋１）は、それぞれ、時刻ｋ、ｋ＋１における状態ベクトル、ｕ（ｋ）は時刻ｋにおける操作ベクトル）
で定義される状態方程式を求めるとともに、上記求めた状態方程式と、設定した評価行列および、前記状態ベクトルの取るべき値の目標値であって、下記の式（２４）
Ｍr ＝Ａ・Ｍr           （２４）
（但し、Ａは遷移行列、Ｍrは目標状態量）の条件を満たす目標状態量によって表され、下記の式（３０）で定義される有限加算ステップの評価関数である上記所定の評価関数とから最適化計算装置でフィードバックゲイン行列の収束値として上記フィードバックゲインを求めておいて、
上記求めたフィードバックゲインと工程内製品仕掛状態を表す状態ベクトルとから、製品の移動の指示である操作ベクトルを求めたのち、上記操作ベクトルの中の正値で大きい操作量が得られた順に、上記生産・物流シミュレータによるシミュレーション上の制約を満足して移動可能であるかどうかを調べ、移動可能な数だけ製品を移動させるようにして生産・物流プロセスの制御を行うようにしたことを特徴とする生産・物流プロセス制御方法。
【数１４】
0004846376.tif 000034
【請求項１０】
請求項８に記載の生産・物流スケジュール作成方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１１】
請求項９に記載の生産・物流プロセス制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１２】
請求項１０または１１に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は生産・物流スケジュール作成装置及び方法、生産・物流プロセス制御装置及び方法、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体に関し、特に、操作者の熟練度に依存することなく対象システムのスケジュールを正確に作成するような場合に用いて好適なものである。
【背景技術】
【０００２】
従来、見込み生産を行わない受注生産の形態では、受注した品目を製造オーダーに分割し、納期遵守率や設備稼働率、中間在庫量、コスト等の観点を考慮して生産・物流スケジュールを作成している。上記生産・物流スケジュールを作成する手法として、技術的に大別すると２つの手法が用いられている。
【０００３】
すなわち、第１の手法としては、例えば、特許文献１の「生産計画評価方法及びシステム」に開示されているように、コンピュータ上に構築した工場を模したシミュレーション上で、実機器と同じインタフェースから取得した情報を使用して実機器の稼動を予測し、稼動予測に基づいて、実機器より速い速度で仮想的な生産を行い、仮想的な生産の過程及び結果を用いて、精度の高い指標を提示することによって、生産計画の評価及び選択を可能にする手法である。
【０００４】
また、第２の手法としては、特許文献２の「物流計画作成装置」にて開示されているように、線形計画法、数理計画法等のように、最適性が保証される手法に基づいてスケジュールを作成する手法である。
【０００５】
【特許文献１】特開２００２−３６６２１９号公報
【特許文献２】特開２０００−１７２７４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１に記載の「生産計画評価方法及びシステム」に開示されているように、シミュレータを用いて生産・物流スケジュールを作成する手法は、満足できる結果が得られるまでには、（１）条件を種々に変えながらシミュレーションを行い、その結果の評価を何回も繰返し行う必要があった。したがって、（２）大規模工場では生産・物流スケジュールを作成するのに多くの時間がかかってしまう問題点があった。また、（３）高精度な生産・物流スケジュールを得るためには、シミュレーション・ルールを細かく設定しなければならない問題点があった。
【０００７】
また、上記特許文献２の「物流計画作成装置」にて開示されているように、線形計画法、数理計画法等のように、最適性が保証される手法に基づいてスケジュールを作成する手法の場合には、（１）生産・物流スケジュールを作成する規模が大きくなると、実用的な時間内に解くことが困難になってしまう問題点があった。また、（２）数式で記述できない制約や条件に起因する誤差が生じるため、得られた生産・物流スケジュールが実行可能であるかどうかは保証されていない問題点があった。すなわち、（３）一貫した離散時間系制御理論に基づく制御則ではないため、プロセス全体の物流制御を自動的に最適化することは難しい問題点があった。
【０００８】
本発明は上述の問題点に鑑みてなされたものであり、シミュレーションを繰り返し行うことなく最適な生産・物流シミュレーション結果を得ることができるようにして、スケジュール作成対象の生産・物流プロセスで実際に使用可能であることが保証された生産・物流スケジュールを高速に、且つ高精度に作成できるようにすることを目的とする。特に、不可制御の物流モデルであっても自動的に、かつ高速に最適化できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の生産・物流スケジュール作成装置は、生産・物流プロセスの工程内製品仕掛状態を表す物流状態と物流制約を表現した生産・物流プロセスを模擬する離散系のシミュレータであって、スケジュールを作成するのに考慮すべき物流状態と物流制約とを全て記載する生産・物流シミュレータと、上記生産・物流プロセスの物流状態と物流制約とのうち、スケジュール作成に影響が大きい重要な部分のみを数式で表現した数式モデルであって、着目している物流のスケジュールを作成するのに係わる情報を取り込んで作成された状態方程式を用いた数式モデルを保持する数式モデル保持装置と、
上記数式モデルと所定の評価関数とを入力して最適化計算処理を行って上記生産・物流シミュレータに対する、上記製品の移動の指示である物流指示を算出して出力する最適化計算装置とを有し、
上記最適化計算処理により、
物流状態である状態ベクトルに掛け合わせることによって物流指示である操作ベクトルとなる値であるフィードバックゲインを算出し、
次に、上記算出したフィードバックゲインと状態ベクトルとを用いて操作ベクトルを算出して上記生産・物流シミュレータに与えて、シミュレーションを進め、新たな状態ベクトルを得て、この新たな状態ベクトルと上記算出したフィードバックゲインをもとに新たな操作ベクトルを算出するという処理を、予め設定されたスケジュール作成の対象期間だけ繰り返すことにより得られたシミュレーション結果、すなわち該スケジュール作成の対象期間における一連の物流状態からスケジュールを作成する生産・物流スケジュール作成装置であって、
上記数式モデル保持装置で最適化計算処理の時間に比例したきざみ時間遅れに従って表される接続行列と遷移行列とを用いた、下記の式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）           （１）
（但し、Ａは遷移行列、Ｂは接続行列、Ｍ（ｋ）、Ｍ（ｋ＋１）は、それぞれ、時刻ｋ、ｋ＋１における状態ベクトル、ｕ（ｋ）は時刻ｋにおける操作ベクトル）
で定義される状態方程式を求めるとともに、上記求めた状態方程式と、設定した評価行列および、前記状態ベクトルの取るべき値の目標値であって、下記の式（２４）
Ｍr ＝Ａ・Ｍr           （２４）
（但し、Ａは遷移行列、Ｍrは目標状態量）の条件を満たす目標状態量によって表され、下記の式（３０）で定義される有限加算ステップの評価関数である上記所定の評価関数とから最適化計算装置でフィードバックゲイン行列の収束値として上記フィードバックゲインを求めておいて、
上記求めたフィードバックゲインと工程内製品仕掛状態を表す状態ベクトルとから、製品の移動の指示である操作ベクトルを求めたのち、上記操作ベクトルの中の正値で大きい操作量が得られた順に、上記生産・物流シミュレータによるシミュレーション上の制約を満足して移動可能であるかどうかを調べ、移動可能な数だけ製品を移動させるようにして生産・物流スケジュールを作成するようにしたことを特徴とする。
【数１４】
0004846376.tif 000002
【００１０】
本発明の生産・物流プロセス制御装置は、生産・物流プロセスの工程内製品仕掛状態を表す物流状態と物流制約を表現した生産・物流プロセスを模擬する離散系のシミュレータであって、スケジュールを作成するのに考慮すべき物流状態と物流制約とを全て記載する生産・物流シミュレータと、上記生産・物流プロセスの物流状態と物流制約とのうち、スケジュール作成に影響が大きい重要な部分のみを数式で表現した数式モデルであって、着目している物流のスケジュールを作成するのに係わる情報を取り込んで作成された状態方程式を用いた数式モデルを保持する数式モデル保持装置と、上記数式モデルと所定の評価関数とを入力して最適化計算処理を行って上記生産・物流シミュレータに対する、上記製品の移動の指示である物流指示を算出して出力する最適化計算装置とを有し、
上記最適化計算処理により、
物流状態である状態ベクトルに掛け合わせることによって物流指示である操作ベクトルとなる値であるフィードバックゲインを算出し、
次に、上記算出したフィードバックゲインと状態ベクトルとを用いて操作ベクトルを算出して上記生産・物流シミュレータに与えて、シミュレーションを進め、新たな状態ベクトルを得て、この新たな状態ベクトルと上記算出したフィードバックゲインをもとに新たな操作ベクトルを算出するという処理を、予め設定されたスケジュール作成の対象期間だけ繰り返すことにより得られたシミュレーション結果、すなわち該スケジュール作成の対象期間における一連の物流状態から上記生産・物流プロセスの制御を行う際に、
上記最適化計算処理の時間に比例したきざみ時間遅れに従って表される接続行列と遷移行列とを用いた、下記の式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）           （１）
（但し、Ａは遷移行列、Ｂは接続行列、Ｍ（ｋ）、Ｍ（ｋ＋１）は、それぞれ、時刻ｋ、ｋ＋１における状態ベクトル、ｕ（ｋ）は時刻ｋにおける操作ベクトル）
で定義される状態方程式を求めるとともに、上記求めた状態方程式と、設定した評価行列および、前記状態ベクトルの取るべき値の目標値であって、下記の式（２４）
Ｍr ＝Ａ・Ｍr           （２４）
（但し、Ａは遷移行列、Ｍrは目標状態量）の条件を満たす目標状態量によって表され、下記の式（３０）で定義される有限加算ステップの評価関数である上記所定の評価関数とから最適化計算装置でフィードバックゲイン行列の収束値として上記フィードバックゲインを求めておいて、
上記求めたフィードバックゲインと工程内製品仕掛状態を表す状態ベクトルとから、製品の移動の指示である操作ベクトルを求めたのち、上記操作ベクトルの中の正値で大きい操作量が得られた順に、上記生産・物流シミュレータによるシミュレーション上の制約を満足して移動可能であるかどうかを調べ、移動可能な数だけ製品を移動させるようにして生産・物流プロセスの制御を行うことを特徴とする。
【数１４】
0004846376.tif 000003
【００１１】
本発明の生産・物流スケジュール作成方法は、生産・物流プロセスの工程内製品仕掛状態を表す物流状態と物流制約を表現した生産・物流プロセスを模擬する離散系のシミュレータであって、スケジュールを作成するのに考慮すべき物流状態と物流制約とを全て記載する生産・物流シミュレータと、上記生産・物流プロセスの物流状態と物流制約とのうち、スケジュール作成に影響が大きい重要な部分のみを数式で表現した数式モデルであって、着目している物流のスケジュールを作成するのに係わる情報を取り込んで作成された状態方程式を用いた数式モデルを保持する数式モデル保持装置と、上記数式モデルと所定の評価関数とを入力して最適化計算処理を行って上記生産・物流シミュレータに対する、上記製品の移動の指示である物流指示を算出して出力する最適化計算装置とを有する生産・物流スケジュール作成装置により生産・物流スケジュールを作成する方法であって、
上記最適化計算処理により、物流状態である状態ベクトルに掛け合わせることによって物流指示である操作ベクトルとなる値であるフィードバックゲインを算出し、
次に、上記算出したフィードバックゲインと状態ベクトルとを用いて操作ベクトルを算出して上記生産・物流シミュレータに与えて、シミュレーションを進め、新たな状態ベクトルを得て、この新たな状態ベクトルと上記算出したフィードバックゲインをもとに新たな操作ベクトルを算出するという処理を、予め設定されたスケジュール作成の対象期間だけ繰り返すことにより得られたシミュレーション結果、すなわち該スケジュール作成の対象期間における一連の物流状態から上記生産・物流スケジュールを作成する際に、
上記最適化計算処理の時間に比例したきざみ時間遅れに従って表される接続行列と遷移行列とを用いた、下記の式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）           （１）
（但し、Ａは遷移行列、Ｂは接続行列、Ｍ（ｋ）、Ｍ（ｋ＋１）は、それぞれ、時刻ｋ、ｋ＋１における状態ベクトル、ｕ（ｋ）は時刻ｋにおける操作ベクトル）
で定義される状態方程式を求めるとともに、上記求めた状態方程式と、設定した評価行列および、前記状態ベクトルの取るべき値の目標値であって、下記の式（２４）
Ｍr ＝Ａ・Ｍr           （２４）
（但し、Ａは遷移行列、Ｍrは目標状態量）の条件を満たす目標状態量によって表され、下記の式（３０）で定義される有限加算ステップの評価関数である上記所定の評価関数とからフィードバックゲイン行列の収束値として上記フィードバックゲインを求めておいて、
上記求めたフィードバックゲインと工程内製品仕掛状態を表す状態ベクトルとから、製品の移動の指示である操作ベクトルを求めたのち、上記操作ベクトルの中の正値で大きい操作量が得られた順に、上記生産・物流シミュレータによるシミュレーション上の制約を満足して移動可能であるかどうかを調べ、移動可能な数だけ製品を移動させるようにして上記生産・物流プロセスにおける生産・物流スケジュールを作成するようにしたことを特徴とする。
【数１４】
0004846376.tif 000004
【００１２】
本発明の生産・物流プロセス制御方法は、生産・物流プロセスの工程内製品仕掛状態を表す物流状態と物流制約を表現した生産・物流プロセスを模擬する離散系のシミュレータであって、スケジュールを作成するのに考慮すべき物流状態と物流制約とを全て記載する生産・物流シミュレータと、上記生産・物流プロセスの物流状態と物流制約とのうち、スケジュール作成に影響が大きい重要な部分のみを数式で表現した数式モデルであって、着目している物流のスケジュールを作成するのに係わる情報を取り込んで作成された状態方程式を用いた数式モデルを保持する数式モデル保持装置と、上記数式モデルと所定の評価関数とを入力して最適化計算処理を行って上記生産・物流シミュレータに対する、上記製品の移動の指示である物流指示を算出して出力する最適化計算装置とを有する生産・物流プロセス制御装置により生産・物流プロセスを制御する方法であって、
上記最適化計算処理により、物流状態である状態ベクトルに掛け合わせることによって物流指示である操作ベクトルとなる値であるフィードバックゲインを算出し、
次に、上記算出したフィードバックゲインと状態ベクトルとを用いて操作ベクトルを算出して上記生産・物流シミュレータに与えて、シミュレーションを進め、新たな状態ベクトルを得て、この新たな状態ベクトルと上記算出したフィードバックゲインをもとに新たな操作ベクトルを算出するという処理を、予め設定されたスケジュール作成の対象期間だけ繰り返すことにより得られたシミュレーション結果、すなわち該スケジュール作成の対象期間における一連の物流状態から上記生産・物流プロセスにおけるスケジュールを作成する際に、
上記最適化計算処理の時間に比例したきざみ時間遅れに従って表される接続行列と遷移行列とを用いた、下記の式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）           （１）
（但し、Ａは遷移行列、Ｂは接続行列、Ｍ（ｋ）、Ｍ（ｋ＋１）は、それぞれ、時刻ｋ、ｋ＋１における状態ベクトル、ｕ（ｋ）は時刻ｋにおける操作ベクトル）
で定義される状態方程式を求めるとともに、上記求めた状態方程式と、設定した評価行列および、前記状態ベクトルの取るべき値の目標値であって、下記の式（２４）
Ｍr ＝Ａ・Ｍr           （２４）
（但し、Ａは遷移行列、Ｍrは目標状態量）の条件を満たす目標状態量によって表され、下記の式（３０）で定義される有限加算ステップの評価関数である上記所定の評価関数とから最適化計算装置でフィードバックゲイン行列の収束値として上記フィードバックゲインを求めておいて、
上記求めたフィードバックゲインと工程内製品仕掛状態を表す状態ベクトルとから、製品の移動の指示である操作ベクトルを求めたのち、上記操作ベクトルの中の正値で大きい操作量が得られた順に、上記生産・物流シミュレータによるシミュレーション上の制約を満足して移動可能であるかどうかを調べ、移動可能な数だけ製品を移動させるようにして生産・物流プロセスの制御を行うようにしたことを特徴とする。
【数１４】
0004846376.tif 000005
【００１３】
本発明のコンピュータプログラムは、前記に記載の生産・物流スケジュール作成方法をコンピュータに実行させることを特徴とする。
また、本発明のコンピュータプログラムの他の特徴とするところは、上記に記載の生産・物流プロセス制御方法をコンピュータに実行させることを特徴とする。
【００１４】
本発明のコンピュータ読み取り可能な記録媒体は、上記に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の効果】
【００１５】
本発明によれば、異なる複数の工程で複数製品を処理して製造するプロセスにおいて、物流制御システムの構築が容易に行え、かつ自動的に最適化された物流制御方法および処理順序計画方法を確立することができる。
【００１６】
さらに、本発明では、工程内製品仕掛状態の目標量（目標状態量）を導入するとともに、評価行列によって表される評価関数の加算ステップを有限とし、その後フィードバックゲイン行列を求める際にその行列値が収束するまで計算するように構成したので、不可制御のペトリネットモデルであっても評価関数が発散しないようにすることができ、制御に不可欠なフィードバックゲイン行列を常に計算することができる。これにより、可制御であるか不可制御であるかに拘らず、製造プロセスの物流制御を常に自動的に最適化することができるようになる。
【００１７】
また、本発明では、ペトリネットモデルの状態方程式から、ペトリネットモデルの可観測性を満足するように求めた出力行列を用いて出力方程式を作成し、その出力方程式に基づいてフィードバックゲイン行列を計算するようにしたので、ゲイン計算に使用する評価関数で評価の対象となる状態数をペトリネットモデルの全状態数よりも少なくすることができ、その分フィードバックゲイン行列を計算する際の繰り返し演算の回数を少なくして処理時間を短くすることができる。上述のように出力行列は可観測性を満足しているので、評価関数に現れる状態だけを評価の対象としてもペトリネットモデルの全状態を把握することができ、これにより、実質的に制御性能を劣化させることなく、製造プロセスの物流制御を最適化する処理をより高速に行うことができるようになる。
【００１８】
また、本発明の他の特徴によれば、上記フィードバックゲイン行列をチャンドラセカール型の差分方程式により求めるようにしたので、フィードバックゲイン行列を計算する際の繰り返し演算の反復１回当たりの演算量を格段に減らすことができ、ゲイン行列計算の更なる高速化を実現することができるようになる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して、本発明の好適な実施形態について説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態を示し、物流スケジュール作成装置の一例を説明するブロック図である。図１に示したように、本実施形態の物流スケジュール作成装置は、物流シミュレータ１ａを備えたシミュレーション制御部１、最適化計算装置２等によって構成されている。
【００２０】
本実施形態では、物流シミュレータ１ａは生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬したシミュレータ、いわば工場を模擬した大型のシミュレータであり、本実施形態においては、グラフモデルを用いてシミュレータを構築するもので、事象（シミュレータのイベント）毎に物を動かす離散系として構成されている。
【００２１】
また、上記物流シミュレータ１ａに対応させて数学モデル（数式モデル）３が構成されている。本実施形態においては、生産・物流プロセスの物流状態及び物流制約の中から、作成する物流スケジュールに関連する要素を取り込んで、下式(イ)に示すような状態方程式を用いて上記数式モデル３が作成されている。上記数式モデル３は、半導体記憶手段等により構成される数式モデル保持手段（図示せず）によって保持されている。
Ｍ(k+1) ＝Ｍ(k) ＋ｂ・ｕ(k) ・・・(イ)
すなわち、離散化したある時刻k において各点に存在する要素の数を示す状態ベクトル、言い換えれば状態量をＭ(k) で表し、各線の発火の有無を"１"及び"０"で表現した操作ベクトルをｕ(k) で表わすと、次の時刻k+1 における状態ベクトルＭ(k+1) は、接続行列ｂを用いて上式(イ)で表わすことができる。
【００２２】
最適化計算装置２では、上記数式モデル３に対して最適化計算処理を行い、フィードバックゲインＫを算出するようにしている。上記最適化計算装置２によって行われる最適化計算は線形二次（ＬＱ）制御を利用するものであり、下式(ロ)に示すような評価関数Ｓを用いて行われる。
Ｓ＝Σ｛Ｍ'ＱＭ＋ｕ'Ｒｕ｝ ・・・(ロ)
評価関数Ｓにおいて、Ｑ，Ｒは制御目的にあわせて設定された適当な行列であり、Ｍ'，ｕ'は、それぞれ状態ベクトルＭ、操作ベクトルｕの転置ベクトルである。そして、評価関数Ｓが最小となるように制御することを考えれば、
ｕ(k) ＝−Ｋ・Ｍ(k) ・・・(ハ)
とした状態フィードバック制御を行うフィードバックゲインＫを最適制御理論より求めることができる。
【００２３】
シミュレーション制御部１の最適制御方策部１ｂでは、最適化計算装置２で算出されるフィードバックゲインＫと物流状態（状態ベクトルＭ）とを用いて物流指示（操作ベクトルｕ）を算出して物流シミュレータ１ａに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返す。そして、これにより得られたシミュレーション結果４から生産・物流プロセスにおける物流スケジュールを作成する。
【００２４】
以下に、第１の実施形態の具体例を、図２〜５を参照しながら説明する。図２に示したように、第１に、生産・物流プロセスのグラフモデルとして、処理時間Ｔp に比例した数の点で各工程を表わしたグラフモデルを製品種ごとに構築する（ステップＳ１）。
【００２５】
第２に、構築したグラフモデルの状態方程式と、設定した評価関数Ｑ，Ｒとからフィードバックゲイン行列Ｋを製品種ごとに求める（ステップＳ２）。
【００２６】
第３に、この求めたフィードバックゲイン行列Ｋと工程内製品仕掛状態を表す状態ベクトルＭ(k) とから、製品の移動操作端に対する操作ベクトルｕ(k) を製品種ごとに求めたのち、仮想的な生産・物流プロセス内の各移動操作端に対して、正値で大きい操作量が得られた製品順に移動可能（これを発火可能といい、発火可能か発火不可能化を発火可能性という）な数だけ移動操作を順次行うという方法を用いて、所定期間の生産・物流プロセスのシミュレーションを実行する（ステップＳ３）。ここで、移動操作端とは、グラフモデルにおいて、各工程を処理時間Ｔp に比例した数の点を繋ぐ部分（線）、実際の工程では、搬送テーブルやクレーンの各処理設備を繋ぎ、次設備への移動を判断する部分を指す。
【００２７】
図３は、図２に示したステップＳ１の処理、すなわち、生産・物流プロセスのグラフモデルとして、処理時間を比例した数の点で各工程を表したグラフモデルを製品種ごとに構築するための処理手順の例を示すフローチャートである。
【００２８】
すなわち、まず離散きざみ時間ΔＴを入力し（ステップＳ１０１）、次に製品種ごとに全ての処理工程と処理時間Ｔp とを入力する（ステップＳ１０２）。そして、処理工程ごとに処理時間Ｔp をきざみ時間ΔＴで除して整数化することにより上記各処理工程の点の数ｎp を求め（ステップＳ１０３、Ｓ１０４）、全処理工程の点を線で連結して製品種ごとのグラフモデルを構築する（ステップＳ１０５）。
【００２９】
そして、全ての製品についてグラフモデルを構築するまでステップＳ１０６からステップＳ１０２の処理に戻り、以上の処理を繰り返して行う。なお、離散きざみ時間ΔＴは、各製品種各工程処理時間の最大公約数をもって定義するのが最も効率的であるが、目的とする制御精度を勘案して適宜設定すればよい。
【００３０】
図４は、図２に示したステップＳ２の処理、すなわち、構築したグラフモデルの状態方程式と設定した評価関数とからフィードバックゲイン行列Ｋを製品種ごとに求めるための処理手順の例を示すフローチャートである。なお、全製品についてグラフモデルの接続行列ｂ作成し、それを最適化計算装置２に入力し、全製品を一括で計算するようにしてもよい。
【００３１】
すなわち、まず製品種ごとにグラフモデルの状態方程式を記述する接続行列ｂを最適化計算装置２に入力するとともに（ステップＳ２０１）、評価関数を表す行列Ｑ，Ｒを入力する（ステップＳ２０２）。そして、上記入力した接続行列ｂ及び評価行列Ｑ，Ｒからフィードバックゲイン行列Ｋを計算する（ステップＳ２０３）。この計算を全ての製品について完了するまでステップＳ２０４からステップＳ２０１の処理に戻り、以上の処理を繰り返して行う。
【００３２】
図５は、図２に示したステップＳ３の処理、すなわち、上述のようにして計算したフィードバックゲイン行列Ｋと工程内製品仕掛状態を表す状態ベクトルＭ(K) とから、製品の移動操作端に対する操作ベクトルｕ(K) を製品種ごとに求めたのち、仮想的な生産・物流プロセス内の各移動操作端に対して、正値で大きい操作量が得られた製品順に移動可能な数だけ移動操作を順次行うという方法を用いて、所定期間の生産・物流プロセスのシミュレーションを実行するための処理手順の例を示すフローチャートである。
【００３３】
すなわち、まずグラフモデルの初期状態における状態ベクトルＭ(0) を入力するとともに、投入予定の全製品（要素）を投入点に入力し、時刻 kの値を０に初期化したのち（ステップＳ３０１）、現時点（時刻：k ）における全製品種の状態ベクトルＭ(k) を入力する（ステップＳ３０２）。
【００３４】
そして、上述の方法を用いて計算されたフィードバックゲイン行列Ｋと上記入力した状態ベクトルＭ(k) とをかけて製品種ごとに操作ベクトルｕ(k) を計算し（ステップＳ３０３）、次に移動操作端ごとに、正値で大きい操作量が得られた製品順に、移動可能な数だけ移動操作を実行する（ステップＳ３０４）。
【００３５】
次に、時刻を進めたのち（ステップＳ３０５）、各ステップのシミュレーションが終了したかどうかを判断し（ステップＳ３０６）、終了していないときはステップＳ３０２の処理に戻る。一方、終了したときは、そのシミュレーション結果をもって生産スケジュールとする（ステップＳ３０７）。
【００３６】
上述したように、本実施形態においては、最適化計算を行った結果得られた指示と、その事象における状態とに基づいた最適制御を行うので、それぞれの事象毎に最適化計算を実行したシミュレーション結果に基づいてスケジュールを作成することができ、しかも、そのスケジュールは生産・物流プロセスの制約を表現したシミュレータによるシミュレーション結果であるから、実際に使用可能であることを確認することができる。
【００３７】
これにより、上記物流シミュレータ１ａの規模が非常に大きい場合、或いは制約条件が非常に多くて複雑な場合でも、上記物流シミュレータ１ａに記載された物流状態、数式のうち、スケジュール作成に影響が大きい重要な部分のみを上記数式モデル３に取り込むようにすることで、上記物流シミュレータ１ａの規模を適切な範囲にして、実用的な時間内で最適化計算を行うようにすることができる。
【００３８】
上記物流シミュレータ１ａは、考慮すべき物流状態、物流制約を全て記載することができるので、１回のシミュレーションを行って作成されたスケジュールは現実に実行可能となることが保証される。
【００３９】
上述したように、本実施形態においては、物流シミュレータ１ａと、数式モデル３と、最適化計算装置２とを連動させて物流スケジュールを作成するようにしたので、（１）計算の繰り返しをしないでスケジュールを作成することができる。また、（２）スケジュール作成に影響が大きい重要な部分のみを上記数式モデル３に取り込むようにすることで計算時間を短縮することができるとともに、（３）大規模問題を解くことが可能になる。
【００４０】
また、物流指示が必要な事象が発生するたびに上記物流シミュレータ１ａの物流状態及び物流制約の情報を検出し、上記検出した検出情報と予め定めた評価指標を元に、上記最適化計算装置２により最適化手法に最適物流指示を計算し、上記計算結果に基づいて上記物流シミュレータ１ａで詳細シミュレーションを行ってスケジュールを作成するので、（４）スケジュール精度を高くすることができるとともに、（５）実行可能性の検証が取れているスケジュールを作成することができる。
【００４１】
また、数式モデル３を導入したので、スケジュール作成に影響が大きい重要な部分に変更が生じた場合でも迅速に対処することが可能となり、メンテナンス性が高いスケジュール作成装置を構築できる。
【００４２】
さらに、シミュレーション制御部１での処理はオンラインで、物流シミュレータ１ａに対応させて数学モデル（数式モデル）３の構築や最適化計算装置２での上記数式モデル３に対する最適化計算処理はオフラインで行うように分けることも可能であり、シミュレーション制御部１での処理負荷を軽くして処理能力を高めることができる。
【００４３】
なお、本実施形態では、一般的なグラフ理論に基づく例を説明したが、ペトリネットモデルやその他のグラフモデルに本発明を適用することも可能である。ペトリネットモデルでは、上述したグラフモデルにおける点はプレースで表現され、線はトランジションで表現される。トランジションは、プレースからプレースへ製品すなわちトークンを移動させる移動操作端である。
【００４４】
一般に、ペトリネットモデルでは、１つのトランジションに複数のプレースからアークが入力している場合には、それらのプレースの全てにトークンが存在していないとトランジションの操作ができない。これをトランジションの発火則と言う。また、１つのトランジションから複数のプレースにアークが出力している場合には、それらのプレースの全てにトークンが出力される。なお、アークとは、トランジションからプレース、或いはプレースからトランジションへトークンが移動する方向を示すものであり、その数は移動するトークンの数を示している。また、トランジションを操作することを、トランジションを発火させると言う。
【００４５】
また、グラフモデルでは、各工程内における処理容量をソフトウェア上で制御していたが、ペトリネットモデルでは、各工程内に設けられている仮想プレースに初期設定された容量設定用仮想トークンの数により、各処理工程で同時に処理できる製品の数を制限している。
【００４６】
このような特徴を有するペトリネットモデルに本発明を適用する場合も、一連の動作は上述したグラフモデルにおける動作と同様であり、ここでは、その詳細な説明は省略する。
【００４７】
（第２の実施形態）
本実施形態の物流スケジュール作成装置も、図１に示したように、物流シミュレータ１ａを備えたシミュレーション制御部１、最適化計算装置２等によって構成されている。
【００４８】
本実施形態では、物流シミュレータ１ａは生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬したシミュレータ、いわば工場を模擬した大型のシミュレータであり、本実施形態においては、ペトリネットモデルを用いてシミュレータを構築するもので、事象（シミュレータのイベント）毎に物を動かす離散系として構成されている。
【００４９】
また、上記物流シミュレータ１ａに対応させて数学モデル（数式モデル）３が構成されている。本実施形態においては、生産・物流プロセスの物流状態及び物流制約の中から、作成する物流スケジュールに関連する要素を取り込んで、下式(イ)に示すような状態方程式を用いて上記数式モデル３が作成されている。上記数式モデル３は、半導体記憶手段等により構成される数式モデル保持手段（図示せず）によって保持されている。
Ｍ(k+1) ＝Ｍ(k) ＋ｂ・ｕ(k) ・・・(イ)
すなわち、離散化したある時刻k において各プレースでのトークンの有無を示す状態ベクトル、言い換えれば状態量をＭ(k) で表し、各トランジション発火の有無を"１"及び"
０"で表現した操作ベクトルをｕ(k) で表わすと、次の時刻k+1 における状態ベクトルＭ(k+1) は、接続行列ｂを用いて上式(イ)で表わすことができる。
【００５０】
ここで、図６にペトリネットモデルの一例を示す。ペトリネットモデルは、プレース（○印）（図示例ではp1〜p6）、トランジション（｜印）（図示例ではt1〜t5）、アーク（→印）、トークン（・印）の４要素で表現される。この場合に、１つのトランジションに複数のプレースからアークが入力している場合には、それらのプレースの全てに製品すなわちトークンが存在していないとトランジションの操作ができない（トランジションの発火則、発火可能か発火不可能かを発火可能性という）。また、１つのトランジションから複数のプレースにアークが出力している場合には、それらのプレースの全てにトークンが出力される。なお、アークとは、トランジションからプレース、或いは、プレースからトランジションへトークンが移動する方向を示すものであり、その数は移動するトークンの数を示している。また、トランジションを操作することを、トランジションを発火させると言う。
【００５１】
図６に示すようにトランジションｔ１を発火させる場合を例にすると、離散化したある時刻k において各プレースp1〜p6でのトークンt1〜t5の有無を示す状態ベクトル、言い換えれば状態量をＭ(k) で表し、各トランジション発火の有無を"１"及び"０"で表現した操作ベクトルをｕ(k) で表わすと、次の時刻k+1 における状態ベクトルＭ(k+1) は、接続行列ｂを用いて下式（１）で表わすことができる。
【００５２】
【数１】
0004846376.tif 000006
【００５３】
最適化計算装置２では、上記数式モデル３に対して最適化計算処理を行い、フィードバックゲインＫを算出するようにしている。上記最適化計算装置２によって行われる最適化計算は線形二次（ＬＱ）制御を利用するものであり、下式(ロ)に示すような評価関数Ｓを用いて行われる。
Ｓ＝Σ｛Ｍ'ＱＭ＋ｕ'Ｒｕ｝ ・・・(ロ)
評価関数Ｓにおいて、Ｑ，Ｒは制御目的にあわせて設定された適当な行列であり、Ｍ'，ｕ'は、それぞれ状態ベクトルＭ、操作ベクトルｕの転置ベクトルである。そして、評価関数Ｓが最小となるように制御することを考えれば、
ｕ(k) ＝−Ｋ・Ｍ(k) ・・・(ハ)
とした状態フィードバック制御を行うフィードバックゲインＫを最適制御理論より求めることができる。
【００５４】
シミュレーション制御部１の最適制御方策部１ｂでは、最適化計算装置２で算出されるフィードバックゲインＫと物流状態（状態ベクトルＭ）とを用いて物流指示（操作ベクトルｕ）を算出して物流シミュレータ１ａに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返す。そして、これにより得られたシミュレーション結果４から生産・物流プロセスにおける物流スケジュールを作成する。
【００５５】
以下に、第２の実施形態の具体例を、図７〜１０を参照しながら説明する。図７に示したように、第１に、生産・物流プロセスのペトリネットモデルとして、処理時間Ｔp に比例した数のプレースで各工程を表したペトリネットモデルを製品種ごとに構築する（ステップＳ４）。
【００５６】
第２に、構築したペトリネットモデルの状態方程式と、設定した評価関数とからフィードバックゲイン行列Ｋを製品種ごとに求める（ステップＳ５）。
【００５７】
第３に、この求めたフィードバックゲイン行列Ｋと工程内製品仕掛状態を表す状態ベクトルＭ(k) とから、製品の移動操作端に対する操作ベクトルｕ(k) を製品種ごとに求めたのち、仮想的な生産・物流プロセス内の各移動操作端に対して、正値で大きい操作量が得られた製品順に移動可能な数だけ移動操作を順次行うという方法を用いて、所定期間の生産・物流プロセスのシミュレーションを実行する（ステップＳ６）。ここで、移動操作端とは、ぺトリネットモデルにおいて、各工程を処理時間Ｔp に比例した数のプレースを繋ぐトランジションを指し、実際の工程では、搬送テーブルやクレーンの各処理設備を繋ぎ、次設備への移動を判断する部分を指す。
【００５８】
図８は、図７に示したステップＳ４の処理、すなわち、生産・物流プロセスのペトリネットモデルとして、処理時間Ｔp に比例した数のプレースで各工程を表したペトリネットモデルを製品種ごとに構築するための処理手順の例を示すフローチャートである。
【００５９】
すなわち、まず離散きざみ時間ΔＴを入力し（ステップＳ４０１）、次に製品種ごとに全ての処理工程と処理時間Ｔp とを入力する（ステップＳ４０２）。そして、処理工程ごとに処理時間Ｔp をきざみ時間ΔＴで除して整数化することにより各処理工程のプレース数ｎp を求め（ステップＳ４０３、Ｓ４０４）、全処理工程のプレースを連結してペトリネットモデルを製品種ごとに構築する（ステップＳ４０５）。
【００６０】
そして、全ての製品についてペトリネットモデルを構築するまでステップＳ４０６からステップＳ４０２の処理に戻り、以上の処理を繰り返して行う。なお、離散きざみ時間ΔＴは、各製品種各工程処理時間の最大公約数をもって定義するのが最も効率的であるが、目的とする制御精度を勘案して適宜設定すればよい。
【００６１】
図９は、図７に示したステップＳ５の処理、すなわち、構築したペトリネットモデルの状態方程式と設定した評価関数とからフィードバックゲイン行列Ｋを製品種ごとに求めるための処理手順の例を示すフローチャートである。
【００６２】
すなわち、まず製品種ごとにペトリネットモデルの状態方程式を記述する接続行列ｂを最適化計算装置２に入力するとともに（ステップＳ５０１）、評価関数を表す行列Ｑ，Ｒを入力する（ステップＳ５０２）。そして、上記入力した接続行列ｂ及び評価行列Ｑ，Ｒからフィードバックゲイン行列Ｋを計算する（ステップＳ５０３）。この計算を全ての製品について完了するまでステップＳ５０４からステップＳ５０１の処理に戻り、以上の処理を繰り返して行う。なお、全製品についてペトリネットモデルの接続行列ｂを最適化計算装置２に入力し、全製品を一括で計算するようにしてもよい。
【００６３】
図１０は、図７に示したステップＳ６の処理、すなわち、上述のようにして計算したフィードバックゲイン行列Ｋと工程内製品仕掛状態を表す状態ベクトルＭ(K) とから、製品の移動操作端に対する操作ベクトルｕ(K) を製品種ごとに求めたのち、仮想的な生産・物流プロセス内の各移動操作端に対して、正値で大きい操作量が得られた製品順に移動可能な数だけ移動操作を順次行うという方法を用いて、所定期間の生産・物流プロセスのシミュレーションを実行するための処理手順の例を示すフローチャートである。
【００６４】
すなわち、まずペトリネットモデルの初期状態における状態ベクトルＭ(0) を入力するとともに、投入予定の全製品を投入プレースに入力し、時刻kの値を０に初期化したのち（ステップＳ６０１）、現時点（時刻：k ）における全製品種の状態ベクトルＭ(k) を入力する（ステップＳ６０２）。
【００６５】
そして、上述の方法を用いて計算されたフィードバックゲイン行列Ｋと上記入力した状態ベクトルＭ(k) とをかけて製品種ごとに操作ベクトルｕ(k) を計算し（ステップＳ６０３）、次に移動操作端ごとに、正値で大きい操作量が得られた製品順に、移動可能な数だけ移動操作を実行する（ステップＳ６０４）。
【００６６】
次に、時刻を進めたのち（ステップＳ６０５）、各ステップのシミュレーションが終了したかどうかを判断し（ステップＳ６０６）、終了していないときはステップＳ６０２の処理に戻る。一方、終了したときは、そのシミュレーション結果をもって生産スケジュールとする（ステップＳ６０７）。
【００６７】
上述したように、本実施形態においては、上述した第１の実施形態の効果に加えて、工程内製品仕掛状態を表わす状態ベクトルを各プレースにおける製品の有無に従って表現するようにしたので、フィードバックゲイン行例と上記状態ベクトルから算出される操作ベクトルの各要素を、フォードバックゲイン行列の各要素の大きさをそのまま反映したものとすることができ、同じプレース内に存在する複数種類の製品のうち、ゲインがより大きいものを常に優先して処理するようにすることができる。その結果、各処理工程での総処理時間を最短にする最適なスケジュールを簡単に作成することができる。
【００６８】
また、状態ベクトルを表現する方法として、各プレースにおける製品の有無に従う手法と、各プレースに存在する製品の数に従う手法とのいずれかを選択できるようにすれば、各プレースにおける製品の有無に従って状態ベクトルを表現する場合には、上述のように総処理時間を最短にするスケジュールを簡単に作成することができる一方、各プレースに存在する製品の数に従って状態ベクトルを表現する場合には、１つのプレース内にある製品が溜まってしまうという不都合を防止しつつ総処理時間をある程度短くするスケジュールを簡単に作成することができる。
【００６９】
（第３の実施形態）
本実施形態の物流スケジュール作成装置も、図１に示したように、物流シミュレータ１ａを備えたシミュレーション制御部１、最適化計算装置２等によって構成されている。
【００７０】
本実施形態では、物流シミュレータ１ａは生産・物流プロセスの物流状態と物流制約を表現した生産・物流プロセスを模擬したシミュレータ、いわば工場を模擬した大型のシミュレータであり、本実施形態においては、ペトリネットモデルを用いてシミュレータを構築するもので、事象（シミュレータのイベント）毎に物を動かす離散系として構成されている。
【００７１】
また、上記物流シミュレータ１ａに対応させて数学モデル（数式モデル）３が構成されている。本実施形態においては、生産・物流プロセスの物流状態及び物流制約の中から、作成する物流スケジュールに関連する要素を取り込んで、下式(ニ)に示すような状態方程式を用いて上記数式モデル３が作成されている。上記数式モデル３は、半導体記憶手段等により構成される数式モデル保持手段（図示せず）によって保持されている。
Ｍ(k+1) ＝ａ・Ｍ(k) ＋ｂ・ｕ(k) ・・・(ニ)
すなわち、離散化したある時刻k において各プレースに存在するトークンの数を示す状態ベクトル、言い換えれば状態量をＭ(k) で表し、各トランジション発火の有無を"１"及び"０"で表現した操作ベクトルをｕ(k) で表わすと、次の時刻k+1 における状態ベクトルＭ(k+1) は、遷移行列ａ、接続行列ｂを用いて上式(ニ)で表わすことができる。
【００７２】
最適化計算装置２では、上記数式モデル３に対して最適化計算処理を行い、フィードバックゲインＫを算出するようにしている。上記最適化計算装置２によって行われる最適化計算は線形二次（ＬＱ）制御を利用するものであり、下式(ロ)に示すような評価関数Ｓを用いて行われる。
Ｓ＝Σ｛Ｍ'ＱＭ＋ｕ'Ｒｕ｝ ・・・(ロ)
評価関数Ｓにおいて、Ｑ，Ｒは制御目的にあわせて設定された適当な行列であり、Ｍ'，ｕ'は、それぞれ状態ベクトルＭ、操作ベクトルｕの転置ベクトルである。そして、評価関数Ｓが最小となるように制御することを考えれば、
ｕ(k) ＝−Ｋ・Ｍ(k) ・・・(ハ)
とした状態フィードバック制御を行うフィードバックゲインＫを最適制御理論より求めることができる。
【００７３】
シミュレーション制御部１の最適制御方策部１ｂでは、最適化計算装置２で算出されるフィードバックゲインＫと物流状態（状態ベクトルＭ）とを用いて物流指示（操作ベクトルｕ）を算出して物流シミュレータ１ａに与えて、シミュレーションを進め、新たな物流状態を得て、この新たな物流状態をもとに新たな物流指示を算出するという処理を繰り返す。そして、これにより得られたシミュレーション結果４から生産・物流プロセスにおける物流スケジュールを作成する。
【００７４】
以下に、第３の実施形態の具体例を、図１１〜１４を参照しながら説明する。
図１１に示したように、第１に、生産・物流プロセスのペトリネットモデルとして、処理時間Ｔpを入力したプレースで各工程を表したペトリネットモデルを製品種ごとに構築する。そして、構築したペトリネットモデルの各プレースの処理時間Ｔp に比例したきざみ時間遅れｎp に従って表される遷移行列ａと接続行列ｂとを算出し、これら２つの行列ａ，ｂを用いて状態方程式を作成する（ステップＳ７）。
【００７５】
第２に、上記ステップＳ７で作成した状態方程式と、設定した評価関数とからフィードバックゲイン行列Ｋを製品種ごとに求める（ステップＳ８）。
【００７６】
第３に、この求めたフィードバックゲイン行列Ｋと工程内製品仕掛状態を表す状態ベクトルＭ(k) とから、製品の移動操作端に対する操作ベクトルｕ(k) を製品種ごとに求めたのち、仮想的な生産・物流プロセス内の各移動操作端に対して、正値で大きい操作量が得られた製品順に移動可能な数だけ移動操作を順次行うという方法を用いて、所定期間の生産・物流プロセスのシミュレーションを実行する（ステップＳ９）。
【００７７】
図１２は、図１１に示したステップＳ７の処理、すなわち、生産・物流プロセスのペトリネットモデルとして、処理時間を入力したプレースで各工程を表したペトリネットモデルを製品種ごとに構築し、製品種ごとに各工程でのきざみ時間遅れを表した遷移行列ａと接続行列ｂとを算出するための処理手順の例を示すフローチャートである。
【００７８】
すなわち、まず離散きざみ時間ΔＴを入力し（ステップＳ７０１）、次に製品種ごとに全ての処理工程と処理時間Ｔp とを入力する（ステップＳ７０２）。そして、処理工程ごとに処理時間Ｔp をきざみ時間ΔＴで除して整数化することにより上記各処理工程のきざみ時間遅れｎp を求め（ステップＳ７０３、Ｓ７０４）、そのきざみ時間遅れｎp に従って、全処理工程の製品種ごとの遷移行列ａと接続行列ｂとを算出する（ステップＳ７０５）。
【００７９】
そして、全ての製品について遷移行列ａと接続行列ｂとを算出するまでステップＳ７０６からステップＳ７０２の処理に戻り、以上の処理を繰り返して行う。なお、離散きざみ時間ΔＴは、各製品種各工程処理時間の最大公約数をもって定義するのが最も効率的であるが、目的とする制御精度を勘案して適宜設定すればよい。
【００８０】
図１３は、図１１に示したステップＳ８の処理、すなわち、上記のようにして求めた遷移行列ａ及び接続行列ｂから成る状態方程式と設定した評価関数とからフィードバックゲイン行列Ｋを製品種ごとに求めるための処理手順の例を示すフローチャートである。
【００８１】
すなわち、まず製品種ごとにペトリネットモデルの各プレースの処理時間Ｔp に比例したきざみ時間遅れｎp を表した遷移行列ａと接続行列ｂとを最適化計算装置２に入力するとともに（ステップＳ８０１）、評価関数を表す行列Ｑ，Ｒを入力する（ステップＳ８０２）。そして、上記入力した遷移行列ａ、接続行列ｂ及び評価行列Ｑ，Ｒからフィードバックゲイン行列Ｋを計算する（ステップＳ８０３）。この計算を全ての製品について完了するまでステップＳ８０４からステップＳ８０１の処理に戻り、以上の処理を繰り返して行う。なお、全製品についてペトリネットモデルの各プレースの処理時間Ｔp に比例したきざみ時間遅れｎp を表した遷移行列ａと接続行列ｂとを最適化計算装置２に入力し、全製品を一括で計算するようにしてもよい。
【００８２】
図１４は、図１１に示したステップＳ９の処理、すなわち、上述のようにして計算したフィードバックゲイン行列Ｋと工程内製品仕掛状態を表す状態ベクトルＭ(K) とから、製品の移動操作端に対する操作ベクトルｕ(K) を製品種ごとに求めたのち、仮想的な生産・物流プロセス内の各移動操作端に対して、正値で大きい操作量が得られた製品順に移動可能な数だけ移動操作を順次行うという方法を用いて、所定期間の生産・物流プロセスのシミュレーションを実行するための処理手順の例を示すフローチャートである。
【００８３】
すなわち、まずペトリネットモデルの初期状態における状態ベクトルＭ(0) を入力するとともに、投入予定の全製品を投入プレースに入力し、時刻 kの値を０に初期化したのち（ステップＳ９０１）、現時点（時刻：k ）における全製品種の状態ベクトルＭ(k) を入力する（ステップＳ９０２）。
【００８４】
そして、上述の方法を用いて計算されたフィードバックゲイン行列Ｋと上記入力した状態ベクトルＭ(k) とをかけて製品種ごとに操作ベクトルｕ(k) を計算し（ステップＳ９０３）、次に移動操作端ごとに、正値で大きい操作量が得られた製品順に、移動可能な数だけ移動操作を実行する（ステップＳ９０４）。
【００８５】
次に、時刻を進めたのち（ステップＳ９０５）、各ステップのシミュレーションが終了したかどうかを判断し（ステップＳ９０６）、終了していないときはステップＳ９０２の処理に戻る。一方、終了したときは、そのシミュレーション結果をもって生産スケジュールとする（ステップＳ９０７）。
【００８６】
次に、第３の実施形態の作用を以下に示す例に即して説明する。ここでは、異なる複数の工程で複数の製品を処理して製造するプロセスの例として、２種類の製品、すなわち製品Ａと製品Ｂとを４つの工程で処理して製造する場合を考え、各製品に対する各工程の処理時間が表１のように与えられているものとする。
【００８７】
【表１】
0004846376.tif 000007
【００８８】
また、離散きざみ時間ΔＴを５分として両製品Ａ，Ｂを製造するプロセスのペトリネットモデルを示したものが、図１５である。上記した表１は、処理時間を離散きざみ時間ΔＴ（＝５分）で除して得られた各工程1,2,3,4 のきざみ時間遅れを表している。この例では、製品Ａについては工程1,2,3,4 がそれぞれ2,3,1,2 のきざみ時間遅れを有し、製品Ｂについては工程1,2,3,4 がそれぞれ2,2,0,2 のきざみ時間遅れを有している。この例において製品Ａ，Ｂは、移動操作端T1（以降、移動操作端をトランジションとも称する）を経由して投入され、トランジションT6を経由して次工程或いは倉庫等へ搬出される。すなわち、製品ＡはプレースP1,P2,P3,P4 を通り、製品ＢはプレースP1,P2,P4を通る。
【００８９】
上述のように、離散化したある時刻k において各プレースに存在するトークンの数を示す状態ベクトル、言い換えれば状態量をＭ(k) で表し、各トランジション発火の有無を"１"及び"０"で表現した操作ベクトルをｕ(k) で表わすと、次の時刻k+1 における状態ベクトルＭ(k+1) は、遷移行列ａ、接続行列ｂを用いて上式(ニ)で表わすことができる。状態方程式（ニ）上の移動操作端（トランジション）と、実プロセスの移動操作端とは一致している。すなわち、操作ベクトルｕ(k) の信号は、実プロセスの操作信号である。
【００９０】
例えば、製品Ａに対してプレースP1,P2,P3,P4 に存在するトークンの数を並べたベクトルをＭ、トランジションT1,T2,T3,T5,T6の発火の有無を"１"及び"０"で表した操作ベクトルをｕとすれば、以下の式（２）、（３）で示される遷移行列ａと接続行列ｂとを用いて、ベクトルＭ(k) からベクトルＭ(k+1) への状態変化を表現することができる。
【００９１】
【数２】
0004846376.tif 000008
【００９２】
ただし、上記式（２）において、列方向の１桁の番号はプレース番号を示し、行方向の２桁の番号のうち、左側の数字はプレース番号を示し、右側の数字は各プレースに存在する状態（きざみ時間遅れ）の番号を示している。また、上記式（３）において、列方向の１桁の番号はトランジション番号を示し、行方向の２桁の番号のうち、左側の数字はプレース番号を示し、右側の数字は各プレースに存在する状態（きざみ時間遅れ）の番号を示している。
【００９３】
上記遷移行列ａを表現するときの一般形を、次の式（４）に示す。この式（４）から明らかなように、ある工程に存在する状態数がｎのとき、その工程に関する部分の小行列は、式（４）中に示したようなｎ×ｎの正方行列で表される。そして、全工程の遷移を表した遷移行列ａは、上記各工程に関する小行列を行方向及び列方向の番号に対応した適当な位置に配置するとともに、その他の要素を全て"０"とすることによって表される。
【００９４】
【数３】
0004846376.tif 000009
【００９５】
また、上記接続行列ｂを表現するときの一般形を、次の式（５）に示す。すなわち、ある工程に存在する状態数がｎのとき、その工程に関する部分の小行列は、式（５）に示すようなｎ×２の行列で表される。(1,1) 要素の数"１"は、該当するプレースにトークンが入力されることを示し、(n,2) 要素の数"−１"は、該当するプレースからトークンが出力されることを示している。そして、全工程に関する接続行列ｂは、上記各工程の小行列を行方向及び列方向の番号に対応した適当な位置に配置するとともに、その他の要素を全て"０"とすることによって表される。
【００９６】
【数４】
0004846376.tif 000010
【００９７】
製品Ａについて上記式（２）、（３）で示される遷移行列ａと接続行列ｂとを用いてベクトルＭ(k) からベクトルＭ(k+1) への状態変化を表現したのと同様のことが製品Ｂについても表現できる。
【００９８】
このように、製品ごとに、処理時間を入力したプレースを持つペトリネットモデルを用い、製品ごとに各工程でのきざみ時間遅れを表した遷移行列ａと接続行列ｂとで各工程を表すことにより、離散時刻k が１進むたびに複数の離散きざみ時間を要するプレースでトークンが移動していくことを表現でき、その結果、離散時間系の最適制御理論を適用できる形にすることができる。
【００９９】
この場合、１つのプレースに複数単位の処理時間（離散きざみ時間）を割り当てるようにしてペトリネットモデルを構築し、遷移行列ａ及び接続行列ｂの２つの行列式だけで物流モデルを表現できるようにしているので、１つの離散きざみ時間ごとに１つのプレースを設けた制御用のペトリネットモデルを再構築しなくても済む。また、上記１つの離散きざみ時間ごとにプレースを設けたペトリネットモデルに比べて制御端の数を少なくすることができ、実際のプロセスに使いやすいモデルとすることができる。
【０１００】
これにより、制御の目的にあわせて適当な行列Ｑ，Ｒを設定して、評価関数（ロ）が最小になるように制御することを考えれば、上式（ハ）とした状態フィードバック制御を行うフィードバックゲイン行列Ｋを最適制御理論より求めることができる。フィードバックゲイン行列Ｋの計算法としては、例えば（安藤和昭、他編著「数値解析手法による制御系設計」計測自動制御学会発行、pp.126-130、平成５年初版第２刷）に記載されたいくつかの方法がある。
【０１０１】
また、評価行列Ｑ，Ｒは、それぞれプレースの数及びトランジションの数の次元を有する正方行列で、それぞれ制御の過渡特性とトランジション操作の入力エネルギーとを評価関数として表すためのものであり、制御目的に応じて適宜設定すればよい。例えば、過渡特性を重視する場合は、大きな数値をもつ行列Ｑを設定すればよい。また、操作に要する入力エネルギーを小さく抑えたい場合は、大きな数値をもつ行列Ｒを設定すればよい。
【０１０２】
次に、第３の実施形態の具体例を、モデル構築、制御則構築、シミュレーション、実施結果例に分けて以下に説明する。
〔モデル構築〕
図１６は、複数工程よりなる製造プロセスのペトリネットモデルの一例を示したものであり、離散きざみ時間ΔＴは５分に設定してある。この製造プロセスは、工程1,2,3,4 からなる前処理工程と工程5,6 からなる後処理工程とから構成され、プレースP1（投入プレース）で示した前処理工程入側バッファと、プレースP6,P8 で示した後処理工程入側バッファと、プレースP10 で示した搬出用プレースとを具備している。
【０１０３】
この製造プロセスでは、前処理工程１又は２で処理された製品は後処理工程５で処理され、また、前処理工程３又は４で処理された製品は後処理工程６で処理されるが、製品によっては前処理工程１〜４と後処理工程５〜６の複数の組合せのいずれかで処理し得るものがあるため、全体で１５の製品種類がある。次の表２は、それぞれの製品種がどの前処理工程と後処理工程との組合せで処理可能かを示したものである。
【０１０４】
【表２】
0004846376.tif 000011
【０１０５】
図１６において、プレースP11,P12,P13,P14,P15,P16 は、それぞれ工程１〜６の処理容量を制限するための仮想プレースであり、これらの仮想プレースに初期設定された容量設定用仮想トークンの数により、各処理工程で同時に処理できる製品の数を制限している。例えば、工程１は、プレースP2から構成されるとともに、仮想プレースP11 に初期状態として１個の容量設定用仮想トークンが置かれることにより、この工程１での処理容量が１に設定されている。
【０１０６】
すなわち、工程１に製品がなかった状態からトランジションT2を経由して製品が入力されるときに、仮想プレースP11 に置かれた容量設定用仮想トークンが同時に入力され、製品を表すトークンがプレースP1からプレースP2に移動する。その後、そのトークンがトランジションT3を経由してプレースP6に移動すると同時に容量設定用仮想トークンがプレースP11 に復帰して、再び工程１が待ち状態になる。
【０１０７】
このように、複数のプレースで表される工程に対して仮想プレースを適宜利用することにより、各工程の処理容量を設定して製造プロセスのペトリネットモデルを構築することは周知の手法である。
【０１０８】
なお、この図１６の例は、工程１から工程６までの仮想プレースP11,P12,P13,P14,P15,P16 の容量が全て１のプロセスである。また、製品入力用のプレースP1と製品出力用のプレースP10 は最大２００個の製品を収容可能で、プレースP6,P8 のバッファはともに最大２０個の製品を収容可能と設定してある。
【０１０９】
図１７に実線で示された部分は、表２に記載した製品種No.1に対するペトリネットモデルを示したものである。同様に、全ての製品種に対してもペトリネットモデルを構築することにより、図１１のフローチャートに示したモデル構築が行われる。
【０１１０】
〔制御則構築〕
引き続き製品種No.1を例にとり、フィードバックゲイン行列Ｋを求める過程を説明する。式（ニ）の状態方程式における遷移行列ａは、図１７に示された製品種No.1のペトリネットモデルに対しては、次の式（６）で表現されるサイズ８×８の行列として求められる。ただし、式（６）において、列方向の番号はプレース番号を示し、行方向の番号のうち、下１桁以外の数字はプレース番号を示し、下１桁の数字は各プレースに存在する状態（きざみ時間遅れ）の番号を示している。
【０１１１】
【数５】
0004846376.tif 000012
【０１１２】
また、式（ニ）の状態方程式における接続行列ｂは、図１７に示された製品種No.1のペトリネットモデルに対しては、次の式（７）で表現されるサイズ８×６の行列として求められる。ただし、式（７）において、列方向の番号はトランジション番号を示し、行方向の番号のうち、下１桁以外の数字はプレース番号を示し、下１桁の数字は各プレースに存在する状態の番号を示している。
【０１１３】
【数６】
0004846376.tif 000013
【０１１４】
また、式（ロ）で表される評価関数中における行列Ｑ，Ｒは、上述したように、それぞれ各工程のきざみ時間遅れ数及びトランジションの数の次元を有する正方行列であるから、それぞれペトリネットモデルの製品種ごとに設定される。
【０１１５】
製品種No.1に対しては、この製造プロセスにおける標準的な値として、
Ｑ＝20×Ｉ(8) ・・・(8)
及び
Ｒ＝Ｉ(6) ・・・(9)
を設定した。ただし、式（８）、（９）においてＩ(n) はｎ次の単位行列である。
【０１１６】
このようにして遷移行列ａ及び接続行列ｂと、評価関数を定義する行列Ｑ，Ｒとが定まれば、離散時間系における最適制御理論によりフィードバックゲイン行列Ｋを求めることができる。
【０１１７】
すなわち、代数リッカチ方程式（10）
P＝ATPA−ATPB(BTPB+R)-1BTPA+Q・・・(10)
を満足する解Pを求めれば、フィードバックゲイン行列Ｋは、
Ｋ＝−(BTPB+R)-1BTPA ・・・(11)
により計算することができる。ここで、(BTPB+R)-1は行列(BTPB+R)の逆行列である。なお、リッカチ方程式の解法は、上述した参考文献にも詳述されているように既知の方法が多々知られている。
【０１１８】
このようにして計算した製品種No.1のペトリネットモデルに対するフィードバックゲイン行列Ｋは、次の式（１２）で与えられる。ただし、この式（１２）において、列方向の番号及び行方向の番号は、それぞれ式（７）における行方向の番号及び列方向の番号に対応するものである。
【０１１９】
【数７】
0004846376.tif 000014
【０１２０】
同様にして、全ての製品種に対してもフィードバックゲイン行列Ｋを計算することにより、図１１のフローチャートに示した制御則の構築が行われる。
【０１２１】
〔シミュレーション〕
次に、シミュレーションについて、図１４に示したフローチャートに沿って説明する。まず、ペトリネットモデルの初期状態における状態ベクトルＭ(0) を入力するとともに、投入予定の全製品を投入プレースに入力し、時刻 kの値を０に初期化したのち（ステップＳ９０１）、現時点（時刻：k ）における全製品種の状態ベクトルを入力し（ステップＳ９０２）、新規投入製品を製品種ごとに入力して状態ベクトルに加えると、現時点における最終的な状態ベクトルＭ(k) が定まる。さらに、製品種ごとに、フィードバックゲイン行列Ｋと状態ベクトルＭ(k) とをかければ、操作ベクトルｕ(k) が計算できる（ステップＳ９０３）。
【０１２２】
例えば、ある時刻k において製品種No.1のトークンがプレースP6のみに１個あり、さらに同品種の新規投入製品は無かったとすると、製品種No.1に対する最終的な状態ベクトルＭ(k) は、
Ｍ(k) ＝ [ 0 0 0 1 0 0 0 0 ]′ ・・・(13)
となる。ただし、式（１３）において記号′は転置ベクトルであることを表す。また、式（１３）の各要素は、それぞれ各プレースP1,P2,P6,P7,P10 の状態番号11,21,22,61,71,72,73,101に対応する製品種No.1のトークン数を表す。
【０１２３】
次に、式（１２）で与えられたフィードバックゲイン行列Ｋと式（１３）の状態ベクトルＭ(k) とを式（ハ）に従ってかければ、操作ベクトルｕ(k) は、
ｕ(k) ＝ [-0.249 -0.255 -0.3430 0.300 0.002 0.004 ]′ ・・・(14)
と求められる。ただし、式(14)の各要素は、それぞれトランジションT1,T2,T3,T10,T11,T14に対する操作量である。
【０１２４】
同様にして全ての製品種に対しても操作ベクトルｕ(k) を求める。そして、移動操作端すなわちトランジションごとに、正値で大きい操作量が得られた製品順に、移動可能な数だけ移動操作を実行する（ステップＳ９０４）。
【０１２５】
例えば、時刻k において製品種No.1のトークンがプレースP6に１個あり、このとき同時に製品種No.8のトークンもプレースP6に１個あり、他の製品種のトークンはプレースP6にはなかったとする。この場合、トランジションT10 に関して製品種No.1のトークンに対する操作量は、式（１４）より 0.300であった。一方、製品種No.8のトークンに対する操作量を同様にして計算する。製品種No.8の遷移行列aを式（１５）、接続行列ｂを（１６）、行列Ｑ、Ｒを（１７）、（１８）を示す。フィードバックゲイン行列Ｋは次の式（１９）のようになり、トランジションT10 の操作量は0.361となる。
【０１２６】
【数８】
0004846376.tif 000015
【０１２７】
【数９】
0004846376.tif 000016
【０１２８】
【数１０】
0004846376.tif 000017
【０１２９】
【数１１】
0004846376.tif 000018
【０１３０】
【数１２】
0004846376.tif 000019
【０１３１】
ここで、トランジションT10 は、移動操作すなわち発火によって１個のトークンをプレースP7に移動させることができるものであるとする。この場合、時刻k においては仮想プレースP15 に容量設定用仮想トークンが１個存在しているため、結局製品種No.８のトークンに対してのみトランジションT10 を発火させることが可能になる。また、製品種No.８のトークンは時刻k において他のプレースには存在していなかったから、操作量の正負に関わらずトランジションT10 以外のトランジションは発火できない。
【０１３２】
したがって、製品種No.８に対する最終的な操作ベクトルｕ(k) は、
ｕ(k) ＝ [ 0 0 0 0 0 1 0 0 0 0 ]′・・・(20)
となり、トランジションT10 のみが発火する。その結果、製品種No.８に対する時刻k に
おける状態ベクトルが
Ｍ(k) ＝ [ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 ]′ ・・・(21)
から時刻k+1 における状態ベクトルへ
Ｍ(k+1) ＝ [ 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 ]′ ・・・(22)
と更新される。
【０１３３】
同様の計算を全製品種、全トランジションについて行えば、全製品種に対する時刻k+1 における状態ベクトルＭ(k+1) が計算されることになる。その後は、時間を進めたのち（ステップＳ９０５）、各ステップのシミュレーションが終了したかどうかを判断し（ステップＳ９０６）、終了していないときはステップＳ９０２の処理に戻る。一方、終了したときは、そのシミュレーション結果をもって生産スケジュールとする（ステップＳ９０７）。
【０１３４】
上述したように、本実施形態においては、上述した第１の実施形態の効果に加えて、１つのプレースに複数のきざみ時間遅れを含むようにしてペトリネットモデルを構築し、遷移行列及び接続行列の２つの行列式だけで数式モデルを表現できるようにしたので、１つのきざみ時間遅れごとに１つのプレースを設けたペトリネットモデルを再構築しなくても済む。また、１つのきざみ時間遅れごとに１つのプレースを設けたペトリネットモデルに比べて制御端の数を少なくすることができ、実プロセスに使いやすいものとすることができる。
【０１３５】
（第４の実施形態）
次に、第４の実施形態として製造プロセスにおける物流制御装置の具体例を説明する。
本実施形態の物流制御装置は、図２６に示すように、入力手段２６０１と、きざみ時間遅れ算出手段２６０２と、遷移・接続行列算出手段２６０３と、ゲイン行列算出手段２６０４と、操作ベクトル算出手段２６０５と、制御手段２６０６と、記憶手段２６０７と、状態ベクトル入力手段２６０８と、出力行列算出手段２６１０とを具備しており、以下に述べるような物流制御方法を実施する。
【０１３６】
すなわち、入力手段２６０１は、製造プロセス２６０９の各処理工程とその処理時間Ｔp ときざみ時間ΔＴ、およびペトリネットモデルに関する所定の評価関数を表す評価行列Ｑ，Ｒ、更には後述する目標状態量Ｍr の各情報を入力するためのものであり、例えばキーボード等により構成される。なお、上記評価行列Ｑ，Ｒは、
Ｑ＝ＱT ≧０、Ｒ＝ＲT ＞０
を満たすものとする（行列Ｑ，Ｒの肩のＴは転置行列であることを示す）。
【０１３７】
きざみ時間遅れ算出手段２６０２は、上記入力手段２６０１により入力された処理時間Ｔp ときざみ時間ΔＴとから上記各処理工程のきざみ時間遅れｎp を求める。遷移・接続行列算出手段２６０３は、上記きざみ時間遅れ算出手段２６０２により求められたきざみ時間遅れｎp を有する各１つのプレースで各処理工程を表したペトリネットモデルの状態方程式を記述する遷移行列Ａと接続行列Ｂとを求める。
【０１３８】
ゲイン行列算出手段２６０４は、上記入力手段２６０１により入力された評価行列Ｑ，Ｒおよび目標状態量Ｍr と、上記遷移・接続行列算出手段２６０３により求められた遷移行列Ａおよび接続行列Ｂとを用いて、上記所定の評価関数の値を最小にするような上記ペトリネットモデルのフィードバックゲイン行列Ｋを求める。
【０１３９】
上記入力手段２６０１により入力された目標状態量Ｍr 、上記遷移・接続行列算出手段２６０３により求められた遷移行列Ａと接続行列Ｂ、および上記ゲイン行列算出手段２６０４により求められたフィードバックゲイン行列Ｋは、上記操作ベクトル算出手段２６０５および制御手段２６０６において実際に制御を行う際に使用するため、記憶手段２６０７に記憶されて保存される。
【０１４０】
操作ベクトル算出手段２６０５は、上記入力手段２６０１により入力されて上記記憶手段２６０７に記憶された目標状態量Ｍr と、上記ゲイン行列算出手段２６０４により求められて上記記憶手段２６０７に記憶されたフィードバックゲイン行列Ｋと、状態ベクトル入力手段２６０８により入力される製造プロセス２６０９の現時点での工程内製品仕掛状態を表す状態ベクトルＭ(k) とから、製品の移動操作端に対する発火の有無を表す操作ベクトルｕ(k) を求める。
【０１４１】
制御手段２６０６は、上記操作ベクトル算出手段２６０５により求められた操作ベクトルｕ(k) に基づいて、操作量（操作ベクトルｕ(k) の要素）の正値で大きい順に発火可能性を調べ、製造プロセス２６０９内の各移動操作端に対し発火可能な操作端を全て発火させて、移動可能な数だけ移動操作を行うことにより上記製造プロセス２６０９の物流を制御する。
【０１４２】
このとき、上記記憶手段２６０７より入力される遷移行列Ａ、接続行列Ｂおよび目標状態量Ｍr と、上記状態ベクトル入力手段２６０８より入力される現時点での状態ベクトルＭ(k) とを用いて、上記状態方程式から移動操作後の状態ベクトルＭ(k+1) を求め、それを次の時間における処理に利用するために状態ベクトル入力手段２６０８にフィードバックする。
【０１４３】
なお、上述したきざみ時間遅れ算出手段２６０２、遷移・接続行列算出手段２６０３、ゲイン行列算出手段２６０４、操作ベクトル算出手段２６０５、制御手段２６０６、記憶手段２６０７および状態ベクトル入力手段２６０８は、例えば、ＣＰＵ（中央処理装置）、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリメモリ）などからなるマイクロコンピュータによって構成されている。
【０１４４】
〔モデル構築〕
図８は、異なる複数の工程で複数の製品を処理して製造するプロセスのモデルを示す図である。図８に示すように、複数の製品は工程１あるいは工程２で処理される。ここで扱う複数の製品は、単一晶種であることを想定しており、工程１および工程２のどちらでも処理が可能である。
【０１４５】
例えば、工程１では、原料がバッファ１に蓄えられた後、装置１において上記原料に対して所定の処理が行われ、後処理１を経て製造された製品が製品置場に置かれる。また、工程２では、原料がバッファ２に蓄えられた後、装置２において上記原料に対して所定の処理が行われ、後処理２を経て製造された製品が製品置場に置かれる。なお、矢印は製品の流れを示し、矢印に付した数字は製品の搬送可能容量を示す（常に１個とする）。
【０１４６】
ここで、工程１内の装置１での処理時間は２単位時間であり（単位時間は離散きざみ時間△Ｔのことであり、例えば５分に設定される。よって、"２"という数字は装置１のきざみ時間遅れを示す）、装置１における製品の容量は１個である。また、工程２内の装置２での処理時間は４単位時間であり、装置２における製品の容量も１個である。また、工程１の後処理１および工程２の後処理２のどちらも処理時間は２単位時間である。なお、バッファ、後処理および製品置場には製品の容量制限はない。
【０１４７】
このような物流モデルにおいて、全製品をより短時間で製造するための最適なスケジュールを作ることを考える。そのための第１段階として、上記物流モデルに基づくペトリネットモデルを構築する。
【０１４８】
図９は、図８に示した製造プロセスに本実施形態を適用した場合に得られるぺトリネットモデルを示したものである。なお、説明の便宜上、図９のペトリネットモデルでは、装置１、装置２、後処理１、後処理２の各工程を処理時間に比例した数のプレースで表しているが、実際には図２のステップＳ１で説明したように、それぞれの工程でかかる処理時間を離散きざみ時間△Ｔで除して得られるきざみ時間遅れを有する各１個のプレースにまとめて表現する。
【０１４９】
このペトリネットモデルでは、プレースｐ１（投入プレース）からトランジションｔ１，ｔ５を介してプレースｐ２（工程１の入側バッファ）とプレースｐ７（工程２の入側バッファ）とに原料が投入され、それぞれ装置１および後処理１の処理、あるいは装置２および後処理２の処理を経て、トランジションｔ４，ｔ８を経由して製品置場のプレースｐ１４に搬出される。
【０１５０】
なお、図９において、ブレースｐ３とｐ４との間、プレースｐ５とｐ６との間、プレースｐ８〜ｐ１１の間、およびプレースｐ１２とｐ１３との間にはトランジションであることを表す符号ｔが付けられていない。これは、上述したように、実際のペトリネットモデルではきざみ時間遅れを有する各１個のプレースにより表現され、トランジションの操作とは関係なく処理が行われるからである。
【０１５１】
すなわち、装置１、装置２、後処理１および後処理２内の製品の移動は、トランジションの操作によって行われるのではなく、操作の有無に関係なく順次移動されていく。このような装置１、装置２、後処理１および後処理２内の製品の移動は、後述するように遷移行列Ａによって表される。一方、トランジションの発火は接続行列Ｂによって表される。
【０１５２】
製品の移動に際して、１つのトランジションに複数のプレースからアーク（矢印）が入力している場合には、それらのプレースの全てに製品すなわちトークンが存在していないとトランジションの操作ができない。これをトランジションの発火則と言う。また、１つのトランジションから複数のプレースにアークが出力している場合には、それらのプレースの全てにトークンが出力される。
【０１５３】
なお、アークとは、トランジションからプレース、あるいはプレースからトランジションへトークンが移動する方向を示すものであり、その数は移動するトークンの数を示している（上述のように、図９の例の場合は移動するトークンの数は何れも１個である）。また、トランジションを操作することを、トランジションを発火させると言う。
【０１５４】
また、図９において、プレースｐ１５，ｐ１６は、それぞれ装置１および装置２での処理容量を制限するための仮想プレースであり、これらの仮想プレースに初期設定された容量設定用仮想卜一クンの数により、各装置で同時に処理できる製品の数を制限している。上述のように、装置１および装置２とも製品の容量は１個であるので、仮想プレースｐ１５，ｐ１６には初期状態として１個の容量設定用仮想トークンが置かれる。
【０１５５】
ここで、容量設定用仮想トークンの作用を詳しく説明する。例えば、装置１に製品がなかった状態からトランジションｔ２を経由して製品が入力されるときに、仮想プレースｐ１５に置かれた１個の容量設定用仮想トークンが同時に入力され、製品を表すトークンがプレースｐ２からプレースｐ３に移動する。その後、そのトークンがトランジションｔ３を経由してプレースｐ５に移動すると同時に容量設定用仮想トークンがプレースｐ１５に復帰して、再び装置１が待ち状態になる。
【０１５６】
このように、複数のプレースで表される工程に対して仮想プレースを適宜利用することにより、各工程の処理容量を設定して製造プロセスのペトリネットモデルを構築する。
【０１５７】
ところで、図９のように構成したペトリネットモデルは、可制御ではない。なお、可制御であるとは、ある制御によって有限時間の間にシステムを任意の目標の状態に到達させることができることを言い、システムを思うままに制御することができることを言う。
【０１５８】
離散化したある時間ｋにおいて各プレースに存在するトークンの数を示す状態ベクトル、すなわち状態量をＭ（ｋ）で表し、各トランジション発火の有無を"１"および"０"で表現した操作ベクトルをｕ（ｋ）で表すとすると、次の時間ｋ＋１における状態ベクトルＭ（ｋ＋１）は、以下に示す状態方程式（１）
Ｍ（ｋ＋１）＝Ａ・Ｍ（ｋ）十Ｂ・ｕ（ｋ）      （１）
で表すことができるが、可制御であるときには状態Ｍ（ｋ）を"０"とする操作ベクトルｕ（ｋ）が存在する。この場合、単に対（Ａ，Ｂ）が可制御であるとも言う。
【０１５９】
しかし、上述したように図９の例においては、装置１および装置２での製品の処理容量がそれぞれ１個に制限されている。図９のペトリネットモデルは、このような容量の制限を受けることから制御方法も制約され、可制御ではなくなっている。
【０１６０】
すなわち、状態ベクトルＭ（ｋ）の要素数、すなわち状態数をｍとしたとき、対（Ａ，Ｂ）が可制御であるなら、
ｒａｎｋ［ＢＡＢ…Ａｍ−１Ｂ］＝ｍ
が成り立つが、図９の例の場合は、
ｒａｎｋ［ＢＡＢ…Ａ１５Ｂ］＝１３＜１６
となり、状態ベクトルＭ（ｋ）の状態数ｍ＝１６と一致しない。
【０１６１】
このことは、次のように解釈できる。まず、プレースｐ３，ｐ４，ｐ１５内のトークンの合計数が常に一定であることが分かる。例えば、プレースｐ１５に１個、プレースｐ３，ｐ４に０個の初期トークンを与えると、プレースｐ１５のトークンが１個の場合は、プレースｐ３，ｐ４のトークンは０個、プレースｐ１５のトークンが０個の場合は、プレースｐ３かブレースｐ４のどちらかにトークンが１個あるので、プレースｐ３，ｐ４，ｐ１５内のトークンは常に合計１個となる。
【０１６２】
同様に、プレースｐ８〜ｐ１１，ｐ１６内のトークンの合計数が常に一定である。さらに、プレースｐ１５，ｐ１６を除くプレース内でもトークンの合計数が常に一定であることも分かる。このように、保存される（＝自由にならない）量が存在するときは不可制御であり、保存量の個数は１６−１３＝３で与えられている。
【０１６３】
このように、ペトリネットモデルが不可制御であると、従来の制御法をそのまま適用した場合には、後述するようにフィードバックゲイン行列Ｋを求めることができない。そのため、図８の物流モデルからペトリネットモデルを構築するに当たって、ペトリネットモデルを可制御にするために、図１０に示すように、容量制限を表すプレースｐ１５，ｐ１６を無視するとともに、製品置場であるプレースｐ１４もモデルから削除する必要があった。
【０１６４】
しかしながら、本実施形態では、以下に述べるように、不可制御のペトリネットモデルの各プレースに目標状態量を設定して、フィードバックゲイン行列Ｋを求める手順を工夫することにより、図９のような不可制御のペトリネットモデルであっても製造プロセスの物流制御を自動的に最適化することができるようにしている。
【０１６５】
〔制御則構築〕
ここでは、フィードバックゲイン行列Ｋを求める過程を説明する。
本実施形態において、ペトリネットモデルの状態方程式は、
Ｍ(k+1) ＝Ａ・Ｍ(k) ＋Ｂ・ｕ(k)     (23)
により求める。
上記式(1) と同じである。また、本実施形態では、上述したように目標状態量Ｍr を新たに導入している。なお、この目標状態量Ｍr は、
Ｍr ＝Ａ・Ｍr     (24)
を満たすように設定する。
【０１６６】
上記した式(1),(2) より、
Ｍ(k+1) −Ｍr ＝Ａ・（Ｍ(k) −Ｍr ）＋Ｂ・ｕ(k)     (25)
が成り立つので、Ｍ(k) −Ｍr を新たな状態ｘ(k) と見ることができ、式(25) は次の式(26) のように書ける。
ｘ(k+1) ＝Ａ・ｘ(k) ＋Ｂ・ｕ(k)     (26)
【０１６７】
なお、式(23) の状態方程式は、各プレースの状態の目標量が０の場合に相当するものである。これに対して式(25) あるいは式(26) の状態方程式のように、式(24) を満たすような目標状態量Ｍr を導入することで各プレースの状態の目標量を自由に設定することができる。すなわち、本実施形態では、図２０に示すような遷移行列Ａによって製品の移動操作が決定されるプレースp3,p5,p8,p9,p10,p12 以外のプレースに、目標状態量Ｍr の入力によって目標量を自由に設定することができる。
【０１６８】
本実施形態においては、上記状態方程式(25) あるいは(26) 上の移動操作端（トランジション）と、実プロセスの移動操作端とは一致している。すなわち、操作ベクトルｕ(k) の信号は、実プロセスの操作信号である。
【０１６９】
例えば、プレースp1〜p16 に存在するトークンの数から目標状態量を引いた値を並べた状態ベクトルをｘで表し、トランジションt1〜t8の発火の有無を"１"および"０"で表した操作ベクトルをｕとすれば、以下の式(27),(28)で示される遷移行列Ａと接続行列Ｂとを用いて、上記式(26) のようにベクトルｘ(k) からベクトルｘ(k+1) への状態変化を表現することができる。
【０１７０】
【数１３】
0004846376.tif 000020
【０１７１】
ここで、上記遷移行列Ａを表す式(27) において、列方向の１６個の要素は上から順に番号の若い順のプレースに対応し、行方向の１６個の要素も左から順に番号の若い順のプレースに対応する。そして、対角要素中の"０"とそれを含む列ベクトル（縦ベクトル）内に存在する"１"との組が、それらの要素によって表されるプレース間のトークン移動を表している。例えば、３行３列の要素（以下、(3,3) 要素のように記載する） にある"０"と(4,3) 要素にある"１"とは、プレースp3からプレースp4への移動を表している。
【０１７２】
このような対角要素の"０"と非対角要素の"１"との組は、(3,3),(4,3) 要素の他に、(5,5),(6,5) 要素、(8,8),(9,8) 要素、(9,9),(10,9)要素、(10,10),(11,10) 要素、(12,12),(13,12) 要素に存在し、それぞれプレースp3とp4との間、プレースp5とp6との間、プレースp8〜p11 の間、およびプレースp12 とp13 との間におけるトークンの移動を表している。なお、対角要素が"１"の場合にはそのプレースからはトークンは移動されない。
【０１７３】
また、上記接続行列Ｂを表す式(28) において、列方向の１６個の要素は上から順に番号の若い順のプレースに対応し、行方向の８個の要素は左から順に番号の若い順のトランジションに対応する。ここで、接続行列Ｂ中の要素のうち、"−１"は該当するトランジションの発火によって該当するプレースからトークンが出力されることを示し、"１"は該当するトランジションの発火によって該当するプレースにトークンが入力されることを示す。
【０１７４】
例えば、(1,1) 要素の"−１"は、該当するトランジションt1の発火によって該当するプレースp1からトークンが出力されることを示し、(2,1) 要素の"１"は、該当するトランジションt1の発火によって該当するプレースp2にトークンが入力されることを示している。また、トランジションt2が発火した場合には、プレースp2,p3 におけるトークンの入出力の他に、仮想プレースp15 から容量設定用仮想トークンが出力されることも示されている。
【０１７５】
このように、処理時間を入力したプレースを持つペトリネットモデルを用い、各工程でのきざみ時間遅れを表した遷移行列Ａと接続行列Ｂとで各工程を表すことにより、離散時間k が１進むたびに複数の離散きざみ時間を要するプレースをトークンが移動していくことを表現でき、その結果、離散時間系の最適制御理論を適用できる形にすることができる。
【０１７６】
この場合、１つのプレースに複数単位の処理時間（離散きざみ時間）を割り当てるようにしてペトリネットモデルを構築し、遷移行列Ａおよび接続行列Ｂの２つの行列式だけで物流モデルを表現できるようにしているので、１つの離散きざみ時間ごとに１つのプレースを設けたペトリネットモデルを再構築しなくても済む。また、上記１つの離散きざみ時間ごとにプレースを設けたペトリネットモデルに比べて制御端の数を少なくすることができ、実際のプロセスに使いやすいモデルとすることができる。
【０１７７】
さらに、本実施形態では、各プレースの状態目標量を０以外にも設定できるようにしたので、外乱が入ったときに目標値を一定にするように働く（従来は各プレース内のトークン数を常に０個にするように働く）レギュレータとしての扱いに加えて、変動する目標値に追従するサーボ系としての扱いを新たに実現することが可能となった。また、目標値を大きく設定することにより、目標値の大きいプレースで優先的に処理を行うようにする優先処理を実現することも可能となった。
【０１７８】
このように本実施形態では、ペトリネットモデルを離散時間系の最適制御理論を適用できる形にすることができるので、制御の目的にあわせて適当な評価行列Ｑ，Ｒを設定して、下記の式(30) に示す評価関数Ｊが最小になるように操作ベクトルｕ(k) を制御することを考えれば、
ｕ(k) ＝Ｋ・（Ｍ(k) −Ｍr ）＝Ｋ・ｘ(k)     (29)
とした状態フィードバック制御を行うフィードバックゲイン行列Ｋを最適制御理論より求めることができる。
【０１７９】
【数１４】
0004846376.tif 000021
【０１８０】
上述の評価行列Ｑ，Ｒは、それぞれプレース数の次元およびトランジション数の次元を有する正方行列で、それぞれ制御の過渡特性とトランジション操作の入力エネルギーとを評価関数として表すためのものであり、制御目的に応じて適宜設定すればよい。例えば、過渡特性を重視する場合は、大きな数値をもつ評価行列Ｑを設定すればよい。また、操作に要する入力エネルギーを小さく抑えたい場合は、大きな数値をもつ評価行列Ｒを設定すればよい。ここでは、２つの評価行列Ｑ，Ｒを次の式(31),(32)のように設定している。
【０１８１】
【数１５】
0004846376.tif 000022
【０１８２】
このようにして遷移行列Ａおよび接続行列Ｂと、評価関数Ｊを定義する行列Ｑ，Ｒとが定まれば、離散時間系における最適制御理論によりフィードバックゲイン行列Ｋを求めることができる。なお、フィードバックゲイン行列Ｋの計算法としては、例えば（安藤和昭、他編著「数値解析手法による制御系設計」計測自動制御学会発行、pp.126-130、平成５年初版第２刷）に記載された幾つかの方法がある。
【０１８３】
例えば、次に示す離散時間系におけるリカッチ差分方程式(33)を満足する時間ｋの関数である解Ｐ(k) を求めれば、フィードバックゲイン行列Ｋは、下記の式(34)により計算することができる。ただし、式(33),(34) において符号の肩に示したＴは転置行列であることを表し、同じく肩に示した−１は逆行列であることを表す。
【０１８４】
【数１６】
0004846376.tif 000023
【０１８５】
ここで、上記評価行列Ｑ，Ｒによって表される評価関数Ｊについて詳しく説明する。従来の制御法に従えば、評価関数Ｊは、通常は製造プロセスの現時点での工程内製品仕掛状態を表す状態ベクトルＭ(k) と、トランジションの発火の有無を表す操作ベクトルｕ(k) との２次形式によって以下の式(35)のように設定される。この場合、フィードバックゲイン行列Ｋは、式(36)により示される代数リカッチ方程式の解Ｐを用いて、式(37)のように与えられる。
【０１８６】
【数１７】
0004846376.tif 000024
【０１８７】
この式(35)のように評価関数Ｊを設定した場合には、単一品種の製品を扱う図１９のような物流制御モデルから図２１のような可制御のペトリネットモデルを構築したときは、時間k における状態方程式(23) の状態Ｍ(k) を０とする操作ベクトルｕ(k) が存在する（プレースの目標値を０に一定化することができる）ので、評価関数Ｊは有限の値に収束し、式(35)は有効である。
【０１８８】
しかし、図２０のような不可制御のペトリネットモデルを構築したときは、状態方程式(1) の状態Ｍ(k) を０とする操作ベクトルｕ(k) が存在せず、式(35)の評価関数Ｊは発散するため、式(36)に示した代数リカッチ方程式の解Ｐが存在せず、式(37)によってフィードバックゲイン行列Ｋを計算することができない。つまり、図２０のように容量制限などによりトークン数の保存されるループがあるときは、製造プロセスの物流制御を自動的に最適化することができない。
【０１８９】
これに対して、本実施形態では、Ｍ(k) −Ｍr を新たな状態ｘ(k) と見て、上記式(30) に示したようなＭ(k) 、ｕ(k) の２次形式を評価関数Ｊとしている。すなわち、本実施形態では、式(30) に示したように評価関数Ｊの加算ステップを０〜∞の代わりに０〜Ｎと有限にし、その後の式(34)に示すフィードバックゲイン行列Ｋの演算時に極限計算を行うようにしている。なお、Ｎは対象の時間スケールと比較して十分に大きい任意の数である。
【０１９０】
この式(30) のように評価関数Ｊを設定した場合には、式(34)で示されるフィードバックゲイン行列Ｋの値は必ず収束し、上記式(30) に示した評価関数Ｊは常に意味を持つ。すなわち、図２０のように容量制限などによりトークン数の保存されるループがある不可制御のペトリネットモデルであっても、製造プロセスの物流制御を自動的に最適化することができる。
【０１９１】
つまり、本実施形態では、図２２のフローチャートに示すように、状態方程式として目標状態量Ｍr を考慮した式(25) すなわち式(26) を作成する（ステップＳ２２１）。次に、評価関数Ｊとして式(30) を設定する（ステップＳ２２２）。次に、ステップＳ２２３において、式(33)に示したようなリカッチ差分方程式の解Ｐ(k) を求めて、フィードバックゲイン行列Ｋを計算する（ステップＳ２２４）。
【０１９２】
次に、ステップＳ２２５において、フィードバックゲイン行列Ｋの値が収束したか否かを判断する。この判断の結果、収束していない場合にはステップＳ２２３に戻り、収束するまでリカッチ差分方程式の解Ｐ(k) からフィードバックゲイン行列Ｋを求める演算を式(34)によって繰り返し行う。
【０１９３】
ステップＳ２２５の判断の結果、フィードバックゲイン行列Ｋの値が収束した場合にはステップＳ２２６に進み、フィードバックゲイン行列Ｋの値を用いて式(29) により操作ベクトルｕ(k) を求め、最適制御を実行する。
【０１９４】
〔制御〕
次に、実際に制御を行うにあたっては、各離散時間において操作ベクトルｕ(k) を上記した式(29) に従って計算する。そして、上記計算した操作ベクトルｕ(k) に基づいて、各トランジションに対して、正値で大きい操作量の順に発火可能性を調べ、移動可能な数のトークンに対して操作量を改めて"１"とおき、その他のトークンに対しては操作量を"０"とおいて最終的な操作ベクトルｕ(k) を求める。これにより、操作量が"１"であるトランジションを発火させれば、式(1) に示した値｛Ａ・Ｍ(k) ＋Ｂ・ｕ(k) ｝として状態ベクトルＭ(k+1) を得ることが可能となる。
【０１９５】
図２３は、本実施形態による制御結果の例を示す図である。図２３において、横軸の１〜１６の数字は、図２０に示した各プレースの番号を示す。また、縦軸の０〜１８の数字は、処理時間ステップを示す。また、図２４は、各プレースp1〜p16 における状態ｘ1(k)〜ｘ16(k) と各トランジションt1〜t8における操作ベクトルｕ1(k)〜ｕ8(k)とを各処理時間ステップごとに示す図である。
【０１９６】
図２３のステップ０は初期状態を示し、この状態では原料置場の投入プレースp1に８個のトークンが置かれるとともに、仮想プレースp15,p16 にそれぞれ１個ずつ容量設定用仮想トークンが置かれている。図２４（ｂ）に示すように、この初期状態において単体で発火可能なトランジションはt1,t5 の２つである。ただし、トランジションt1,t5 は同時に発火可能とは限らない。トランジションt1,t5 に対応する制御（量子化前）はそれぞれ4.7465、2.6272であり、数値の大きい順に発火できなくなるまで発火させる。
【０１９７】
すなわち、ステップ０では、まずトランジションt1を発火させる。このとき、１個のトークンがプレースp1からプレースp2に移動し、プレースp1のトークンは７個になる。この状態で、トランジションt5も発火可能なので発火させる。これにより、１個のトークンがプレースp1からプレースp7に移動し、プレースp1のトークンは６個になる。したがって、各トランジションに対応する制御（量子化後）はそれぞれ、ｕ1(0)＝ｕ5(0)＝１、ｕ2(0)＝ｕ3(0)＝ｕ4(0)＝ｕ6(0)＝ｕ7(0)＝ｕ8(0)＝０となる。
【０１９８】
次に、ステップ１では、トランジションt1,t2,t5,t6 が発火し、上記ステップ０でプレースp2,p7 に移動されたトークンが更にプレースp3,p8 へと移動するとともに、投入プレースp1からプレースp2,p7 にトークンが１個ずつ移動する。トークンがプレースp3,p8 に移動する際には、仮想プレースp15,p16 から容量設定用仮想トークンが出力されている。
【０１９９】
次に、ステップ２では、トランジションt1,t5 が発火し、投入プレースp1からプレースp2,p7 にトークンが１個ずつ移動している。このステップ２の処理の際には、プレースp3,p8 にトークンが存在しているので、これらのトークンは、トランジションの発火の有無に関係なく遷移行列Ａの作用によってそれぞれプレースp4,p9 に移動する。なお、装置２内では、トークンはプレースp11 までトランジションの発火に関係なく移動していく（ステップ２〜ステップ４）。
【０２００】
次のステップ３では、トランジションt1,t3 が発火し、投入プレースp1からプレースp2にトークンが１個だけ移動するとともに、プレースp4からプレースp5にトークンが移動している。このとき、装置１内からトークンが出ていったので、仮想プレースp15 に容量設定用仮想トークンが復帰している。
【０２０１】
このステップ３では、各プレースp1〜p16 における状態ｘ1(3)〜ｘ16(3) と各トランジションt1〜t8における操作ベクトルｕ1(3)〜ｕ8(3)は、図２４（ｃ）のようになっており、単体で発火可能なトランジションはt1,t3,t5である。しかし、これらのトランジションt1,t3,t5に対応する制御（量子化前）は、それぞれ1.7794、2.8237、-0.2067 であるので、負の値であるトランジションt5は発火させず、残ったトランジションt1,t3 について数値の大きい順に発火させる。したがって、各トランジションに対応する制御（量子化後）はそれぞれ、ｕ1(3)＝ｕ3(3)＝１、ｕ2(3)＝ｕ4(3)＝ｕ5(3)＝ｕ6(3)＝ｕ7(3)＝ｕ8(3)＝０となる。
【０２０２】
そして、次のステップ４では、トランジションt1,t2 が発火し、投入プレースp1からプレースp2にトークンが１個だけ移動するとともに、プレースp2からプレースp3にトークンが移動している。
【０２０３】
このステップ４では、各プレースp1〜p16 における状態ｘ1(4)〜ｘ16(4) と各トランジションt1〜t8における操作ベクトルｕ1(4)〜ｕ8(4)は、図２４（ｄ）のようになっており、単体で発火可能なトランジションはt1,t2,t5である。これらのトランジションt1,t2,t5に対応する制御（量子化前）は、それぞれ0.6469、3.2981、0.0111と何れも正値であるので、これらのトランジションt1,t2,t5について数値の大きい順に発火できなくなるまで発火させる。
【０２０４】
すなわち、まずトランジションt2を発火させ、この状態で、トランジションt1も発火可能なので発火させる。このとき、１個のトークンがプレースp1からプレースp2に移動し、プレースp1のトークンは０個になる。したがって、この状態ではトランジションt5の発火は不可能となる。したがって、各トランジションに対応する制御（量子化後）はそれぞれ、ｕ1(4)＝ｕ2(4)＝１、ｕ3(4)＝ｕ4(4)＝ｕ5(4)＝ｕ6(4)＝ｕ7(4)＝ｕ8(4)＝０となる。
【０２０５】
ステップ５では、各プレースp1〜p16 における状態ｘ1(5)〜ｘ16(5) と各トランジションt1〜t8における操作ベクトルｕ1(5)〜ｕ8(5)は、図２４（ｅ）のようになっており、単体で発火可能なトランジションt4,t7 を、それらに対応する制御（量子化前）の値の大きい順に発火できなくなるまで発火させる。以下同様にしてステップ１８まで処理が行われる。
【０２０６】
ここで注目したいのは、ステップ３の処理の時点で投入プレースp1にはトークンが２個存在し、ステップ０〜２の処理と同様にトランジションt1,t5 を発火することによってプレースp2,p7 に２個のトークンを一度に移動させることが可能であるにも拘らず、ステップ３とステップ４との２ステップにかけてトランジションt1のみを１回ずつ発火し、プレースp2に対してのみトークンを１個ずつ順に移動していることである。
【０２０７】
先に述べたように、装置１と装置２とでは製品の処理時間が異なり、装置１の方が装置２より処理時間が短い（装置１は２単位時間、装置２は４単位時間）。よって、装置１と装置２とで同じ数ずつ製品を処理するよりも、装置１の方で多くの製品を処理するようにすれば、全製品を処理するトータル時間を短くすることができる。図２３の例は、装置１で５個の製品を処理し、装置２で３個の製品を処理するようにすることにより、両装置をフルに活用して全製品の処理時間をより短くする最適スケジュールの作成を実現しているものである。
【０２０８】
これに対して、式(35)〜(37)に従う従来の制御法によって制御を行うと、その制御結果は次の図２５のようになる。図２５において、横軸の１〜１３の数字は、図２１に示した各プレースの番号を示す。また、縦軸の０〜２３の数字は、処理時間ステップを示す。なお、ステップ０は初期状態を示し、この状態では原料置場の投入プレースp1に８個のトークンが置かれている。
【０２０９】
この図２５の例の場合も、ステップ０〜２の処理は、図２３の例の場合と同様である。しかしながら、図２５の例の場合は、次のステップ３でトランジションt1,t5 の両方を発火し、投入プレースp1からバッファであるプレースp2,p7 に２個のトークンを一度に移動している。このようにすると、装置１と装置２とで製品を４個ずつ処理することとなる。その結果、装置１で処理を行っていない無駄な時間が生じ、全製品を処理するトータル時間が２３ステップ時間と図２３の例の場合よりも長くなってしまっている。
【０２１０】
次に、上述のような製造プロセスにおける物流制御方法を応用した処理順序計算方法を説明する。この処理順序計算方法では、まず、初期状態ベクトル（例えば、毎日の始業時における各工程の製品仕掛状態）をＭ(0) とし、製造プロセスへ投入予定の全製品をトークンとして投入プレース（図２０の例ではプレースp1）に配置する。
【０２１１】
そして、離散時間k=1、2、3・・・に対して状態ベクトルＭ(1)、Ｍ(2)、Ｍ(3)・・・を順次計算する予測シミュレーションを上述の製造プロセスにおける物流制御方法を用いて行い、その予測シミュレーションの結果、投入プレースから次のプレースへと順次移動していったトークンの順序をもって生産時の製品投入順序とすることにより、製造プロセスにおける処理順序計画を自動的に行うことができる。
【０２１２】
以上述べたように、本実施形態の方法では、製造プロセスのペトリネットモデルと最適制御理論とを組み合わせることにより制御則を構築して制御を行うことが可能となる。その際、大規模で複雑なプロセスをモデル化して人の経験あるいは判断を一つ一つプログラム化する従来法に比べ、物流制御システムの構築を格段に容易に行うことができる。
【０２１３】
また、理論的な制御則に基づく制御であるため、自動的に最適化された物流制御および処理順序計画を行うことができる。この場合、本実施形態では、目標状態量Ｍr を導入するとともに、評価行列Ｑ，Ｒによって表される評価関数Ｊの加算ステップを式(30) のように有限にし、その後式(33)に示したリカッチ差分方程式の解Ｐ(k) を求めてフィードバックゲイン行列Ｋの収束値を式(34)に従って計算するようにしている。
【０２１４】
これにより、図２０のような不可制御のペトリネットモデルであっても式(30) で示される評価関数Ｊの値は必ず収束し、この評価関数Ｊは常に意味を持つ。したがって、容量制限などによりトークン数の保存されるループがある不可制御のペトリネットモデルであっても、式(34)によってフィードバックゲイン行列Ｋを必ず求めることができ、製造プロセスの物流制御を自動的に最適化することができる。
【０２１５】
次に、上述のような製造プロセスの物流制御の最適化をより高速に行うための工夫について説明する。
以下に示す実施形態においても、状態方程式は式(23) と同じである。本実施形態では更に、以下に示す出力方程式(38)を導入する。
ｙ(k) ＝Ｃ・Ｍ(k)     (38)
ただし、この式(38)においてＣはペトリネットモデルの可観測性を満たすように設定した出力行列である。
【０２１６】
なお、可観測性とは、任意の未知の状態に対して、操作ベクトルｕ(k) を０としたとき、式(38)で表される出力ｙ(k) を適当な時間区間にわたって観測した結果、上記未知の状態がどのようであるかを一意的に決めることができることを言う。例えば、図２０の例で説明すると、装置２内のプレースp8〜p11 では遷移行列Ａによってトランジションの発火に関係なく製品が移動するが、トランジションの操作を止めたときにプレースp11 に出力される状態を観測していれば、有限時間内に装置２内の内部状態が全て分かる。このとき、プレースp11 を観測点とする装置２は可観測であると言う。
【０２１７】
ここで、図２０に示したペトリネットモデルの可観測性を満足する出力行列Ｃの求め方について説明する。
出力行列Ｃは、図２６に示すように、出力行列算出手段２６１０により遷移行列Ａに基づいて作成する。この出力行列Ｃは、遷移行列Ａの行ベクトルと同じサイズの単位行ベクトル（唯一の非ゼロ要素"１"を持つ横ベクトル）で作られる。遷移行列Ａと同じサイズの行列で、対角要素が遷移行列Ａの対角要素と等しく、非対角要素がすべて０の行列を作る。さらに、この行列からゼロベクトルとなる行を取り除いた行列を作る。この行列の行ベクトルは唯一の非ゼロ要素を持つので、同じ位置が非ゼロ要素となる単位行ベクトルを作り、これらの単位行ベクトルを集めて出力行列Ｃとする。
【０２１８】
次の式(39)は、図２０のペトリネットモデルに基づいて計算した式(27) の遷移行列Ａから、上述のような方法によって作成した出力行列Ｃを示すものである。
【０２１９】
【数１８】
0004846376.tif 000025
【０２２０】
可観測性の必要十分条件は、状態ベクトルＭ(k) の次元がｍのとき、
rank [ＣT ＡT ＣT …  （ＡT ） m-1 ＣT  ＝ｍ
が成り立つことであるが、出力行列Ｃが上記式(17)の場合は、
rank [ＣT ＡT ＣT …  （ＡT ）15 ＣT ） ＝１６
となるので、可観測性を満足する。
【０２２１】
上記式(39)に示す出力行列Ｃは、トランジションの発火によってトークンが移動するプレースp1,p2,p4,p6,p7,p11,p13,p14,p15,p16の状態だけを観測するように定めたものである。その他のプレースp3,p5,p8,p9,p10,p12 では、遷移行列Ａの作用によってトランジションの発火に関係なくトークンが移動するので、出力行列Ｃで定められるプレースの状態だけを観測していれば、図２０のペトリネットモデルの内部状態を全て把握することが可能である。
【０２２２】
さらに、本実施形態においては、評価関数Ｊとして、上記した式(30) の代わりに以下の式(40)を用いる。ただし、この式(40)中の評価行列Ｑ，Ｒは、
Ｑ＝ＱT ＞０，Ｒ＝ＲT ＞０（何れも正定行列）
を満たし、例えば次の式(41)および式(42)のように設定される。なお、式(42)は式(32)と全く同じである。
【０２２３】
【数１９】
0004846376.tif 000026
【０２２４】
また、上記式(40)中に示した目標値ｙr は、式(2) を満足する目標状態量Ｍr を用いて、
ｙr ＝Ｃ・Ｍr     (43)
で与えられる。このように、本実施形態では、状態Ｍ(k) ではなく出力ｙ(k) を評価してフィードバックゲイン行列Ｋを計算する。
【０２２５】
上記式(40)の評価関数Ｊを最小にする操作ベクトルｕ(k) は、上記した式(7) により与えられる。ここで、フィードバックゲイン行列Ｋは、上記した式(33)で与えられ、その中で用いられているＰ(k) は、次の式(44)に示すリカッチ差分方程式の解である。この式(44)は、上記した式(33)中のＱの項をＣT ＱＣに置き換えたものである。
【０２２６】
【数２０】
0004846376.tif 000027
【０２２７】
上記式(29) に従って操作ベクトルｕ(k) を求めたら、正値で大きい操作量の順に発火可能性を調べ、製品の移動操作を実行する。このようにして出力方程式(38)を導入して制御を行った結果も、図３３と全く同じようになり、処理時間を最短にする最適なスケジュールが得られる。これは、可観測性を満足する出力行列Ｃを設定して出力方程式(38)を求めているので、全てのプレースの状態を評価せずにポイントを絞って評価しても、実質的に全ての状態を評価して制御を行ったのと同じ結果を得ることができるからである。すなわち、出力方程式(38)を導入して制御を行っても、実質的に制御性能が劣化することはない。
【０２２８】
しかも、本実施形態では、状態Ｍ(k) ではなく出力ｙ(k) を評価しており、一般に出力数は状態数より少ない（図２０の例では出力数が１０個、状態数が１６個）ので、評価関数Ｊに現れる評価プレース数を少なくすることができ、その分フィードバックゲイン行列Ｋの計算時間を短くすることができる。
【０２２９】
すなわち、本実施形態では、図２７のフローチャートに示すように、可観測性を考慮した出力行列Ｃによって出力方程式(38)を作成する（ステップＳ２７１）。次に、評価関数として式(40)を設定する(ステップＳ２７２)。そして、式(44)に示したようなリカッチ差分方程式の解Ｐ(k) を求めてフィードバックゲインＫの収束値を求める演算を式(34)に従って繰り返し行うが、評価する状態数が少なくて済むので、図２２の場合より少ない繰り返し演算でフィードバックゲイン行列Ｋの値を収束させることができる。なお、リカッチ差分方程式を解く際に、いわゆるダブリングアルゴリズムを用いることにより、収束速度をより速くすることが可能である。
【０２３０】
次に示す表３は、出力方程式(38)を用いない方法と用いる方法とのゲイン計算の比較例を示すものである。なお、この表３は、入力数（トランジション数）が１８、状態数（全プレース数）が３９３、出力数が１７のシステムにおけるフィードバックゲイン行列Ｋの計算例を示しており、上述のダブリングアルゴリズムを用いている。
【０２３１】
【表３】
0004846376.tif 000028
【０２３２】
この表３から明らかなように、出力方程式(38)の導入により、フィードバックゲイン行列Ｋの計算に関して約３倍の高速化を実現することができている。
【０２３３】
さらに、このように出力方程式(38)を導入することにより、フィードバックゲイン行列Ｋを直接計算するアルゴリズムを利用することができるようになる。このフィードバックゲイン行列Ｋを直接計算するアルゴリズムの一例として、チャンドラセカール（Chandrasekhar ）型の差分方程式による方法を用いることができる。このアルゴリズムによれば、次の式(45)に示すチャンドラセカール型の差分方程式によりＫ(k),Ｒ(k) を求めて（図２７に示すステップＳ２７３）、式(46)によりフィードバックゲイン行列Ｋを計算する（ステップＳ２７４）。
【０２３４】
次に、ステップＳ２７５において、フィードバックゲイン行列Ｋの値が収束したか否かを判断する。この判断の結果、収束していない場合にはステップＳ２７３に戻り、収束するまでチャンドラセカール型の差分方程式の解Ｋ(k),Ｒ(k) からフィードバックゲイン行列Ｋを求める演算を式(46)によって繰り返し行う。
【０２３５】
ステップＳ２7５の判断の結果、フィードバックゲイン行列Ｋの値が収束した場合にはステップＳ２7６に進み、フィードバックゲイン行列Ｋの値を用いて式(29) により操作ベクトルｕ(k) を求め、最適制御を実行する。
【０２３６】
【数２１】
0004846376.tif 000029
【０２３７】
本実施形態のように、チャンドラセカール型の差分方程式(45)を用いた場合には、フィードバックゲイン行列Ｋを計算する際の繰り返し演算の反復１回当たりの演算量を格段に減らすことができ、フィードバックゲイン行列Ｋの計算を更に高速化することができる。
【０２３８】
次に示す表４は、チャンドラセカール型の差分方程式(45)を用いる方法と用いない方法とのゲイン計算の比較例を示すものである。なお、この表４も、表３と同様に入力数が１８、状態数が３９３、出力数が１７のシステムにおけるフィードバックゲイン行列Ｋの計算例を示している。
【０２３９】
【表４】
0004846376.tif 000030
【０２４０】
この表４から明らかなように、上記式(45)の導入によって、単に出力方程式(38)を導入しただけの場合に比べてフィードバックゲイン行列Ｋの計算を約１００倍（出力方程式(38)を全く用いない場合の３００倍）高速にすることができている。また、このフィードバックゲイン行列Ｋの計算の際に現れる変数のサイズは、最大でも接続行列Ｂおよび出力行列Ｃのサイズであるので、メモリの使用容量も少なくて済む（式(45)を導入しない場合に現れる変数の最大サイズは遷移行列Ａのサイズとなる）。
【０２４１】
なお、本実施形態では、ペトリネットモデルを例に挙げて説明したが、その他のグラフモデル、例えば有向グラフや無向グラフに本発明を適用することも可能である。例えば有向グラフでは、上述したペトリネットモデルにおけるプレースは点で表現され、トランジションは矢印付きの線で表現される。矢印付きの線は、点から点へ製品すなわちトークンを移動させる移動操作端であり、移動路の役目をする。また、矢印は、線から点、或いは、点から線へトークンが移動する方向を示すものである。
【０２４２】
また、ペトリネットモデルでは、各工程内に設けられている仮想プレースに初期設定された容量設定用仮想トークンの数により、各処理工程で同時に処理できる製品の数を制限していたが、通常のグラフモデルでは仮想プレースは存在せず、各工程内における処理容量をソフトウェア上で制御される。
【０２４３】
このような特徴を有する通常のグラフモデルに本発明を適用する場合も、一連の動作は上述したペトリネットモデルにおける動作と同様であり、ここでは、その詳細な説明は省略する。
【０２４４】
図１８は、上述した生産・物流スケジュール作成装置を作成可能なコンピュータシステムの一例を示すブロック図である。同図において、１２００はコンピュータＰＣである。ＰＣ１２００は、ＣＰＵ１２０１を備え、ＲＯＭ１２０２又はハードディスク（ＨＤ）１２１１に記憶された、或いはフレキシブルディスクドライブ（ＦＤ）１２１２より供給されるデバイス制御ソフトウェアを実行し、システムバス１２０４に接続される各デバイスを総括的に制御する。
【０２４５】
上記ＰＣ１２００のＣＰＵ１２０１、ＲＯＭ１２０２又はハードディスク（ＨＤ）１２１１に記憶されたプログラムにより、本実施形態の各機能手段が構成される。
【０２４６】
１２０３はＲＡＭで、ＣＰＵ１２０１の主メモリ、ワークエリア等として機能する。１２０５はキーボードコントローラ（ＫＢＣ）であり、キーボード（ＫＢ）１２０９から入力される信号をシステム本体内に入力する制御を行う。１２０６は表示コントローラ（ＣＲＴＣ）であり、表示装置（ＣＲＴ）１２１０上の表示制御を行う。１２０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム（起動プログラム：パソコンのハードやソフトの実行（動作）を開始するプログラム）、複数のアプリケーション、編集ファイル、ユーザファイルそしてネットワーク管理プログラム等を記憶するハードディスク（ＨＤ）１２１１、及びフレキシブルディスク（ＦＤ）１２１２とのアクセスを制御する。
【０２４７】
１２０８はネットワークインタフェースカード（ＮＩＣ）で、ＬＡＮ１２２０を介して、ネットワークプリンタ、他のネットワーク機器、或いは他のＰＣと双方向のデータのやり取りを行う。
【０２４８】
なお、本発明は複数の機器から構成されるシステムに適用しても、一つの機器からなる装置に適用してもよい。
【０２４９】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０２５０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２５１】
プログラムコードを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０２５２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２５３】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２５４】
以上述べた実施形態では、シミュレーション結果から上記生産・物流プロセスにおける生産・物流スケジュールを作成する例を説明したが、シミュレーション結果に基づいて生産・物流プロセスの制御を行う場合にも本発明は適用される。
【図面の簡単な説明】
【０２５５】
【図１】本発明を適用した生産・物流スケジュール作成装置の概略構成を説明するブロック図である。
【図２】第１の実施形態における生産・物流スケジュール作成の処理手順を示すフローチャートである。
【図３】モデル構築の処理手順を示すフローチャートである。
【図４】制御則構築の処理手順を示すフローチャートである。
【図５】シミュレーションの処理手順を示すフローチャートである。
【図６】ペトリネットモデルの例を示す図である。
【図７】第２の実施形態における生産・物流スケジュール作成の処理手順を示すフローチャートである。
【図８】モデル構築の処理手順を示すフローチャートである。
【図９】制御則構築の処理手順を示すフローチャートである。
【図１０】シミュレーションの処理手順を示すフローチャートである。
【図１１】第３の実施形態における生産・物流スケジュール作成の処理手順を示すフローチャートである。
【図１２】モデル構築の処理手順を示すフローチャートである。
【図１３】制御則構築の処理手順を示すフローチャートである。
【図１４】シミュレーションの処理手順を示すフローチャートである。
【図１５】ペトリネットモデルの例を示す図である。
【図１６】ペトリネットモデルの例を示す図である。
【図１７】製品種No.1に対するペトリネットモデルの例を示す図である。
【図１８】本発明の生産・物流スケジュール作成装置を構成可能なコンピュータシステムの一例を示すブロック図である。
【図１９】単一品種の製品を扱う物流制御モデルの一例を示す図である。
【図２０】不可制御のペトリネットモデルの一例を示す図である。
【図２１】従来の制御法を適用して製造プロセスの物流モデルの各製造工程を整数プレースで表したペトリネットモデルの例を示す図である。
【図２２】本発明による製造プロセスにおける物流制御方法の全体の処理手順を使用する計算式と共に示すフローチャートである。
【図２３】本発明を適用して制御を行った結果の例を示す図である。
【図２４】各プレースにおける状態と各トランジションにおける操作ベクトルとを各処理時間ステップごとに示す図である。
【図２５】従来の制御法を適用して制御を行った結果の例を示す図である。
【図２６】出力方程式を導入した場合の本発明による製造プロセスにおける物流制御装置の要部構成を示すブロック図である。
【図２７】ペトリネットモデルを用いた従来の製造プロセスにおける物流制御方法の全体の処理手順を示すフローチャートである。
【符号の説明】
【０２５６】
１    シミュレーション制御部
１ａ  物流シミュレータ
１ｂ  最適制御方策部
２    最適化計算装置
３    数式モデル
【図１】
0004846376.tif 000035
【図２】
0004846376.tif 000036
【図３】
0004846376.tif 000037
【図４】
0004846376.tif 000038
【図５】
0004846376.tif 000039
【図６】
0004846376.tif 000040
【図７】
0004846376.tif 000041
【図８】
0004846376.tif 000042
【図９】
0004846376.tif 000043
【図１０】
0004846376.tif 000044
【図１１】
0004846376.tif 000045
【図１２】
0004846376.tif 000046
【図１３】
0004846376.tif 000047
【図１４】
0004846376.tif 000048
【図１５】
0004846376.tif 000049
【図１６】
0004846376.tif 000050
【図１７】
0004846376.tif 000051
【図１８】
0004846376.tif 000052
【図１９】
0004846376.tif 000053
【図２０】
0004846376.tif 000054
【図２１】
0004846376.tif 000055
【図２２】
0004846376.tif 000056
【図２３】
0004846376.tif 000057
【図２４】
0004846376.tif 000058
【図２５】
0004846376.tif 000059
【図２６】
0004846376.tif 000060
【図２７】
0004846376.tif 000061