JPH1080176A - モータ制御装置 - Google Patents
モータ制御装置Info
- Publication number
- JPH1080176A JPH1080176A JP8236151A JP23615196A JPH1080176A JP H1080176 A JPH1080176 A JP H1080176A JP 8236151 A JP8236151 A JP 8236151A JP 23615196 A JP23615196 A JP 23615196A JP H1080176 A JPH1080176 A JP H1080176A
- Authority
- JP
- Japan
- Prior art keywords
- pulse signal
- value
- counter
- motor
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Control Of Direct Current Motors (AREA)
Abstract
(57)【要約】
【課題】従来は速度検出回路をマイクロコンピュータと
は別回路として構成しており、パルス数を計数するカウ
ンタとラッチ回路のデータをマイクロコンピュータに取
り入れるために、マイクロコンピュータからデータバス
等を外部出力して速度検出回路に接続しており、回路全
体が小型化できないという問題点があった。 【解決手段】パルス発生器5からのパルス数を計測する
カウンタ2,時間を計測するカウンタ4,パルスに同期
してカウンタ3の出力値をラッチするレジスタ4を備え
たマイクロコンピュータ1において、カウンタ2または
レジスタ4の値を二度読みすることによって、同一時点
のモータ位置と時間のデータを得る。
は別回路として構成しており、パルス数を計数するカウ
ンタとラッチ回路のデータをマイクロコンピュータに取
り入れるために、マイクロコンピュータからデータバス
等を外部出力して速度検出回路に接続しており、回路全
体が小型化できないという問題点があった。 【解決手段】パルス発生器5からのパルス数を計測する
カウンタ2,時間を計測するカウンタ4,パルスに同期
してカウンタ3の出力値をラッチするレジスタ4を備え
たマイクロコンピュータ1において、カウンタ2または
レジスタ4の値を二度読みすることによって、同一時点
のモータ位置と時間のデータを得る。
Description
【0001】
【発明の属する技術分野】本発明はモータ制御装置に関
する。
する。
【0002】
【従来の技術】モータの速度およびトルクの制御を行う
ためモータの速度を検出する必要がある。モータの回転
子の回転速度を検出するには、1回転に対して複数個の
パルス信号を出力するパルス発生器が良く用いられる。
このパルス発生器を用いて速度検出する装置として、例
えば特公平6−1279 号公報がある。これは主に、パルス
発生器のパルス数を計数するカウンタ,時間を計測する
カウンタ,パルス発生器のパルスに同期して時間を計測
するカウンタの値をラッチするラッチ回路からなり、マ
イクロコンピュータから一定周期毎に、パルス数を計数
するカウンタとパルス信号の入力時間を示すラッチ回路
の値を取り込んで、モータ速度を計算する。
ためモータの速度を検出する必要がある。モータの回転
子の回転速度を検出するには、1回転に対して複数個の
パルス信号を出力するパルス発生器が良く用いられる。
このパルス発生器を用いて速度検出する装置として、例
えば特公平6−1279 号公報がある。これは主に、パルス
発生器のパルス数を計数するカウンタ,時間を計測する
カウンタ,パルス発生器のパルスに同期して時間を計測
するカウンタの値をラッチするラッチ回路からなり、マ
イクロコンピュータから一定周期毎に、パルス数を計数
するカウンタとパルス信号の入力時間を示すラッチ回路
の値を取り込んで、モータ速度を計算する。
【0003】特開昭62−247781号公報はマイクロコンピ
ュータの内蔵のタイマカウンタにより速度検出パルス信
号の各1周期の時間を計測し、かつ計測の結果を処理し
て形成されたコンピュータの速度制御信号によりモータ
の回転速度を一定に制御する直流モータの速度制御方法
において、検出パルス信号を1/2分周して分周パルス
信号を形成するとともに、分周パルス信号によりカウン
タへの時計用のクロックパルス信号の供給を制御するゲ
ート手段を設け、このゲート信号手段の制御により、タ
イマカウンタは速度検出パルス信号の各1周期の時間を
計測する。
ュータの内蔵のタイマカウンタにより速度検出パルス信
号の各1周期の時間を計測し、かつ計測の結果を処理し
て形成されたコンピュータの速度制御信号によりモータ
の回転速度を一定に制御する直流モータの速度制御方法
において、検出パルス信号を1/2分周して分周パルス
信号を形成するとともに、分周パルス信号によりカウン
タへの時計用のクロックパルス信号の供給を制御するゲ
ート手段を設け、このゲート信号手段の制御により、タ
イマカウンタは速度検出パルス信号の各1周期の時間を
計測する。
【0004】特開平5−130789 号公報は高精度の時間情
報を最小の検出遅れで検出するディジタル速度検出回路
を、アップダウンカウンタとアップカウンタとデータセ
レクタとレジスタと動作制御回路等の構成により実現し
ている。
報を最小の検出遅れで検出するディジタル速度検出回路
を、アップダウンカウンタとアップカウンタとデータセ
レクタとレジスタと動作制御回路等の構成により実現し
ている。
【0005】
【発明が解決しようとする課題】特公平6−1279 号公報
の方式は速度検出回路をマイクロコンピュータとは別回
路として構成しているので、パルス数を計数するカウン
タとラッチ回路のデータをマイクロコンピュータに取り
入れるために、マイクロコンピュータからデータバス等
を外部出力して速度検出回路に接続しているので、回路
全体が小型化できないという問題点があった。また、マ
イクロコンピュータからパルス数を計数するカウンタと
パルス信号入力時間を示すラッチ回路のデータを取り込
んでいる途中でデータが更新された場合、パルス数を計
数するカウンタのパルス数とラッチ回路の時間のデータ
が同一時点のものでなくなり、モータ速度計算値に誤差
が生じるという問題点があった。
の方式は速度検出回路をマイクロコンピュータとは別回
路として構成しているので、パルス数を計数するカウン
タとラッチ回路のデータをマイクロコンピュータに取り
入れるために、マイクロコンピュータからデータバス等
を外部出力して速度検出回路に接続しているので、回路
全体が小型化できないという問題点があった。また、マ
イクロコンピュータからパルス数を計数するカウンタと
パルス信号入力時間を示すラッチ回路のデータを取り込
んでいる途中でデータが更新された場合、パルス数を計
数するカウンタのパルス数とラッチ回路の時間のデータ
が同一時点のものでなくなり、モータ速度計算値に誤差
が生じるという問題点があった。
【0006】特開昭62−247781号公報はモータの回転速
度を計算するのに、パルス信号の1周期の時間を計測す
る方式であり、低速領域では精度良く速度の計算を行う
ことができるのに対して、高速領域では計測できるクロ
ック数が少なくなり精度が低下する。高速領域で精度良
く速度の計算を行うには、パルスの計数値とパルスの入
力時間より速度計算を行う必要がある。また、速度計算
のタイミングに割込みを使うので、高速領域では割込み
が頻繁に発生して他の処理に使用できる時間が少なくな
る。
度を計算するのに、パルス信号の1周期の時間を計測す
る方式であり、低速領域では精度良く速度の計算を行う
ことができるのに対して、高速領域では計測できるクロ
ック数が少なくなり精度が低下する。高速領域で精度良
く速度の計算を行うには、パルスの計数値とパルスの入
力時間より速度計算を行う必要がある。また、速度計算
のタイミングに割込みを使うので、高速領域では割込み
が頻繁に発生して他の処理に使用できる時間が少なくな
る。
【0007】特開平5−130789 号公報はディジタル速度
検出回路をマイクロコンピュータとは別回路として構成
しているので、回路全体が小型化できないという問題点
があった。
検出回路をマイクロコンピュータとは別回路として構成
しているので、回路全体が小型化できないという問題点
があった。
【0008】
【課題を解決するための手段】モータ、前記モータに電
力を供給する電力供給部、前記電力供給部にPWM信号
を出力して前記モータの電流およびトルクおよび速度を
制御するマイクロコンピュータ、前記モータの回転する
毎にパルス信号を出力するパルス発生器からなるモータ
制御装置において、前記マイクロコンピュータは、時間
を計測する第一のカウンタ、前記パルス信号の数を計数
する第二のカウンタ、前記パルス信号に同期して前記時
間を計測するカウンタの値をラッチするレジスタを備
え、一定サンプリング時間ごとにソフトウェアにより、
前記パルス信号の計数値を示す前記第二のカウンタの値
と前記パルス信号の入力時間を示す前記レジスタの値の
二つの値を取り込んでモータ速度を計算するときに、前
記第二のカウンタの値と前記レジスタの値のうち、一つ
の値を取り込んだ直後に前記パルス信号が入力されるこ
とによって生じる前記パルス信号の計数値と前記パルス
信号の入力時間のずれを補正する処理を備える。
力を供給する電力供給部、前記電力供給部にPWM信号
を出力して前記モータの電流およびトルクおよび速度を
制御するマイクロコンピュータ、前記モータの回転する
毎にパルス信号を出力するパルス発生器からなるモータ
制御装置において、前記マイクロコンピュータは、時間
を計測する第一のカウンタ、前記パルス信号の数を計数
する第二のカウンタ、前記パルス信号に同期して前記時
間を計測するカウンタの値をラッチするレジスタを備
え、一定サンプリング時間ごとにソフトウェアにより、
前記パルス信号の計数値を示す前記第二のカウンタの値
と前記パルス信号の入力時間を示す前記レジスタの値の
二つの値を取り込んでモータ速度を計算するときに、前
記第二のカウンタの値と前記レジスタの値のうち、一つ
の値を取り込んだ直後に前記パルス信号が入力されるこ
とによって生じる前記パルス信号の計数値と前記パルス
信号の入力時間のずれを補正する処理を備える。
【0009】
【発明の実施の形態】以下、本発明の実施の形態を図1
により説明する。図1はモータ制御装置を示している。
マイクロコンピュータ1,駆動回路11,バッテリ1
2,モータ6,パルス発生器5から構成されており、マ
イクロコンピュータ1はアクセル・ブレーキの踏み込み
量から得られる速度指令またはトルク指令に応じて、モ
ータ6の速度またはトルクの制御を行っている。
により説明する。図1はモータ制御装置を示している。
マイクロコンピュータ1,駆動回路11,バッテリ1
2,モータ6,パルス発生器5から構成されており、マ
イクロコンピュータ1はアクセル・ブレーキの踏み込み
量から得られる速度指令またはトルク指令に応じて、モ
ータ6の速度またはトルクの制御を行っている。
【0010】マイクロコンピュータ1はカウンタ2及び
カウンタ3と、カウンタ3の出力値を保存するレジスタ
4を内蔵している。さらに、マイクロコンピュータ1
は、カウンタ2及びカウンタ3とレジスタ4の出力値を
取り込んでモータの速度計算処理を行い、速度指令又は
トルク指令に基づいてモータの速度又はトルクを制御す
る処理を行うCPU7,ROM8,RAM9,駆動回路
11を動作させるためのPWM信号を発生するタイマ1
0を内蔵している。また図示していないがマイクロコン
ピュータ1はAD変換器を内蔵しており、モータ電流を
マイクロコンピュータ内に取り込んで電流制御を演算
し、電圧指令をタイマ10に書き込んでいる。駆動回路
11はパワー半導体素子により構成される電力変換器、
及び、その制御回路からなり、マイクロコンピュータ1
からの信号に応じてバッテリ12の電力をモータ6に供
給してモータ6を回転させる。パルス発生器5はモータ
6の回転数に比例した周波数のパルス列を発生する。
カウンタ3と、カウンタ3の出力値を保存するレジスタ
4を内蔵している。さらに、マイクロコンピュータ1
は、カウンタ2及びカウンタ3とレジスタ4の出力値を
取り込んでモータの速度計算処理を行い、速度指令又は
トルク指令に基づいてモータの速度又はトルクを制御す
る処理を行うCPU7,ROM8,RAM9,駆動回路
11を動作させるためのPWM信号を発生するタイマ1
0を内蔵している。また図示していないがマイクロコン
ピュータ1はAD変換器を内蔵しており、モータ電流を
マイクロコンピュータ内に取り込んで電流制御を演算
し、電圧指令をタイマ10に書き込んでいる。駆動回路
11はパワー半導体素子により構成される電力変換器、
及び、その制御回路からなり、マイクロコンピュータ1
からの信号に応じてバッテリ12の電力をモータ6に供
給してモータ6を回転させる。パルス発生器5はモータ
6の回転数に比例した周波数のパルス列を発生する。
【0011】カウンタ2はパルス発生器5からの出力パ
ルスmplsの計数を行う。カウンタ3はマイクロコンピュ
ータ1の内部クロックを計数する。この内部クロックの
周波数はパルス発生器5の出力するパルスの周波数よ
り、十分に高いものとする。また、外部から一定周期の
クロックパルスを入力して計測してもよい。パルス発生
器5からの出力パルスmplsの立ち下がりと立ち上がりで
カウンタ3の計数値をレジスタ4にラッチする。カウン
タ2はパルスの計数値を示し、レジスタ4はパルスの入
力時間を示しているので、ソフトウェアにより一定サン
プリング毎にカウンタ2とレジスタ4の値を取り込んで
モータ速度演算を行う。パルス発生器5からの出力パル
スmplsが二相信号の場合は、カウンタ2は二相信号の位
相によりアップダウンをできるカウンタを使用して、カ
ウンタ3のレジスタ4へのラッチは、二相信号をEXO
R回路を通して、その立ち下がりと立ち上がりで行え
ば、この構成のまま使用することができる。
ルスmplsの計数を行う。カウンタ3はマイクロコンピュ
ータ1の内部クロックを計数する。この内部クロックの
周波数はパルス発生器5の出力するパルスの周波数よ
り、十分に高いものとする。また、外部から一定周期の
クロックパルスを入力して計測してもよい。パルス発生
器5からの出力パルスmplsの立ち下がりと立ち上がりで
カウンタ3の計数値をレジスタ4にラッチする。カウン
タ2はパルスの計数値を示し、レジスタ4はパルスの入
力時間を示しているので、ソフトウェアにより一定サン
プリング毎にカウンタ2とレジスタ4の値を取り込んで
モータ速度演算を行う。パルス発生器5からの出力パル
スmplsが二相信号の場合は、カウンタ2は二相信号の位
相によりアップダウンをできるカウンタを使用して、カ
ウンタ3のレジスタ4へのラッチは、二相信号をEXO
R回路を通して、その立ち下がりと立ち上がりで行え
ば、この構成のまま使用することができる。
【0012】図2はモータ6が回転するときにパルス発
生器5が出力するパルス信号mplsの波形とカウンタ2,
カウンタ3,レジスタ4の変化のタイミングを示す。カ
ウンタ2の値はパルス信号mplsの立ち上がりと立ち下が
りに同期してインクリメントされる。カウンタ3の値は
一定周期の内部クロックに同期してインクリメントされ
る。カウンタ3の値は、出力パルスmplsの立ち上がりと
立ち下がりに同期してレジスタ4にラッチされる。ここ
では、レジスタの値は、パルス信号mplsの立ち下がりと
立ち上がりがマイクロコンピュータ1へ入力された時間
を示していることになる。
生器5が出力するパルス信号mplsの波形とカウンタ2,
カウンタ3,レジスタ4の変化のタイミングを示す。カ
ウンタ2の値はパルス信号mplsの立ち上がりと立ち下が
りに同期してインクリメントされる。カウンタ3の値は
一定周期の内部クロックに同期してインクリメントされ
る。カウンタ3の値は、出力パルスmplsの立ち上がりと
立ち下がりに同期してレジスタ4にラッチされる。ここ
では、レジスタの値は、パルス信号mplsの立ち下がりと
立ち上がりがマイクロコンピュータ1へ入力された時間
を示していることになる。
【0013】図3はマイクロコンピュータ1で一定サン
プリング時間毎に行う処理であり、カウンタ2からモー
タ位置を読み込み、レジスタ4からモータ位置が変化し
たときの時間を読み込んでいる。この処理は、カウンタ
2の値とレジスタ4の値を読み込んでいるときに、カウ
ンタ2の値を読み込んだ後、パルス信号が入力され、レ
ジスタ4の値が変化することを考慮しているもので、同
一のパルス信号によるモータ位置と時間を選択する。ま
ず最初にカウンタ2の値を変数motor1 に取り込む(ス
テップ301)。次に、レジスタ4の値を変数time1に
取り込む(ステップ302)。さらにカウンタ2の値を
変数motor2に取り込む(ステップ303)。ここで変数m
otor1と変数motor2の値が同じであるかどうかの判定
を行う(ステップ304)。同じである場合には、モー
タ位置を示す変数motorに変数motor1の値を代入し(ス
テップ305)、モータ位置が変化したときの時間を示
す変数timeに変数time1の値を代入する(ステップ30
6)。ステップ304の判定の結果、変数motor1と変
数motor2の値が異なるときには、もう一度レジスタ4
の値を取り込んで変数timeに代入し(ステップ30
7)、変数motorに変数motor2の値を代入する(ステッ
プ308)。
プリング時間毎に行う処理であり、カウンタ2からモー
タ位置を読み込み、レジスタ4からモータ位置が変化し
たときの時間を読み込んでいる。この処理は、カウンタ
2の値とレジスタ4の値を読み込んでいるときに、カウ
ンタ2の値を読み込んだ後、パルス信号が入力され、レ
ジスタ4の値が変化することを考慮しているもので、同
一のパルス信号によるモータ位置と時間を選択する。ま
ず最初にカウンタ2の値を変数motor1 に取り込む(ス
テップ301)。次に、レジスタ4の値を変数time1に
取り込む(ステップ302)。さらにカウンタ2の値を
変数motor2に取り込む(ステップ303)。ここで変数m
otor1と変数motor2の値が同じであるかどうかの判定
を行う(ステップ304)。同じである場合には、モー
タ位置を示す変数motorに変数motor1の値を代入し(ス
テップ305)、モータ位置が変化したときの時間を示
す変数timeに変数time1の値を代入する(ステップ30
6)。ステップ304の判定の結果、変数motor1と変
数motor2の値が異なるときには、もう一度レジスタ4
の値を取り込んで変数timeに代入し(ステップ30
7)、変数motorに変数motor2の値を代入する(ステッ
プ308)。
【0014】図4と図5は、カウンタ及びレジスタの変
更のタイミングと、図3で示した一定サンプリング時間
毎に行うカウンタ2及びレジスタ4からのデータの読み
込み処理のタイミングの関係を示している。これはカウ
ンタ2の値を読み込んだ後、パルス信号が入力され、レ
ジスタ4の値が変化したかどうかを判定する方式を示し
ている。図4では、ステップ301からステップ303
までの一連の処理が、カウンタ2及びレジスタ4の変更
のタイミングと重ならなかった場合である。このとき
は、変数motor1と変数motor2の値は同じものとなる。
図5はステップ301からステップ303までの一連の
処理が、カウンタ2及びレジスタ4の変更のタイミング
と重なった場合である。このとき変数motor1と変数mot
or2の値は異なったものとなる。変数time1の値は、図
5の上側の場合では変数motor1に同期した値となる
が、図5の下側の場合では変数motor2 に同期した値と
なり、図5の上側の状態と下側の状態で変数time1の値
がどちらに対応するのか判断をつけることができない。
そこで、もう一度レジスタ4の値を取り込む処理ステッ
プ307を行っている。
更のタイミングと、図3で示した一定サンプリング時間
毎に行うカウンタ2及びレジスタ4からのデータの読み
込み処理のタイミングの関係を示している。これはカウ
ンタ2の値を読み込んだ後、パルス信号が入力され、レ
ジスタ4の値が変化したかどうかを判定する方式を示し
ている。図4では、ステップ301からステップ303
までの一連の処理が、カウンタ2及びレジスタ4の変更
のタイミングと重ならなかった場合である。このとき
は、変数motor1と変数motor2の値は同じものとなる。
図5はステップ301からステップ303までの一連の
処理が、カウンタ2及びレジスタ4の変更のタイミング
と重なった場合である。このとき変数motor1と変数mot
or2の値は異なったものとなる。変数time1の値は、図
5の上側の場合では変数motor1に同期した値となる
が、図5の下側の場合では変数motor2 に同期した値と
なり、図5の上側の状態と下側の状態で変数time1の値
がどちらに対応するのか判断をつけることができない。
そこで、もう一度レジスタ4の値を取り込む処理ステッ
プ307を行っている。
【0015】図6はマイクロコンピュータ1で一定サン
プリング時間毎に行う処理であり、カウンタからモータ
位置を読み込み、レジスタからモータ位置が変化したと
きの時間を読み込んでいる。ここでの処理は、図3に示
した処理に対して、カウンタ2とレジスタ4のデータを
取り込む処理の順番が異なっている。まず最初にレジス
タ4の値を変数time1に取り込む(ステップ601)。
次に、カウンタ2の値を変数motor1 に取り込む(ステ
ップ602)。さらにレジスタ4の値を変数time2に取
り込む(ステップ603)。ここで変数time1と変数ti
me2の値が同じであるかどうかの判定を行う(ステップ
604)。同じである場合には、モータ位置を示す変数
motorに変数motor1の値を代入し(ステップ605)、
モータ位置が変化したときの時間を示す変数timeに変数
time1の値を代入する(ステップ606)。ステップ6
04の判定の結果、変数time1と変数time2の値が異な
るときには、もう一度、カウンタ2の値を読み込んで変
数motor に代入し(ステップ607)、変数timeに変数
time2の値を代入する(ステップ608)。この処理で
レジスタ4及びカウンタ2の値を交互に読み込むのは、
図4及び図5に示したものと同様の理由による。
プリング時間毎に行う処理であり、カウンタからモータ
位置を読み込み、レジスタからモータ位置が変化したと
きの時間を読み込んでいる。ここでの処理は、図3に示
した処理に対して、カウンタ2とレジスタ4のデータを
取り込む処理の順番が異なっている。まず最初にレジス
タ4の値を変数time1に取り込む(ステップ601)。
次に、カウンタ2の値を変数motor1 に取り込む(ステ
ップ602)。さらにレジスタ4の値を変数time2に取
り込む(ステップ603)。ここで変数time1と変数ti
me2の値が同じであるかどうかの判定を行う(ステップ
604)。同じである場合には、モータ位置を示す変数
motorに変数motor1の値を代入し(ステップ605)、
モータ位置が変化したときの時間を示す変数timeに変数
time1の値を代入する(ステップ606)。ステップ6
04の判定の結果、変数time1と変数time2の値が異な
るときには、もう一度、カウンタ2の値を読み込んで変
数motor に代入し(ステップ607)、変数timeに変数
time2の値を代入する(ステップ608)。この処理で
レジスタ4及びカウンタ2の値を交互に読み込むのは、
図4及び図5に示したものと同様の理由による。
【0016】図7の処理はマイクロコンピュータ1にお
いて一定サンプリング時間毎に行う処理であり、実際の
モータ速度計算の処理を示している。この処理は、図3
または図6で示した処理によって、モータ位置を示す変
数motor とモータ位置が変化したときの時間を示す変数
timeの値が確定した後に続けて行うものとする。
いて一定サンプリング時間毎に行う処理であり、実際の
モータ速度計算の処理を示している。この処理は、図3
または図6で示した処理によって、モータ位置を示す変
数motor とモータ位置が変化したときの時間を示す変数
timeの値が確定した後に続けて行うものとする。
【0017】まず、変数timeと前のレジスタ4の値を示
す変数preregの比較を行い、レジスタ4の値が更新され
ているかどうかの判定を行う(ステップ701)。
す変数preregの比較を行い、レジスタ4の値が更新され
ているかどうかの判定を行う(ステップ701)。
【0018】レジスタ4の値が更新されているときに
は、変数timeと前回サンプリングで決められた時間を示
す変数pretime との偏差を計算し、変数dtimeに代入す
る(ステップ702)。前回サンプリングまでに積分さ
れた変数stimeの値に変数dtimeの値を加算する(ステッ
プ703)。変数motor と前のモータ位置を示す変数pr
emotorとの差分を計算し、変数dmotorに代入する(ステ
ップ704)。モータ速度omegamは変数dmotorを変数s
timeで割った値に係数k1をかけて求める(ステップ7
05)。変数preregに変数timeの値を代入する(ステッ
プ706)。前回の時間を積分した値を示す変数presti
meに変数stimeの値を代入する(ステップ707)。変
数pretime に変数timeの値を代入する(ステップ70
8)。前のモータ位置を示す変数premotorに変数motor
の値を代入する(ステップ709)。変数stimeの値を
クリアして0にする(ステップ710)。変数count の
値をクリアして0にする(ステップ711)。
は、変数timeと前回サンプリングで決められた時間を示
す変数pretime との偏差を計算し、変数dtimeに代入す
る(ステップ702)。前回サンプリングまでに積分さ
れた変数stimeの値に変数dtimeの値を加算する(ステッ
プ703)。変数motor と前のモータ位置を示す変数pr
emotorとの差分を計算し、変数dmotorに代入する(ステ
ップ704)。モータ速度omegamは変数dmotorを変数s
timeで割った値に係数k1をかけて求める(ステップ7
05)。変数preregに変数timeの値を代入する(ステッ
プ706)。前回の時間を積分した値を示す変数presti
meに変数stimeの値を代入する(ステップ707)。変
数pretime に変数timeの値を代入する(ステップ70
8)。前のモータ位置を示す変数premotorに変数motor
の値を代入する(ステップ709)。変数stimeの値を
クリアして0にする(ステップ710)。変数count の
値をクリアして0にする(ステップ711)。
【0019】ステップ701でレジスタ4の値が更新さ
れていないときには、連続して更新されない回数を示す
変数count が最大値MAXを超えていないかの判断を行
う(ステップ712)。これは時間を積分する変数sti
meの値のオーバーフローを防止するためであり、また次
回のサンプリングにレジスタ4が更新されてモータ速度
の計算(ステップ705)を行っても変数omegamの値が
0となるように、MAXの値と変数stimeの変数の型を
決める(変数timeをshort変数としたときには変数stime
はlong変数とする等)。
れていないときには、連続して更新されない回数を示す
変数count が最大値MAXを超えていないかの判断を行
う(ステップ712)。これは時間を積分する変数sti
meの値のオーバーフローを防止するためであり、また次
回のサンプリングにレジスタ4が更新されてモータ速度
の計算(ステップ705)を行っても変数omegamの値が
0となるように、MAXの値と変数stimeの変数の型を
決める(変数timeをshort変数としたときには変数stime
はlong変数とする等)。
【0020】変数count が最大値MAXを超えていない
場合、時間を計測するカウンタ3の値を読み込んで変数
cnt2 に代入する(ステップ713)。変数cnt2 と前
回サンプリングで決められた時間を示す変数pretimeと
の偏差を計算し、変数dtimeに代入する(ステップ71
4)。前回サンプリングまでに積分された変数stime の
値に変数dtimeの値を加算する(ステップ715)。変
数stimeと前の積分された時間を示す変数prestime との
比較を行い(ステップ716)、変数stimeの値が大き
い場合には、モータ速度omegamは係数k1を変数stime
の値で割った値として演算する(ステップ717)。変
数pretimeに変数cnt2の値を代入する(ステップ71
8)。変数count の値をインクリメントする(ステップ
719)。ここでの処理はレジスタ4の値が更新されな
いときに、カウンタ3の値を直接取り込んでいるのでカ
ウンタ3がオーバーフローしても問題なくモータ速度の
検出を行うことができる。
場合、時間を計測するカウンタ3の値を読み込んで変数
cnt2 に代入する(ステップ713)。変数cnt2 と前
回サンプリングで決められた時間を示す変数pretimeと
の偏差を計算し、変数dtimeに代入する(ステップ71
4)。前回サンプリングまでに積分された変数stime の
値に変数dtimeの値を加算する(ステップ715)。変
数stimeと前の積分された時間を示す変数prestime との
比較を行い(ステップ716)、変数stimeの値が大き
い場合には、モータ速度omegamは係数k1を変数stime
の値で割った値として演算する(ステップ717)。変
数pretimeに変数cnt2の値を代入する(ステップ71
8)。変数count の値をインクリメントする(ステップ
719)。ここでの処理はレジスタ4の値が更新されな
いときに、カウンタ3の値を直接取り込んでいるのでカ
ウンタ3がオーバーフローしても問題なくモータ速度の
検出を行うことができる。
【0021】変数countが最大値MAXを超えている場
合、モータ速度omegam の値は0とする(ステップ72
0)。
合、モータ速度omegam の値は0とする(ステップ72
0)。
【0022】図8はカウンタ2,カウンタ3,レジスタ
4の変化と速度検出処理の計算のタイミングを示してお
り、レジスタ4が変化するまでに速度検出処理が何回も
行われる低速度領域の場合である。パルスをカウントす
るカウンタ2は時刻A,時刻B,時刻Cでインクリメン
トされている。時刻Bから時刻Cの間の速度検出処理に
おいて、時刻Bの直後のサンプリング時点では、レジス
タ4が更新されているので、図7のステップ705によ
りモータ速度が計算され、時刻Aと時刻Bの時間差が変
数prestimeとして保存される。それ以後の速度検出処理
のサンプリング時点でレジスタ4が更新されない間、時
刻Bからサンプリング時点までの時間が変数stimeとし
て計算される。変数prestimeと変数stimeの値の比較を
行って、変数prestime の値が変数stimeの値よりも大き
いときには、速度計算は行わず時刻B直後のサンプリン
グ時点で計算したモータ速度omegamの値を保持してい
る。変数stimeの値が変数prestime の値よりも大きくな
ってくると、図7のステップ717で示した式でモータ
速度omegamの計算を行う。この場合、サンプリング時点
での変数stime の値が大きくなるほど、モータ速度omeg
amの値は小さくなっていくが、時刻B直後のサンプリン
グ時点で計算したモータ速度omegamと時刻C直後の速度
検出処理のサンプリング時点で計算するモータ速度omeg
amの値が不連続にならないようになっている。
4の変化と速度検出処理の計算のタイミングを示してお
り、レジスタ4が変化するまでに速度検出処理が何回も
行われる低速度領域の場合である。パルスをカウントす
るカウンタ2は時刻A,時刻B,時刻Cでインクリメン
トされている。時刻Bから時刻Cの間の速度検出処理に
おいて、時刻Bの直後のサンプリング時点では、レジス
タ4が更新されているので、図7のステップ705によ
りモータ速度が計算され、時刻Aと時刻Bの時間差が変
数prestimeとして保存される。それ以後の速度検出処理
のサンプリング時点でレジスタ4が更新されない間、時
刻Bからサンプリング時点までの時間が変数stimeとし
て計算される。変数prestimeと変数stimeの値の比較を
行って、変数prestime の値が変数stimeの値よりも大き
いときには、速度計算は行わず時刻B直後のサンプリン
グ時点で計算したモータ速度omegamの値を保持してい
る。変数stimeの値が変数prestime の値よりも大きくな
ってくると、図7のステップ717で示した式でモータ
速度omegamの計算を行う。この場合、サンプリング時点
での変数stime の値が大きくなるほど、モータ速度omeg
amの値は小さくなっていくが、時刻B直後のサンプリン
グ時点で計算したモータ速度omegamと時刻C直後の速度
検出処理のサンプリング時点で計算するモータ速度omeg
amの値が不連続にならないようになっている。
【0023】本発明の別の実施の形態を図9により説明
する。図9はモータ制御装置を示している。マイクロコ
ンピュータ901,駆動回路908,バッテリ909,
モータ906,パルス発生器905から構成されてお
り、マイクロコンピュータ901はアクセル・ブレーキの
踏み込み量から得られる速度指令またはトルク指令に応
じて、モータ906の速度またはトルクの制御を行って
いる。この構成は、モータ速度検出回路がマイクロコン
ピュータの外側に構成されている場合である。モータ速
度検出回路はカウンタ902,カウンタ903,ラッチ
回路904,クロックパルス発生器907の簡単な構成
でよい。さらにマイクロコンピュータ901でカウンタ9
02,ラッチ回路904の値を複数回読み込むことによ
って正確なモータ速度検出を行うことができる。
する。図9はモータ制御装置を示している。マイクロコ
ンピュータ901,駆動回路908,バッテリ909,
モータ906,パルス発生器905から構成されてお
り、マイクロコンピュータ901はアクセル・ブレーキの
踏み込み量から得られる速度指令またはトルク指令に応
じて、モータ906の速度またはトルクの制御を行って
いる。この構成は、モータ速度検出回路がマイクロコン
ピュータの外側に構成されている場合である。モータ速
度検出回路はカウンタ902,カウンタ903,ラッチ
回路904,クロックパルス発生器907の簡単な構成
でよい。さらにマイクロコンピュータ901でカウンタ9
02,ラッチ回路904の値を複数回読み込むことによ
って正確なモータ速度検出を行うことができる。
【0024】パルス発生器905はモータ906の回転
数に比例した周波数のパルス列を発生する。カウンタ9
02はパルス発生器905からの出力パルスmplsの計数
を行なう。カウンタ903はクロックパルス発生器90
7の発生するクロックパルスを計数する。この内部クロ
ックの周波数はパルス発生器905の出力するパルスの
周波数より、十分に高いものとする。パルス発生器90
5からの出力パルスmplsの立ち下がりと立ち上がりでカ
ウンタ903の計数値をラッチ回路904にラッチす
る。マイクロコンピュータ901はカウンタ902とラ
ッチ回路904のデータを取り込んでモータ速度の計算
を行う。さらに、マイクロコンピュータ901は速度指
令又はトルク指令に基づいてモータの速度又はトルクの
制御を行い、駆動回路908を動作させるためのPWM
信号を出力する。また図示していないがマイクロコンピ
ュータ901はAD変換器を内蔵しており、モータ電流
をマイクロコンピュータ内に取り込んで電流制御を演算
している。駆動回路908はパワー半導体により構成さ
れる電力変換器、及び、その制御回路からなり、マイク
ロコンピュータ901からの信号に応じてバッテリ90
9の電力をモータ906へ供給し、モータ906を回転
させる。出力パルスmplsの波形とカウンタ902,カウ
ンタ903,レジスタ904の変化のタイミングは図2
に示したものと同様になる。図9に示す回路構成におい
ても、図3または図6に示したものと同様のフローチャ
ートをマイクロコンピュータ901で実行することで、
カウンタ902とラッチ回路904のデータを取り込ん
でいるときにモータパルスが入力されてデータが更新さ
れた場合にもモータの位置とそれに対応した時間を取り
込むことができる。さらに図7に示したものと同様のフ
ローチャートにより、モータ速度の計算を行うことがで
きる。
数に比例した周波数のパルス列を発生する。カウンタ9
02はパルス発生器905からの出力パルスmplsの計数
を行なう。カウンタ903はクロックパルス発生器90
7の発生するクロックパルスを計数する。この内部クロ
ックの周波数はパルス発生器905の出力するパルスの
周波数より、十分に高いものとする。パルス発生器90
5からの出力パルスmplsの立ち下がりと立ち上がりでカ
ウンタ903の計数値をラッチ回路904にラッチす
る。マイクロコンピュータ901はカウンタ902とラ
ッチ回路904のデータを取り込んでモータ速度の計算
を行う。さらに、マイクロコンピュータ901は速度指
令又はトルク指令に基づいてモータの速度又はトルクの
制御を行い、駆動回路908を動作させるためのPWM
信号を出力する。また図示していないがマイクロコンピ
ュータ901はAD変換器を内蔵しており、モータ電流
をマイクロコンピュータ内に取り込んで電流制御を演算
している。駆動回路908はパワー半導体により構成さ
れる電力変換器、及び、その制御回路からなり、マイク
ロコンピュータ901からの信号に応じてバッテリ90
9の電力をモータ906へ供給し、モータ906を回転
させる。出力パルスmplsの波形とカウンタ902,カウ
ンタ903,レジスタ904の変化のタイミングは図2
に示したものと同様になる。図9に示す回路構成におい
ても、図3または図6に示したものと同様のフローチャ
ートをマイクロコンピュータ901で実行することで、
カウンタ902とラッチ回路904のデータを取り込ん
でいるときにモータパルスが入力されてデータが更新さ
れた場合にもモータの位置とそれに対応した時間を取り
込むことができる。さらに図7に示したものと同様のフ
ローチャートにより、モータ速度の計算を行うことがで
きる。
【0025】本発明の別の実施の形態を図10により説
明する。図10はモータ制御装置を示している。マイク
ロコンピュータ1001,駆動回路1012,バッテリ
1013,モータ1007,パルス発生器1006から構成
されており、マイクロコンピュータ1001はアクセル
・ブレーキの踏み込み量から得られる速度指令またはト
ルク指令に応じて、モータ1007の速度またはトルク
の制御を行っている。ここでのモータ速度検出部は、パ
ルス発生器1006が二相パルス信号を出力する場合の
ものである。マイクロコンピュータ1001に外部回路
を付加することなく、速度検出を行っている。
明する。図10はモータ制御装置を示している。マイク
ロコンピュータ1001,駆動回路1012,バッテリ
1013,モータ1007,パルス発生器1006から構成
されており、マイクロコンピュータ1001はアクセル
・ブレーキの踏み込み量から得られる速度指令またはト
ルク指令に応じて、モータ1007の速度またはトルク
の制御を行っている。ここでのモータ速度検出部は、パ
ルス発生器1006が二相パルス信号を出力する場合の
ものである。マイクロコンピュータ1001に外部回路
を付加することなく、速度検出を行っている。
【0026】マイクロコンピュータ1001はカウンタ
1002及びカウンタ1003と、カウンタ1002の
出力値を保存する第一のレジスタ1004とカウンタの
出力値を保存する第二のレジスタ1005を内蔵してい
る。さらに、マイクロコンピュータ1001は、カウン
タ1002及びカウンタ1003と第一のレジスタ10
04及び第二のレジスタ1005の出力値を取り込んで
モータの速度計算処理を行い、速度指令又はトルク指令
に基づいてモータの速度又はトルクを制御する処理を行
うCPU1008,ROM1009,RAM1010 ,駆動回路1012を動
作させるためのPWM信号を発生するタイマ1011を
内蔵している。また図示していないがマイクロコンピュ
ータ1001はAD変換器を内蔵しており、モータ電流
をマイクロコンピュータ内に取り込んで電流制御を演算
し、電圧指令をタイマ1011に書き込んでいる。駆動
回路1012はパワー半導体により構成される電力変換
器、及び、その制御回路からなり、マイクロコンピュー
タ1001からの信号に応じてモータ1007を回転さ
せる。パルス発生器1006はモータ1007の回転数
に比例した周波数の二相信号パルス列を発生する。カウ
ンタ1002はパルス発生器1006からの二相出力パ
ルスの計数を行う。カウンタ1003はマイクロコンピ
ュータ1001の内部クロックを計数する。この内部ク
ロックの周波数はパルス発生器1006の出力するパル
スの周波数より、十分に高いものとする。また、外部か
ら一定周期のクロックパルスを入力して計測してもよ
い。パルス発生器1006からの二相出力パルスのB相
の立ち上がりまたは立ち下がりでカウンタ1002の計
数値を第一のレジスタ1004にラッチし、カウンタ1
003の計数値を第二のレジスタ1005にラッチす
る。ここで、B相の代わりにA相信号を使用しても同じ
である。図1の構成では、二相信号を計数する場合に
は、二相信号のA相信号とB相信号のEXORをとる別
回路が必要となる。別回路を使用しないためには、もう
一つマイクロコンピュータ内のレジスタを使用し、カウ
ンタ1003の値を転送するのと同じタイミングで、カ
ウンタ1002の値を第一のレジスタ1004に転送する必
要がある。
1002及びカウンタ1003と、カウンタ1002の
出力値を保存する第一のレジスタ1004とカウンタの
出力値を保存する第二のレジスタ1005を内蔵してい
る。さらに、マイクロコンピュータ1001は、カウン
タ1002及びカウンタ1003と第一のレジスタ10
04及び第二のレジスタ1005の出力値を取り込んで
モータの速度計算処理を行い、速度指令又はトルク指令
に基づいてモータの速度又はトルクを制御する処理を行
うCPU1008,ROM1009,RAM1010 ,駆動回路1012を動
作させるためのPWM信号を発生するタイマ1011を
内蔵している。また図示していないがマイクロコンピュ
ータ1001はAD変換器を内蔵しており、モータ電流
をマイクロコンピュータ内に取り込んで電流制御を演算
し、電圧指令をタイマ1011に書き込んでいる。駆動
回路1012はパワー半導体により構成される電力変換
器、及び、その制御回路からなり、マイクロコンピュー
タ1001からの信号に応じてモータ1007を回転さ
せる。パルス発生器1006はモータ1007の回転数
に比例した周波数の二相信号パルス列を発生する。カウ
ンタ1002はパルス発生器1006からの二相出力パ
ルスの計数を行う。カウンタ1003はマイクロコンピ
ュータ1001の内部クロックを計数する。この内部ク
ロックの周波数はパルス発生器1006の出力するパル
スの周波数より、十分に高いものとする。また、外部か
ら一定周期のクロックパルスを入力して計測してもよ
い。パルス発生器1006からの二相出力パルスのB相
の立ち上がりまたは立ち下がりでカウンタ1002の計
数値を第一のレジスタ1004にラッチし、カウンタ1
003の計数値を第二のレジスタ1005にラッチす
る。ここで、B相の代わりにA相信号を使用しても同じ
である。図1の構成では、二相信号を計数する場合に
は、二相信号のA相信号とB相信号のEXORをとる別
回路が必要となる。別回路を使用しないためには、もう
一つマイクロコンピュータ内のレジスタを使用し、カウ
ンタ1003の値を転送するのと同じタイミングで、カ
ウンタ1002の値を第一のレジスタ1004に転送する必
要がある。
【0027】図11は二相パルス信号とカウンタ100
2,カウンタ1003,第一のレジスタ1004,第二
のレジスタ1005の動作のタイミングを示している。
カウンタ1002は二相信号のパルスを計数し、カウン
タ1002は時間を示すクロックパルスを計数してい
る。ここではラッチ信号としてB相信号の立ち下がりの
みを使用し、カウンタ1003の値を第二のレジスタ1
005に転送し、カウンタ1002の値を第一のレジス
タ1004に転送している。図1に示した構成の場合、
モータ位置とそれに対応する時間を読み込むために図3
または図6に示すフローチャートを実行していたが、図
10に示した構成の場合、図3または図6に示すフロー
チャートにおいてカウンタ2の値を読み込む処理ステッ
プ301,303またはステップ602,607の処理
を、第一のレジスタ1004の値を取り込む処理に変更
する必要がある。図7に示した速度を計算するフローチ
ャートはそのまま使用できる。
2,カウンタ1003,第一のレジスタ1004,第二
のレジスタ1005の動作のタイミングを示している。
カウンタ1002は二相信号のパルスを計数し、カウン
タ1002は時間を示すクロックパルスを計数してい
る。ここではラッチ信号としてB相信号の立ち下がりの
みを使用し、カウンタ1003の値を第二のレジスタ1
005に転送し、カウンタ1002の値を第一のレジス
タ1004に転送している。図1に示した構成の場合、
モータ位置とそれに対応する時間を読み込むために図3
または図6に示すフローチャートを実行していたが、図
10に示した構成の場合、図3または図6に示すフロー
チャートにおいてカウンタ2の値を読み込む処理ステッ
プ301,303またはステップ602,607の処理
を、第一のレジスタ1004の値を取り込む処理に変更
する必要がある。図7に示した速度を計算するフローチ
ャートはそのまま使用できる。
【0028】本発明の別の実施の形態を図12により説
明する。図12はモータ制御装置を示している。マイク
ロコンピュータ1201,駆動回路1212,バッテリ
1213,モータ1207,パルス発生器1206から構成
されており、マイクロコンピュータ1201はアクセル
・ブレーキの踏み込み量から得られる速度指令またはト
ルク指令に応じて、モータ1207の速度またはトルク
の制御を行っている。マイクロコンピュータ1201は
カウンタ1202及びカウンタ1203と、カウンタ1
202の出力値を保存する第一のレジスタ1204とカ
ウンタ1203の出力値を保存する第二のレジスタ1205
を内蔵している。さらに、マイクロコンピュータ120
1は、カウンタ1202及びカウンタ1203と第一の
レジスタ1204及び第二のレジスタ1205の出力値
を取り込んでモータの速度計算処理を行い、速度指令又
はトルク指令に基づいてモータの速度又はトルクを制御
する処理を行うCPU1208,ROM1209,RAM1210 ,駆動回路
1212を動作させるためのPWM信号を発生するタイ
マ1211を内蔵している。また図示していないがマイ
クロコンピュータ1201はAD変換器を内蔵してお
り、モータ電流をマイクロコンピュータ内に取り込んで
電流制御を演算し、電圧指令をタイマ1211に書き込んで
いる。パルス発生器1206はモータ1207の回転数
に比例した周波数のパルス列(二相信号)を発生する。
カウンタ1202はパルス発生器1206からの二相出力パ
ルスの計数を行う。カウンタ1203はマイクロコンピ
ュータ1201の内部クロックを計数する。この内部ク
ロックの周波数はパルス発生器1206の出力するパル
スの周波数より、十分に高いものとする。また、外部か
ら一定周期のクロックパルスを入力して計測してもよ
い。パルス発生器1206からの二相出力パルスのB相
の立ち上がりまたは立ち下がりでカウンタ1203の計
数値を第二のレジスタ1205にラッチする。二相出力
パルスのB相信号をワンショットパルス発生回路121
3に入力し、マイコンのクロック周期の1.5倍から3倍
程度の短い幅のワンショットパルスを発生させる。この
パルス幅はマイコンがパルスを認識できる最小幅以上は
必要である。このパルスによって、カウンタ1202の
計数値を第一のレジスタ1204にラッチする。ここ
で、B相の代わりにA相信号を使用しても同じである。
ワンショットパルス発生回路1213はTTLIC(74LS12
3 )で作ることができる。
明する。図12はモータ制御装置を示している。マイク
ロコンピュータ1201,駆動回路1212,バッテリ
1213,モータ1207,パルス発生器1206から構成
されており、マイクロコンピュータ1201はアクセル
・ブレーキの踏み込み量から得られる速度指令またはト
ルク指令に応じて、モータ1207の速度またはトルク
の制御を行っている。マイクロコンピュータ1201は
カウンタ1202及びカウンタ1203と、カウンタ1
202の出力値を保存する第一のレジスタ1204とカ
ウンタ1203の出力値を保存する第二のレジスタ1205
を内蔵している。さらに、マイクロコンピュータ120
1は、カウンタ1202及びカウンタ1203と第一の
レジスタ1204及び第二のレジスタ1205の出力値
を取り込んでモータの速度計算処理を行い、速度指令又
はトルク指令に基づいてモータの速度又はトルクを制御
する処理を行うCPU1208,ROM1209,RAM1210 ,駆動回路
1212を動作させるためのPWM信号を発生するタイ
マ1211を内蔵している。また図示していないがマイ
クロコンピュータ1201はAD変換器を内蔵してお
り、モータ電流をマイクロコンピュータ内に取り込んで
電流制御を演算し、電圧指令をタイマ1211に書き込んで
いる。パルス発生器1206はモータ1207の回転数
に比例した周波数のパルス列(二相信号)を発生する。
カウンタ1202はパルス発生器1206からの二相出力パ
ルスの計数を行う。カウンタ1203はマイクロコンピ
ュータ1201の内部クロックを計数する。この内部ク
ロックの周波数はパルス発生器1206の出力するパル
スの周波数より、十分に高いものとする。また、外部か
ら一定周期のクロックパルスを入力して計測してもよ
い。パルス発生器1206からの二相出力パルスのB相
の立ち上がりまたは立ち下がりでカウンタ1203の計
数値を第二のレジスタ1205にラッチする。二相出力
パルスのB相信号をワンショットパルス発生回路121
3に入力し、マイコンのクロック周期の1.5倍から3倍
程度の短い幅のワンショットパルスを発生させる。この
パルス幅はマイコンがパルスを認識できる最小幅以上は
必要である。このパルスによって、カウンタ1202の
計数値を第一のレジスタ1204にラッチする。ここ
で、B相の代わりにA相信号を使用しても同じである。
ワンショットパルス発生回路1213はTTLIC(74LS12
3 )で作ることができる。
【0029】図12のような方式で速度計測を行うの
は、二相信号を使用して速度を計測する場合において、
A相信号の立ち上がり,B相信号の立ち下がり,A相信
号の立ち下がり、B相信号の立ち上がりの時間間隔が一
定でない場合には、どれか一つのタイミングにより、速
度の検出をする必要があるからである。さらに、第一の
ラッチ信号を第二のラッチ信号から遅らせるのは、カウ
ンタ1202の値の第一にレジスタ1204への転送を
第二のラッチ信号を使用して行った場合、カウンタ12
02のカウントアップと、レジスタ1204への転送が
同時に起こるため、レジスタ1204の値がカウントア
ップ以前の値となるおそれがあるからである。カウンタ
の値の転送にそのおそれがないときには、図10に示し
た方式でよい。
は、二相信号を使用して速度を計測する場合において、
A相信号の立ち上がり,B相信号の立ち下がり,A相信
号の立ち下がり、B相信号の立ち上がりの時間間隔が一
定でない場合には、どれか一つのタイミングにより、速
度の検出をする必要があるからである。さらに、第一の
ラッチ信号を第二のラッチ信号から遅らせるのは、カウ
ンタ1202の値の第一にレジスタ1204への転送を
第二のラッチ信号を使用して行った場合、カウンタ12
02のカウントアップと、レジスタ1204への転送が
同時に起こるため、レジスタ1204の値がカウントア
ップ以前の値となるおそれがあるからである。カウンタ
の値の転送にそのおそれがないときには、図10に示し
た方式でよい。
【0030】図13は二相パルス信号とカウンタ120
2,カウンタ1203,第一のレジスタ1204,第二
のレジスタ1205の動作のタイミングを示している。
カウンタ1202は二相信号のパルスを計数し、カウン
タ1202は時間を示すクロックパルスを計数してい
る。ここでは第二のラッチ信号としてB相信号の立ち下
がりを使用して、カウンタ1203の値を第二のレジス
タ1205に転送している。第一のラッチ信号としてワ
ンショットパルス発生回路1213のパルス信号の立ち
下がりを使用して、カウンタ1202の値を第一のレジ
スタ1204に転送している。
2,カウンタ1203,第一のレジスタ1204,第二
のレジスタ1205の動作のタイミングを示している。
カウンタ1202は二相信号のパルスを計数し、カウン
タ1202は時間を示すクロックパルスを計数してい
る。ここでは第二のラッチ信号としてB相信号の立ち下
がりを使用して、カウンタ1203の値を第二のレジス
タ1205に転送している。第一のラッチ信号としてワ
ンショットパルス発生回路1213のパルス信号の立ち
下がりを使用して、カウンタ1202の値を第一のレジ
スタ1204に転送している。
【0031】図12に示した構成で、モータ位置とそれ
に対応する時間を読み込むために、図3または図6に示
すフローチャートでカウンタの値を読み込む処理ステッ
プ301,303またはステップ602,607の処理
を第一のレジスタ1204の値を取り込む処理に変更
し、ステップ302,307またはステップ601,6
03の処理を第二のレジスタ1205の値を取り込む処
理に変更する必要がある。図7に示した速度を計算する
フローチャートはそのまま使用できる。
に対応する時間を読み込むために、図3または図6に示
すフローチャートでカウンタの値を読み込む処理ステッ
プ301,303またはステップ602,607の処理
を第一のレジスタ1204の値を取り込む処理に変更
し、ステップ302,307またはステップ601,6
03の処理を第二のレジスタ1205の値を取り込む処
理に変更する必要がある。図7に示した速度を計算する
フローチャートはそのまま使用できる。
【0032】図14は第一のラッチ信号のパルス幅の影
響について示している。図14においてステップAは最
初に第一のレジスタ1204の値を取り込む処理、ステ
ップBは第二のレジスタ1205を取り込む処理、ステ
ップCは2回目の第一のレジスタ1204の値を取り込
む処理、ステップDは2回目の第二のレジスタ1205を取
り込む処理とする。図14は一連のレジスタのデータ取
り込みの処理が、カウンタからのデータ転送のタイミン
グと重なった場合について示している。ラッチ信号のパ
ルス幅が十分に狭いとき、ステップA,Cでレジスタ1
204の値を取り込んだ結果、取り込んだ二つの結果が
異なるので、もう一度ステップDにおいて第二のレジス
タ1205を取り込む。ラッチ信号のパルス幅が広すぎ
るとき、ステップA,Cで第一のレジスタ1204の値
を取り込んだ結果、取り込んだ二つの結果が同じとなる
可能性がある。このときには、ステップBで取り込んだ
第二のレジスタ1205の値が速度の計算に使用され
る。このステップBで取り込んだ第二のレジスタ120
5の値がデータ転送される前の値のときには問題ない
が、データ転送された後の値のときにはモータ位置と時
間が対応しなくなり、速度検出値が誤ったものになる。
このように、ステップAとステップCの時間差よりも第
一のラッチ信号のパルス幅が小さくなるように、ワンシ
ョットパルス発生回路1213を調整するか、またはソ
フトウェアでステップAとステップCに時間差をつける
必要がある。
響について示している。図14においてステップAは最
初に第一のレジスタ1204の値を取り込む処理、ステ
ップBは第二のレジスタ1205を取り込む処理、ステ
ップCは2回目の第一のレジスタ1204の値を取り込
む処理、ステップDは2回目の第二のレジスタ1205を取
り込む処理とする。図14は一連のレジスタのデータ取
り込みの処理が、カウンタからのデータ転送のタイミン
グと重なった場合について示している。ラッチ信号のパ
ルス幅が十分に狭いとき、ステップA,Cでレジスタ1
204の値を取り込んだ結果、取り込んだ二つの結果が
異なるので、もう一度ステップDにおいて第二のレジス
タ1205を取り込む。ラッチ信号のパルス幅が広すぎ
るとき、ステップA,Cで第一のレジスタ1204の値
を取り込んだ結果、取り込んだ二つの結果が同じとなる
可能性がある。このときには、ステップBで取り込んだ
第二のレジスタ1205の値が速度の計算に使用され
る。このステップBで取り込んだ第二のレジスタ120
5の値がデータ転送される前の値のときには問題ない
が、データ転送された後の値のときにはモータ位置と時
間が対応しなくなり、速度検出値が誤ったものになる。
このように、ステップAとステップCの時間差よりも第
一のラッチ信号のパルス幅が小さくなるように、ワンシ
ョットパルス発生回路1213を調整するか、またはソ
フトウェアでステップAとステップCに時間差をつける
必要がある。
【0033】
【発明の効果】本発明によれば、モータ速度検出のため
の回路を別途設けるのではなく、マイクロコンピュータ
の中に内蔵されたカウンタとレジスタを使用すること
で、データバス等をマイコンから外部に出す必要がなく
なるので回路を小型化できる。さらに、カウンタとレジ
スタのデータを取り込んでいる途中でデータが更新され
た場合にも、データを二度読みすることで同一時点のカ
ウンタとレジスタの値を判断でき、モータ速度計算値の
誤差をなくすことができる。
の回路を別途設けるのではなく、マイクロコンピュータ
の中に内蔵されたカウンタとレジスタを使用すること
で、データバス等をマイコンから外部に出す必要がなく
なるので回路を小型化できる。さらに、カウンタとレジ
スタのデータを取り込んでいる途中でデータが更新され
た場合にも、データを二度読みすることで同一時点のカ
ウンタとレジスタの値を判断でき、モータ速度計算値の
誤差をなくすことができる。
【図面の簡単な説明】
【図1】本発明の一実施例の速度検出装置を示すブロッ
ク図。
ク図。
【図2】モータパルスとカウンタとレジスタの動作のタ
イミングチャート。
イミングチャート。
【図3】カウンタとレジスタの取り込みを行う処理のフ
ローチャート。
ローチャート。
【図4】速度検出処理のタイミングとレジスタの更新の
タイミングチャート。
タイミングチャート。
【図5】速度検出処理のタイミングとレジスタの更新の
タイミングチャート。
タイミングチャート。
【図6】カウンタとレジスタの取り込みを行う処理のフ
ローチャート。
ローチャート。
【図7】モータ速度計算処理のフローチャート。
【図8】低速度領域でのモータ速度検出処理の説明図。
【図9】本発明の第二実施例の速度検出装置を示すブロ
ック図。
ック図。
【図10】本発明の第三実施例の速度検出装置を示すブ
ロック図。
ロック図。
【図11】モータパルスとカウンタとレジスタの動作の
タイミングチャート。
タイミングチャート。
【図12】本発明の第四実施例の速度検出装置を示すブ
ロック図。
ロック図。
【図13】モータパルスとカウンタとレジスタの動作の
タイミングチャート。
タイミングチャート。
【図14】速度検出処理のタイミングとレジスタの更新
のタイミングチャート。
のタイミングチャート。
1…マイクロコンピュータ、2,3…カウンタ、4…レ
ジスタ、5…パルス発生器、6…モータ。
ジスタ、5…パルス発生器、6…モータ。
フロントページの続き (72)発明者 大津 英一 茨城県ひたちなか市大字高場2520番地 株 式会社日立製作所自動車機器事業部内
Claims (8)
- 【請求項1】モータ、前記モータに電力を供給する電力
供給部、前記電力供給部にPWM信号を出力して前記モ
ータの電流およびトルクおよび速度を制御するマイクロ
コンピュータ、前記モータの回転する毎にパルス信号を
出力するパルス発生器からなるモータ制御装置におい
て、 前記マイクロコンピュータは前記パルス発生器からのパ
ルス信号を入力し、前記パルス信号の計数値と前記パル
ス信号の入力時間を一定サンプリング時間毎に検出して
モータ速度の演算を行い、前記モータを制御することを
特徴とするモータ制御装置。 - 【請求項2】請求項1において、前記マイクロコンピュ
ータは、時間を計測する第一のカウンタ、前記パルス信
号の数を計数する第二のカウンタ、前記パルス信号に同
期して前記時間を計測する前記第一のカウンタの値をラ
ッチするレジスタを備え、 一定サンプリング時間ごとにソフトウェアにより、前記
パルス信号の計数値を示す前記第二のカウンタの値と前
記パルス信号の入力時間を示す前記レジスタの値を取り
込んでモータ速度を計算するときに、前記第二のカウン
タの値と前記レジスタの値のうち、一つの値を取り込ん
だ直後に前記パルス信号が入力されることによって生じ
る前記パルス信号の計数値と前記パルス信号の入力時間
のずれを補正する処理を備えたモータ制御装置。 - 【請求項3】請求項1において、前記マイクロコンピュ
ータは、時間を計測する第一のカウンタ、前記パルス信
号の数を計数する第二のカウンタ、前記パルス信号に同
期して前記時間を計測する前記第一のカウンタの値をラ
ッチする第一のレジスタと前記パルス信号の数を計数す
る前記第二のカウンタの値をラッチする第二のレジスタ
を備え、 一定サンプリング時間ごとにソフトウェアにより、前記
パルス信号の計数値を示す前記第二のレジスタの値と前
記パルス信号の入力時間を示す前記第一のレジスタの値
を取り込んでモータ速度を計算するときに、前記第二の
レジスタの値と前記第一のレジスタの値のうち、一つの
値を取り込んだ直後に前記パルス信号が入力されること
によって生じる前記パルス信号の計数値と前記パルス信
号の入力時間のずれを補正する処理を備えたモータ制御
装置。 - 【請求項4】モータ、前記モータに電力を供給する電力
供給部、前記電力供給部にPWM信号を出力して前記モ
ータの電流およびトルクおよび速度を制御するコントロ
ーラ、前記モータの回転する毎にパルス信号を出力する
パルス発生器からなり、 前記コントローラは前記パルス発生器からのパルス信号
を入力し、前記パルス信号の計数値と前記パルス信号の
入力時間を一定サンプリング時間毎に検出してモータ速
度の演算を行い、前記モータを制御することを特徴とす
るモータ制御装置。 - 【請求項5】請求項4において、前記コントローラは、
マイクロコンピュータ、時間を計測する前記第一のカウ
ンタ、前記パルス信号の数を計数する前記第二のカウン
タ、前記パルス信号に同期して前記時間を計測する前記
第一のカウンタの値をラッチするレジスタを備え、 前記マイクロコンピュータは、一定サンプリング時間ご
とにソフトウェアにより、前記パルス信号の計数値を示
す前記第二のカウンタの値と前記パルス信号の入力時間
を示す前記レジスタの値を取り込んでモータ速度を計算
するときに、前記第二のカウンタの値と前記レジスタの
値のうち、一つの値を取り込んだ直後に前記パルス信号
が入力されることによって生じる前記パルス信号の計数
値と前記パルス信号の入力時間のずれを補正する処理を
備えたモータ制御装置。 - 【請求項6】請求項2,3または5において、前記マイ
クロコンピュータは、ソフトウェアにより一定サンプリ
ング時間毎に、前記パルス信号の計数値と、前記パルス
信号の入力時間のうち、前記パルス信号の計数値の値の
方から交互に3回または4回の取り込みを行い、始めに
取り込んだ前記パルス信号の計数値とあとから取り込ん
だ前記パルス信号の計数値が同じ値であれば、始めまた
はあとから取り込んだ前記パルス信号の計数値と始めに
取り込んだ前記パルス信号の入力時間からモータ速度を
演算し、始めに取り込んだ前記パルス信号の計数値とあ
とから取り込んだ前記パルス信号の計数値が異なる値で
あれば、あとから取り込んだ前記パルス信号の計数値と
あとから取り込んだ前記パルス信号の入力時間からモー
タ速度を演算するモータ制御装置。 - 【請求項7】請求項2,3または5において、前記マイ
クロコンピュータは、ソフトウェアにより一定サンプリ
ング時間毎に、前記パルス信号の計数値と、前記パルス
信号の入力時間のうち、前記パルス信号の入力時間の方
から交互に3回または4回の取り込みを行い、始めに取
り込んだ前記パルス信号の入力時間とあとから取り込ん
だ前記パルス信号の入力時間が同じ値であれば、始めま
たはあとから取り込んだ前記パルス信号の入力時間と始
めに取り込んだ前記パルス信号の計数値からモータ速度
を演算し、始めに取り込んだ前記パルス信号の入力時間
とあとから取り込んだ前記パルス信号の入力時間が異な
る値であれば、あとから取り込んだ前記パルス信号の入
力時間とあとから取り込んだ前記パルス信号の計数値か
らモータ速度を演算するモータ制御装置。 - 【請求項8】請求項5において、前記パルス信号の数を
計数する前記第二のカウンタの値を前記第二のレジスタ
へラッチするタイミングが、前記パルス信号によって前
記パルス信号の数を計数する前記第二のカウンタの値が
変化した後となるように、前記第二のレジスタへのラッ
チのタイミングを遅らせる回路を設けたモータ制御装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8236151A JPH1080176A (ja) | 1996-09-06 | 1996-09-06 | モータ制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8236151A JPH1080176A (ja) | 1996-09-06 | 1996-09-06 | モータ制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1080176A true JPH1080176A (ja) | 1998-03-24 |
Family
ID=16996524
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8236151A Pending JPH1080176A (ja) | 1996-09-06 | 1996-09-06 | モータ制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1080176A (ja) |
-
1996
- 1996-09-06 JP JP8236151A patent/JPH1080176A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4253372B2 (ja) | エレベータにおける速度制御装置およびエレベータの速度検出プログラムを記録した記録媒体 | |
| JP2690210B2 (ja) | エレベータの速度検出装置 | |
| JP3173174B2 (ja) | 速度検出装置 | |
| JPS5913957A (ja) | 速度検出回路 | |
| JPH1080176A (ja) | モータ制御装置 | |
| EP3679645B1 (en) | Method of controlling a brushless dc motor | |
| JPH061279B2 (ja) | デイジタル式速度検出装置 | |
| JP2002311040A (ja) | 速度検出装置 | |
| JP2941790B1 (ja) | パルス計数器 | |
| JPH11241927A (ja) | 位置検出装置 | |
| JP3248143B2 (ja) | デジタルacサーボ装置 | |
| JP2600975B2 (ja) | 同期電動機の速度制御方式 | |
| JP3055186B2 (ja) | 電動機の瞬時位置・瞬時速度・瞬時加速度検出装置、ならびに瞬時位置値・瞬時速度値・瞬時加速度値を用いた電動機の制御方法 | |
| JP4227352B2 (ja) | 一致検出装置及び方法 | |
| JPH08140383A (ja) | サーボモータの制御装置 | |
| JPH08313548A (ja) | モータ速度検出装置 | |
| KR19990001541A (ko) | 속도검출방법 및 장치 | |
| JP2569071Y2 (ja) | 周波数電圧変換装置 | |
| JPH10260197A (ja) | 速度パルスの検出回路 | |
| JP2000055958A (ja) | デューティ比判定回路及びデューティ比判定方法 | |
| JPH0583978A (ja) | サーボモータの磁極位置検出装置 | |
| JP2001352775A (ja) | 誘導電動機の回転速度検出装置 | |
| JP2000227437A (ja) | 回転速度検出装置 | |
| JPH0786414B2 (ja) | 位置や速度を検出する装置 | |
| JP2891472B2 (ja) | 速度信号検出回路 |