JP3528890B2 - パルス信号発生方法及びパルス信号発生装置 - Google Patents

パルス信号発生方法及びパルス信号発生装置

Info

Publication number
JP3528890B2
JP3528890B2 JP04685696A JP4685696A JP3528890B2 JP 3528890 B2 JP3528890 B2 JP 3528890B2 JP 04685696 A JP04685696 A JP 04685696A JP 4685696 A JP4685696 A JP 4685696A JP 3528890 B2 JP3528890 B2 JP 3528890B2
Authority
JP
Japan
Prior art keywords
pulse
pulses
period
command
pulse width
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.)
Expired - Fee Related
Application number
JP04685696A
Other languages
English (en)
Other versions
JPH09215393A (ja
Inventor
家年 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP04685696A priority Critical patent/JP3528890B2/ja
Publication of JPH09215393A publication Critical patent/JPH09215393A/ja
Application granted granted Critical
Publication of JP3528890B2 publication Critical patent/JP3528890B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Control Of Stepping Motors (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、指定されたパルス
数に対して誤差の少ないパルス信号発生方法及びパルス
信号発生装置に関する。
【0002】
【従来の技術】コンピュータ内に設けられたタイマー又
はカウンタへのデータ設定によって、所望のパルス幅を
有するパルス信号を発生させる方法が知られており、基
本となる周波数のクロック信号をカウントし、カウント
数が設定した数になったときに信号の反転を繰り返すこ
とにより、クロック信号のパルス幅に対して設定数分の
パルス幅を有するパルス信号を発生させることができ
る。
【0003】例えば、パルス(あるいはステッピング)
モータのように、パルス信号を供給することによってそ
の動作をディジタル的に制御することができる制御対象
にあっては、コンピュータ等の計算手段によって、ある
決められたサンプリング周期毎に所望のパルス幅のパル
ス信号を生成することが必要となる。
【0004】図14はそのようなパルス信号の一例を示
すものであり、「Ts」がサンプリング周期を示し、
「tw」はパルス幅(半値幅)を示している。
【0005】指令手段によってサンプリング周期Tsの
間に指示されるパルス数を「nr」とし、その総和を
「Nr」(=Σnr)とすると、指令手段から制御対象に
指示される指令内容はNrにより表される。例えば、制
御対象をパルスモータに特定した場合には、Nrはモー
タに対する位置指令である。
【0006】そして、Tsが一定値であることから分か
るように、パルス幅twを変化させることによってパル
ス数を変えて各種の制御信号を得ることができる。尚、
パルス数の数え方についてはパルスエッジに変化が生じ
た時に1個と計数することにする(つまり、パルスのオ
ン期間とオフ期間を各別に1つと計数するため、オン期
間とオフ期間を含めて1個のパルスとする計数の仕方と
は2倍の違いがあることに注意を要する。)。
【0007】
【発明が解決しようとする課題】ところで、制御対象が
指令通りに動作する場合には何の問題もないが、現実の
制御対象の動作と指令との間には一般に誤差が生じる。
【0008】即ち、サンプリング周期Tsの間の実際の
パルス数(以下、「実パルス数」という。)を「nm
とし、その総和を「Nm」(=Σnm)とすると、nm
rあるいはNm≠Nrである。
【0009】そして、誤差要因の中で基本的なものが、
パルス発生の基本となるクロックパルスの幅が有限であ
ることに起因するものである。
【0010】上述したように、パルス幅twは、基本パ
ルスの幅の整数分として生成されるものであり、基本パ
ルスの精度(これを「δt」とする。)の大小が制御精
度の限界に影響する。
【0011】例えば、あるTs間の実際のnmは、「nm
=Ts/tw」であるが、パルス幅twがtw+δtの場
合の実パルス数(これを「nm′」とする。)は「nm
=Ts/(tw+δt)」となる。
【0012】よって、両者間の誤差を「ε」(=nm
m′)とすると、これは、「ε=Ts/(tw・(tw
+δt)」である。
【0013】例えば、具体的な数値として、Ts=10
000、tw=30、δt=1(これらの時間の単位に
ついては任意であるため、これ以後も時間の単位を省略
する。)を上式に代入すると、ε=10が得られ、よっ
て、このままでは10個未満のパルス数について制御す
ることができない。つまり、nm=323とnm=333
との間にあるパルス数を指定してこれを制御対象に送出
することが原理的に不可能である(何故なら、「100
00/31≒322.58」、「10000/30≒3
33.33」であり、twが整数値であることから、3
0と31との間に整数値を指定することができないから
である。)。
【0014】勿論、このような問題は精度δtを可能な
限り小さくすることでεをゼロに近づけることができる
が、そのためには特別のハードウェアの設計を必要と
し、またソフトウェア処理上の技巧的な手法等を駆使す
る必要があり、δtをゼロにすることは困難である。
【0015】本発明は、整数値で指定されるパルス数を
過不足なく制御するとともに、基本パルスの精度に起因
する誤差の蓄積がパルス総数に悪影響を及ぼさないよう
にすることを課題とする。
【0016】
【課題を解決するための手段】そこで、本発明は上記し
た課題を解決するために、1単位のサンプリング周期だ
け時間的に前に位置する前回の期間において実際に発生
されたパルス数を計数して、そのパルス数の総数を算出
した後、これと前回までの指令パルス数の総数との間の
誤差を計算し、この誤差を今回の期間において指令され
るパルス数に加算し又は減算することにより補正を行っ
て指令に係る新たなパルス数を算出し、この値でサンプ
リング周期を除した場合の商としてパルス幅を算出した
後、商の整数部分によって規定されるパルス幅の設定を
行い、当該パルス幅に対応する数だけ基本パルスを計数
することによってパルス信号を発生させるという過程
を、指令パルス数の総数が所定の指令値になるまで繰り
返すようにしたものである。従って、本発明によれば、
前回の期間におけるパルス数の誤差を今回のパルス数の
指令値に組み込むことによって誤差補償を行い、新たに
算出されたパルス数でサンプリング周期を除した場合の
商の整数部分に対応するパルス幅を算出し設定するとい
う操作をサンプリング周期毎に行っているので、基本パ
ルスの精度に起因する誤差の蓄積が低減される。
【0017】
【発明の実施の形態】図1は本発明に係るパルス発生装
置の機能的な構成を概念的に示すものであり、パルス発
生装置1は、指令手段2、基本パルス発生手段3、カウ
ンタ手段4を備えている。
【0018】カウンタ手段4は、基本パルス発生手段3
によって生成される一定のパルス幅をもった基本パルス
の数を計数するものであり、設定手段5によってパルス
数の設定が行われる。尚、基本パルス発生手段3及びカ
ウンタ手段4を併せるとタイマー手段を構成することか
ら明らかなように、要は、ある基本パルスの幅を整数倍
したパルス幅をもって所望のパルス信号を設定により自
在に生成することができる計時手段又は計数手段であれ
ば、その具体的な構成は問わない。
【0019】指令手段2はパルス数に係る指令信号を誤
差補償手段6を介して設定手段5に送出し、カウンタ手
段4による基本パルスのカウント数が設定値になったと
きに、その出力パルス(そのパルス幅が「tw」であ
る。)を、図示しない制御対象に送出するとともに誤差
補償手段6に送出する。
【0020】指令手段2から設定手段5に送出される指
令通りにカウンタ手段4の出力パルスが生成される場
合、つまり、基本パルスの精度δt=0であってカウン
タ手段4に計数誤差がない場合には、上記誤差補償手段
6は不要であるが、上述したように、精度δtが有限値
であり、所定のサンプリング周期Ts中におけるパルス
数が、Tsをパルス幅twで割ったときの整数値として
指定される場合には、丸めの誤差をなんらかの方法で補
償しない限り、誤差の蓄積がパルス総数に反映されて制
御精度の低下をもたらす原因になる。
【0021】尚、以下の説明に必要な諸量(例えば、上
述したnr、Nr、nm、Nm等を含む。)の定義を下表1
にまとめて示す。
【0022】
【表1】
【0023】本発明に係るパルス発生方法については、
下記に示すように2つの方法が基本的事項とされる。
【0024】1)パルス数に関する丸めの誤差を補償す
る方法 2)パルス幅に関する丸めの誤差を補償する方法。
【0025】先ず、方法1)が必要である理由の1つ
は、パルス数の指令値nrがサンプリング周期Tsを常
に割り切るとは限らないためである(以下、これを「誤
差要因1」という。)。
【0026】即ち、あるnr値を指定したときに、パル
ス幅tw=Ts/nrが常に整数になるとは限らず、一般
には「tw=[Ts/nr]+δ」で表される。但し、記号
[x]は実数xを越えない最大の整数を示すガウス記号で
あり、δは剰余(0≦δ<1)である。よって、δを常
に切り捨てていった場合には、パルス総数が指令値Nr
とはかけ離れた値になってしまうことになる。
【0027】そこで、δの和(Σδ)を計算して、これ
が1を越えたときに、次回のnr値に1を加えて補正す
る方法が考えられるが(つまり、西暦における閏年の計
算法と同じ考え方。)、その補正時期が一定していない
ため、補正の遅れが問題になる場合には用いることがで
きない。
【0028】また、δについて四捨五入を行ってΣδを
平均的にゼロに近づける方法が考えられるが、この方法
も長期的にみた場合にその効果が期待されるものであ
り、従って、所定期間内における誤差を所定値以下にす
る必要がある場合には用いることができない。
【0029】方法1)を必要とするもう一つの理由はパ
ルス数の補償計算や制御対象に係る処理に有限の時間が
かかるためである(以下、これを「誤差要因2」とい
う。)。
【0030】設定手段5によってパルス幅を所望の値に
設定するタイミングとしては、例えば、ソフトウェアに
よるタイマー割込みで行うことができるが、この処理に
多くの仕事をさせることには計算能力上の限界がある。
つまり、パルス幅twが充分に大きい場合には所期の仕
事を実行することができるが、twがある程度小さくな
ると所期の仕事を実行させることができなくなる。
【0031】例えば、制御対象を、モータ及びその制御
系を含む系(以下、「モータ系」という。)に特定し該
モータがパルスモータの場合には、パルス幅twの設定
に要する最低限の仕事内容は、下記に示すようなる。
【0032】(1)指令手段2からの指令値(nr
r)に対応したパルス幅twの計算 (2)パルス数のカウント及びパルス反転 (3)モータの方向制御 (4)モータ励磁モードの選択 (5)実パルス数の総和Nmや誤差εのチェック (6)その他(レジスタの退避、復帰等)。
【0033】このような処理に、例えば、1ミリ秒の時
間を必要とする場合には、twとしてこれ以下のパルス
幅のパルスを発生させることができないことになる。従
って、実パルス数nm=Ts/twの関係から明らかなよ
うに、twの下限値が大きくなることは、nmが小さくな
ることを意味し、モータの最高速度が小さくなるため動
作時間(タクトタイム)の短縮化を図ることが困難にな
る。
【0034】そこで、多重割込みの手法を用いて、
(1)、(4)乃至(6)の仕事を、Ts期間毎の割込
み処理に転嫁させることができるが、その処理に時間Δ
Tsを要する場合には、パルス幅twの確定に遅れが生
じることになる。即ち、図2に示すように、時間的に前
にある期間Tsにおいて設定されたパルス幅(これを「
wp」とする。)が次の期間TsにおけるΔTsの期間
に及んでしまって、新たなパルス幅twをもったパルス
がΔTsの経過後に発生することになるため、Ts間に
パルス幅の異なるパルスが混在してしまい、これがパル
ス数の誤差原因になる。
【0035】本発明に係る補償方法では、現時点を基準
として、その前の期間Tsにおける実パルス数nmを計
数して前回までの実パルス数の総数を計算し、これと前
回までの指令パルス数nrの総数との間の誤差を計算し
て、この誤差を今回の期間における指令パルス数に加算
し又は減算することにより補正を行って指令に係る新た
なパルス数を算出し、この値でサンプリング周期を除し
た場合の商としてパルス幅を算出した後、商の整数部分
によって規定されるパルス幅の設定を行い、当該パルス
幅に対応する数だけ基本パルスをカウンタ手段4により
計数することでパルス信号を発生させる。
【0036】その際、カウンタ手段4による基本パルス
の計数動作を途中で一時的に止めるような操作を禁止す
ることを前提とする。このような操作は処理の複雑化を
招くとともに、誤差のつけ入る隙きを生みだす原因とな
りかねないからである。
【0037】さて、量Xに対して期間Ts毎の値が定め
られる場合に、ある時点における量Xより時間Tsだけ
前の量を、「#X」で表記することにする(つまり、
「#」は時間をTsだけ前にずらす演算子であり、時間
的に一単位前に戻すことを意味する。)と、ある期間T
sにおけるパルス数の指令値nrに対して、これより期
間Tsだけ前の期間におけるパルス数の指令値が「#n
r」であり、また、ある期間Tsにおける実パルス数nm
に対しては、これより期間Tsだけ前の期間における実
パルス数は「#nm」である。
【0038】また、パルス総数Nr、Nmについても、前
回までの総和がそれぞれ「#Nr」、「#Nm」となり、
上記誤差要因1及び2のために、一般に#Nr≠#Nm
ある。
【0039】前回までのパルス総数の誤差「#ε」は下
式のように求めることができる。
【0040】
【数1】
【0041】尚、#εは正又は負の整数値である。
【0042】この前回の誤差について、誤差要因別に具
体的な数値例で示すと、例えば、誤差要因1については
Ts=10000、δt=1、#nr=327とする
と、tw=10000/327≒30.58104とな
り、tw=30又はtw=31のいずれかしか設定するこ
とができない。仮に、tw=31の方を採用すると、実
パルス数は#nm=10000/31≒322.58よ
り#nm=322となり、誤差が#ε=#nm−#nr
−5である。
【0043】また、誤差要因2では、図2においてΔT
s=1000、tw=300とすると、[1000/30
0]=3となる。尚、前回に設定された幅のパルスが次
の期間Tsにおいて期間ΔTsだけズレ込んで来る現象
は、さらにその次の期間Tsにおいても同様に起こるた
め誤差がほぼ相殺されてしまうが、これが常にゼロにな
るという保証はなく、残された誤差分が#εに繰り込ま
れることになる。
【0044】上記[数1]式によって前期間での誤差#
εが求まるので、指令されたパルス数nrに対して誤差
補償後の新たな指令パルス数を「nr *」とすると、これ
は下式のように算出することができる。
【0045】
【数2】
【0046】即ち、期間Ts毎に前回の誤差分を考慮し
てパルス数の指令値を、常に更新していけば、実パルス
数の総数Nmをパルス指令の総数Nrに近づけることがで
きる。
【0047】よって、前回の誤差#εを常時監視して、
これがゼロでない整数値であれば、指令パルス数nr
ゼロであっても、nr *=#εとしてパルス総数について
過不足が生じないようにしなければならない。
【0048】尚、[数2]式によって求められたnr *
らパルス幅twを算出するには、例えば、下式[数3]
のように小数部の四捨五入を意味する関数round
(x)を用いたり、あるいは、計算手段が浮動小数点計
算機能をもっていない場合には下式[数4]のように小
数部を切り捨てれば良い。
【0049】
【数3】
【0050】
【数4】
【0051】これらの式から分かるように、nr *が大き
い場合には、異なるnr *値に対して同じ値のtw値が対
応することになり、前回誤差#εが今回のtw値に反映
されない場合が発生するが、この場合には今回の誤差ε
が大きくなってこれが次回においてtw値に反映される
ことになるので、結果として誤差が補償されることにな
る。
【0052】また、[数3]式や[数4]式で求まるパ
ルス幅twへの設定変更については、この計算直後に行
っても良いし、次の期間Tsの到来まで待って当該期間
Tsの開始時点から行っても良い。
【0053】尚、前回の誤差#εが、今回算出されたn
r *によって完全に補償されるとは限らないという問題が
残される。つまり、nr *の示す整数値がつねに実現可能
である場合には問題ないが、これが実現可能でない場合
(例えば、前記のした数値例、Ts=10000、tw
=30、δt=1において、nr *が322乃至333の
間の数(nr *=327等)となってしまった場合。)に
は誤差が残ってしまい、その蓄積の影響を何等かの方法
によって排除する必要がある。
【0054】この誤差の補償を期間Tsにおけるパルス
幅の変化に反映させるのが上記した方法2)であり、下
記の2方法を挙げることができる。
【0055】2−1)パルス幅の差が基本パルスの精度
δtである2種類のパルスの個数をそれぞれ計算して期
間Ts内に配置する方法 2−2)誤差の蓄積が所定値以上になったときに、後続
パルスのパルス幅を変化させる方法。
【0056】先ず、方法2−1)については、上記誤差
要因1によって、指令パルス数に対して、パルス幅tw
のパルスとパルス幅tw+δtのパルスがあり得るの
で、これらの個数を予め求めておいて期間Tsの間に適
宜に配列させることで誤差をパルス幅の変化に織り込ん
で分散させる方法であり、パルス幅を異にするパルスを
期間Tsにおいて規則的に配列させる方法と不規則に配
列させる方法がある。
【0057】前者について説明すると、例えば、図3に
示すように、期間Tsにおいて時間的に前の期間(これ
を「Ts1」とする。)にパルス幅tw1のパルスをn1
個配置し、後ろ側の期間(これを「Ts2」とする。)
にパルス幅tw2(=tw1+δt)のパルスをn2個配置
する。
【0058】このとき、時間tをδtによって規格化
し、δtを単位とする時間軸を考えれば(つまり、この
場合にはδt=1とおける。)、下式[数5]に示す関
係が成立する。
【0059】
【数5】
【0060】上式の第1式、第2式はそれぞれパルス
数、期間についての等値関係を示し、また、第3式、第
4式はパルス幅に関する定義式である。
【0061】[数5]式を満足するn1やn2が常に存
在することを示すには、[数5]式の第1、3、4式を
第2式に代入した式を変形した下式[数6]と、下式
[数7]とに基づいてn1、n2を求めれば良く、これ
によって下式[数8]が得られるので、Tsが整数値で
あれば任意のnr(これも整数値である。)に対してn
1、n2が正の整数として求まることが分かる。
【0062】
【数6】
【0063】
【数7】
【0064】
【数8】
【0065】具体的な数値例を挙げると、Ts=100
00、nr=77の場合には、tw1=[10000/7
7]=129、n1=77・(129+1)−1000
0=10、n2=10000−77・129=67であ
り、tw1=129、tw2=130となる。
【0066】尚、このようにパルス幅の異なる2種類の
パルスを期間Tsの前半と後半とにそれぞれ振り分ける
方法には、上記期間Ts1とTs2とを逆転させる方法
も含まれるが、いずれにしてもパルスの配列に規則性が
生まれるため、このような規則性が制御対象に対して及
ぼす悪影響(例えば、モータ系では定速回転時における
トルクの微小変動等)が問題となる場合には、パルスを
期間Tsにおいて不規則に配列させる方法を用いること
が好ましい。
【0067】例えば、乱数を用いて、図4に示すように
パルス幅tw1のn1個のパルスと、パルス幅tw2のn2
個のパルスをTs期間内でランダムに配置したり、ま
た、図5に示すように(但し、これはn1>n2の場
合。)、期間Tsにおけるパルスのオン期間がtw1であ
り、期間Tsの前半におけるn2個のパルスのオフ期間
がtw2となるように配置することができる。つまり、前
者の配置によれば、パルス幅が時間軸方向に沿って不規
則になり、後者の配置では、パルスのオフ期間の数が不
規則となる。尚、このような例がほんの一例にすぎない
ことは、n1個の幅tw1とn2個の幅tw2を、幅の同じ
ものについて区別することなく期間Tsに亘って配列さ
せる場合の数に相当する組み合わせが存在することから
明らかである。
【0068】次に方法2−2)について説明する。
【0069】図6は、誤差補償処理の流れをシグナルフ
ロー線図によって示したものであり、この方法は、δt
=1としたとき、tw=[Ts/nr]+δ(0≦δ<1)
において、Σδ<1の場合にはパルス幅をtwとし、Σ
δ≧1になったときにパルス幅をtw+1としてパルス
幅を変化させる方法である。
【0070】即ち、入力ノードTsをnrで割ったTs
/nrのノードを分岐点として、その一方の信号がガウ
ス記号[ ]に示す小数部に切り捨て処理を介してノード
wに到達し、また、他方の信号が「mod()」に示
す剰余算出処理を介してノードmod(Ts/nr)に
達した後、ループで示す積分又は積和処理を経た後、ノ
ードαからガウス記号[ ]に示す小数部の切り捨て処理
を介してノードβに到達する。そして、ノードβにおい
て2つのその一方の信号が、「+」で示す加算処理後に
ノードtwに到達し、また、他方の信号が「−」に示す
減算処理を経てノードαに戻される。つまり、ノードT
s/nrからノードtwに向かう本線に対して、枝線では
丸めの誤差を積算したもの、つまり上記Σδがノードα
に得られ、これが1未満の場合にはノードβにゼロが得
られ本線のtwへの影響はないが、Σδが1以上になっ
た場合にはノードβに得られる1が本線のtwに加算さ
れてtw+1となる。尚、Σδ≧1の場合には、桁上り
によってパルス幅に加算される1について、これをΣδ
から引いておく必要があり、これがノードβからノード
αに戻る枝線である。
【0071】図7は方法2−2)によってTs間のパル
ス幅が変化する様子の一例を示すものであり、パルスの
オン期間又はオフ期間における幅がtw+1である期間
に、上記した補償計算の結果が反映される。
【0072】結局のところ、上記方法2−1)と方法2
−2)とを比較すると、期間Ts内におけるパルス幅の
配列の仕方が異なっているだけであり、この事は、tw1
のパルス幅をもつn1個のパルス及びtw2のパルス幅を
もつn2個のパルスが期間Tsに亘って配列されている
ことと、期間Tsにおけるパルス幅tw1のパルスのオン
期間及びオフ期間の個数がn1であり、パルス幅tw2
パルスのオフ期間及びオン期間の個数がn2であること
とが、パルス及びパルス幅の並び順(つまり、順列)を
無視した場合に本質的に等価であることから明らかであ
る。
【0073】しかして、方法1)及び方法2)をまとめ
ると下記にa)乃至f)に示すようになる。
【0074】a)前回の期間Tsにおける実パルス数n
mを計数してこれまでの実パルス数の総数#Nmを算出す
る b)前回までの指令パルス数の総数#Nr及びa)の#
mから誤差#εを計算する c)今回の指令パルス数nr(=Nr−#Nr)に対して
誤差#εによる補正を行い、nr *を求める d)nr *からパルス幅twを算出して設定する e)期間Tsにおけるパルスを生成する(パルス幅の変
化を含む。) f)指令パルスの総数Nrについてa)乃至e)を繰り
返す。
【0075】図8及び図9は処理の流れを示すフローチ
ャート図であり、ステップS1において指令パルス数の
総数Nrを格納した後、ステップS2で指令パルス数nr
からパルス幅twを算出する。そして、ステップS3で
パルスの設定を行い、期間Tsにおけるパルスを生成す
る。尚、ステップS1及びS2については、未だ誤差補
償を行う必要がないので、図1における指令手段2のみ
によって行われ、また、ステップS3の処理は、指令手
段2から設定手段5を介してカウンタ手段4にパルス数
を設定することによって実行される。
【0076】ステップS4では、Ts期間における実パ
ルス数nmが計数され、次ステップS5において期間T
sが経過したか否かの条件分岐がなされ、期間Tsが経
過した場合にステップS6に進み、期間Tsの経過前で
あればステップS4に戻る。
【0077】ステップS6では、前回までの指令パルス
数や実パルス数の総数#Nr、#Nmの計算がなされた
後、次ステップS7において、これらから前回の誤差#
ε(=#Nm−#Nr)が計算される。
【0078】そして、ステップS8において指令パルス
数nr(=Nr−#Nr)の算出及び、これに対する誤差
補償計算によって補正された指令パルス数nr *(=nr
+#ε)の計算が行われる。
【0079】ステップS9では、nr *からパルス幅tw
を算出してカウンタ手段4に設定する。上記ステップS
4からこのステップS9までの処理を行っているのが、
図1における誤差補償手段6であり、誤差補償手段6か
ら設定手段5を介してカウンタ手段4に設定されるカウ
ント数によってパルス幅twが規定される。尚、上記し
た方法2)に係る計算、つまりパルス幅tw1、tw2の個
数n1、n2の計算や、誤差蓄積に係るパルス幅の1単
位の繰り上げ計算等が、パルス幅の算出に際して行われ
る。
【0080】そして、ステップS10において、カウン
タ手段4の計数動作によってパルスが生成され、次ステ
ップS11でNrに係る指令が終了したか否かを判断
し、Nr=#Nrであれば最初のステップS1に戻り、そ
うでなければステップS4に戻る。
【0081】しかして、上記した方法1)により期間T
s毎のパルス数を補償し、方法2)によって、期間Ts
内のパルス幅の補償を行うことによって、カウント手段
の計数動作を途中で停止させることなく、誤差要因1、
2に起因する生成パルスの誤差を低減することができ
る。尚、方法2)のみを採用する場合には、その性質上
期間Tsによる時間の区切りのタイミングにおいて何等
かの理由(例えば、ソフトウェア上の計算時間や基本パ
ルスの揺らぎ、外来ノイズ等)によって1パルス程度の
誤差が付きまとうものと考えられるが、このような予測
不能な誤差を方法1)によって除去することで、相乗的
な誤差低減の効果を得ることができる。
【0082】
【実施例】図10乃至図13は、パルスモータ及びその
制御系を制御対象とした装置に、本発明に係るパルス信
号発生装置を適用した実施の一例を示すものである。
【0083】図10は装置の全体的な構成を概略的に示
すものであり、高レベル言語による処理等を受け持つ主
計算機7と、パルスモータ8の制御に係る制御用計算機
9とから構成されており、ホストコンピュータである前
者に対して、後者にはタイマー又はカウンタを有するコ
ンピュータが用いられる。
【0084】図11は制御用計算機9のうちパルス信号
発生部を中心とした構成を示すものであり、内部データ
バス10に対してCPU(中央演算装置)11が接続さ
れるとともに、データ設定用レジスタ12が接続されて
おり、該データ設定用レジスタ12の内容が比較/更新
用レジスタ13に転送される。
【0085】クロック信号発生部14の出力する基本ク
ロック信号は、カウンタ15に送出され、ここで計数動
作が行われるようになっており、カウンタ15の出力は
一致検出部16に送出される。
【0086】一致検出部16は、上記比較/更新用レジ
スタ13の内容とカウンタ値とを比較するコンパレータ
により構成されており、両者の値が一致した場合のパル
ス信号をモータの制御回路に送出したり、タイマー割込
み信号を発生させるとともに、比較/更新用レジスタ1
3の内容をデータ設定用レジスタ12による次の設定内
容に更新したり、また、カウンタ15のクリアを行う。
尚、データ設定用レジスタ12の内容が比較/更新用レ
ジスタ13に転送される時点は、一致検出部16により
比較/更新用レジスタ13値とカウンタ値との一致した
ことを示す一致信号が比較/更新用レジスタ13に送ら
れたときである。
【0087】前記した図1の構成との対応関係において
は、CPU11が指令手段2、誤差補償手段6に相当
し、データ設定用レジスタ12、比較/更新用レジスタ
13が設定手段5に相当し、クロック信号発生部14が
基本パルス発生手段3に、そして、カウンタ15及び一
致検出部16がカウンタ手段4にそれぞれ相当してい
る。
【0088】本実施例におけるパルス信号の発生につい
ては、下記に示す2種類の割込み処理によって行われ
る。
【0089】(I)パルスエッジ毎の割込み (II)サンプリング周期毎の割込み。
【0090】先ず、(I)の割込み処理は、パルスの立
ち上がりや立ち下がりのエッジ毎に行なわれるものであ
り(以下、「tw割込み」という。)、当該処理につい
ては下記の2事項を基本とする。
【0091】(I−a)処理時間が極力短いこと つまり、処理時間を「Δtw」とすると、Δtwの値がパ
ルス信号の最小幅を規定し、パルス信号の最高周波数、
延いてはモータの最高速度を決定することになるため、
Δtwができるだけ小さいことが望ましい。
【0092】従って、この処理においては、レジスタ値
の退避や復帰等を行わずに、必要最小限度の仕事に抑え
ることが好ましい。
【0093】(I−b)多重割込みの禁止 これは、Δtwの値が変動しないようにすること、そし
て、Δtwを極力小さくするための事項である。
【0094】これらの2事項を考慮して、tw割込みに
係る処理は、図12のフローチャート図に示すように、
ステップSt1におけるパルス反転、次ステップSt2
におけるTs間でのパルスエッジのカウントのみであ
る。但し、パルスエッジのカウントについてはモータの
回転方向を加味する必要がある。
【0095】次に、(II)サンプリング周期Ts毎に
発生される割込み(以下、「Ts割込み」という。)に
ついて説明する。
【0096】Ts割込みでの主な仕事は下記に示す通り
である。
【0097】(II−1)前回の期間Tsにおける実パ
ルス数(#nm)の計数 (II−2)tw割込みに対する多重割込みの許可 (II−3)モータに係る位置(正確には位相角)の計
算 (II−4)前回誤差(#ε)の計算 (II−5)今回の期間Tsにおける指令パルス数(n
r *=nr+#ε)の算出 (II−6)パルス幅twの算出及び設定 (II−7)モータの励磁モードの選択及び制御 (II−8)モータの回転方向の判断及び制御。
【0098】Ts割込みに係る処理時間を「ΔTTs」
とすると、これはtw割込みに係る処理時間Δtwに比し
て長いものである。尚、これらのうちTs割込みの開始
から(II−2)までの所要時間を「Δts」とする
と、これが本発明における原理上の誤差要因である。
【0099】先ず、(II−1)の内容は、上記tw
込みにおいてカウントされているパルス数nmを所定の
バッファ等に複写して、これを前回の期間Tsでの実パ
ルス数として格納しておき、その直後にnmをクリア
し、今回の期間Tsにおける実パルス数の計数の準備を
整えるというものである。つまり、これによって前回の
#nmを正確に計数し、前回誤差#εの計算の前処理と
する。
【0100】次の(II−2)における割込みの許可
は、Ts割込みに入ったときにtw割込みがCPU11
の機能上拒否されるため、(II−1)の処理後にtw
割込みを許可する。
【0101】(II−3)では前回までの実パルス数#
mを計算する。
【0102】そして、(II−4)については、前記
[数1]式について説明した通りであり、前回の誤差#
εが計算され、(II−5)における指令パルス数(n
r *)については[数2]式での説明から明らかである。
【0103】(II−6)は、図9のステップS9に係
る処理に相当し、ここで上記[数8]式等や方法2)に
係るパルス幅の制御に関する計算が行われるとともに、
算出されたパルス幅に相当する設定値が、データ設定用
レジスタ12に設定される。
【0104】(II−7)のモータの励磁モード(例え
ば、マイクロステップ励磁モード等)については、指令
情報が主計算機7から制御用計算機9に送られてくるの
でこれに従った制御が必要となる。尚、この制御につい
ては、処理時間に余裕があれば制御用計算機9側で行っ
ても良い。
【0105】また、(II−8)については、モータの
回転方向に係る情報が主計算機7からの直接的な指令あ
るいは指令パルス数nrに係る正負の符号情報として制
御用計算機9に送られてくるため、該指令に従って回転
方向の正逆についての判断処理や制御を行う。尚、この
方向制御は、tw割込みにて行う必要がある場合も時と
して生じるが、上述した様に処理時間Δtwの短縮化の
観点からはできるだけTs割込みで処理することが好ま
しい。
【0106】図13はTs割込みに係る処理の流れを簡
略化して示すものであり、一連の処理の所要時間がΔT
Tsであり、割込み開始からステップS3の実行直後ま
で所要時間がΔtsである。
【0107】先ず、ステップST1においてレジスタや
フラグの値を退避するが、これらの格納番地は割込み許
可に係るコマンドの占有番地以後に置くことがΔtsの
短縮化にとって望ましい。
【0108】次ステップST2において前回の期間Ts
における#nmを確保した後、今回のカウントに備えて
mをゼロにクリアする。
【0109】そして、ステップST3においてtw割込
みに対する許可を与えた後、次ステップST4で、主計
算機7からの指令値Nrを制御用計算機9が受け取る。
尚、このとき、指令値に係る前回値#Nrをバッファ等
に一時的に記憶しておく。
【0110】ステップST5では、ステップST2にお
ける#nmから#Nm、つまり、前回の期間Tsまでにモ
ータが実際に回転した位置に係る計算を行った後、次ス
テップST6で誤差#ε、つまり前回に発生したモータ
位置の誤差を計算した後、ステップST7で今回の期間
Tsにおける指令パルス数nr *を算出する。
【0111】そして、ステップST8でのパルス幅計算
の後に、ステップST9でパルス幅の設定を行う。
【0112】ステップST10ではモータの励磁モード
や回転方向の指令(但し、回転方向についてはtw割込
みで行う場合がある。)を含む処理を行った後、次ステ
ップST11においてステップST1で退避したレジス
タやフラグ値を戻す。
【0113】尚、明らかに「ΔTTs<Ts」であり、
また、Δtsは前回の期間Tsで設定されたパルス幅の
パルスが今回の期間Tsの初期に食い込んでいる期間で
ある(つまり、Ts割り込みの開始後もこのΔts中に
は前回のtw値のパルス幅をもったパルスが引き続き発
生している。)ことに注意を要する。
【0114】しかして、カウンタ15の計数動作を途中
で停止させることなく、上記誤差要因1、2に起因する
誤差を補償することによって、パルスモータ8の脱調等
を惹き起こすことのないパルス信号を発生させ、モータ
の制御精度を充分に保証することができ、しかも、その
ために構成の複雑化や技巧的な処理に頼ることなくアル
ゴリズムの明確化を図ることができる。
【0115】
【発明の効果】以上に記載したところから明らかなよう
に、請求項1や請求項3に係る発明によれば、前回の期
間におけるパルス数の誤差を今回のパルス数の指令値に
組み込むことによって誤差補償を行い、新たに算出され
たパルス数でサンプリング周期を除した場合の商の整数
部分に対応するパルス幅を算出して設定するという操作
をサンプリング周期毎に行っているので、基本パルスの
精度に起因する誤差及びその蓄積が実際のパルス総数に
与える悪影響を低減することができ、整数値で指定され
るパルス数に対して過不足がないか又は誤差の少ないパ
ルス信号の制御が可能となる。
【0116】また、請求項2や請求項4に係る発明によ
れば、一のサンプリング周期におけるパルスをパルス幅
の異なる2種類のパルスによって構成することで、誤差
補償後の新たなパルス数が基本パルスの精度上実現不可
能な整数値であった場合に残される誤差を2種類のパル
スのパルス幅に分散させることで、誤差の蓄積を防ぐこ
とができる。
【図面の簡単な説明】
【図1】本発明に係るパルス信号発生装置の構成を示す
図である。
【図2】誤差要因2についての説明図である。
【図3】期間Tsを2つの期間Ts1、Ts2に区分け
してパルス幅の異なる2種類のパルスをそれぞれの期間
に配列させる方法について説明するための図である。
【図4】期間Tsにおいてパルス幅の異なる2種類のパ
ルスを乱数的に配列させる方法について説明するための
図である。
【図5】期間Tsの前半にパルスのオン期間とオフ期間
の幅を異ならせたパルスを配列させる方法について説明
するための図である。
【図6】図7とともに誤差の蓄積が所定値以上になった
ときに後続パルスのパルス幅を変化させる方法について
説明するため図であり、本図はシグナルフロー線図であ
る。
【図7】パルス幅の変化例を示す図である。
【図8】図9とともにパルス信号発生の処理の流れを示
すフローチャート図であり、本図はその前半部を示す。
【図9】フローチャート図の後半部を示す。
【図10】図11乃至図13とともに本発明の実施の一
例を示すものであり、本図は装置の概要を示す図であ
る。
【図11】要部の構成を示す図である。
【図12】tw割込みの処理例を示すフローチャート図
である。
【図13】Ts割込みの処理例を示すフローチャート図
である。
【図14】パルス信号を示す図である。
【符号の説明】
1…パルス信号発生装置、2…指令手段、3…基本パル
ス発生手段、4…カウンタ手段、3、4…タイマー手
段、5…設定手段、6…誤差補償手段

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 単位時間の整数倍の値を有するサンプリ
    ング周期でもって時間軸を標本化を施すことによって得
    られる離散化された期間毎にパルス数の指令が与えられ
    た場合に、基本パルスのパルス幅に対してその整数倍の
    パルス幅をもったパルス信号をサンプリング周期毎に生
    成するパルス信号発生方法において、 イ)1単位のサンプリング周期だけ時間的に前に位置す
    る前回の期間において実際に発生されたパルス数を計数
    して、そのパルス数の総数を算出した後、 ロ)前回までの指令パルス数の総数と、イ)で算出した
    パルスの総数との間の誤差を計算し、 ハ)今回の期間において指令されるパルス数に対して
    ロ)の誤差を加算又は減算することにより補正を行い、
    指令に係る新たなパルス数を算出し、 ニ)ハ)で算出されたパルス数でサンプリング周期を除
    した場合の商としてパルス幅を算出した後、商の整数部
    分によって規定されるパルス幅の設定を行い、 ホ)ニ)で設定されたパルス幅に対応する数だけ基本パ
    ルスを計数することによってパルス信号を発生させ、 ヘ)指令パルス数の総数が所定の指令値になるまでサン
    プリング周期毎にイ)乃至ホ)を繰り返すようにしたこ
    とを特徴とするパルス信号発生方法。
  2. 【請求項2】 請求項1に記載のパルス信号発生方法に
    おいて、 ニ)のパルス幅の算出及び設定にあたって、以下の条
    件、 1)単位時間の整数倍の値を有し、かつパルス幅の異な
    る2種類のパルスによって一のサンプリング周期におけ
    るパルス信号が構成されていること、 2)2種類のパルスについてはパルス幅の差が基本パル
    スの精度に相当する幅だけ異なっていること、 3)2種類のパルスについての個数の和が、ハ)におい
    て算出されたパルス数に等しいこと、 4)パルス幅にパルス数を掛けたものを2種類のパルス
    について合計したものがサンプリング周期に等しいこ
    と、 を満足するパルスを一のサンプリング周期において規則
    的又は不規則に配列させるようにしたことを特徴とする
    パルス信号発生方法。
  3. 【請求項3】 単位時間の整数倍の値を有するサンプリ
    ング周期でもって時間軸を標本化を施すことによって得
    られる離散化された期間毎にパルス数の指令が与えられ
    た場合に、基本パルスのパルス幅に対してその整数倍の
    パルス幅をもったパルス信号をサンプリング周期毎に生
    成するパルス信号発生装置において、 サンプリング周期毎のパルス数及びその総数に係る指令
    を発する指令手段と、 基本パルスを発生する基本パルス発生手段及び基本パル
    スを計数するカウンタ手段又はこれらに等価なタイマー
    手段と、 カウンタ手段又はタイマー手段に対して基本パルスの計
    数値の設定を行う設定手段と、 1単位のサンプリング周期だけ時間的に前に位置する前
    回の期間において実際に発生されたパルス数を計数して
    そのパルス数の総数を算出した後、これと指令パルス数
    の総数との間の誤差を求めるとともに、該誤差を今回の
    期間において指令手段から指令されるパルス数に加算し
    又は減算することにより補正を行って指令に係る新たな
    パルス数を算出し、該パルス数でサンプリング周期を除
    した場合の商としてパルス幅を算出した後、商の整数部
    分を計数設定値として設定手段に送出する誤差補償手段
    とを備えたことを特徴とするパルス信号発生装置。
  4. 【請求項4】 請求項3に記載のパルス信号発生装置に
    おいて、 誤差補償手段から設定手段に送出される計数設定値によ
    り、以下の条件、 1)単位時間の整数倍の値を有し、かつパルス幅の異な
    る2種類のパルスによって一のサンプリング周期におけ
    るパルス信号が構成されていること、 2)2種類のパルスについてはパルス幅の差が基本パル
    スの精度に相当する幅だけ異なっていること、 3)2種類のパルスについての個数の和が、誤差補償手
    段によって算出される補正後の指令パルス数に等しいこ
    と、 4)パルス幅にパルス数を掛けたものを2種類のパルス
    について合計したものがサンプリング周期に等しいこ
    と、 を満足するパルスが一のサンプリング周期において規則
    的又は不規則に配列されるようにしたことを特徴とする
    パルス信号発生装置。
JP04685696A 1996-02-09 1996-02-09 パルス信号発生方法及びパルス信号発生装置 Expired - Fee Related JP3528890B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04685696A JP3528890B2 (ja) 1996-02-09 1996-02-09 パルス信号発生方法及びパルス信号発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04685696A JP3528890B2 (ja) 1996-02-09 1996-02-09 パルス信号発生方法及びパルス信号発生装置

Publications (2)

Publication Number Publication Date
JPH09215393A JPH09215393A (ja) 1997-08-15
JP3528890B2 true JP3528890B2 (ja) 2004-05-24

Family

ID=12758990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04685696A Expired - Fee Related JP3528890B2 (ja) 1996-02-09 1996-02-09 パルス信号発生方法及びパルス信号発生装置

Country Status (1)

Country Link
JP (1) JP3528890B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291233B2 (en) 2017-02-08 2019-05-14 Omron Corporation Control system and pulse output device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004153813A (ja) * 2002-10-09 2004-05-27 Fuji Electric Fa Components & Systems Co Ltd パルス発生装置、パルス発生方法、制御プログラム、並びに、記憶媒体
KR100597736B1 (ko) * 2004-05-18 2006-07-07 삼성전자주식회사 펄스 발생방법 및 펄스 발생장치와, 이를 이용하는모터제어시스템
JP6142567B2 (ja) * 2013-02-22 2017-06-07 ノーリツプレシジョン株式会社 パルスモータ駆動装置およびパルスモータ駆動方法
JP6517624B2 (ja) * 2015-07-17 2019-05-22 三喜電機株式会社 パワーエレクトロニクス回路用の高電圧回路のスイッチング素子開閉制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291233B2 (en) 2017-02-08 2019-05-14 Omron Corporation Control system and pulse output device

Also Published As

Publication number Publication date
JPH09215393A (ja) 1997-08-15

Similar Documents

Publication Publication Date Title
US8909961B2 (en) Method and apparatus for adjusting power consumption level of an integrated circuit
JP3528890B2 (ja) パルス信号発生方法及びパルス信号発生装置
EP2849024A1 (en) Power consumption management system and method
US8829712B2 (en) Method and apparatus for controlling a supply current for a circuit or a plurality of circuit blocks
JPS61246840A (ja) 情報処理装置の性能調整方式
KR20030017527A (ko) 프로그램가능한 주파수 분주기 및 이를 포함하는마이크로프세서 시스템
JP3312648B2 (ja) パルス信号発生装置及びパルス信号発生方法
US7584156B2 (en) Method and apparatus for estimating the refresh strategy or other refresh-influenced parameters of a system over its life cycle
JPH0844594A (ja) データ処理装置
JP3188976B2 (ja) 印字制御装置及び方法
JPH0748955B2 (ja) Pwmインバータ制御方法および装置
JP2009067031A (ja) 画像形成装置、画像形成システムおよび画像形成プログラム
JP2001195265A (ja) ジョブスケジューリング方法及び記録媒体
JPH07301685A (ja) クロック回路
JP2005333792A (ja) パルス発生方法及びパルス発生装置、並びにこれを利用するモータ制御システム
JP3815238B2 (ja) モータの回転制御方法
JP3302907B2 (ja) Pwm出力制御回路
JP3048962B2 (ja) 時間測定方法及び時間測定システム
JPH04143816A (ja) 時間計測方式
JP2001166954A (ja) 仮想計算機装置および仮想計算機装置の制御方法
JP5267204B2 (ja) 印刷装置
JP2008077184A (ja) 割り込み制御回路
JP2006345511A (ja) Pll制御のためのシステム及び方法
JP2805894B2 (ja) ソフトウェアタイマの校正方式
JP2002318713A (ja) Cpu占有時間測定方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20031226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040217

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080305

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090305

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100305

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100305

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110305

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120305

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees