(57)【要約】      （修正有）【課題】高速に、より最適解に近い運転曲線を作成するため、所定の車両特性を有する列車について、所定の出発駅と所定の到着駅との間を所定の走行時間で累積消費エネルギーをより少なくして走行可能とする運転曲線作成装置を提供する。【解決手段】最短時間運転曲線作成部１４は、予め設定された列車の車両情報及び地上情報に基づいて駅間を列車が最短時間で走行する最短時間運転曲線を作成し、省エネ運転曲線作成部１５は、最短時間運転曲線、出発駅を出発してから所定の経過時間毎の列車の状態に相当する複数の解候補から、所定の走行時間で累積消費エネルギーが比較的少ない解候補を選択して、選択した解候補に基づいて省エネ運転曲線を作成する。【選択図】図１
2015020637.tif 000002
【特許請求の範囲】
【請求項１】
所定の車両特性を有する列車について、所定の出発駅と所定の到着駅との間を所定の走行時間で累積消費エネルギーをより少なくして走行可能とする運転曲線を作成する運転曲線作成装置において、
予め設定された前記列車の車両情報及び地上情報に基づいて前記駅間を前記列車が最短時間で走行する最短時間運転曲線を作成する最短時間運転曲線作成部と、
前記最短時間運転曲線及び前記出発駅を出発してから所定の経過時間毎の前記列車の状態に相当する複数の解候補から、前記所定の走行時間で前記累積消費エネルギーが比較的少ない解候補を選択して、選択した解候補に基づいて省エネ運転曲線を作成する省エネ運転曲線作成部と、
を備えた運転曲線作成装置。
【請求項２】
前記列車の状態は、前記所定の経過時間毎における前記出発駅からの距離と、前記列車の速度と、であり、
前記省エネ運転曲線作成部は、前記解候補を前記出発駅からの所定の距離範囲及び所定の速度範囲の組み合わせ毎に各組み合わせに属するいずれか一つの状態を当該組み合わせを代表する前記解候補として前記省エネ運転曲線を作成する、
請求項１記載の運転曲線作成装置。
【請求項３】
前記列車の加速及び減速は、ノッチ切替により行われるものであり、
前記省エネ運転曲線作成部は、所定のノッチ切替数を超える前記列車の状態を前記解候補から除く、
請求項１又は請求項２記載の運転曲線作成装置。
【請求項４】
前記列車の加速及び減速は、ノッチ切替により行われるものであり、
前記省エネ運転曲線作成部は、同一のノッチの継続時間が所定の継続時間未満に相当する前記列車の状態を前記解候補から除く、
請求項１又は請求項２記載の運転曲線作成装置。
【請求項５】
前記省エネ運転曲線作成部により作成された前記省エネ運転曲線を表示する運転曲線作成結果表示部を備えた、
請求項１乃至請求項４のいずれかに記載の運転曲線作成装置。
【請求項６】
前記省エネ運転曲線作成部により作成された前記省エネ運転曲線に対応するデータを記憶する運転曲線作成結果記憶部を備えた請求項１乃至請求項５のいずれかに記載の運転曲線作成装置。
【請求項７】
前記列車の車両情報は、車両の種類、車体重量、乗車率、編成両数、列車長を含む請求項１乃至請求項６のいずれかに記載の運転曲線作成装置。
【請求項８】
前記地上情報は、駅間距離情報、区間位置及び当該区間位置に対応する上限速度を含む速度制限情報、並びに進行方向に対する勾配情報を含む請求項１乃至請求項７のいずれかに記載の運転曲線作成装置。
【請求項９】
所定の車両特性を有する列車について、所定の出発駅と所定の到着駅との間を所定の走行時間で累積消費エネルギーをより少なくして走行可能とする運転曲線を作成する運転曲線作成装置の制御方法において、
予め設定された前記列車の車両情報及び地上情報に基づいて前記駅間を前記列車が最短時間で走行する最短時間運転曲線を作成する最短時間運転曲線作成過程と、
前記最短時間運転曲線及び前記出発駅を出発してから所定の経過時間毎の前記列車の状態に相当する複数の解候補から、前記所定の走行時間で前記累積消費エネルギーが比較的少ない解候補を選択して、選択した解候補に基づいて省エネ運転曲線を作成する省エネ運転曲線作成過程と、
を備えた運転曲線作成装置の制御方法。
【請求項１０】
所定の車両特性を有する列車について、所定の出発駅と所定の到着駅との間を所定の走行時間で累積消費エネルギーをより少なくして走行可能とする運転曲線を作成する運転曲線作成装置をコンピュータにより制御するための制御プログラムにおいて、
前記コンピュータを、
予め設定された前記列車の車両情報及び地上情報に基づいて前記駅間を前記列車が最短時間で走行する最短時間運転曲線を作成する最短時間運転曲線作成手段と、
前記最短時間運転曲線及び前記出発駅を出発してから所定の経過時間毎の前記列車の状態に相当する複数の解候補から、前記所定の走行時間で前記累積消費エネルギーが比較的少ない解候補を選択して、選択した解候補に基づいて省エネ運転曲線を作成する省エネ運転曲線作成手段と、
して機能させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、運転曲線作成装置、運転曲線作成装置の制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
近年の電力不足からエネルギー効率のよい鉄道に対しても更なる省エネルギー（以下、単に省エネという。）が求められている。鉄道における省エネは空調、照明等の補機をエネルギー効率のよい機器に変更することや、列車の走行時のエネルギーを削減することなどである。特に、列車の走行時の省エネは古くから検討されており、以下にあげる参考文献等で様々な議論がされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−１５６７９４号公報
【特許文献２】特開平７−１６５０８０号公報
【非特許文献】
【０００４】
【非特許文献１】「市川：列車運転の最適化，日本機械学会論文集（第１部）３４巻２５８号（１９６８）」
【非特許文献２】「山崎，国方：Ｄｙｎａｍｉｃ  Ｐｒｏｇｒａｍｍｉｎｇによる最適なランカーブ計算，サイバネティックス（１９６８）」
【非特許文献３】「川島，古村，松本，高岡：最適な列車運転方式の作成および修正方法の提案，電気学会（１９９０）」
【非特許文献４】「高木，曽根：列車群制御のための省エネルギー運転パターンに関する研究，電気学会（１９９２）」
【非特許文献５】「古関，姚：省エネルギー運転曲線最適化への動的計画法の応用と数値計算上の問題点，電気学会（２００２）」
【非特許文献６】「宮武，高：動的計画法を用いた列車運転曲線最適化問題の求解法，電気学会（２００４）」
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に列車の運転に関する省エネは以下の３つの方針が取られることが多い。
（１）出発駅を出発する際に最大加速度で加速する。
（２）速度制限内でなるべく惰行（慣性走行）を増やす。
（３）駅に到着する際に最大減速度で減速する
【０００６】
これら基本方針に対して、これまでに様々な省エネ運転曲線作成法が提案されてきた。これら基本方針に基づいて運転曲線を作成するために、ヒューリステックによって運転曲線を作成する方法が多く提案されている。しかし、駅間に最高速度が１つだけの速度制限が単純な場合や、走行時分が最短時分に比べて大きい場合には、ヒューリステックでも最適な運転曲線に近いものが得られるが、駅間の速度制限が複雑な場合にはヒューリステックで運転曲線を作成すると、解がない場合や最適解よりもかなり消費エネルギーが大きい解しか得られないことがある。そのため、与えられた速度制限や勾配が複雑であっても最適解に近い解を得ることができる方法が望まれている。
【０００７】
そこで、本発明は、上記に鑑みてなされたものであり、高速に、より最適解に近い運転曲線を作成することが可能な運転曲線作成装置、運転曲線作成装置の制御方法及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
実施形態の運転曲線作成装置は、所定の車両特性を有する列車について、所定の出発駅と所定の到着駅との間を所定の走行時間で累積消費エネルギーをより少なくして走行可能とする運転曲線を作成する運転曲線作成装置である。
【０００９】
そして、最短時間運転曲線作成部は、予め設定された前記列車の車両情報及び地上情報に基づいて前記駅間を前記列車が最短時間（最短走行時分）で走行する最短時間運転曲線を作成する。
【００１０】
これにより、省エネ運転曲線作成部は、最短時間運転曲線及び出発駅を出発してから所定の経過時間毎の列車の状態に相当する複数の解候補から、所定の走行時間で累積消費エネルギーが比較的少ない解候補を選択して、選択した解候補に基づいて省エネ運転曲線を作成する。
【図面の簡単な説明】
【００１１】
【図１】図１は、運転曲線作成装置の概要構成ブロック図である。
【図２】図２は、運転曲線作成装置をパーソナルコンピュータで構成した場合の概要構成ブロック図である。
【図３】図３は、地上情報データのフォーマット及びデータ例の説明図である。
【図４】図４は、車両情報データのフォーマット及びデータ例の説明図である。
【図５】図５は、組み合わせ最適化問題での生成操作と枝刈り操作を表す図である。
【図６】図６は、実施形態の処理フローチャートである。
【図７】図７は、最短時間運転曲線の作成処理フローチャートである。
【図８】図８は、最大加速度及び最大減速度の利用可能条件の説明図である。
【図９】図９は、加速限界曲線の作成処理の処理フローチャートである。
【図１０】図１０は、減速限界曲線の作成処理の処理フローチャートである。
【図１１】図１１は、最短時間運転曲線の作成処理の処理フローチャートである。
【図１２】図１２は、省エネ運転曲線の作成処理の処理フローチャートである。
【図１３】図１３は、横軸に時刻、縦軸に列車の位置をとった（ｘ−ｔ）グラフである。
【図１４】図１４は、速度条件の説明図である。
【図１５】図１５は、量子化処理の説明図である。
【図１６】図１６は、運転曲線作成結果記憶部の記憶データのフォーマット及びデータ例の説明図である。
【図１７】図１７は、運転曲線作成結果記憶部の記憶データに基づく、運転曲線を視覚化した図である。
【図１８】図１８は、ディスプレイに表示する運転曲線の例を示す図である。
【発明を実施するための形態】
【００１２】
次に実施形態について図面を参照して詳細に説明する。
図１は、運転曲線作成装置の概要構成ブロック図である。
運転曲線作成装置１０は、運転曲線作成に必要となる後述の地上情報データを予め記憶する地上情報記憶部１１と、運転曲線作成に必要となる後述の車両情報データを予め記憶する車両情報記憶部１２と、車両情報、駅間情報、走行時間情報等の各種データが入力されるとともに、入力されたデータに基づいて運転曲線作成に必要となる地上情報データを地上情報記憶部１１から取得し、車両情報データを車両情報記憶部１２から取得する運転曲線入力処理部１３と、運転曲線入力処理部１３から入力された各種データに基づいて指定された車両条件で指定された駅間を最短時間で走行するための最短時間運転曲線を作成する最短時間運転曲線作成部１４と、最短時間運転曲線に基づいて、指定された走行時間で指定された駅間を走行するとともに、省エネを図ることが可能な省エネ運転曲線を作成する省エネ運転曲線作成部１５と、最短時間運転曲線作成部１４が作成した最短時間運転曲線及び省エネ運転曲線作成部１５が作成した運転曲線を記憶する運転曲線作成結果記憶部１６と、省エネ運転曲線作成部１５が作成した運転曲線作成結果を表示する運転曲線作成結果表示部１７と、を備えている。
【００１３】
本実施形態では、運転曲線作成を汎用的なパーソナルコンピュータ等で行うことを想定している。
図２は、運転曲線作成装置をパーソナルコンピュータで構成した場合の概要構成ブロック図である。
運転曲線作成装置１０は、図２に示すように、運転曲線作成装置全体を制御するマイクロコンピュータとして構成され、運転曲線入力処理部１３、最短時間運転曲線作成部１４及び省エネ運転曲線作成部１５として機能するＭＰＵ２１と、制御プログラムを含む各種データを不揮発的に記憶するＲＯＭ２２と、ＭＰＵ２１のワーキングエリアとして用いられ、各種データを一時的に記憶するＲＡＭ２３と、ハードディスクドライブ装置（ＨＤＤ）等として構成され、地上情報記憶部１１、車両情報記憶部]１２及び運転曲線作成結果記憶部１６として機能する外部記憶装置２４と、半導体記憶装置であるＩＣメモリに対する各種データの読み出し及び書き込みが可能とされ、運転曲線入力処理部１３として機能可能なＩＣカードリーダ／ライタ（Ｒ／Ｗ）２６と、オペレータが各種情報を入力可能とされ、運転曲線入力処理部１３として機能可能なキーボード２７と、液晶ディスプレイ、有機ＥＬディスプレイなどとして構成され、運転曲線作成結果表示部１７として機能可能なディスプレイ２８と、図示しないインターネット、ＬＡＮなどの通信ネットワークを介した通信のインタフェース動作を行い、運転曲線入力処理部１３として機能可能な通信インタフェース（Ｉ／Ｆ）２９と、を備えている。
【００１４】
ここで、地上情報記憶部１１及び車両情報記憶部１２における記憶データのフォーマット及びデータ例について説明する。
まず地上情報記憶部１１に記憶されている地上情報データのフォーマット及びデータ例について説明する。
【００１５】
図３は、地上情報データのフォーマット及びデータ例の説明図である。
地上情報記憶部１１に記憶されている地上情報データ３０は、大別すると、地上情報データを特定するための地上ＩＤデータ３１と、当該地上情報データ３０に対応する駅関連の情報を含む駅関連データ３２と、駅関連データ３２に対応する駅間における速度制限に関する情報としての速度制限データ３３と、駅関連データに対応する駅間における勾配に関する情報としての勾配データ３４と、を含んでいる。
【００１６】
駅関連データ３２は、地上ＩＤデータ３１に対応する駅間情報データ３５と、地上ＩＤデータ３１に対応する駅間距離データ３６とを含んでいる。
より具体的には、図３の例の場合、駅間情報データ３５は、Ａ駅からＢ駅に向かうことを表しており、駅間距離データ３６は、Ａ駅からＢ駅へ向かう場合の駅間距離は、１５００ｍであることを表している。
【００１７】
速度制限データ３３は、駅関連データ３２で特定される駅間の速度の制限に関し、速度制限が課されている速度制限区間の始点を表す始点データ３７、速度制限区間の終点を表す終点データ３８及び当該速度制限区間における上限速度を表す速度データ３９と、を含んでいる。
【００１８】
始点データ３７は、出発駅（上述の例の場合、Ａ駅）を０ｍとした場合に、出発駅から速度制限区間の始点位置までの距離を表している。
また終点データ３８は、出発駅を０ｍとした場合に、出発駅から速度制限区間の終点位置までの距離を表している。
また、速度データ３９は、対応する速度制限区間における上限速度値が格納されている。
【００１９】
具体的には、図３の例の場合、速度制限区間は、出発駅であるＡ駅から到着駅であるＢ駅までの間に４区間有り、第１の区間は、出発駅であるＡ駅の位置（距離０ｍ）から５００ｍの位置迄の区間となっており、上限速度値は、２５ｍ／ｓｅｃとなっている。
同様に第２の区間は、出発駅から５００ｍの位置から７５０ｍの位置までの区間となっており、上限速度値は、２３ｍ／ｓｅｃとなっている。第３の区間は、出発駅から１０００ｍの位置から１３００ｍの位置までの区間となっており、上限速度値は、２０ｍ／ｓｅｃとなっている。第４の区間は、出発駅から１３００ｍの位置から１５００ｍの位置（終点駅であるＢ駅の位置）までの区間となっており、上限速度値は、２０ｍ／ｓｅｃとなっている。
【００２０】
勾配データ３４は、出発駅から到着駅に至るまでの全ての勾配情報を含んでおり、勾配が連続して一定となっている区間の始点を表す始点データ４０、当該勾配が連続して一定となっている区間の終点を表す終点データ４１及び当該勾配一定区間における勾配値を表す勾配値データ４２と、を備えている。
【００２１】
具体的には、図３の例の場合、勾配一定区間は、Ａ駅からＢ駅までの間に３区間有り、第１の区間は、出発駅であるＡ駅の位置（距離０ｍ）から１０００ｍの位置まで迄の区間となっており、勾配値は、０‰となっている。
【００２２】
同様に第２の区間は、出発駅から１０００ｍの位置から１３００ｍの位置までの区間となっており、勾配値は、２‰となっている。第３の区間は、出発駅から１３００ｍの位置からから１５００ｍの位置（到着駅であるＢ駅の位置）までの区間となっており、勾配値は、０‰となっている。
【００２３】
次に車両情報記憶部１２に記憶されている車両情報データのフォーマット及びデータ例について説明する。
図４は、車両情報データのフォーマット及びデータ例の説明図である。
車両情報記憶部１２に記憶されている車両情報データ５０は、鉄道車両を特定するための車両ＩＤデータ５１と、鉄道車両の駆動種類を表す種類データ５２と、車体重量を表す車体重量データ５３と、運転曲線作成にあたって想定する乗車率を表す乗車率データ５４と、鉄道車両の編成両数を表す編成両数データ５５と、列車長を表す列車長データ５６と、当該鉄道車両に搭載されているマスターコントローラのノッチ特性を特定するためのノッチ特性ＩＤデータ５７と、を含んでいる。
【００２４】
具体的には、図４の例の場合、車両ＩＤデータ５１＝５であり、種類データ５２は鉄道車両の駆動種類がＶＶＶＦ方式であり、車体重量データ５３は、車体重量が１０ｔであることを表し、乗車率データ５４は、運転曲線作成にあたって想定する乗車率が乗車率５０％であることを表し、編成両数データ５５は、編成両数が１０両であることを表し、列車長データ５６は、列車長が２００ｍであることを表し、ノッチ特性ＩＤデータ５７は当該鉄道車両に搭載されているマスターコントローラのノッチ特性ＩＤ＝５であることを表している。
【００２５】
次に実施形態の動作を説明するに先立って、実施形態の原理的な考え方について説明する。
列車の省エネ運転曲線は、制約として走行抵抗および勾配抵抗などを含んだ運動方程式と、出発してからの経過時間ｔ、速度ｖ及び出発駅からの距離ｘで表した、出発駅での状態（初期状態）を、（ｔ，ｖ，ｘ）＝（０，０，０）とし、到着駅での状態（終端状態）を（ｔ，ｖ，ｘ）＝（Ｔ，０，Ｘ）とした２点境界値を有する。
ここで、Ｔは、出発駅から到着駅に至るのに要した経過時間、Ｘは、出発駅と到着駅との間の距離である。
【００２６】
一方、評価関数は、出発駅と到着駅との間で消費するエネルギーの総和Ｅ（累積消費エネルギー）とした最適制御問題を解くことによって求まる。この時、列車の運動を指定する制御変数は加速度、減速度を指定するノッチとなる。現在、広く普及している列車は複数あるノッチによって列車の加減速を実現するものであり、運転曲線は各時刻においてどのノッチを選択して運転するかの多段意思決定問題とみなすことができる。
【００２７】
ところで、一般に多段意思決定問題を解く際に課題となるのが、解候補の組み合わせ爆発である。
以下、組み合わせ爆発について簡単に説明する。
例えば、ノッチの選択肢が１０個あり、走行時間が１００秒の運転曲線を最小制御時間単位１秒として作成する場合には、１０１００個の解候補の中から制約を満たす解を見つけ出さなければならない。この中からしらみつぶしに制約を満たす解を見つけることは現実的な時間の範囲では不可能である。
【００２８】
そこで、この組み合わせ爆発の課題を解決する方法として、動的計画法を用いた最適解の探索法が提案されている。
動的計画法を用いた運転曲線の作成は列車の（時間、速度、位置）の状態を格子点上に定義し、その格子点を最も累積消費エネルギーが小さくなる経路を探索するものである。その際、ある状態（ｔ，ｖ，ｘ）に到達する複数の経路がある場合に、最も累積した消費エネルギーが小さい経路のみを記憶し、探索を続ける。動的計画法を用いる場合、予め状態空間を格子状に分割するが、一般に格子点から格子点へ移動するのはまれである。そのため、格子点に乗らない場合には何らかの補正を施し、格子点に移動したものとしている。この方法では格子点への補正が多くなると、最適解と比較して誤差が大きくなる問題点がある。
【００２９】
そこで、本実施形態では、多段意思決定問題の解候補を全数列挙せずに、各段（時刻）において、許容解の候補となりえるかをチェック（枝刈り）しながら、段を進める毎に解候補を生成していく方法を提案している。
ここで、枝刈りとは、オペレーションズ・リサーチの分野で知られている組み合わせ最適化問題を解くための汎用的な手法である。生成操作においては解候補を生成し、枝刈り操作においては最適解となりえない解候補を枝刈りし、解候補のリストから削除する方法である。生成操作、枝刈り操作を繰り返しながら、最適解を探索する。全数列挙に近い考えであるが、解候補になりえないものは探索を行わないところが全数列挙法よりも効率がよい。
【００３０】
図５は、組み合わせ最適化問題での生成操作と枝刈り操作を表す図である。
具体的には、経過時間ｔ＝０において、状態が速度Ｖ０、位置Ｘ０であった場合に、最小制御時間単位経過後の経過時間ｔ＝１においては、考えられる状態は、第１の状態が速度Ｖ１、位置Ｘ１であり、第２の状態が速度Ｖ２、位置Ｘ２であり、第３の状態が速度Ｖ３、位置Ｘ３であるが、当該第３の状態あるいは、当該第３の状態から遷移した経過時間ｔ＝２における三つの状態（速度Ｖ１０、位置Ｘ１０）、（速度Ｖ１１、位置Ｘ１１）、（速度Ｖ１２、位置Ｘ１２）の評価を行った場合に、遷移させるだけの評価値が得られない（解候補としてあり得ない）場合には、枝刈りとして、以降の探索を行わないものである。しかし、枝刈り操作は解く問題に依存して変わるもので、問題によって適切に設定しなければならない。
【００３１】
以下、生成操作と枝刈り操作を含む具体的な動作について説明する。
図６は、実施形態の処理フローチャートである。
まず、運転曲線入力処理部１３から地上情報、車両情報及び走行時間Ｔを取得する（ステップＳ１０１）。
すなわち、運転曲線を作成するに際しては、路線のどの駅間（Ａ駅からＢ駅へ進む場合と、Ｂ駅からＡ駅へ進む場合と、を区別する必要がある）をどの車両で、どれだけの走行時間Ｔで走行するかを入力する必要がある。
ここで、車両情報、駅間情報、走行時間情報等の各種データの入力は、ＩＣカード２５に記憶した設定ファイルをＩＣカードＲ／Ｗ２６により読み込んだり、あるいは、通信Ｉ／Ｆ２９を介して受信した設定ファイルにより入力したり、キーボード２７などを介して直接入力したりするなどが考えられる。
運転曲線入力処理部１３に車両情報、駅間情報、走行時間情報等の各種データが入力されると、運転曲線入力処理部１３は、地上情報記憶部１１及び車両情報記憶部１２を参照し、入力された車両情報及び駅間情報に基づいて、運転曲線作成に必要なデータを取得する。
続いて、最短時間運転曲線作成部１４として機能するＭＰＵ２１は、運転曲線入力処理部１３より運転曲線作成に必要なデータを受け取り、入力された駅間での最短時間の運転曲線を作成する（ステップＳ１０２）。
【００３２】
図７は、最短時間運転曲線の作成処理フローチャートである。
最短時間運転極性作成処理は、大別すると、加速限界曲線作成処理（ステップＳ２０１）、減速限界曲線作成処理（ステップＳ２０２）及び枝刈りアルゴリズムによる最短時間運転曲線作成処理（ステップＳ２０３）を備えて構成されている。
【００３３】
以下、具体的に説明する。
最短時間運転曲線を作成するには、初期条件と終端条件を持つ最短時間制御の解を求めることになる。一般に最短時間制御はbang-bang制御と呼ばれる最大加速度または最大減速度によって制御されるものである。しかしながら、列車の運行時には主に位置による速度制限が加わるために必ずしも最大加速度と最大減速度のみで制御できるわけではない。そこで最大加速度と最大減速度で列車を動かすことができる範囲を求める。
【００３４】
図８は、最大加速度及び最大減速度の利用可能条件の説明図である。
列車の運行時において、最大加速度と最大減速度を用いることができるのは、図８に示すように、ケースｃａｓｅ１〜ｃａｓｅ４の４通りの場合である。
Ｃａｓｅ１：出発駅を出発する時、最大加速度を用いる
Ｃａｓｅ２：到着駅に到着する時、最大減速度を用いる
Ｃａｓｅ３：制限速度が進行方向で増加する時、最大加速度を用いる
Ｃａｓｅ４：制限速度が進行方向で減少する時、最大減速度を用いる
【００３５】
図８において、右上がりの線が最大加速度で列車を動かした場合のものであり、左下がりの線が最大減速度で列車を動かした場合のものである。
一つの駅間において、Ｃａｓｅ１の状態と、Ｃａｓｅ２の状態とは必ず一つずつしか存在しない。
【００３６】
これに対し、Ｃａｓｅ３の状態と、Ｃａｓｅ４の状態とは、一つの駅間に複数存在する可能性があるので、それらの全てに対して、加速限界曲線と減速限界曲線を算出する必要がある。
【００３７】
はじめに図８を用いて、図９と図１０に示す変数ＳＴについて説明する。まず、速度制限が次のような構造体配列で与えられているものとする。
ｓｔｒｕｃｔ  ｖｅｌｏｃｉｔｙ＿ｌｉｍｉｔａｔｉｏｎ｛
ｄｏｕｂｌｅ  ｐｏｓｉｔｉｏｎ；／／速度制限の開始位置
ｄｏｕｂｌｅ  ｖｅｌｏｃｉｔｙ；／／上記開始位置以降の制限速度
｝；
【００３８】
図８では
ｓｔｒｕｃｔ  ｖｅｌｏｃｉｔｙ＿ｌｉｍｉｔａｔｉｏｎ  ＳＴ［３］
＝｛｛０，ｖｍａｘ｝，｛ｘ１，ｖ２｝，｛ｘ２，ｖｍａｘ｝｝；
となる。
ここでＳＴ［０］．ｐｏｓｉｔｉｏｎ＜  ＳＴ［１］．ｐｏｓｉｔｉｏｎ＜  ＳＴ［２］．ｐｏｓｉｔｉｏｎ＜  ＳＴ［３］．ｐｏｓｉｔｉｏｎのように、構造体のインデックスが小さいほど、開始位置は小さいものとする。
次に加速限界曲線と減速限界曲線のターゲットとなる位置を検出する。デフォルトで
加速限界曲線のターゲット位置＝０；／／Ｃａｓｅ１
加速限界曲線のターゲット速度＝０；／／Ｃａｓｅ１
減速限界曲線のターゲット位置＝Ｘ；／／Ｃａｓｅ２（出発駅から到着駅までの距離）
減速限界曲線のターゲット速度＝０；／／Ｃａｓｅ：２
とする。それ以外は以下の条件に一致する位置を加速限界曲線と減速限界曲線のターゲット位置に設定する。
【００３９】
ｆｏｒ（ｉｎｔ  ｉ＝１；  ｉ＜  ｓｉｚｅｏｆ（ＳＴ）／ｓｉｚｅｏｆ（ＳＴ［０］）；ｉ＋＋）｛
ｉｆ（ＳＴ［ｉ−１］．ｖｅｌｏｃｉｔｙ  ＜  ＳＴ［ｉ］．ｖｅｌｏｃｉｔｙ）｛
加速限界曲線のターゲット位置
＝ＳＴ［ｉ］．ｐｏｓｉｔｉｏｎ；  ／／Ｃａｓｅ３
加速限界曲線のターゲット速度
＝ＳＴ［ｉ−１］．ｖｅｌｏｃｉｔｙ；  ／／Ｃａｓｅ３
｝ｅｌｓｅ｛
減速限界曲線のターゲット位置
＝  ＳＴ［ｉ］．ｐｏｓｉｔｉｏｎ；  ／／Ｃａｓｅ４
減速限界曲線のターゲット速度
＝ＳＴ［ｉ］．ｖｅｌｏｃｉｔｙ；  ／／Ｃａｓｅ３
｝
｝
【００４０】
図９においては、加速限界曲線作成に必要なターゲット位置とターゲット速度をデフォルトの駅を出発する時点のＣａｓｅ１と複数の速度制限がある場合で上記条件を満たす、すべてのターゲット位置、ターゲット速度を配列ＳＴに設定してある。
【００４１】
同様に図１０においては、減速限界曲線作成に必要なターゲット位置とターゲット速度をデフォルトの駅に到着する時点のＣａｓｅ：２と複数の速度制限がある場合で上記条件を満たす、すべてのターゲット位置、ターゲット速度を配列ＳＴに設定してある。
【００４２】
具体的には図８を例にすると、
加速限界曲線の場合は、
ｓｔｒｕｃｔ  ｖｅｌｏｃｉｔｙ＿ｌｉｍｉｔａｔｉｏｎ  ＳＴ［２］
＝｛｛０，０｝，｛ｘ２，ｖ２｝｝；
になり、減速限界曲線の場合は
ｓｔｒｕｃｔ  ｖｅｌｏｃｉｔｙ＿ｌｉｍｉｔａｔｉｏｎ  ＳＴ［２］
＝｛｛ｘ１，ｖ２｝，｛｛Ｘ，０｝｝；
になる。
【００４３】
加速限界曲線作成処理（ステップＳ２０１）おいては、まず初めにこの最大加速度と最大減速度を用いた時の（速度、位置）を算出する。
【００４４】
図８に示したケースｃａｓｅ１〜ｃａｓｅ４における各曲線を、それぞれ加速限界曲線、減速限界曲線と呼ぶことにする。
ところで、加速限界曲線は、最大加速を用いる速度と位置の初期条件を与えることで容易に求めることができる。
【００４５】
図９は、加速限界曲線の作成処理の処理フローチャートである。
まず、変数ｓを初期化し、初期値の０とする（ステップＳ４０１）。
次に加速限界曲線のターゲット位置、すなわち、加速経過時刻ｉ＝０、加速限界曲線における初期速度ｖ（０）＝ＳＴ［ｓ］．ｖｅｌｏｃｉｔｙ及び初期位置ｘ（０）＝ＳＴ［ｓ］．ｐｏｓｉｔｉｏｎを設定する（ステップＳ４０２）。
【００４６】
次に時刻ｉに１を加算する（ステップＳ４０３）。
続いて時刻ｉにおける状態（ｖ（ｉ）、ｘ（ｉ））を最大加速ノッチ（最大の加速度を得ることが可能なノッチ位置に相当）で運動方程式を解いて、算出する（ステップＳ４０４）。
【００４７】
次に時刻ｉにおける速度ｖ（ｉ）が制限速度ｖｍａｘを超えたか、すなわち、
ｖ（ｉ）＞ｖｍａｘ
あるいは、時刻ｉにおける位置ｘ（ｉ）がターゲット位置ＳＴ［ｓ］．ｐｏｓｉｔｉｏｎを超えたか否かを判別する（ステップＳ４０５）。
【００４８】
ステップＳ４０５の判別において、時刻ｉにおける速度ｖ（ｉ）が制限速度ｖｍａｘを超えておらず、かつ、時刻ｉにおける位置ｘ（ｉ）がターゲット位置ＳＴ［ｓ］．ｐｏｓｉｔｉｏｎを超えていない場合には（ステップＳ４０５；Ｎｏ）、処理を再びステップＳ４０３に移行して、以下、同様の処理を繰り返す。
【００４９】
ステップＳ４０５の判別において、時刻ｉにおける速度ｖ（ｉ）が制限速度ｖｍａｘを超えている、あるいは、時刻ｉにおける位置ｘ（ｉ）がターゲット位置ＳＴ［ｓ］．ｐｏｓｉｔｉｏｎを超えている場合には（ステップＳ４０５；Ｙｅｓ）、加速限界曲線のターゲット位置に至ったか否かを判別し、すなわち、
ｓ＝ｓｉｚｅｏｆ（ＳＴ［ｓ］）／ｓｉｚｅｏｆ（ＳＴ［０］）
となったか否かを判別する（ステップＳ４０６）。
【００５０】
ステップＳ４０６の判別において、加速限界曲線のターゲット位置に至っていない場合には（ステップＳ４０６；Ｎｏ）、変数ｓに１を加算し（ステップＳ４０７）、処理を再びステップＳ４０２に移行して、以下、同様の処理を繰り返す。
ステップＳ４０６の判別において、加速限界曲線のターゲット位置に至った場合には（ステップＳ４０６；Ｙｅｓ）、加速限界曲線の作成処理を終了する。
【００５１】
次に加速限界曲線の算出と同様に減速限界曲線を算出する（ステップＳ２０２）。
本実施形態においては、減速限界曲線の場合、終端条件を満たす初期条件を反復法で探索する。一般には終端条件と正確に一致することがほぼ不可能なため、終端条件に許容範囲（ε及びδ）を与えて、その範囲を満たす初期条件を求めている。
【００５２】
図１０は、減速限界曲線の作成処理の処理フローチャートである。
まず、変数ｓを初期化して初期値の０とし、変数ａを初期化して初期値の０とし、変数ｂ＝ＳＴ［ｓ］．ｐｏｓｉｔｉｏｎとし、変数Ｄｉｓｔａｎｃｅ＝ＳＴ［ｓ］．ｐｏｓｉｔｉｏｎとする（ステップＳ５０１）。
次に減速限界曲線のターゲット位置、すなわち、減速経過時刻ｉ＝０、減速限界曲線における初期速度ｖ（０）＝ｖｍａｘ及び初期位置ｘ（０）＝（ａ＋ｂ）／２．０を設定する（ステップＳ５０２）。
【００５３】
次に時刻ｉに１を加算する（ステップＳ５０３）。
そして、時刻ｉにおける列車の状態を最大減速ノッチで運動方程式を解き、算出する（ステップＳ５０４）。
続いて時刻ｉにおける速度ｖ（ｉ）が許容値εに対応する次式を満たしているか否かを判別する（ステップＳ５０５）。
０≦ｖ（ｉ）＜ε
【００５４】
ステップＳ５０５の判別において、
ε≦ｖ（ｉ）
である場合には（ステップＳ５０５；Ｎｏ）、再び処理をステップＳ５０３に移行して以下、同様の処理を行う。
【００５５】
ステップＳ５０５の判別において、
０≦ｖ（ｉ）＜ε
である場合には（ステップＳ５０５；Ｙｅｓ）、時刻ｉにおける位置ｘ（ｉ）が許容値δに対応する次式を満たしているか否かを判別する（ステップＳ５０６）。
｜ｘ（ｉ）−Ｄｉｓｔａｎｃｅ｜＜δ
【００５６】
ステップＳ５０６の判別において、
｜ｘ（ｉ）−Ｄｉｓｔａｎｃｅ｜≧δ
である場合には（ステップＳ５０６；Ｎｏ）、
ｘ（ｉ）＜Ｄｉｓｔａｎｃｅ
であるか否かを判別する（ステップＳ５０７）。
【００５７】
ステップＳ５０７の判別において、
ｘ（ｉ）＜Ｄｉｓｔａｎｃｅ
である場合には（ステップＳ５０７；Ｙｅｓ）、
ａ＝（ａ＋ｂ）／２．０
として処理を再びステップＳ５０２に移行して以下、同様の処理を行う（ステップＳ５０８）。
【００５８】
ステップＳ５０７の判別において、
ｘ（ｉ）≧Ｄｉｓｔａｎｃｅ
である場合には（ステップＳ５０７；Ｎｏ）、
ｂ＝（ａ＋ｂ）／２．０
として処理を再びステップＳ５０２に移行して以下、同様の処理を行う（ステップＳ５０９）。
【００５９】
一方、ステップＳ５０６の判別において、
｜ｘ（ｉ）−Ｄｉｓｔａｎｃｅ｜＜δ
である場合には（ステップＳ５０６；Ｙｅｓ）、減速限界曲線のターゲット位置に至ったか否かを判別し、すなわち、
ｓ＝ｓｉｚｅｏｆ（ＳＴ［ｓ］）／ｓｉｚｅｏｆ（ＳＴ［０］）
となったか否かを判別する（ステップＳ５１０）。
【００６０】
ステップＳ５１０の判別において、減速限界曲線のターゲット位置に至っていない場合には（ステップＳ５１０；Ｎｏ）、変数ｓに１を加算し（ステップＳ５１１）、処理を再びステップＳ５０２に移行して、以下、同様の処理を繰り返す。
ステップＳ５１０の判別において、減速限界曲線のターゲット位置に至った場合には（ステップＳ５１０；Ｙｅｓ）、減速限界曲線の作成処理を終了する。
【００６１】
ところで、減速限界曲線を算出するために、時間を逆向きに進めながら運動方程式を解く、逆引きの方法が使われることがあるが、勾配が存在する場合には逆引きの方法では時間を順方向で解く一般的な微分方程式の数値解法と解がずれることがある。
これに対し、本実施形態の手法によれば、微分方程式をより正確に解くための方法を用いており、逆引きの方法に比べて精度がよい減速限界曲線が得られる。
【００６２】
次に枝刈りアルゴリズムに基づいて最短時間運転曲線を作成する（ステップＳ２０３）
図１１は、最短時間運転曲線の作成処理の処理フローチャートである。
ここで、図１１に示す変数ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅ、変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅ及び変数ｍｉｄｄｌｅ＿ｓｔａｔｅについて説明する。
【００６３】
本実施形態においては、運転曲線作成処理を実現する制御プログラムとしては、Ｃ＋＋やＪＡＶＡ（登録商標）などの高級言語によって開発された制御プログラムを想定している。
特にＣ＋＋やＪＡＶＡでは、要素数によって配列の大きさを変えられる可変長配列を使うことができる。このため、本実施形態では、各時刻での解候補を可変長配列を用いて表現するものとする。
【００６４】
具体的には、Ｃ＋＋などで解候補を
ｓｔｒｕｃｔ  ｐｈａｓｅ｛
ｄｏｕｂｌｅ  ｐｏｓｉｔｉｏｎ；／／位置
ｄｏｕｂｌｅ  ｖｅｌｏｃｉｔｙ；／／速度
ｄｏｕｂｌｅ  ｅｎｅｒｇｙ；／／瞬時のエネルギー消費量
ｄｏｕｂｌｅ  ｔｏｔａｌ＿ｅｎｅｒｇｙ；／／累積のエネルギー消費量
ｉｎｔ  ｎｏｔｃｈ［５００］；／／各時刻でのノッチ番号
ｉｎｔ  ｃｈａｎｇｅ＿ｃｏｕｎｔ；／／ノッチ切替回数
ｉｎｔ  ｎｏｔｃｈ＿ｃｏｎｔｉｎｕｏｕｓ＿ｔｉｍｅ；／／現在のノッチの継続時間｝；
のような構造体で表現する。
【００６５】
そして、
ｖｅｃｔｏｒ＜ｓｔｒｕｃｔ  ｐｈａｓｅ＞  ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅ；
ｖｅｃｔｏｒ＜ｓｔｒｕｃｔ  ｐｈａｓｅ＞ｃｕｒｒｅｎｔ＿ｓｔａｔｅ；
ｖｅｃｔｏｒ＜ｓｔｒｕｃｔ  ｐｈａｓｅ＞ｍｉｄｄｌｅ＿ｓｔａｔｅ；
として解候補を表現すればよい。
【００６６】
まず、出発駅の初期条件として経過時間ｔ＝０、速度ｖ＝０、位置ｘ＝０を変数ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅに設定する（ステップＳ６０１）。
次に経過時間ｔ＋１の解候補それぞれに対して、すべてのノッチでの運動方程式（微分方程式）を解き経過時間ｔの解候補を（経過時間ｔの解候補個数）×（ノッチ選択数）個作成し、その解候補を変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅとして保存し、変数ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅをメモリから解放（クリア）する（ステップＳ６０２）。
【００６７】
ここで、経過時間ｔ＋１における解候補の作り方を具体的に説明する。
まず、経過時間ｔにおいて解候補がＮ個あったものとする。
Ｎ個中の第ｎ番目の解候補の状態を（ｔ，ｖｎ（ｔ），ｘｎ（ｔ））と記述すれば、ｎ番目の状態（ｔ，ｖｎ（ｔ），ｘｎ（ｔ））を数値計算上の初期値として、ｋ番目のノッチＮＯＴＣＨ（ｋ）の与える加速度または減速度を用いて、４次のルンゲ・クッタ法などの数値計算によって経過時間ｔ＋１の状態を計算する。ここでは４次のルンゲ・クッタ法を数値計算例に挙げたが、運動方程式の数値解法はこの限りではない。
これにより、経過時間ｔ＋１の解候補はＮＫ個だけ生成される。
【００６８】
続いて、変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅのそれぞれの解候補の速度に対して、加速限界曲線と減速限界曲線および位置による速度制限より小さい値であるかをチェックし、小さいもののみ変数ｍｉｄｄｌｅ＿ｓｔａｔｅに保存し、変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅはメモリから解放（クリア）する（ステップＳ６０３）。
【００６９】
変数ｍｉｄｄｌｅ＿ｓｔａｔｅの位置に対して、降順（大きい順）でソートし、上位Ｋ個を変数ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅに保存し、変数ｍｉｄｄｌｅ＿ｓｔａｔｅをメモリから解放する（ステップＳ６０４）。
【００７０】
ここで、上位Ｋ個を残すのは、解候補がなくなることを防止するためである。Ｋの値は大きいほど、解候補がなくなる可能性が低くなる。しかしながらＫの値が、大きすぎると計算時間が大きくなるため、実用的にはＫ＝２０程度でよいと考えられる。
そこで、以下の説明においては、Ｋ＝２０として考える。
【００７１】
さらに減速限界曲線と同様に、終端条件に許容幅を持たせた条件が成り立つまで（ステップＳ６０５；Ｙｅｓ）繰り返し、その条件を満たす解候補が出た経過時間ｔに対してｔ＋１を最短走行時分とする（ステップＳ６０７）。
ステップＳ６０５の判別において条件を満たさない場合は（ステップＳ６０５；Ｎｏ）、経過時間ｔに１を加算して（インクリメントして）（ステップＳ６０６）、処理を再びステップＳ６０２に移行し、以下同様の処理を繰り返す。
【００７２】
次に省エネ運転曲線の作成処理について説明する。
図１２は、省エネ運転曲線の作成処理の処理フローチャートである。
まず、運転曲線入力処理部１３で入力された走行時間Ｔの省エネ運転曲線を作成するために、最短時間運転曲線作成部１４の結果を取得し、最短時間運転曲線の結果を上限値に、最短時間運転曲線の結果を時間方向に走行時間Ｔだけ移動したものを下限値としてセットする（ステップＳ７００）。
まず、出発駅の初期条件として経過時間ｔ＝０、速度ｖ＝０、位置ｘ＝０を変数ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅに設定する（ステップＳ７０１）。
【００７３】
次に経過時間ｔ＋１の解候補それぞれに対して、すべてのノッチでの運動方程式（微分方程式）を解き経過時間ｔの解候補を（経過時間ｔの解候補個数）×（ノッチ選択数）個作成し、その解候補を変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅとして保存し、変数ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅをメモリから解放（クリア）する（ステップＳ７０２）。
【００７４】
続いて、変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅの中で解の条件（位置、速度、ノッチ切替回数、ノッチ継続時間）を満たすものを変数ｍｉｄｄｌｅ＿ｓｔａｔｅに保存し、変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅはメモリから解放（クリア）する（ステップＳ７０３）。
【００７５】
経過時間ｔ＋１における変数ｍｉｄｄｌｅ＿ｓｔａｔｅを状態（量子化した位置、量子化した速度、ノッチ切替回数）でソートする。そして同じ状態とみなしている状態で最も累積エネルギー消費量が小さいものを解候補の一つとして選択し、変数ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅに保存し、変数ｍｉｄｄｌｅ＿ｓｔａｔｅをメモリから解放する（ステップＳ７０４）。
【００７６】
次に経過時間ｔ＝走行時間Ｔであるか否かを判別する（ステップＳ７０５）。
ステップＳ７０５の判別において、未だ経過時間ｔ＜走行時間Ｔである場合には（ステップＳ７０５；Ｎｏ）、経過時間ｔに１を加算して（インクリメントして）、処理を再びステップＳ７０２に移行し、以下同様の処理を繰り返す。
【００７７】
ステップＳ７０５の判別において、経過時間ｔ＝走行時間Ｔである場合には（ステップＳ７０５；Ｙｅｓ）、変数ｐｒｅｖｉｏｕｓ＿ｓｔａｔｅに保存されている解候補のうち、最も累積エネルギー消費量が小さいものを最適解として選択する（ステップＳ７０７）。
【００７８】
次に解候補をチェックする条件について詳細に説明する。
簡単化のため、ここではある駅間を走行時間Ｔｍｉｎ＋１０で走行した場合の運転曲線を算出することを例に挙げて、説明する。ここで最短走行時間Ｔｍｉｎは、その駅間を最短で走行した場合の走行時間（最短走行時間）である。
最短走行時間Ｔｍｉｎに対して１０秒長い走行時間Ｔｍｉｎ＋１０で駅間を走行することを考える。
【００７９】
図１３は、横軸に時刻、縦軸に列車の位置をとった（ｘ−ｔ）グラフである。
上のグラフは、最短走行時間Ｔｍｉｎで走行した場合の位置ｘと経過時間ｔとの関係を表しており、下のグラフは、出発駅で１０秒待機してから最短走行時間Ｔｍｉｎで走行した場合の位置ｘと経過時間ｔとの関係を表している。
【００８０】
ここで、最短走行時間Ｔｍｉｎは、車両の性能を最大限に活用して走行したものであり、同じ車両特性であるならば、それ以上は早く走れないことを表している。
つまり、車両特性が決まれば、最短走行時間Ｔｍｉｎが一意に求まる。
したがって、ある時刻において、下のグラフよりも位置ｘが出発駅に近い場合には、走行時間Ｔｍｉｎ＋１０では、到着駅（次駅）に到着できないことを表している。
【００８１】
ゆえに、次のことが言える。
ある駅間を走行時間Ｔｍｉｎ＋１０で走行する時、その駅間で最短走行時間Ｔｍｉｎで走行する場合の経過時間ｔにおける位置をＵｐｐｅｒ［ｔ］、最短走行時間での（ｔ，Ｕｐｐｅｒ［ｔ］）を時間軸方向に１０秒だけ平行移動したグラフを（ｔ，Ｌｏｗｅｒ［ｔ］）とする。ただし、ｔ＜１０ではＬｏｗｅｒ［ｔ］＝０とする。
【００８２】
走行時間Ｔｍｉｎ＋１０でのエネルギー消費量が最小になる解の軌道を（ｔ，ｖ（ｔ），ｘ（ｔ））とすれば、
Ｌｏｗｅｒ［ｔ］≦ｘ（ｔ）≦Ｕｐｐｅｒ［ｔ］
が成り立つ。
ここで、ｔ：０，１，２，…，Ｔｍｉｎ＋１０である。
【００８３】
図１４は、速度条件の説明図である。
一般に鉄道業界においては、このグラフを運転曲線と呼ぶ。ここで（ｖ−ｘ）グラフにおいて、走行時間Ｔに対応する位置ｘにおける速度ＶをＶＴ［ｘ］と書くことにする。すると、先行研究の結果からは次の特性があることがわかっている。
０≦ＶＴ［ｘ］≦ＶＴｍｉｎ［ｘ］
ここで、０≦ｘ≦Ｘである。
【００８４】
つまり、（ｖ−ｘ）グラフで見た場合には、走行時間Ｔの運転曲線は最短時間運転曲線よりも内側に存在する。
ただし、最短時間運転曲線の結果も離散経過時間ｔにおける列車の速度、位置しかわかっておらず、ＶＴｍｉｎ［ｘ］と同様に算出することは難しい。
【００８５】
そこで上述したＶＴ［ｘ］とＶＴｍｉｎ［ｘ］との関係式の代わりに、次の式を用いる。まず、走行時間Ｔｍｉｎの最適運転曲線に対して、経過時間ｔにおける速度、および位置をそれぞれＶＴｍｉｎ（ｔ）  、ＸＴｍｉｎ（ｔ）とする。経過時間ｔにおける解候補（ｔ，ｖ（ｔ），ｘ（ｔ））に対して、ＸＴｍｉｎ（α−１）≦ｘ（ｔ）＜ＸＴｍｉｎ（α）を満たすα（自然数）を見つける。見つけたαに対して、以下の式が成り立つかを判定する。
【００８６】
【数１】
2015020637.tif 000003
【００８７】
これは位置による速度の上限を与える走行時間Ｔｍｉｎの結果を用いて、ＶＴｍｉｎ（ｘ）を線形補間して近似したものである。
【００８８】
ところで、単純に上述した方法で運転曲線を求めた場合には、累積エネルギー消費量が少ない運転曲線を生成することとなるため、必ずしも運転手にとって操作性が良い運転曲線を生成するとは限らない。
例えば、生成される運転曲線に沿って車両の運転を行うためには、各時刻で細かくノッチを操作しなければならない可能性があり、実用的ではない可能性がある。
【００８９】
そこで、本実施形態では、解候補の選択条件として、その時刻までのノッチ切替回数をカウントして、一定値以上ならば解候補から除くようにしている。例えば、ある駅間の走行に対して次の駅に到着するまではノッチの切替回数を１０回までとするならば、ノッチ切替回数を記憶する変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅ［ｉ］．ｃｈａｎｇｅ＿ｃｏｕｎｔ≦１０の条件を満たす変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅ［ｉ］のみ変数ｍｉｄｄｌｅ＿ｓｔａｔｅに保存する。
【００９０】
また、ノッチ切替回数と同様、ノッチ継続条件は短い時間間隔でノッチを切り替えないための条件である。ノッチ継続条件を５秒以上とするならば、ノッチ継続時間を格納する変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅ［ｉ］．ｎｏｔｃｈ＿ｃｏｎｔｉｎｕｏｕｓ＿ｔｉｍｅ≦５の条件を満たす変数ｃｕｒｒｅｎｔ＿ｓｔａｔｅ［ｉ］のみ変数ｍｉｄｄｌｅ＿ｓｔａｔｅに保存する。
【００９１】
このため、上述したステップＳ７０３では、すべての解候補に対して、位置条件、速度条件、ノッチ切替回数条件、ノッチ継続時間条件を用いて判定を行い、これら条件を満たすものだけを変数ｍｉｄｄｌｅ＿ｓｔａｔｅに保存するようにしているのである。
さらにステップＳ７０４では、ステップＳ７０３でそれぞれの条件を満たす解候補が保存してある変数ｍｉｄｄｌｅ＿ｓｔａｔｅの中で経過時間ｔ＋１における状態（ｔ，ｖ（ｔ），ｘ（ｔ））を速度と位置に関して量子化し、量子化された速度と位置、ノッチ切替回数、ノッチ継続時間が同じものをグルーピングし、グルーピングした中でその中で最も累積エネルギー消費量が小さいものだけを解候補として残していた。
また、本実施形態においては、瞬時のエネルギー消費量に関しても上限値を超えないようにノッチを選択するといった拡張も容易に行える。
【００９２】
ここで、量子化処理についてより詳細に説明する。
図１５は、量子化処理の説明図である。
位置と速度は連続値のため、量子化をするためには、例えば位置に関しては１［ｍ］、速度に対しても０．１［ｍ／ｓｅｃ］といった一定幅によって値を量子化したり、位置に関しては時刻ｔにおける上限値Ｕｐｐｅｒ［ｔ］と下限値Ｌｏｗｅｒ［ｔ］が定まるため、Ｕｐｐｅｒ［ｔ］とＬｏｗｅｒ［ｔ］をＮ分割することで量子化する方法がある。ここでは位置と速度は一定幅に量子化することを前提にして、以降説明を行う。
本実施形態においては、位置条件、速度条件、ノッチ切替回数条件、ノッチ継続時間条件の４つを使うため、４つの軸で解候補の状態を定義しているが、４次元以上の状態を図示しにくいため、ここでは位置条件、速度条件、ノッチ切替回数条件の３つで説明する。
【００９３】
ある経過時間ｔにおける解候補を枝刈り操作した結果が図１５（ａ）に示すような状態であったとする。
量子化処理は（ｖ（ｔ），ｘ（ｔ），ｎ（ｔ））空間上を、図１５（ａ）に示すように、格子状（矩形状）に分割し、同じ領域内は同じ状態（条件）とみなす。ここでｎ（ｔ）は経過時間ｔにおけるノッチ切替回数とする。
【００９４】
そして、同じ領域に複数の解候補が存在するならば、同一領域内で最も累積エネルギー消費量が小さいもの１つだけを解候補として残すのである。この結果、より多くを枝刈りすることが可能となり、より処理時間を短縮することができる。
図１５（ｂ）中、黒点は各領域内で解候補として残ったものを表す。
【００９５】
ステップＳ７０５では、経過時間ｔが走行時間Ｔに一致するかを判定し、一致しなければ（ステップＳ７０５；Ｎｏ）、ステップＳ７０６に進み、経過時間ｔをインクリメントし、再び処理をステップＳ７０２に移行している。
ステップＳ７０５において、経過時間ｔと走行時間Ｔが一致したならば（ステップＳ７０５；Ｙｅｓ）、解候補の中から最も累積エネルギー消費量が小さいものを最適解として選択する（ステップＳ７０７）。
【００９６】
そして、ステップＳ７０７の処理において、最終的に累積エネルギー消費量が小さいものを選ぶには、累積エネルギー消費量を昇順（小さい順）にソートし、その中から選べばよい。
また、終了時点で解候補が複数ある場合には、累積エネルギー消費量＋ｐｅｎａｌｔｙ（ｖ，ｘ）が最も小さい解を最適解とする。
【００９７】
ここでｐｅｎａｌｔｙ（ｖ（Ｔ），ｘ（Ｔ））は、経過時間ｔおける状態（Ｔ，ｖ（Ｔ），ｘ（Ｔ））と終端状態（Ｔ，０，Ｘ）との誤差のペナルティを表す。一般に運動方程式で速度と位置を算出する場合には、浮動小数点型の変数を用いるために、速度と位置は完全に終端状態と一致することはほとんどない。そのため、関数ｐｅｎａｌｔｙ（ｖ（Ｔ），ｘ（Ｔ））を用意して、誤差を含めて累積エネルギー消費量を評価する。
【００９８】
ｐｅｎａｌｔｙ（ｖ（Ｔ），ｘ（Ｔ））の決め方は非特許文献６と同様に次式を採用している。
【００９９】
【数２】
2015020637.tif 000004
【０１００】
次に運転曲線作成結果記憶部１６の記憶データのデータフォーマットについて説明する。
図１６は、運転曲線作成結果記憶部の記憶データのフォーマット及びデータ例の説明図である。
運転曲線作成結果記憶部１６には、車両（車両情報）を特定する車両ＩＤと、地上情報を特定する地上ＩＤと、走行時間Ｔと、の組み合わせ毎に図１６に示すようなデータが保存される。
【０１０１】
より詳細には、車両情報と地上情報と走行時分の情報以外に、その車両ＩＤと地上ＩＤでの最短走行時分と、設定した走行時分での時刻に対する速度、位置、瞬時電力、累積電力およびノッチ番号が記載されている。もし、運転曲線入力処理部１３に入力された車両ＩＤ、地上ＩＤおよび走行時間Ｔのデータが運転曲線作成結果記憶部１６に既に格納されている状態であれば、運転曲線を作成しなくとも運転曲線作成結果表示部１７にそのデータを渡し、運転曲線作成結果表示部１７では、その結果を表示するようにすればよい。
図１７は、運転曲線作成結果記憶部の記憶データに基づく、運転曲線を視覚化した図である。
【０１０２】
そして、運転曲線作成結果表示部１７として機能するディスプレイ２８は、省エネ運転曲線作成部１５において作成された走行時間Ｔの運転曲線の結果を表示する。
【０１０３】
図１８は、ディスプレイに表示する運転曲線の例を示す。
鉄道業界における運転曲線とは横軸に位置をとり、縦軸に速度と位置をプロットしたものである。
【０１０４】
本実施形態においても、図１８に示すように、運転曲線を表示をする。
また、運転曲線作成結果表示部１７として機能するディスプレイ２８においては、他の走行時分での累積エネルギー消費量の結果とも比較し、累積エネルギー消費量の削減率も比較できる。本実施形態では、簡単化のためにある路線の１駅間のみに着目し、運転曲線の結果を表示したが、各駅間での結果から路線全体での運転曲線を作成することは容易にできる。
【０１０５】
なお、入力された走行時間Ｔが最短走行時間Ｔｍｉｎよりも小さい場合には、物理的に走行が不可能であるため、その入力した走行時分では走行不可能であることを運転曲線作成結果表示部１７に表示するようにすればよい。
【０１０６】
また、入力された走行時間Ｔが最短走行時間Ｔｍｉｎよりも長い場合で、運転曲線作成結果記憶部１６に運転曲線のデータがない場合、運転曲線作成結果記憶部１６がデータがないことを運転曲線入力処理部１３に通知することにより、運転曲線入力処理部１３が運転曲線作成処理の開始をするようにしてもよい。
【０１０７】
以上の説明のように、本実施形態によれば、高速に、より最適解に近い運転曲線を作成することが可能となる。
さらに運転者の操作性がより高い運転曲線を自動的に作成することが可能となる。
【０１０８】
以上の説明においては、運転曲線作成装置１０を、パーソナルコンピュータとして実現していたが、サーバとして実現したり、ネットワーク上のいわゆるクラウドとして実現したりするように構成することも可能である。
上記構成においては、運転曲線作成結果表示部は、一体に設ける必要は無く、ユーザ側に配置するように構成することも可能である。
【０１０９】
本実施形態の運転曲線作成装置で実行される制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１１０】
また、本実施形態の運転曲線作成装置で実行される制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の運転曲線作成装置で実行される制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、本実施形態の運転曲線作成装置の制御プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１１１】
本実施形態の運転曲線作成装置で実行される制御プログラムは、上述した各部（運転曲線入力処理部、最短時間運転曲線作成部、省エネ運転曲線作成部、運転曲線作成結果表示部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体から制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、運転曲線入力処理部、最短時間運転曲線作成部、省エネ運転極性作成部、運転曲線作成結果表示部が主記憶装置上に生成されるようになっている。
【０１１２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１３】
１０    運転曲線作成装置
１１    地上情報記憶部
１２    車両情報記憶部
１３    運転曲線入力処理部
１４    最短時間運転曲線作成部
１５    省エネ運転曲線作成部
１６    運転曲線作成結果記憶部
１７    運転曲線作成結果表示部
２１    ＭＰＵ
２２    ＲＯＭ
２３    ＲＡＭ
２４    外部記憶装置
２５    ＩＣカード
２６    ＩＣカードＲ／Ｗ
２７    キーボード
２８    ディスプレイ
３０    地上情報データ
３１    地上ＩＤデータ
３２    駅関連データ
３３    速度制限データ
３４    勾配データ
３５    駅間情報データ
３６    駅間距離データ
３７    始点データ
３８    終点データ
３９    速度データ
４０    始点データ
４１    終点データ
４２    勾配値データ
５０    車両情報データ
５１    車両ＩＤデータ
５２    種類データ
５３    車体重量データ
５４    乗車率データ
５５    編成両数データ
５６    列車長データ
５７    ノッチ特性ＩＤデータ
Ｔ      走行時間
Ｔｍｉｎ  最短走行時間
【図１】
2015020637.tif 000005
【図２】
2015020637.tif 000006
【図３】
2015020637.tif 000007
【図４】
2015020637.tif 000008
【図５】
2015020637.tif 000009
【図６】
2015020637.tif 000010
【図７】
2015020637.tif 000011
【図８】
2015020637.tif 000012
【図９】
2015020637.tif 000013
【図１０】
2015020637.tif 000014
【図１１】
2015020637.tif 000015
【図１２】
2015020637.tif 000016
【図１３】
2015020637.tif 000017
【図１４】
2015020637.tif 000018
【図１５】
2015020637.tif 000019
【図１６】
2015020637.tif 000020
【図１７】
2015020637.tif 000021
【図１８】
2015020637.tif 000022