(57)【特許請求の範囲】
【請求項１】
被除数Ａ及び除数Ｂ（但し、Ａ＞Ｂ）を入力する入力部と、前記入力部より入力された被除数Ａ及び除数Ｂを記憶する記憶部と、１バイト除算器、乗算器、加減算器及び比較器を有してＡ／Ｂの商Ｃを算出する演算部とを備え、
前記演算部は、前記比較器を用いて前記記憶部に記憶された除数Ｂが２バイト以上の値であるか１バイト以下の値であるかを判定し、前記記憶部に記憶された除数Ｂが２バイト以上の値であると判定された場合、除数Ｂの有効桁数を１バイトに丸めるための係数Ｔの設定、前記１バイト除算器及び加減算器を用いた下記数１の演算、前記１バイト除算器を用いた下記数２の演算、前記乗算器及び加減算器を用いた下記数３の演算及び前記１バイト除算器を用いた下記数４の演算を順次行って、有効桁数が１バイトに丸められた除数Ｂ′と、商Ｃの近似値Ｃ′と、被除数ＡとＣ′×Ｂとの差分Ａ′と、差分Ａ′に対応する商Ｃの余りＣ″とを順次算出した後、前記加減算器を用いた下記数５の演算を行って、最終解である商Ｃを算出することを特徴とする計算装置。
【数１】
0003892261.tif 000009
【数２】
0003892261.tif 000010
【数３】
0003892261.tif 000011
【数４】
0003892261.tif 000012
【数５】
0003892261.tif 000013
【請求項２】
被除数Ａ及び除数Ｂ（但し、Ａ＞Ｂ）を入力する入力部と、前記入力部より入力された被除数Ａ及び除数Ｂを記憶する記憶部と、１バイト除算器、乗算器、加減算器及び比較器を有してＡ／Ｂの商Ｃを算出する演算部とを備えた計算装置を用い、
前記比較器により前記記憶部に記憶された除数Ｂが２バイト以上の値であるか１バイト以下の値であるかを判定した後、
前記記憶部に記憶された除数Ｂが２バイト以上の値であると判定された場合、除数Ｂの有効桁数を１バイトに丸めるための係数Ｔを設定し、前記１バイト除算器及び加算器を用いた下記数６の演算を行って、有効桁数が１バイトに丸められた除数Ｂ′を算出し、
次いで、前記１バイト除算器を用いた下記数７の演算を行って、商Ｃの近似値Ｃ′を算出し、
次いで、前記乗算器及び減算器を用いた下記数８の演算を行って、被除数ＡとＣ′×Ｂとの差分Ａ′を算出し、
次いで、前記１バイト除算器を用いた下記数９の演算を行って、差分Ａ′に対応する商Ｃの余りＣ″を算出し、
最後に、前記加減算器を用いた下記数１０の演算を行って、最終解である商Ｃを算出することを特徴とする計算方法。
【数６】
0003892261.tif 000014
【数７】
0003892261.tif 000015
【数８】
0003892261.tif 000016
【数９】
0003892261.tif 000017
【数１０】
0003892261.tif 000018
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算装置及び計算方法に係り、特に、パワーウインド装置の挟み込み検知に使用するパラメータ値の計算に好適な計算装置及び計算方法に関する。
【０００２】
【従来の技術】
従来より、自動車等に用いられるパワーウインド装置の挟み込み検知方法としては、ウインド開閉用のモータにパルス発生器を付設し、当該パルス発生器より出力される前記モータの回転に対応した周期の位相を異にする２つのパルスをマイクロ制御ユニット（以下、これを「ＭＣＵ」という）に供給し、ＭＣＵがこれら２つのパルスのエッジ間隔をクロック信号のカウントによって求め、そのカウント値と予じめ設定された基準中央値とを比較し、カウント値が基準中央値よりも相当量大きくなったとき、ウインドに挟み込みが発生したものと判断するものが知られている。
【０００３】
ところで、パワーウインド装置は、モータの駆動電圧、即ち、自動車に搭載されたバッテリの出力電圧が変動すると、モータの回転数が変化し、パルス発生器から出力される２つのパルスのエッジ間隔も変動する。このため、自動車に搭載されたバッテリの出力電圧の変動を考慮しない従来の挟み込み検知方法によると、カウント値と基準中央値との比較結果が不正確になり、ウインドの挟み込み検知を高精度に行い得ない。
【０００４】
本願出願人は、先に、このような従来技術の不備を解決するため、ウインドの挟み込みを検知する際のパラメータ値として、モータ駆動電圧Ｅの依存項とパルス発生部が発生するパルスのエッジ間隔Ｐｗの依存項とからなるモータ負荷トルクＴｃを用いる技術を提案した（特開平１１−８１７２９号公報参照）。
【０００５】
この本願出願人が先に提案した挟み込み検知方法によれば、ウインドの挟み込みを検知する際のパラメータ値として、モータ駆動電圧Ｅの依存項とパルス発生部が発生するパルスのエッジ間隔Ｐｗの依存項とからなるモータ負荷トルクＴｃを用いるので、モータ負荷トルクＴｃにモータ駆動電圧Ｅの変動の影響が加味され、挟み込みの検知時にモータ駆動電圧Ｅの変動を別途考慮せずに正確な検知を行うことができる。
【０００６】
【発明が解決しようとする課題】
前記パラメータ値であるモータ負荷トルクＴｃは、下記の数１１で計算される。同式の右辺の第１項がモータ駆動電圧Ｅの依存項であり、右辺の第２項がパルス発生部が発生するパルスのエッジ間隔Ｐｗの依存項である。
【０００７】
【数１１】
0003892261.tif 000002
モータ負荷トルクＴｃの計算において、モータ駆動電圧Ｅの依存項の計算は、（２バイト）／（１バイト）の計算になるのに対して、エッジ間隔Ｐｗの依存項の計算は、（３バイト）／（２バイト）の計算になる。
【０００８】
多くの汎用的なＭＣＵには、分母が１バイトの値の除算を行う１バイト除算器が標準装備されているが、分母が２バイトの値の除算を行う２バイト除算器は標準装備されていないので、モータの駆動時にモータ負荷トルクＴｃを繰り返し算出し、得られたモータ負荷トルクＴｃを基にして挟み込み検知を実行するパワーウインド装置において、モータ負荷トルクＴｃの計算を高速に行おうとすると、２バイト除算器を備えた高価なＭＣＵが必要になってパワーウインド装置が高価になるという問題を生じる。反対に、パワーウインド装置を低コスト化するために、１バイト除算器が標準装備された汎用的なＭＣＵを備えるという構成にすると、エッジ間隔Ｐｗの依存項の演算が複雑化するためにモータ負荷トルクＴｃの算出が遅くなり、パワーウインド装置の挟み込み検知を高精度に行い得なくなるという不都合が生じる。
【０００９】
なお、本願発明者らは、先に、１バイト除算器を用いて分母が２バイト以上の値の除算を行う方法として、下記の数１２に例示するように、被除数Ａの最上位ビットから１ビットずつＴの最下位ビットに加えてゆき、Ｔ−Ｂの演算が可能であれば商Ｃの最下位ビットに「１」を、不可能であれば「０」を加えるという演算を被除数Ａのビット数繰り返すという方法を提案したが、この方法によると、解が８ビットである場合には８回のビットシフトが必要になり、解が１６ビットである場合には１６回のビットシフトが必要になる。
【００１０】
【数１２】
0003892261.tif 000003
本発明は、前記従来技術の不備を解消するためになされたものであって、その目的は、１バイト除算器を備えた安価なＭＣＵを用いて分母が２バイト以上の除算を高速かつ高精度に実行可能な計算装置及び計算方法を提供することにある。
【００１１】
【課題を解決するための手段】
本発明は、前記の目的を達成するため、計算装置に関しては、被除数Ａ及び除数Ｂ（但し、Ａ＞Ｂ）を入力する入力部と、前記入力部より入力された被除数Ａ及び除数Ｂを記憶する記憶部と、１バイト除算器、乗算器、加減算器及び比較器を有してＡ／Ｂの商Ｃを算出する演算部とを備え、前記演算部は、前記比較器を用いて前記記憶部に記憶された除数Ｂが２バイト以上の値であるか１バイト以下の値であるかを判定し、前記記憶部に記憶された除数Ｂが２バイト以上の値であると判定された場合、除数Ｂの有効桁数を１バイトに丸めるための係数Ｔの設定、前記１バイト除算器及び加減算器を用いた前記数１の演算、前記１バイト除算器を用いた前記数２の演算、前記乗算器及び加減算器を用いた前記数３の演算及び前記１バイト除算器を用いた前記数４の演算を順次行って、有効桁数が１バイトに丸められた除数Ｂ′と、商Ｃの近似値Ｃ′と、被除数ＡとＣ′×Ｂとの差分Ａ′と、差分Ａ′に対応する商Ｃの余りＣ″とを順次算出した後、前記加減算器を用いた前記数５の演算を行って、最終解である商Ｃを算出するという構成にした。
【００１２】
また、本発明は、前記の目的を達成するため、計算方法に関しては、被除数Ａ及び除数Ｂ（但し、Ａ＞Ｂ）を入力する入力部と、前記入力部より入力された被除数Ａ及び除数Ｂを記憶する記憶部と、１バイト除算器、乗算器、加減算器及び比較器を有してＡ／Ｂの商Ｃを算出する演算部とを備えた計算装置を用い、前記比較器により前記記憶部に記憶された除数Ｂが２バイト以上の値であるか１バイト以下の値であるかを判定した後、前記記憶部に記憶された除数Ｂが２バイト以上の値であると判定された場合、除数Ｂの有効桁数を１バイトに丸めるための係数Ｔを設定し、前記１バイト除算器及び加算器を用いた前記数６の演算を行って、有効桁数が１バイトに丸められた除数Ｂ′を算出し、次いで、前記１バイト除算器を用いた前記数７の演算を行って、商Ｃの近似値Ｃ′を算出し、次いで、前記乗算器及び減算器を用いた前記数８の演算を行って、被除数ＡとＣ′×Ｂとの差分Ａ′を算出し、次いで、前記１バイト除算器を用いた前記数９の演算を行って、差分Ａ′に対応する商Ｃの余りＣ″を算出し、最後に、前記加減算器を用いた前記数１０の演算を行って、最終解である商Ｃを算出するという構成にした。
【００１３】
このように、Ａ／Ｂの商Ｃを算出する計算装置及び計算方法において、除数Ｂが２バイト以上の値である場合、まず、有効桁数が１バイトに丸められた被除数Ａの除数Ｂ′と当該除数Ｂ′を求めるための係数Ｔとを算出し、次いで、求められた除数Ｂ′及び係数Ｔを用いて商Ｃの近似値Ｃ′と、被除数ＡとＣ′×Ｂとの差分Ａ′に対応する商Ｃの余りＣ″を算出し、最後に、算出された商Ｃの近似値Ｃ′と商Ｃの余りＣ″を加算して最終解である商Ｃを算出すると、１バイト除算器が標準装備された安価なＭＣＵを用いて２バイトの除算をすることができるので、高価な２バイト除算器を備える場合に比べて、計算装置を低コスト化することができる。また、２バイトの除算を数１乃至数５の計算式を用いた５ステップで行うことができるので、従来の１バイト除算器を用いた２バイトの除算方法に比べて、計算に要するステップ数を減少することができ、計算速度を高速化することができる。したがって、本発明に係る計算装置及び計算方法をパワーウインド装置の挟み込み検知に適用した場合、パワーウインド装置の挟み込み検知部に１バイト除算器が標準装備された安価なＭＣＵを備えることができるので、パワーウインド装置を低コスト化できると共に、エッジ間隔Ｐｗの依存項の演算を高速に行うことができて、パワーウインド装置の挟み込み検知を高精度に行うことができる。
【００１４】
【発明の実施の形態】
以下、本発明に係る計算装置及び計算方法の一実施形態例を、図に基づいて説明する。
【００１５】
図１に示すように、本実施形態例に係る計算装置１は、ＭＣＵをもって構成されており、被除数Ａ及び除数Ｂ（但し、Ａ＞Ｂ）を入力する入力部２と、当該入力部より入力された被除数Ａ及び除数Ｂを記憶する記憶部３と、１バイト除算器４ａ、乗算器４ｂ、加減算器４ｃ及び比較器４ｄを有する演算部４とが備えられている。
【００１６】
演算部４は、入力部２より取り込まれた被除数Ａ及び除数Ｂを記憶部３に記憶した後、比較器４ｄを用いて、記憶部３に記憶された除数Ｂが２バイト以上の値であるか１バイト以下の値であるかを判定する。
【００１７】
ここで、記憶部３に記憶された除数Ｂが１バイト以下の値であると判定された場合には、１バイト除算器４ａを用いて通常の手順でＡ／Ｂの演算を実行する。
【００１８】
一方、記憶部３に記憶された除数Ｂが２バイト以上の値であると判定された場合には、１バイト除算器４ａ及び加減算器４ｃを用いて下記数１３の演算を実行し、有効桁数が１バイトに丸められた被除数Ａの除数Ｂ′と、当該除数Ｂ′を求めるための係数Ｔとを算出する。なお、下記数１３の演算において左辺に＋１するのは、下記数１３の演算において差分Ａ′の値を負数にしないための処置である。なお、本明細書に記載の数式においては、各数のバイト数を視覚的に理解できるようにするため、バイト数を表す矩形を背景として各数を表現している。即ち、最小単位の矩形が１バイト、点線で分けられた２倍の大きさの矩形が２バイト、点線で分けられた３倍の大きさの矩形が３バイトを表現している。但し、各数のバイト数の正確な定義は、各式ごとにされており、理解を容易にするための矩形は、この発明の権利範囲を決めるものではない。
【００１９】
【数１３】
0003892261.tif 000004
次いで、１バイト除算器４ａを用いた下記数１４の演算を実行し、商Ｃの近似値Ｃ′を算出する。
【００２０】
【数１４】
0003892261.tif 000005
次いで、乗算器４ｂ及び加減算器４ｃを用いた下記数１５の演算を実行し、被除数ＡとＣ′×Ｂとの差分Ａ′を算出する。
【００２１】
【数１５】
0003892261.tif 000006
次いで、１バイト除算器４ａを用いた下記数１６の演算を実行し、先に求められた差分Ａ′に対応する商Ｃの余りＣ″を算出する。
【００２２】
【数１６】
0003892261.tif 000007
最後に、乗算器を用いた下記数１７の演算を行って、最終解である商Ｃを算出する。
【００２３】
【数１７】
0003892261.tif 000008
図２に、記憶部３に記憶された除数Ｂが２バイト以上の値であると判定された場合に演算部４にて行われる演算のフローを示す。図２に表示した符号▲１▼、▲２▼、▲３▼は、それぞれ数１３、数１４、数１５の演算フローであり、符号▲４▼は、前記数１６及び数１７の演算フローである。
【００２４】
図３に、（０ｘＢ７９Ｂ８）／（０ｘ００Ｆ０）、（０ｘＢ７９Ｂ８）／（０ｘ０１００）、（０ｘＢ７９Ｂ８）／（０ｘ０２００）、（０ｘＢ７９Ｂ８）／（０ｘ０４００）、（０ｘＢ７９Ｂ８）／（０ｘ０８００）、（０ｘＢ７９Ｂ８）／（０ｘ１０００）、（０ｘＢ７９Ｂ８）／（０ｘ２０００）、（０ｘＢ７９Ｂ８）／（０ｘ４０００）、（０ｘＢ７９Ｂ８）／（０ｘ８０００）、（０ｘＢ７９Ｂ８）／（０ｘ７Ｆ８）の各演算に要した時間を示す。（０ｘＢ７９Ｂ８）／（０ｘ００Ｆ０）の演算は（３バイト）／（１バイト）の演算であり、それ以降の（０ｘＢ７９Ｂ８）／（０ｘ０１００）の演算から（０ｘＢ７９Ｂ８）／（０ｘ８０００）までの演算が（３バイト）／（２バイト）の演算である。この表図から明らかなように、本発明の計算方法によると、（３バイト）／（２バイト）の演算を２２２μｓ乃至２５６μｓで行うことができる。数１２に示した本願発明者らが先に提案した演算方法によると、（３バイト）／（２バイト）の演算を実行するのに、およそ８００μｓかかるので、本発明の計算方法によると、（３バイト）／（２バイト）の演算の演算時間を、本願発明者らが先に提案した演算方法による場合に比べて、１／３以下に短縮することができる。また、この表図から明らかなように、本発明の計算方法によると、真の商Ｃを算出することができ、計算精度が低下することもない。
【００２５】
図４に、前記図２に表示した▲１▼、▲２▼、▲３▼、▲４▼の演算に要した時間、ｄｉｖ３Ｂｂｙ１Ｂｔｏ２Ｂ０の演算に要した時間、及びｍｕｌＢＣｂｙＷＡ０の演算に要した時間を示す。
【００２６】
図５に、ｄｉｖ３Ｂｂｙ２Ｂｔｏ２Ｂの演算に要するＲＯＭの容量、ｄｉｖ３Ｂｂｙ１Ｂｔｏ２Ｂ０の演算に要するＲＯＭの容量、及びｍｕｌＢＣｂｙＷＡの演算に要するＲＯＭの容量を示す。また、これらの各演算に要するＲＡＭの容量は、１２バイトであった。
【００２７】
なお、前記実施形態例においては、（３バイト）／（２バイト）の演算を例にとって説明したが、本発明の計算装置及び計算方法は、除数が２バイト以上で被除数が３バイト以上の全ての演算に適用することができる。
【００２８】
また、本発明の計算装置及び計算方法は、例えば特開平１１−８１７２９号公報に記載されたパワーウインド装置の挟み込み検知において、モータ駆動電圧Ｅの依存項とパルス発生部が発生するパルスのエッジ間隔Ｐｗの依存項とからなるモータ負荷トルクＴｃを演算で求める場合の計算装置及び計算方法として適用することができる。パワーウインド装置の挟み込み検知に本発明の計算装置及び計算方法を適用した場合、パワーウインド装置の挟み込み検知部に１バイト除算器が標準装備された安価なＭＣＵを備えることができるので、パワーウインド装置を低コスト化できる。また、エッジ間隔Ｐｗの依存項の演算を高速に行うことができるので、パワーウインド装置の挟み込み検知を高精度に行うことができる。
【００２９】
【発明の効果】
以上説明したように、本発明によれば、Ａ／Ｂの商Ｃを算出する計算装置及び計算方法において、除数Ｂが２バイト以上の値である場合、まず、有効桁数が１バイトに丸められた被除数Ａの除数Ｂ′と当該除数Ｂ′を求めるための係数Ｔとを算出し、次いで、求められた除数Ｂ′及び係数Ｔを用いて商Ｃの近似値Ｃ′と、被除数ＡとＣ′×Ｂとの差分Ａ′に対応する商Ｃの余りＣ″を算出し、最後に、算出された商Ｃの近似値Ｃ′と商Ｃの余りＣ″を加算して最終解である商Ｃを算出するので、１バイト除算器が標準装備された安価なＭＣＵを用いて２バイトの除算をすることができ、高価な２バイト除算器を備える場合に比べて、計算装置を低コスト化することができる。また、２バイトの除算を５ステップで行うことができるので、従来の１バイト除算器を用いた２バイトの除算方法に比べて、計算に要するステップ数を格段に減少することができ、計算速度を高速化することができる。
【図面の簡単な説明】
【図１】本発明に係る計算装置のブロック構成図である。
【図２】（３バイト）／（２バイト）の演算フローを示すフロー図である。
【図３】（３バイト）／（２バイト）の演算時間を（３バイト）／（１バイト）の演算時間と比較して示す表図である。
【図４】（３バイト）／（２バイト）の演算中に実行される各段階の演算に要する時間を示す表図である。
【図５】（３バイト）／（２バイト）の演算に要するＲＯＭの容量を示す表図である。
【符号の説明】
１  計算装置
２  入力部
３  記憶部
４  演算部
４ａ  １バイト除算器
４ｂ  乗算器
４ｃ  加減算器
４ｄ  比較器
【図１】
0003892261.tif 000019
【図２】
0003892261.tif 000020
【図３】
0003892261.tif 000021
【図４】
0003892261.tif 000022
【図５】
0003892261.tif 000023