(57)【特許請求の範囲】
【請求項１】
鉄道車両に搭載される無接点主幹制御器であって、
回動させることによりノッチ指令を入力する主ハンドルと、
所定ビットのバイナリコードを昇順に並べたときの値の小さい方から２分の１個のバイナリコードからなる第１コード群と、この第１コード群に含まれる各バイナリコードの全ビットを反転させた第２コード群とを交互に並べ、前記主ハンドルの回転角度に対応させた角度検出用コードを保持し、前記主ハンドルの回動に伴って検出された回転角度に基づいて、検出された回転角度に対応した角度検出用コードを出力するロータリエンコーダと、
前記ロータリエンコーダから出力された角度検出用コードに基づいて前記鉄道車両の駆動及び制動を制御するノッチ指令信号を生成するともに、前記角度検出用コードに基づいてロータリエンコーダの故障を判定する制御部と
を備えることを特徴とする無接点主幹制御器。
【請求項２】
前記制御部は、前記ロータリエンコーダが出力した角度検出用コードの前回値と今回値とが互いに全ビット反転された値となっているか否かを判断するとともに、両値が互いに全ビット反転された値となっていない状態が連続して２回以上生じた場合に前記ロータリエンコーダを故障したと判断することを特徴とする請求項１記載の無接点主幹制御器。
【請求項３】
前記制御部は、前記ロータリエンコーダが出力した角度検出用コードの今回値が当該位置信号のビット数で表せる最大値の２分の１以上であり且つ当該今回値と前回値とが互いに全ビット反転された値となっていない場合に前記ロータリエンコーダを故障したと判断することを特徴とする請求項１記載の無接点主幹制御器。
【請求項４】
前記ロータリエンコーダは、出力する角度検出用コードに誤り検出を行うためのパリティビットを付加し、
前記制御部は、前記ロータリエンコーダにより前記角度検出用コードに付加されたパリティビットに基づき前記ロータリエンコーダに対する故障検知を行うことを特徴とする請求項１乃至請求項３のいずれか１項記載の無接点主幹制御器。
【請求項５】
鉄道車両に搭載される無接点主幹制御器の故障検知方法であって、
主ハンドルの回動による回転角度を検出し、
前記検出した回転角度に基づき、所定ビットのバイナリコードを昇順に並べたときの値の小さい方から２分の１個のバイナリコードからなる第１コード群と、この第１コード群に含まれる各バイナリコードの全ビットを反転させた第２コード群とを交互に並べ、前記主ハンドルの回転角度に対応させた角度検出用コードを保持するテーブルを参照し、
この参照の結果、回転角度に対応した角度検出用コードを出力し、
この出力された角度検出用コードに基づいて前記鉄道車両の駆動及び制動を制御するノッチ指令信号を出力し、
前記出力された角度検出用コードに基づいてロータリエンコーダの故障を判定する
ことを特徴とする無接点主幹制御装置の故障検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハンドル操作に基づき鉄道用車両の運転制御を行う無接点主幹制御器及び無接点主幹制御器の故障検知方法に関する。
【背景技術】
【０００２】
鉄道用車両（電車）は、運転手が操作を行って車両を制御するためのインターフェースとなる主幹制御器（ｍａｓｔｅｒ  ｃｏｎｔｒｏｌｌｅｒ：マスコン）を運転台に搭載している。運転台は、列車編成の両先頭車両に存在する。主幹制御器は、運転手と列車のインターフェースとなる装置であり、運転手が操作する主ハンドルのノッチ位置により、ノッチ指令を出力する。この主幹制御器は、現在はワンハンドルマスコンが主流である。ワンハンドルマスコンは、１つの軸（棒）を前後させ、奥に行くほど制動力の強いブレーキノッチ、手前に行くほど加速力の強い力行ノッチとなる。運転手は、このハンドルを前後させることにより、手前に引いて加速指令を行い、中間位置で惰行指令、奥に押して制動指令を行う。
【０００３】
なお、ノッチ指令は、列車に対する制動、加速等の指令である。１例として、ブレーキ（制動）ノッチ８段、力行（加速）ノッチ４段等が一般的であり、数値が大きいノッチほど力が上となる。また、ブレーキノッチ０と力行ノッチ０の状態は、ユルメ（切）といい、加速も制動も行われずに惰行となる。
【０００４】
従来の有接点主幹制御器は、ハンドル位置を接点（スイッチ）のオン／オフを利用して検出するので、接点の状態がそのままノッチ指令となる。最近では、接点不良を回避する目的から、無接点主幹制御器が主流となり、当該無接点主幹制御器は、接点の代わりにセンサ（角度検出センサ：ハンドルは前後にスライド式に動くのではなく、扇状に円運動するため）を用いてハンドルの位置を検出し、検出した角度に基づきノッチを算出してノッチ指令信号に変換する。
【０００５】
近年の主幹制御器は、主ハンドルのノッチの角度を検出するセンサとして、アブソリュートロータリエンコーダを適用したものが多い。このロータリエンコーダは、対象とする回転軸の絶対角度を検出し、所定数のビットからなるバイナリコードやグレイコード等として出力するものであり、始動時等の電源投入の際にも原点からの角度を即時且つ正確に知ることができるという利点がある。
【０００６】
ロータリエンコーダから出力されるコードの誤りを検出する方法として、いくつかの方法が考えられる。例えば、ロータリエンコーダから出力されるコードに基づく検出角度を監視し、連続性が失われた場合に故障とする検出方法がある。運転手により操作された主ハンドルは、連続的に角度を変化させるので、故障の無い通常の状態において、所定時間内における角度変化量は所定値以下の値をとることとなる。これを利用して、ロータリエンコーダに接続された制御基板内のＣＰＵは、ロータリエンコーダから出力されるコードに基づいて算出された検出角度を監視し、１ｍｓタイマー割込みにより更新されるエンコーダ値が前回値よりも一定範囲以上変化した状態が一定時間経過した場合に故障と判断する。なお、「一定時間経過」することを要件としているのは、ロータリエンコーダがたまたま何らかの不具合により誤った値をコードとして出力したとしても、その次に正しい値のコードを出力する場合には、問題無いためである。
【０００７】
また、ロータリエンコーダから出力されるコードに誤り検出符号であるパリティビットを付加して故障検出を行う方法もある。この方法を採用したロータリエンコーダは、検出した角度に対応する二進数のバイナリコードあるいはグレイコードに対して１ビットのパリティビットを付加したコードを生成し、コード中の「１」の総数が偶数あるいは奇数になるようにしたコードを出力する。ロータリエンコーダにより出力されたコードを復号する制御部を有したＣＰＵ等は、復号する際にパリティビットを含めた全体のビットが常に偶数あるいは奇数であるか否かをチェックすることにより故障検出を行う。
【０００８】
特許文献１には、アブソリュートロータリエンコーダを使用したシステムにおける異常検出を簡単、確実に行うことができるロータリエンコーダ及びロータリエンコーダシステムが記載されている。
【０００９】
このロータリエンコーダは、多トラック型アブソリュートパターンを有する回転板と、アブソリュートパターンを読み取る検出部と、検出部の出力の異常を検出するための誤り検出回路とを備える。
【００１０】
また、このロータリエンコーダは、検出部が、回転板の一方の側に設けられ回転板の径方向に一列に配置された複数個の発光素子と、回転板の他方の側に設けられ発光素子に対応するように回転板の径方向に一列に配置された複数個の受光素子と、回転板と発光素子の間に設けられ回転板の径方向に一列に配置された複数の孔を有するスリットとを含み、誤り検出回路が、検出部の出力を増幅するためのデータ出力部と、データ出力部の出力データに基づき誤り検出符号を生成する符号化部と、誤り検出符号に基づき出力データの誤りを検出し異常の有無信号を出力する復号化部とを含む。
【００１１】
このロータリエンコーダによれば、外部システムでの異常検出処理が簡素あるいは不要になるとともに、確実な異常検出を行うことができる。
【特許文献１】特開平９−１０５６４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来の主幹制御器は、ロータリエンコーダから出力されるバイナリコードやグレイコードに基づいて故障検知を行う際において、いずれかのビットに断線が生じた場合に、断線したビットによっては故障を検知しにくいという問題がある。
【００１３】
例えば、主幹制御器の主ハンドル軸とロータリエンコーダの回転軸の軸比が１：３であるとする。この場合には、主ハンドル軸が１２０度回転すると、ロータリエンコーダの回転軸が３６０度回転したことに相当する。図２は、８ビットのコードを使用した場合における従来のコードと対応する角度を示す表である。主幹制御器の主ハンドル軸とロータリエンコーダの回転軸との軸比を１：３に設定しているので、図２におけるエンコーダ角度は、主ハンドル角度の３倍となっている。
【００１４】
図２に示す例においては、主ハンドル角度が０度である場合にロータリエンコーダは、バイナリコード（あるいはグレイコード）として“００００００００”を出力する。また、主ハンドルを操作して主ハンドルの角度が増えるにつれ、出力されるバイナリコードの値も増えていく。ここで図２は、８ビットを例にとっているので、エンコーダ角度の１周３６０度を２５６段階（２５６パルス）に分けて対応させた表となっている。したがって、エンコーダ角度が約１．４度増えるにつれ、バイナリコードの値が１つずつ増えていく。
【００１５】
上述したように、ロータリエンコーダから出力されるコードに対応する検出角度の連続性等をチェックすることにより、従来の主幹制御器は、いずれのビットが断線したとしても故障を検知することができる。しかしながら、図２に示すように、最上位ビットを変化させるには（すなわちバイナリコードで“０１１１１１１１”から“１０００００００”に変化させるには）、運転手は、主ハンドル角度を６０度（エンコーダ角度が１８０度）まで回転させる必要がある。ここで、最上位ビットに断線が生じているとすると、主ハンドルを６０度まで回転させた際にバイナリコードは、“０１１１１１１１”から“００００００００”に変化するため、連続性のチェックにひっかかり最上位ビットの断線が判明する。これは、グレイコードの場合も同様であり、最上位ビットが０から１に変化するのは、主ハンドルの角度が６０度のときである。
【００１６】
ここで、主ハンドルにおける６０度の回転は、約１０ノッチに相当する。したがって、従来の主幹制御器は、運転手が主ハンドルを１０ノッチ分（６０度）回転させてはじめて最上位ビットの断線が判明する。逆に言えば、運転手が主ハンドルを６０度回転させないかぎり、最上位ビットにおける断線は判明しない。
【００１７】
この問題は、最上位ビットにかぎらず上位ビットのいずれに対しても生じる問題である。すなわち、バイナリコードあるいはグレイコードを使用する従来の主幹制御器のロータリエンコーダは、ある程度の角度、主ハンドルを回転させなければ出力するコードの上位のビットが変化せず、断線が生じていても故障を検出できないという問題点がある。
【００１８】
また、パリティビットは、出力されたコードに誤りが発生しているか否かを検出することができるが、いずれのビットが誤っているかを指摘できず、また上位ビットが変化しない限り誤りを検出できないため、上述した問題に対処することはできない。
【００１９】
本発明は上述した従来技術の問題点を解決するもので、主ハンドル角度のわずかな回転により、ロータリエンコーダから出力されるコードのいずれのビットも均一に故障を検知することができる無接点主幹制御器及び無接点主幹制御器の故障検知方法を提供することを課題とする。
【課題を解決するための手段】
【００２０】
本発明に係る無接点主幹制御器は、上記課題を解決するために、回動させることによりノッチ指令を入力する主ハンドルと、所定ビットのバイナリコードを昇順に並べたときの値の小さい方から２分の１個のバイナリコードからなる第１コード群と、この第１コード群に含まれる各バイナリコードの全ビットを反転させた第２コード群とを交互に並べ、前記主ハンドルの回転角度に対応させた角度検出用コードを保持し、前記主ハンドルの回動に伴って検出された回転角度に基づいて、検出された回転角度に対応した角度検出用コードを出力するロータリエンコーダと、前記ロータリエンコーダから出力された角度検出用コードに基づいて前記鉄道車両の駆動及び制動を制御するノッチ指令信号を生成するともに、前記角度検出用コードに基づいてロータリエンコーダの故障を判定する制御部とを備えることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、いずれのビットも２パルス以内で変化する角度検出用コードを採用したロータリエンコーダ及び制御部を備えているので、主ハンドル角度を２パルス分回転させる間に、いずれのビットも均一に故障を検知することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の無接点主幹制御器及び無接点主幹制御器の故障検知方法の実施の形態を、図面に基づいて詳細に説明する。
【実施例１】
【００２３】
以下、本発明の実施例について図面を参照しながら説明する。図１は、本発明の実施例１の無接点主幹制御器の構成を示すブロック図である。本実施例において、無接点主幹制御器は、鉄道車両に搭載され、当該鉄道車両の制御を行う。
【００２４】
まず、本実施の形態の構成を説明する。本実施例の無接点主幹制御器は、図１に示すように、ロータリエンコーダ１、主ハンドル２、及び制御基板３により構成される。
【００２５】
主ハンドル２は、運転手の操作により前後に回動可能であり、その回転角度に応じて鉄道車両の加速や制動の指令となるノッチを指定する。
【００２６】
ロータリエンコーダ１は、主ハンドル１の絶対角度を検出するアブソリュートロータリエンコーダであり、所定ビットのバイナリコードを昇順に並べて値の小さな順に全体の２分の１までを取り出し、取り出された各コード間に１つ前のコードの全ビットを反転させたコードを埋め込むことにより生成した角度検出用コードを有するとともに、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。
【００２７】
図２に示す「新コード」は、上述した方法により生成した角度検出用コードである。ここで新コードたる角度検出用コードは、８ビットであるため、８ビットのバイナリコードを昇順に並べて値の小さな順に全体の２分の１までを取り出し、取り出された各コード間に１つ前のコードの全ビットを反転させたコードを埋め込むことにより生成される。
【００２８】
昇順に並べられた８ビットのバイナリコードは、“００００００００”から“１１１１１１１１”までの２５６個のコードである。したがって、値の小さな順に全体の２分の１までを取り出したバイナリコードは、“００００００００”から“０１１１１１１１”までの１２８個のコードである。
【００２９】
取り出された各コード間に１つ前のコードの全ビットを反転させたコードを埋め込んだ角度検出用コードは、図２に示す新コードのようになる。例えば、“００００００００”と“０００００００１”との間には、“００００００００”の全ビットを反転させたコードである“１１１１１１１１”が埋め込まれている。同様に、“０００００００１”と“００００００１０”との間には、“０００００００１”の全ビットを反転させたコードである“１１１１１１１０”が埋め込まれている。以後、同様の方法により各コード間に１つ前のコードの全ビットを反転させたコードを埋め込み、最後に“０１１１１１１１”の後に全ビットを反転させた“１０００００００”を埋め込んで角度検出用コードが完成する。
【００３０】
主ハンドル２の回転軸は、ロータリエンコーダ１の回転軸と機械的に接続されている。本実施例において、主ハンドル２の回転軸とロータリエンコーダ１の回転軸の軸比は、１：３であるものとする。
【００３１】
ロータリエンコーダ１は、上述した方法により生成した角度検出用コード（すなわち図２に示す新コード）と各コードに対応するエンコーダ角度とを図２に示すようなテーブルとして予め記憶しており、主ハンドル２を回転させることによりロータリエンコーダ１が回転すると、回転した角度位置に応じた角度検出用コードを位置信号として生成し出力する。この一連のロータリエンコーダ１における位置信号の生成手順は、無接点主幹制御器の故障検知方法における位置信号生成ステップに対応する。
【００３２】
例えば、主ハンドル２を０度から６０度まで回転させると、ロータリエンコーダ１は、角度検出用コード“００００００００”、“１１１１１１１１”、“０００００００１”、“１１１１１１１０”、…、“１１００００００”、“０１００００００”を位置信号として順番に出力する。
【００３３】
制御基板３は、本発明の制御部に対応し、図示しないＣＰＵやメモリ等を有し、ロータリエンコーダ１により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。すなわち、制御基板３は、ロータリエンコーダ１と同様に、角度検出用コードと各コードに対応するエンコーダ角度（あるいは主ハンドル角度）とを図２に示すようなテーブルとして予め記憶しており、入力された位置信号に基づき主ハンドル２の角度を算出することにより、運転手の意図するノッチ指令信号を生成する。
【００３４】
なお、制御基板３は、ロータリエンコーダ１により出力されたストローブビットに基づき、ロータリエンコーダ１により生成され出力された位置信号をサンプリングする。ここで、ストローブビットとは、ロータリエンコーダ１により出力される位置信号が確定したことを示す信号である。ロータリエンコーダ１により出力される位置信号は、厳密に全てのビットが同時に変化するわけではない。したがって、制御基板３は、ストローブビットを監視することにより、ロータリエンコーダ１から出力される位置信号の各ビットを示す信号線の変化が確定したことを知ることができる。
【００３５】
また、制御基板３は、ロータリエンコーダ１により生成された位置信号に基づきロータリエンコーダ１の故障を検知する。この制御基板３における動作は、無接点主幹制御器の故障検知方法における故障検知ステップに対応する。
【００３６】
具体的には、制御基板３は、ロータリエンコーダ１により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっているか否かを判断するとともに、両値が互いに全ビット反転された値となっていない状態が連続して２回以上生じた場合にロータリエンコーダ１を故障したと判断する。
【００３７】
次に、上述のように構成された本実施の形態の作用を説明する。図３は、本実施例の形態の無接点主幹制御器の制御基板３の動作を示すフローチャート図である。まず、ロータリエンコーダ１は、主ハンドル１の絶対角度を検出し、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。
【００３８】
制御基板３は、ロータリエンコーダ１により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。その際に、制御基板３は、ロータリエンコーダ１により生成された位置信号に基づきロータリエンコーダ１の故障を検知する。
【００３９】
ここで、運転手は、操作により主ハンドルの角度を５０度から６０度に回転させようとしているとする。今、主ハンドル２の角度が５９．０６度であるとすると、図２よりエンコーダ角度は１７７．１８度であり、ロータリエンコーダ１は、位置信号として“００１１１１１１”を生成して出力する。
【００４０】
このロータリエンコーダ１の出力値である“００１１１１１１”は、制御基板３に「今回値」として入力される（ステップＳ１０１）。なお、主ハンドル２の角度が５８．５９度であったときにロータリエンコーダ１により出力された値“１１０００００１”は、制御基板３に「前回値」として記憶されている。
【００４１】
次に、制御基板３は、前回値である“１１０００００１”の全ビットを反転する（ステップＳ１０３）。ここで、反転された前回値は、“００１１１１１０”である。
【００４２】
次に、制御基板３は、ロータリエンコーダ１により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっているか否かを判断する（ステップＳ１０５）。制御基板３が有する今回値は、“００１１１１１１”である。一方、制御基板３により反転された前回値は、“００１１１１１０”である。両者を比較すると、最下位ビットが異なるため、制御基板３は、今回値と反転した前回値とは不一致であると判断する。
【００４３】
ここで、制御基板３は、１回目異常フラグがセットされているか否かを判断する（ステップＳ１１１）。１回目異常フラグが既にセットされている場合には、今回の不一致は２回目であるため、制御基板３は、ロータリエンコーダ１を故障したと判断する（ステップＳ１１３）。すなわち、制御基板３は、ロータリエンコーダ１により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっていない状態が連続して２回以上生じた場合にロータリエンコーダ１を故障したと判断する。ここで、２回連続とは、ロータリエンコーダ１による２パルス分を意味する。
【００４４】
ステップＳ１１１において、１回目異常フラグがセットされていない（リセット状態である）場合には、制御基板３は、今回の不一致を１回目の不一致であると判断し、１回目異常フラグをセットする（ステップＳ１１５）。
【００４５】
次に、制御基板３は、今回値である“００１１１１１１”を前回値として記憶する（ステップＳ１１７）。したがって、今まで前回値として記憶されていた“１１０００００１”は、制御基板３により削除される。ここで一旦制御基板３の処理は終了する。その後、制御基板３は、新たな値が今回値として入力されないかぎり、図３に示すフローチャートの動作を行わない。したがって、主ハンドル２の角度が変わらず、前回値と同じ値をロータリエンコーダ１が出力したとしても、制御基板３は、動作しない。
【００４６】
その後、主ハンドル２の角度が５９．５３度まで回転されると、ロータリエンコーダ１は、位置信号として“１１００００００”を生成して出力する。
【００４７】
このロータリエンコーダ１の出力値である“１１００００００”は、制御基板３に「今回値」として入力される（ステップＳ１０１）。
【００４８】
次に、制御基板３は、前回値である“００１１１１１１”の全ビットを反転する（ステップＳ１０３）。ここで、反転された前回値は、“１１００００００”である。
【００４９】
次に、制御基板３は、ロータリエンコーダ１により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっているか否かを判断する（ステップＳ１０５）。制御基板３が有する今回値は、“１１００００００”である。一方、制御基板３により反転された前回値は、“１１００００００”である。両者を比較すると同一であるため、制御基板３は、今回値と反転した前回値とは一致すると判断する。
【００５０】
この場合に、制御基板３は、ロータリエンコーダ１を正常であると判断する（ステップＳ１０７）とともに、１回目異常フラグがセットされている場合には当該フラグをリセットする（ステップＳ１０９）。制御基板３は、主ハンドル角度が５９．０６度であったときに１回目異常フラグをセットしたので、当該フラグをリセットする。
【００５１】
次に、制御基板３は、今回値である“１１００００００”を前回値として記憶する（ステップＳ１１７）。したがって、今まで前回値として記憶されていた“００１１１１１１”は、制御基板３により削除される。
【００５２】
以下、主ハンドル２の角度が変わり、ロータリエンコーダ１により新しい位置信号が出力されるたびに、制御基板３は、図３に示すフローチャート図の動作を繰り返す。ロータリエンコーダ１から図２に示す新コードである角度検出用コードが位置信号として正しく出力されているかぎり、位置信号の前回値と今回値とが互いに全ビット反転された値となっていない状態が連続して２回以上生じることはない。
【００５３】
上述のとおり、本発明の実施例１の形態に係る無接点主幹制御器によれば、いずれのビットも２パルス以内で変化する角度検出用コードを採用したロータリエンコーダ及び制御部を備えているので、主ハンドル角度を２パルス分（約１度）回転させる間に、いずれのビットも均一に故障を検知することができる。
【００５４】
本発明による角度検出用コードを使用した場合、ロータリエンコーダ１により出力される角度検出用コードの位置信号は、当該位置信号の前回値と今回値とが互いに全ビット反転された値となっていない状態が連続して２回以上生じることはない。
【００５５】
言い換えれば、ロータリエンコーダ１により位置信号として出力される角度検出用コードは、２パルス以内に全ビットが必ず反転する。したがって、制御基板３は、２回以上連続して反転しないビットに対し、当該ビットの信号線の断線等による故障が生じていることを即座に発見することができる。
【００５６】
本発明は、ロータリエンコーダを使用する様々なアプリケーションに対して適用可能であるが、鉄道車両に用いられる主幹制御器のように、ロータリエンコーダの故障を早期に検知する必要があるアプリケーションに対しては特に有効である。鉄道車両における主幹制御器は、ノッチを１段階（約１０パルス、主ハンドルの角度で約５度）切り換える間に故障を検知することが理想とされ、本発明は、２パルス以内の故障検知が可能だからである。
【００５７】
また、本実施例において、８ビットの角度検出用コードを例にとって説明したが、ロータリエンコーダ１により出力される位置信号は、必ずしも８ビットにかぎるものではなく、４ビット、１２ビット、１６ビット等の８ビット以外の信号であってもよい。その場合には、制御基板３は、当該所定ビットの角度検出用コードと各コードに対応するエンコーダ角度（あるいは主ハンドル角度）とをテーブルとして予め記憶した構成となる。
【実施例２】
【００５８】
本発明の実施例２の無接点主幹制御器は、図１に示す実施例１の無接点主幹制御器の構成と同一の構成を有するため、重複した説明を省略する。ただし、本実施例の制御基板３は、ロータリエンコーダ１により生成された位置信号の今回値が当該位置信号のビット数で表せる最大値の２分の１以上であり且つ当該今回値と前回値とが互いに全ビット反転された値となっていない場合にロータリエンコーダ１を故障したと判断する。
【００５９】
次に、上述のように構成された本実施の形態の作用を説明する。図４は、本実施例の形態の無接点主幹制御器の制御基板３の動作を示すフローチャート図である。まず、ロータリエンコーダ１は、主ハンドル１の絶対角度を検出し、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。
【００６０】
制御基板３は、ロータリエンコーダ１により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。その際に、制御基板３は、ロータリエンコーダ１により生成された位置信号に基づきロータリエンコーダ１の故障を検知する。
【００６１】
ここで、運転手は、操作により主ハンドルの角度を５０度から６０度に回転させようとしているとする。今、主ハンドル２の角度が５９．０６度であるとすると、図２よりエンコーダ角度は１７７．１８度であり、ロータリエンコーダ１は、位置信号として“００１１１１１１”を生成して出力する。
【００６２】
このロータリエンコーダ１の出力値である“００１１１１１１”は、制御基板３に「今回値」として入力される（ステップＳ２０１）。なお、主ハンドル２の角度が５８．５９度であったときにロータリエンコーダ１により出力された値“１１０００００１”は、制御基板３に「前回値」として記憶されている。
【００６３】
次に、制御基板３は、今回値である“００１１１１１１” が位置信号のビット数で表せる最大値の２分の１以上であるか否かを判断する（ステップＳ２０３）。本実施例において、位置信号のビット数は８ビットであるため、位置信号のビット数で表せる最大値は、“１１１１１１１１”すなわち２５５である。２５５の２分の１は、１２７．５である。
【００６４】
今回値である“００１１１１１１”は、６３であるため、制御基板３は、今回値である“００１１１１１１” が位置信号のビット数で表せる最大値の２分の１以上ではないと判断する。
【００６５】
次に、制御基板３は、今回値である“００１１１１１１”を前回値として記憶する（ステップＳ２１１）。したがって、今まで前回値として記憶されていた“１１０００００１”は、制御基板３により削除される。
【００６６】
その後、主ハンドル２の角度が５９．５３度まで回転されると、ロータリエンコーダ１は、位置信号として“１１００００００”を生成して出力する。
【００６７】
このロータリエンコーダ１の出力値である“１１００００００”は、制御基板３に「今回値」として入力される（ステップＳ２０１）。
【００６８】
次に、制御基板３は、今回値である“１１００００００” が位置信号のビット数で表せる最大値の２分の１以上であるか否かを判断する（ステップＳ２０３）。今回値である“１１００００００”は、１９２であるため、制御基板３は、今回値である“１１００００００” が位置信号のビット数で表せる最大値の２分の１以上であると判断する。
【００６９】
次に、制御基板３は、前回値である“００１１１１１１”の全ビットを反転する（ステップＳ２０５）。ここで、反転された前回値は、“１１００００００”である。
【００７０】
次に、制御基板３は、ロータリエンコーダ１により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっているか否かを判断する（ステップＳ２０７）。制御基板３が有する今回値は、“１１００００００”である。一方、制御基板３により反転された前回値は、“１１００００００”である。両者を比較すると同一であるため、制御基板３は、今回値と反転した前回値とは一致すると判断する。
【００７１】
次に、制御基板３は、今回値である“１１００００００”を前回値として記憶する（ステップＳ２１１）。したがって、今まで前回値として記憶されていた“００１１１１１１”は、制御基板３により削除される。
【００７２】
以下、主ハンドル２の角度が変わり、ロータリエンコーダ１により新しい位置信号が出力されるたびに、制御基板３は、図４に示すフローチャート図の動作を繰り返す。
【００７３】
なお、ステップＳ２０７において、制御基板３が、ロータリエンコーダ１により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっていないと判断した場合には、制御基板３は、ロータリエンコーダ１を故障したと判断する（ステップＳ２０９）。すなわち、制御基板３は、ロータリエンコーダ１により生成された位置信号の今回値が当該位置信号のビット数で表せる最大値の２分の１以上であり且つ当該今回値と前回値とが互いに全ビット反転された値となっていない場合であると判断するからである。
【００７４】
本発明における角度検出用コードは、所定ビットのバイナリコードを昇順に並べて値の小さな順に全体の２分の１までを取り出し、取り出された各コード間に１つ前のコードの全ビットを反転させたコードを埋め込むことにより生成したものである。したがって、制御基板３により位置信号のビット数で表せる最大値の２分の１以上であると判断されたコード（位置信号）は、角度検出用コードを作成する段階において各コード間に埋め込まれた１つ前のコードの全ビットを反転させたコードである。
【００７５】
したがって、制御基板３は、ロータリエンコーダ１により生成された位置信号の今回値が当該位置信号のビット数で表せる最大値の２分の１以上であり且つ当該今回値と前回値とが互いに全ビット反転された値となっていない場合にロータリエンコーダ１を故障したと判断する。
【００７６】
上述のとおり、本発明の実施例２の形態に係る無接点主幹制御器によれば、実施例１と同様に、主ハンドル角度を２パルス分回転させる間に、いずれのビットも均一に故障を検知することができる。また、本実施例においては、実施例１のように２度の連続した位置信号の不一致を待つ必要が無く、制御基板３は、１度の不一致によりロータリエンコーダ１を故障したと判断することができる。
【実施例３】
【００７７】
本発明の実施例３の無接点主幹制御器は、図１に示す実施例１，２の無接点主幹制御器の構成と同一の構成を有するため、重複した説明を省略する。ただし、本実施例の制御基板３は、ロータリエンコーダ１により生成された位置信号の前回値と今回値とをバイナリコードに変換して比較し、その差が所定値以上である場合にロータリエンコーダ１を故障したと判断する。
【００７８】
次に、上述のように構成された本実施の形態の作用を説明する。図５は、本実施例の形態の無接点主幹制御器の制御基板３の動作を示すフローチャート図である。まず、ロータリエンコーダ１は、主ハンドル１の絶対角度を検出し、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。
【００７９】
制御基板３は、ロータリエンコーダ１により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。その際に、制御基板３は、ロータリエンコーダ１により生成された位置信号に基づきロータリエンコーダ１の故障を検知する。
【００８０】
ここで、運転手は、操作により主ハンドルの角度を５０度から６０度に回転させようとしているとする。今、主ハンドル２の角度が５９．５３度であるとすると、図２よりエンコーダ角度は１７８．５９度であり、ロータリエンコーダ１は、位置信号として“１１００００００”を生成して出力する。
【００８１】
このロータリエンコーダ１の出力値である“１１００００００”は、制御基板３に「今回値」として入力される（ステップＳ３０１）。なお、主ハンドル２の角度が５９．０６度であったときにロータリエンコーダ１により出力された値“００１１１１１１”をバイナリコードに変換した値である“０１１１１１１０”は、制御基板３に「前回値」として記憶されている。
【００８２】
次に、制御基板３は、今回値として入力された“１１００００００”をバイナリコードに変換する（ステップＳ３０３）。図２に示す表より、バイナリコードに変換された今回値は、“０１１１１１１１”である。
【００８３】
次に、制御基板３は、バイナリコードの前回値である“０１１１１１１０”とバイナリコードの今回値である“０１１１１１１１”とを比較し、その差が所定値以上であるか否かを判断する（ステップＳ３０５）。本実施例において、制御基板３は、その差が４以上であるか否かを判断するものとする。
【００８４】
ここで、バイナリコードの前回値である“０１１１１１１０”は、１０進数に変換すると１２６である。一方、バイナリコードの今回値である“０１１１１１１１”は、１０進数に変換すると１２７である。したがって、制御基板３は、前回値と今回値との差が４以上ではない（一定範囲内である）と判断する。
【００８５】
次に、制御基板３は、バイナリコードの今回値である“０１１１１１１１”を前回値として記憶する（ステップＳ３０９）。したがって、今まで前回値として記憶されていた“０１１１１１１０”は、制御基板３により削除される。
【００８６】
仮に上から２番目のビットに対応する信号線の断線が生じていたと仮定すると、図５に示すフローチャート上では、以下に示すような流れとなる。上述した場合と同様に、運転手は、操作により主ハンドルの角度を５０度から６０度に回転させようとしているとする。今、主ハンドル２の角度が５９．５３度であるとすると、図２よりエンコーダ角度は１７８．５９度であり、ロータリエンコーダ１は、位置信号として“１１００００００”を生成して出力しようとする。しかしながら、信号線断線の不具合により、ロータリエンコーダ１は、位置信号として“１０００００００”を生成して出力する。
【００８７】
このロータリエンコーダ１の出力値である“１０００００００”は、制御基板３に「今回値」として入力される（ステップＳ３０１）。なお、主ハンドル２の角度が５９．０６度であったときにロータリエンコーダ１により出力された値“００１１１１１１”をバイナリコードに変換した値である“０１１１１１１０”は、制御基板３に「前回値」として記憶されている。
【００８８】
次に、制御基板３は、今回値として入力された“１０００００００”をバイナリコードに変換する（ステップＳ３０３）。図２に示す表より、バイナリコードに変換された今回値は、“１１１１１１１１”である。
【００８９】
次に、制御基板３は、バイナリコードの前回値である“０１１１１１１０”とバイナリコードの今回値である“１１１１１１１１”とを比較し、その差が所定値以上（４以上）であるか否かを判断する（ステップＳ３０５）。
【００９０】
ここで、バイナリコードの前回値である“０１１１１１１０”は、１０進数に変換すると１２６である。一方、バイナリコードの今回値である“１１１１１１１１”は、１０進数に変換すると２５５である。したがって、制御基板３は、前回値と今回値との差が４以上である（一定範囲内ではない）と判断する。
【００９１】
この場合には、制御基板３は、ロータリエンコーダ１を故障したと判断する（ステップＳ３０７）。
【００９２】
次に、制御基板３は、バイナリコードの今回値である“１１１１１１１１”を前回値として記憶する（ステップＳ３０９）。したがって、今まで前回値として記憶されていた“０１１１１１１０”は、制御基板３により削除される。
【００９３】
上述のとおり、本発明の実施例３の形態に係る無接点主幹制御器によれば、実施例１，２と同様に、主ハンドル角度を２パルス分回転させる間に、いずれのビットも均一に故障を検知することができる。また、制御基板３が判断に使用する所定値（本実施例においては４）の値を調節することにより、制御基板３の判断に許容性を持たせることができる。
【００９４】
また、実施例１又は２の方法と本実施例の方法を組み合わせることにより、本実施例における無接点主幹制御器は、より確実に故障検知を行うことができる。
【実施例４】
【００９５】
本発明の実施例４の無接点主幹制御器は、図１に示す実施例１乃至３の無接点主幹制御器の構成と同一の構成を有するため、重複した説明を省略する。ただし、本実施例のロータリエンコーダ１は、生成した位置信号に誤り検出を行うためのパリティビットを付加して出力する。また、制御基板３は、ロータリエンコーダ１により位置信号に付加されたパリティビットに基づきロータリエンコーダ１に対する故障検知を行う。
【００９６】
次に、上述のように構成された本実施の形態の作用を説明する。図６は、本実施例の形態の無接点主幹制御器の制御基板３の動作を示すフローチャート図である。まず、ロータリエンコーダ１は、主ハンドル１の絶対角度を検出し、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。その際に、ロータリエンコーダ１は、生成した位置信号に誤り検出を行うためのパリティビットを付加して出力する。
【００９７】
制御基板３は、ロータリエンコーダ１により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。その際に、制御基板３は、ロータリエンコーダ１により生成された位置信号に基づきロータリエンコーダ１の故障を検知する。
【００９８】
ここで、運転手は、操作により主ハンドルの角度を５０度から６０度に回転させようとしているとする。今、主ハンドル２の角度が５９．５３度であるとすると、図２よりエンコーダ角度は１７８．５９度であり、ロータリエンコーダ１は、位置信号として“１１００００００”を生成する。その際に、ロータリエンコーダ１は、位置信号の「１」の合計が例えば必ず奇数になるように、生成した位置信号に誤り検出を行うためのパリティビットを付加して出力する。今、生成した位置信号は、“１１００００００”であるので、「１」の合計は２であり偶数である。したがって、ロータリエンコーダ１は、生成した位置信号にパリティビットとして「１」を付加して出力する。
【００９９】
ロータリエンコーダ１は、位置信号“１１００００００”にパリティビット“１”を付加した値である“１１００００００１”を出力する。このロータリエンコーダ１の出力値である“１１００００００１”は、制御基板３に入力される（ステップＳ４０１）。
【０１００】
次に、制御基板３は、入力された値である“１１００００００１”からパリティを読み出す（ステップＳ４０３）。ここでは、制御基板３は、最下位ビットである“１”をパリティとして読み出す。この値をＰｅとする。
【０１０１】
次に、制御基板３は、予め記憶したテーブルからパリティを取得する（ステップＳ４０５）。この値をＰｔとする。制御基板３は、図２に新コードとして示した角度検出用コードと各コードに対応するパリティの値をテーブルとして予め記憶している。したがって、当該テーブルは、角度検出用コード“１１００００００”に対するパリティの値を“１”として予め記憶している。制御基板３は、予め記憶されている当該パリティ値“１”を、Ｐｔとして取得する。
【０１０２】
次に、制御基板３は、ステップＳ４０３において読み出したパリティＰｅとステップＳ４０５において取得したパリティＰｔとが同一であるか否かを判断する（ステップＳ４０７）。ここでは、いずれの値も“１”であるため、制御基板３は、パリティＰｅとパリティＰｔとが同一であると判断する。
【０１０３】
仮に、ロータリエンコーダ１が位置信号として“１１００００００”を生成した際にパリティとして“０”を付加したとすると、ステップＳ４０３において制御基板３は、パリティＰｅとして“０”を読み出す。この場合には、制御基板３は、パリティＰｅとＰｔとが同一でないと判断し（ステップＳ４０７）、ロータリエンコーダ１を故障したと判断する（ステップＳ４０９）。
【０１０４】
上述のとおり、本発明の実施例３の形態に係る無接点主幹制御器によれば、本発明の角度検出用コードに対してパリティビットによる故障検知を行うことができる。本発明の角度検出用コードは、２パルス以内に全ビットが変化するため、制御基板３は、本実施例に示すパリティビットを用いた方法においても、２パルス以内に故障を検知することができる。さらに、実施例１乃至３に示す方法と組み合わせることで、より確実な故障検知が可能となる。
【産業上の利用可能性】
【０１０５】
本発明に係る無接点主幹制御器及び無接点主幹制御器の故障検知方法は、ハンドル操作の出力指令に基づき鉄道用車両の運転制御を行う無接点主幹制御器に利用可能である。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施例１の形態の無接点主幹制御器の構成を示すブロック図である。
【図２】本発明の実施例１の形態の無接点主幹制御器において８ビットのコードを使用した場合における従来のコード及び本発明のコードと対応する角度とを示す図である。
【図３】本発明の実施例１の形態の無接点主幹制御器の制御基板の動作を示すフローチャート図である。
【図４】本発明の実施例２の形態の無接点主幹制御器の制御基板の動作を示すフローチャート図である。
【図５】本発明の実施例３の形態の無接点主幹制御器の制御基板の動作を示すフローチャート図である。
【図６】本発明の実施例４の形態の無接点主幹制御器の制御基板の動作を示すフローチャート図である。
【符号の説明】
【０１０７】
１  ロータリエンコーダ
２  主ハンドル
３  制御基板
【図１】
0005193665.tif 000002
【図２】
0005193665.tif 000003
【図３】
0005193665.tif 000004
【図４】
0005193665.tif 000005
【図５】
0005193665.tif 000006
【図６】
0005193665.tif 000007