JPH0241764B2 - - Google Patents
Info
- Publication number
- JPH0241764B2 JPH0241764B2 JP14851984A JP14851984A JPH0241764B2 JP H0241764 B2 JPH0241764 B2 JP H0241764B2 JP 14851984 A JP14851984 A JP 14851984A JP 14851984 A JP14851984 A JP 14851984A JP H0241764 B2 JPH0241764 B2 JP H0241764B2
- Authority
- JP
- Japan
- Prior art keywords
- integer
- shift register
- bit
- shift
- contents
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Numerical Control (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、整数の平方根の3倍の近似値を、簡
単且つ高速に発生させる関数発生装置に関する。
単且つ高速に発生させる関数発生装置に関する。
本発明は、例えばロボツト等のサーボ制御等に
おいて、目標位置に制御対象の位置を追従させる
様な制御に好適に利用される。
おいて、目標位置に制御対象の位置を追従させる
様な制御に好適に利用される。
一定の加速度で制御対象を移動させる場合、制
御対象の速度はその位置の平方根に比例する。制
御対象の位置はエンコーダ等で読取ることができ
るが、速度は読取つた位置を示す整数値に基づい
て平方根を計算することにより得られる。この計
算の精度は高くなくてもよいが、リアルタイムで
目標位置の数値を発生させるために高速性が要求
される。
御対象の速度はその位置の平方根に比例する。制
御対象の位置はエンコーダ等で読取ることができ
るが、速度は読取つた位置を示す整数値に基づい
て平方根を計算することにより得られる。この計
算の精度は高くなくてもよいが、リアルタイムで
目標位置の数値を発生させるために高速性が要求
される。
従来、上記の平方根の計算のために、特別の高
速動作をするハードウエアを用いたり、あるい
は、前もつて計算された平方根を関数テーブルに
記憶させていた。
速動作をするハードウエアを用いたり、あるい
は、前もつて計算された平方根を関数テーブルに
記憶させていた。
しかしながら、高速動作をする特別のハードウ
エアを用意することにより、装置全体の価格が高
くなるという問題がある。また、関数テーブルに
記憶させるためには、大容量のメモリが必要にな
り、やはり装置価格が高くなるとともに、装置規
模が大きいという問題がある。
エアを用意することにより、装置全体の価格が高
くなるという問題がある。また、関数テーブルに
記憶させるためには、大容量のメモリが必要にな
り、やはり装置価格が高くなるとともに、装置規
模が大きいという問題がある。
本発明の目的は、上記従来技術における問題に
鑑み、汎用のマイクロプロセツサを用いて高速に
整数のべき乗値を計算することにより、その整数
の平方根の3倍の近似値を、小規模のハードウエ
アで、且つ高速に得ることができる関数発生装置
を提供することにある。
鑑み、汎用のマイクロプロセツサを用いて高速に
整数のべき乗値を計算することにより、その整数
の平方根の3倍の近似値を、小規模のハードウエ
アで、且つ高速に得ることができる関数発生装置
を提供することにある。
上記の問題点を解決するために、本発明により
提供されるものは、初期状態で所与の整数を格納
し、第1の周期で与えられる第1のシフト指令信
号に応じて整数を下位ビツト方向に1ビツトずつ
シフトする第1のシフトレジスタ、初期状態で整
数と同値の整数を格納し、第1の周期の2倍の周
期で与えられる第2のシフト指令信号に応じて整
数を下位ビツト方向に1ビツトずつシフトする第
2のシフトレジスタ、初期状態で整数2を格納
し、第2のシフト指令信号に応じて整数2を上位
ビツト方向に1ビツトずつシフトする第3のシフ
トレジスタ、第1のシフトレジスタの内容が零に
なつたことを検出する零判定回路、及び、零判定
回路の検出出力に応じて、該第2のシフトレジス
タの内容と第3のシフトレジスタの内容とを加算
する加算回路を具備し、該加算回路の出力に、初
期状態での所与の整数の平方根の3倍の近似値を
得るようにした関数発生装置である。
提供されるものは、初期状態で所与の整数を格納
し、第1の周期で与えられる第1のシフト指令信
号に応じて整数を下位ビツト方向に1ビツトずつ
シフトする第1のシフトレジスタ、初期状態で整
数と同値の整数を格納し、第1の周期の2倍の周
期で与えられる第2のシフト指令信号に応じて整
数を下位ビツト方向に1ビツトずつシフトする第
2のシフトレジスタ、初期状態で整数2を格納
し、第2のシフト指令信号に応じて整数2を上位
ビツト方向に1ビツトずつシフトする第3のシフ
トレジスタ、第1のシフトレジスタの内容が零に
なつたことを検出する零判定回路、及び、零判定
回路の検出出力に応じて、該第2のシフトレジス
タの内容と第3のシフトレジスタの内容とを加算
する加算回路を具備し、該加算回路の出力に、初
期状態での所与の整数の平方根の3倍の近似値を
得るようにした関数発生装置である。
整数xが22jと22j+2の間にあることを零判定回
路が判定し、その時のy=3√の近似値x/
22j+22j+1の第1項は第2のシフトレジスタに存
在しており、第2項は第3のシフトレジスタに存
在しており、加算回路によつて上計近似値が演算
される。
路が判定し、その時のy=3√の近似値x/
22j+22j+1の第1項は第2のシフトレジスタに存
在しており、第2項は第3のシフトレジスタに存
在しており、加算回路によつて上計近似値が演算
される。
以下、本発明の実施例を図面によつて説明す
る。
る。
第1図は本発明の一実施例による関数発生装置
を示すブロツク図である。同図において、初期状
態で整数xが右シフトレジスタ1及び2に格納さ
れ、整数2が左シフトレジスタ3に格納される。
右シフトレジスタ1の内容は、周期T1のシフト
指令信号C1の各クロツク信号に応じて1ビツト
ずつ下位ビツト方向にシフトされる。下位ビツト
方向への1ビツトのシフトは、シフトレジスタの
内容に1/2を乗ずることと等価であるので、シフ
ト指令信号C1の2j番目のクロツク信号によるシフ
トの後には、シフトレジスタ1の内容はx/22j
となつている。
を示すブロツク図である。同図において、初期状
態で整数xが右シフトレジスタ1及び2に格納さ
れ、整数2が左シフトレジスタ3に格納される。
右シフトレジスタ1の内容は、周期T1のシフト
指令信号C1の各クロツク信号に応じて1ビツト
ずつ下位ビツト方向にシフトされる。下位ビツト
方向への1ビツトのシフトは、シフトレジスタの
内容に1/2を乗ずることと等価であるので、シフ
ト指令信号C1の2j番目のクロツク信号によるシフ
トの後には、シフトレジスタ1の内容はx/22j
となつている。
右シフトレジスタ2の内容は、周期T1の2倍
の周期T2をもつシフト指令信号C2の各クロツク
信号に応じて1ビツトずつ下位ビツト方向にシフ
トされる。従つて、シフト指令信号C1の2j番目の
クロツク信号と同じタイミングで発生するシフト
指令信号C2のj番目のクロツク信号によるシフ
トの後には、シフトレジスタ2の内容はx/2jと
なつている。
の周期T2をもつシフト指令信号C2の各クロツク
信号に応じて1ビツトずつ下位ビツト方向にシフ
トされる。従つて、シフト指令信号C1の2j番目の
クロツク信号と同じタイミングで発生するシフト
指令信号C2のj番目のクロツク信号によるシフ
トの後には、シフトレジスタ2の内容はx/2jと
なつている。
左シフトレジスタ3の内容は、シフト指令信号
C2の各クロツク信号に応じて1ビツトずつ上位
ビツト方向にシフトされる。上位ビツト方向への
1ビツトのシフトは、シフトレジスタの内容を2
倍することと等価であるので、シフト指令信号
C2のj番目のクロツク信号によるシフトの後に
は、シフトレジスタ3の内容は2j+1となつてい
る。
C2の各クロツク信号に応じて1ビツトずつ上位
ビツト方向にシフトされる。上位ビツト方向への
1ビツトのシフトは、シフトレジスタの内容を2
倍することと等価であるので、シフト指令信号
C2のj番目のクロツク信号によるシフトの後に
は、シフトレジスタ3の内容は2j+1となつてい
る。
右シフトレジスタ1の内容は、零判定回路4に
よつて零になつたか否か判定され、零になつたと
判定されると加算器5にイネーブル信号ENを与
える。加算器5はイネーブル信号ENを受け取つ
た時点で、右シフトレジスタ2と左シフトレジス
タ3の内容を加算して出力する。すなわち、シフ
ト指令信号C1の2j番目のクロツク信号により右シ
フトレジスタ1の内容が零になつたとすると、そ
の時の右シフトレジスタ2の内容であるx/2jと
左シフトレジスタ3の内容である2j+1とが加算さ
れ、その出力に y=x/2j+2j+1 ……(1) が得られる。
よつて零になつたか否か判定され、零になつたと
判定されると加算器5にイネーブル信号ENを与
える。加算器5はイネーブル信号ENを受け取つ
た時点で、右シフトレジスタ2と左シフトレジス
タ3の内容を加算して出力する。すなわち、シフ
ト指令信号C1の2j番目のクロツク信号により右シ
フトレジスタ1の内容が零になつたとすると、そ
の時の右シフトレジスタ2の内容であるx/2jと
左シフトレジスタ3の内容である2j+1とが加算さ
れ、その出力に y=x/2j+2j+1 ……(1) が得られる。
次に上式(1)で示される値yが整数xの平方根の
3倍の近似値となつていることを説明する。
3倍の近似値となつていることを説明する。
第2図は本発明の適用分野の1つであるロボツ
トのサーボ制御における制御対象の位置と速度の
関係の一例を示すグラフである。第2図に示され
るように、制御対象の現在位置がr0にあつてこれ
を目標位置rx迄移動させる場合、位置r0からr1迄
は一定の加速度aで徐々に速度を上げながら移動
させ、r1からr2の間は一定速度で移動させ、r2か
らrx迄は一定の減速度で徐々に速度を落して目標
位置rxに到達せしめるという制御が通常は行われ
る。
トのサーボ制御における制御対象の位置と速度の
関係の一例を示すグラフである。第2図に示され
るように、制御対象の現在位置がr0にあつてこれ
を目標位置rx迄移動させる場合、位置r0からr1迄
は一定の加速度aで徐々に速度を上げながら移動
させ、r1からr2の間は一定速度で移動させ、r2か
らrx迄は一定の減速度で徐々に速度を落して目標
位置rxに到達せしめるという制御が通常は行われ
る。
この制御において、前述の如く速度を計算する
必要がある。加速度がaのとき、位置xと速度y
の関係は y=√2 ……(2) である。
必要がある。加速度がaのとき、位置xと速度y
の関係は y=√2 ……(2) である。
第3図は式(2)において、√2=3とした場合、
すなわちy=3√のグラフである。第3図にお
いて、横軸は2の2の倍数乗、すなわち22n(n=
0、1、2、…、j)で区切られている。従つ
て、横軸は20=1、22=4、24=16、26=64、…
…の点で区分されている。xの値が22jのときの
yの値は3・2j+1であり、xの値が22j+2のときの
yの値は3・2j+1である。横軸の点22jと22j+2の間
の区間に対応するyの値は点(22j、3・2j)と
(22j+2、3・2j+1)とを結ぶ直線上のyの値で近
似される。この直線は、 y=3(2j+1−2j)/22j+2−22j(x−22j
)+3・2j=1/2j+2j+1…(3) で表わされる。
すなわちy=3√のグラフである。第3図にお
いて、横軸は2の2の倍数乗、すなわち22n(n=
0、1、2、…、j)で区切られている。従つ
て、横軸は20=1、22=4、24=16、26=64、…
…の点で区分されている。xの値が22jのときの
yの値は3・2j+1であり、xの値が22j+2のときの
yの値は3・2j+1である。横軸の点22jと22j+2の間
の区間に対応するyの値は点(22j、3・2j)と
(22j+2、3・2j+1)とを結ぶ直線上のyの値で近
似される。この直線は、 y=3(2j+1−2j)/22j+2−22j(x−22j
)+3・2j=1/2j+2j+1…(3) で表わされる。
式(1)と式(3)とは同じであることに着目される。
すなわち、式(1)は第3図のグラフにおいて、xが
2jと22j+2の間にあるときのy=3√の近似値を
表わしていることになる。
すなわち、式(1)は第3図のグラフにおいて、xが
2jと22j+2の間にあるときのy=3√の近似値を
表わしていることになる。
第1図において、右シフトレジスタ1と零判定
回路4の役割は、整数xが第3図の横軸上のどの
区間にあるかを判定することにある。すなわち、
xを2ビツト右にシフトさせて零になればxは22
より小さい数、すなわち1、2、3のいずれかで
あり、4ビツト右シフトさせて零になればxは24
より小さい数、すなわち1、2、…、15のいずれ
かである。一般に、xを2jビツト右へシフトさせ
て零になればxは22より小さい数である。よつ
て、xを2ビツトずつ順番に右へシフトさせて零
になるかどうかを調べれば、22jで区切つた区間
のいずれかにxが含まれるかがわかる。
回路4の役割は、整数xが第3図の横軸上のどの
区間にあるかを判定することにある。すなわち、
xを2ビツト右にシフトさせて零になればxは22
より小さい数、すなわち1、2、3のいずれかで
あり、4ビツト右シフトさせて零になればxは24
より小さい数、すなわち1、2、…、15のいずれ
かである。一般に、xを2jビツト右へシフトさせ
て零になればxは22より小さい数である。よつ
て、xを2ビツトずつ順番に右へシフトさせて零
になるかどうかを調べれば、22jで区切つた区間
のいずれかにxが含まれるかがわかる。
第4図は第1図に示した装置の動作を示すフロ
ーチヤートである。第4図において、ステツプS1
でレジスタ1及び2に整数xをセツトし、レジス
タ3に整数2をセツトする。ステツプS2でレジス
タ1の内容を右に2ビツトシフトする。ステツプ
S3でレジスタ1の内容が零か否か判定する。零で
あれば、ステツプS4でレジスタ2とレジスタ3の
内容を加算する。ステツプS3で零でなければ、ス
テツプS5でレジスタ2の内容を右に1ビツトシフ
トし、レジスタ3の内容を左へ1ビツトシフトす
る。レジスタ1の内容が零になる迄、ステツプ
S2、ステツプS3、ステツプS5のループが繰り返
される。
ーチヤートである。第4図において、ステツプS1
でレジスタ1及び2に整数xをセツトし、レジス
タ3に整数2をセツトする。ステツプS2でレジス
タ1の内容を右に2ビツトシフトする。ステツプ
S3でレジスタ1の内容が零か否か判定する。零で
あれば、ステツプS4でレジスタ2とレジスタ3の
内容を加算する。ステツプS3で零でなければ、ス
テツプS5でレジスタ2の内容を右に1ビツトシフ
トし、レジスタ3の内容を左へ1ビツトシフトす
る。レジスタ1の内容が零になる迄、ステツプ
S2、ステツプS3、ステツプS5のループが繰り返
される。
次に、上記近似計算による誤差eを求めてお
く。
く。
xの値が22jと22j+2の間の区間におけるyの誤
差eは、 e=3√−(x/2j+2j+1) と表わされる。従つて、この区間における誤差が
最大となるには、 の時である。式(4)を解くと、 x=9/422j …(5) の時に誤差が最大となる。
差eは、 e=3√−(x/2j+2j+1) と表わされる。従つて、この区間における誤差が
最大となるには、 の時である。式(4)を解くと、 x=9/422j …(5) の時に誤差が最大となる。
3√に対する誤差eの割合、すなわち相対誤
差Eはe/3√である。式(5)で表わされるxの
値の時の相対誤差Eは となりjに無関係となつて、いずれの区間でも
1/185.56%である。
差Eはe/3√である。式(5)で表わされるxの
値の時の相対誤差Eは となりjに無関係となつて、いずれの区間でも
1/185.56%である。
第1図の装置による実際の演算では、右シフト
レジスタ2により下位ビツト方向へのjビツトの
シフトで小数点以下が切り拾てられるので、上記
の相対誤差より若干大きくなるが、いずれにして
も、ロボツト等のサーボ制御においては、この程
度の誤差は許容範囲内にある。
レジスタ2により下位ビツト方向へのjビツトの
シフトで小数点以下が切り拾てられるので、上記
の相対誤差より若干大きくなるが、いずれにして
も、ロボツト等のサーボ制御においては、この程
度の誤差は許容範囲内にある。
以上の説明により、第1図に示した装置によつ
て整数xの平方根の3倍の近似値がその出力に得
られることがわかる。
て整数xの平方根の3倍の近似値がその出力に得
られることがわかる。
なお、一般にK√(Kは定数)の近似値を得
るには、3√の近似値を第1図に示した装置に
より求め、この結果にK/3を乗算器等により乗
算すれば得られる。
るには、3√の近似値を第1図に示した装置に
より求め、この結果にK/3を乗算器等により乗
算すれば得られる。
以上説明したように、本発明によれば、整数を
2の2の倍数乗で区切ることにより、計算機で実
行の速いシフト演算と加算のみで整数の平方根の
近似計算を、小規模のハードウエアで、且つ高速
に実現でき、しかも誤差を整数のいずれの区間で
もほぼ同程度に収めることのできる関数発生装置
が得られる。
2の2の倍数乗で区切ることにより、計算機で実
行の速いシフト演算と加算のみで整数の平方根の
近似計算を、小規模のハードウエアで、且つ高速
に実現でき、しかも誤差を整数のいずれの区間で
もほぼ同程度に収めることのできる関数発生装置
が得られる。
第1図は本発明の一実施例による関数発生装置
を示すブロツク図、第2図は本発明の適用分野の
1つであるロボツトのサード制御における制御対
象の位置と速度の関係の一例を示すグラフ、第3
図はy=3√のグラフ、第4図は第1図に示し
た装置の動作を示すフローチヤートである。 1……右シフトレジスタ、2……右シフトレジ
スタ、3……左シフトレジスタ、4……零判定回
路、5……加算回路、C1,C2……シフト指令信
号。
を示すブロツク図、第2図は本発明の適用分野の
1つであるロボツトのサード制御における制御対
象の位置と速度の関係の一例を示すグラフ、第3
図はy=3√のグラフ、第4図は第1図に示し
た装置の動作を示すフローチヤートである。 1……右シフトレジスタ、2……右シフトレジ
スタ、3……左シフトレジスタ、4……零判定回
路、5……加算回路、C1,C2……シフト指令信
号。
Claims (1)
- 【特許請求の範囲】 1 初期状態で所与の整数を格納し、第1の周期
で与えられる第1のシフト指令信号に応じて該整
数を下位ビツト方向に1ビツトずつシフトする第
1のシフトレジスタ、 初期状態で該整数と同値の整数を格納し、該第
1の周期の2倍の周期で与えられる第2のシフト
指令信号に応じて該整数を下位ビツト方向に1ビ
ツトずつシフトする第2のシフトレジスタ、 初期状態で整数2を格納し、該第2のシフト指
令信号に応じて該整数2を上位ビツト方向に1ビ
ツトずつシフトする第3のシフトレジスタ、 該第1のシフトレジスタの内容が零になつたこ
とを検出する零判定回路、及び 該零判定回路の検出出力に応じて、該第2のシ
フトレジスタの内容と該第3のシフトレジスタの
内容とを加算する加算回路を具備し、該加算回路
の出力に、該初期状態での所与の整数の平方根の
3倍の近似値を得るようにした関数発生装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14851984A JPS6128135A (ja) | 1984-07-19 | 1984-07-19 | 関数発生装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14851984A JPS6128135A (ja) | 1984-07-19 | 1984-07-19 | 関数発生装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6128135A JPS6128135A (ja) | 1986-02-07 |
| JPH0241764B2 true JPH0241764B2 (ja) | 1990-09-19 |
Family
ID=15454587
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14851984A Granted JPS6128135A (ja) | 1984-07-19 | 1984-07-19 | 関数発生装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6128135A (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6084742A (en) * | 1994-04-06 | 2000-07-04 | Fujitsu Limited | Drive control apparatus for a disk drive |
-
1984
- 1984-07-19 JP JP14851984A patent/JPS6128135A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6128135A (ja) | 1986-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR940001571B1 (ko) | 디지탈 pwm 펄스 발생기 | |
| JPH0627653B2 (ja) | 位置、速度検出方法及び装置 | |
| US4243924A (en) | System for interpolating an arc for a numerical control system | |
| KR920003479B1 (ko) | 곡선의 절선근사방법 및 장치 | |
| JPH0241764B2 (ja) | ||
| JPS6228872A (ja) | 三角関数発生処理装置 | |
| JP2538645B2 (ja) | 曲線の折線近似装置 | |
| JPH0326858B2 (ja) | ||
| JPS59191608A (ja) | 処理スル−プツト速度の改善方法 | |
| JPS60156107A (ja) | ロボツトハンドの軌道修正方法 | |
| SU570047A1 (ru) | Устройство дл воспроизведени функций | |
| JPH07209017A (ja) | 信号評価装置 | |
| SU1305671A1 (ru) | Устройство дл вычислени функции @ | |
| SU547792A1 (ru) | Устройство дл вычислени кратных интегралов | |
| JPS62162917A (ja) | 位相検出装置 | |
| JP2741869B2 (ja) | 座標逆変換プロセッサ | |
| JPH02148102A (ja) | 制御装置 | |
| JPH02100135A (ja) | 信号処理装置の制御方法 | |
| KR100228576B1 (ko) | 어레이형 고속 좌표 회전 디지틀 컴퓨터 회로 | |
| SU792261A1 (ru) | Цифровое устройство дл вычислени тригонометрических коэффициентов | |
| SU1070571A1 (ru) | Циклический коррелометр | |
| SU1476462A1 (ru) | Конвейерное устройство дл вычислени функций синуса и косинуса | |
| KR840001179B1 (ko) | 수치데이타를 사용하여 기계가공하는 절삭작업을 수행하는 방법 | |
| Lygouras et al. | Department of Electrical Engineering, Demokritos University of Thrace | |
| JPH0560808A (ja) | 周期計測器、周波数計測器、周期・周波数計測方法及びメータ駆動装置 |