JPS6128136A - 関数発生装置 - Google Patents
関数発生装置Info
- Publication number
- JPS6128136A JPS6128136A JP14851884A JP14851884A JPS6128136A JP S6128136 A JPS6128136 A JP S6128136A JP 14851884 A JP14851884 A JP 14851884A JP 14851884 A JP14851884 A JP 14851884A JP S6128136 A JPS6128136 A JP S6128136A
- Authority
- JP
- Japan
- Prior art keywords
- value
- zero
- integer
- counter
- integral number
- 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.)
- Granted
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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、整数のa乗(aは任意の実数)の近似値を、
簡単且つ高速に発生させる関数発生装置に関する。
簡単且つ高速に発生させる関数発生装置に関する。
本発明は、例えばロボット等のサーボ制御等において、
目標位置に制御対象の位置を追従させる様な制御に好適
に利用される。
目標位置に制御対象の位置を追従させる様な制御に好適
に利用される。
一定の加速度で制御対象を移動させる場合、制御対象の
速度はその位置の平方根に比例する。また、一般に任意
の加速度で制御対象を移動させる場合、制御対象の速度
yは位置をXとするとX8に比例する(ただしaは実数
)。制御対象の位置はエンコーダ等で読取ることができ
るが、速度は読取った位置を示す整数値Xに基づいて上
記平方根又はzlL を計算することによシ得られる。
速度はその位置の平方根に比例する。また、一般に任意
の加速度で制御対象を移動させる場合、制御対象の速度
yは位置をXとするとX8に比例する(ただしaは実数
)。制御対象の位置はエンコーダ等で読取ることができ
るが、速度は読取った位置を示す整数値Xに基づいて上
記平方根又はzlL を計算することによシ得られる。
この計算の精度は高くなくてもよいが、リアルタイムで
目標位置の数値を発生させるために高速性が要求される
。
目標位置の数値を発生させるために高速性が要求される
。
従来、上記の平方根又はxaの計算のために、特別の高
速動作をするハードウェアを用いたり、あるいは、前も
って計算された平方根を関数テーブルに記憶させていた
。
速動作をするハードウェアを用いたり、あるいは、前も
って計算された平方根を関数テーブルに記憶させていた
。
し7かしながら、高速動作をする特別のハードウェアを
用意することによシ、装置全体の価格が高くなるという
問題がある。また、関数テーブルに記憶させるためには
、大容量のメモリが必要になシ、やはシ装置価格が高く
なるとともに、装置規模が大きいという問題がある。
用意することによシ、装置全体の価格が高くなるという
問題がある。また、関数テーブルに記憶させるためには
、大容量のメモリが必要になシ、やはシ装置価格が高く
なるとともに、装置規模が大きいという問題がある。
本発明の目的は、上記従来技術における問題に鑑み、汎
用のマイクロプロセツサを用いて高速に整数のべき乗値
を計算することによシ、その整数Xのべき乗の近似値を
、小規模のハードウェアで、且つ高速に得ることができ
る関数発生装置を提供することにある。
用のマイクロプロセツサを用いて高速に整数のべき乗値
を計算することによシ、その整数Xのべき乗の近似値を
、小規模のハードウェアで、且つ高速に得ることができ
る関数発生装置を提供することにある。
上記の問題点を解決するために、本発明によシ提供され
るものは、初期状態で所与の整数を格納し、シフト指令
信号の各パルスに応じて整数を下位ビット方向に1ビッ
トずつシフトするシフトレジスタ、シフト指令信号のパ
ルス数を計数するカウンタ、カウンタの計数値j(j−
0,1,2,3,・・りに対応する値2J (a−1)
(21に−1)を格納する第1のメモリ、カウンタの
計数値jに対応する値2aJ(2−2a)を格納する第
2のメモリ、第1のシフトレジスタの内容が零にAった
ことを検出する零判定回路、零判定回路が零を検出した
時のカウンタの計数値に対応する第1のメモリの格納値
と整数とを乗算する乗算器、及び零判定回路が零を検・
出した時のカウンタの計数値に対応する第2のメモリの
格納値と乗算器の出力とを加算する加算器を具備し、加
算器の出力に所与の整数のa乗の近似値を得るようにし
た関数発生装置である。
るものは、初期状態で所与の整数を格納し、シフト指令
信号の各パルスに応じて整数を下位ビット方向に1ビッ
トずつシフトするシフトレジスタ、シフト指令信号のパ
ルス数を計数するカウンタ、カウンタの計数値j(j−
0,1,2,3,・・りに対応する値2J (a−1)
(21に−1)を格納する第1のメモリ、カウンタの
計数値jに対応する値2aJ(2−2a)を格納する第
2のメモリ、第1のシフトレジスタの内容が零にAった
ことを検出する零判定回路、零判定回路が零を検出した
時のカウンタの計数値に対応する第1のメモリの格納値
と整数とを乗算する乗算器、及び零判定回路が零を検・
出した時のカウンタの計数値に対応する第2のメモリの
格納値と乗算器の出力とを加算する加算器を具備し、加
算器の出力に所与の整数のa乗の近似値を得るようにし
た関数発生装置である。
シフトレジスタ及び零判定回路によシ、所与の整数Xが
2jと2j+1の間にあることを確認でき、その間での
整数Xのa乗の近似値9として、第1のメモリ、第2の
メモリ、乗算器、及び加算器により、点(2j、2aj
)ト点(2j+1,21L(j+1))トを結ぶ直線の
y座標、すなわち、 9=2N&−1) (2a 1 ) X+2aj (
22a)が演算される。
2jと2j+1の間にあることを確認でき、その間での
整数Xのa乗の近似値9として、第1のメモリ、第2の
メモリ、乗算器、及び加算器により、点(2j、2aj
)ト点(2j+1,21L(j+1))トを結ぶ直線の
y座標、すなわち、 9=2N&−1) (2a 1 ) X+2aj (
22a)が演算される。
以下、本発明の実施例を図面によって説明する。
第1図は本発明の一実施例による関数発生装置を示すブ
ロック図である。同図において、1はシフト指令信号C
のパルスに応じて整数Xを1ビットずつ下位ビット方向
にシフトするシフトレジスタ、2はシフト指令信号Cの
パルスを計数するカウンタ、3はシフトレジスタ1の内
容が零になったか否かを判定する零判定回路、4はカウ
ンタ2の各計数値jをアドレスとしてmj=2j(a−
1)(2a−1)に等しい数値を予め格納している第1
のメモリ、5はカウンタ2の各計数値jをアドレスとし
てtj=2aj(2−2a)に等しい数値を予め格納し
ている第2のメモリ、6は零判定回路3の出力に応じて
第1のメモリから出力される数値mj と前記整数X
とを乗算する乗算器、そして7は乗算器6の出力値mj
Xと零判定回路3の出力に応じて出力される第2のメモ
リ5の出力値t、とを加算する加算器である。
ロック図である。同図において、1はシフト指令信号C
のパルスに応じて整数Xを1ビットずつ下位ビット方向
にシフトするシフトレジスタ、2はシフト指令信号Cの
パルスを計数するカウンタ、3はシフトレジスタ1の内
容が零になったか否かを判定する零判定回路、4はカウ
ンタ2の各計数値jをアドレスとしてmj=2j(a−
1)(2a−1)に等しい数値を予め格納している第1
のメモリ、5はカウンタ2の各計数値jをアドレスとし
てtj=2aj(2−2a)に等しい数値を予め格納し
ている第2のメモリ、6は零判定回路3の出力に応じて
第1のメモリから出力される数値mj と前記整数X
とを乗算する乗算器、そして7は乗算器6の出力値mj
Xと零判定回路3の出力に応じて出力される第2のメモ
リ5の出力値t、とを加算する加算器である。
第2図は第1図に示した装置の動作を示すフローチャー
トである。第1図及び第2図において、ステップS1で
シフトレジスタ1に整数Xが格納され、カウンタ2は計
数値を零に初期設定される。
トである。第1図及び第2図において、ステップS1で
シフトレジスタ1に整数Xが格納され、カウンタ2は計
数値を零に初期設定される。
ステップS2でシフトレジスタの内容をシフト指令信号
Cの最初のパルスに応じて1ビット下位ビット方向、す
なわち右方向ヘシフトする。ステップS3でシフトレジ
スタ1の内容が零になったか否かを零判定回路3によシ
判定する。零でなければステップS4でカウンタ2の計
数値を歩進する。
Cの最初のパルスに応じて1ビット下位ビット方向、す
なわち右方向ヘシフトする。ステップS3でシフトレジ
スタ1の内容が零になったか否かを零判定回路3によシ
判定する。零でなければステップS4でカウンタ2の計
数値を歩進する。
ステップ82〜S4は、シフトレジスタ1の内容が零に
なる迄繰シ返される。シフトレジスタ1の内容が零にな
ると、ステップS5で、?=rnlX +t、が演算さ
れる。こうして得られた数値9は後に詳述するように整
数Xのべき乗値xa の近似値となっている。
なる迄繰シ返される。シフトレジスタ1の内容が零にな
ると、ステップS5で、?=rnlX +t、が演算さ
れる。こうして得られた数値9は後に詳述するように整
数Xのべき乗値xa の近似値となっている。
第3図は本発明の適用分野の1つであるロボットのサー
ボ制御における制御対象の位置と速度の関係の一例を示
すグラフである。第3図に示されるように、制御対象の
現在位置がr。にあってこれを目標位置rX迄移動させ
る場合、位置r0からr、迄はある加速運動で徐々に速
度を上げながら移動させ、r、からr2の間は一定速度
で移動させ、r2からrX迄はある減速運動で徐々に速
度を落として目標位Rrxに到達ぜしめるという制御が
通常は行われる。
ボ制御における制御対象の位置と速度の関係の一例を示
すグラフである。第3図に示されるように、制御対象の
現在位置がr。にあってこれを目標位置rX迄移動させ
る場合、位置r0からr、迄はある加速運動で徐々に速
度を上げながら移動させ、r、からr2の間は一定速度
で移動させ、r2からrX迄はある減速運動で徐々に速
度を落として目標位Rrxに到達ぜしめるという制御が
通常は行われる。
この制御において、前述の如く速反を計算する必要があ
る。一般に、加速又は減速状態における位置又と速度y
の関係は y−x& ・・・(1)で表わされる
(ただし、aは実数)。
る。一般に、加速又は減速状態における位置又と速度y
の関係は y−x& ・・・(1)で表わされる
(ただし、aは実数)。
第4図は式(1)においてaを1よシネの正の実数とし
た場合のグラフである。第3図において、横軸は2の整
数乗、すなわち2a(’n=:0+1+2+”at j
+1)で区切られている。従って、横軸は2°−1゜2
’=2 、2a=4 、・・・、2a=65536.・
・・で区切られている。Xの値が2jのときのyの値は
2ajテアリ、x ノ値カ2a” ID (!: ti
(D y (D(tittd、 2a(j””である
。横軸の点2jと2j+1の間の区間に対応するyの(
l:、点(2j 、 2=j)ト(zj+1 、2a(
j−1−+))とを結ぶ直線上のyの値で゛近似される
。この直線は、 =2j(”)(2a−1)x+2aj(2−2a)
−=(2)で表わされる。
た場合のグラフである。第3図において、横軸は2の整
数乗、すなわち2a(’n=:0+1+2+”at j
+1)で区切られている。従って、横軸は2°−1゜2
’=2 、2a=4 、・・・、2a=65536.・
・・で区切られている。Xの値が2jのときのyの値は
2ajテアリ、x ノ値カ2a” ID (!: ti
(D y (D(tittd、 2a(j””である
。横軸の点2jと2j+1の間の区間に対応するyの(
l:、点(2j 、 2=j)ト(zj+1 、2a(
j−1−+))とを結ぶ直線上のyの値で゛近似される
。この直線は、 =2j(”)(2a−1)x+2aj(2−2a)
−=(2)で表わされる。
ここで、第1図の装置における第1のメモリ4のアドレ
スjに格納されている値m、け式(2)で表わされるグ
ラフの傾きを示しておシ、第2のメモリ5のアドレス」
に格納されている値1j は式(2)で表わされるグラ
フの切片を示していることに着目される。従って、加算
器7の出力に得られる値は、式(2)で表わされるyの
値に等しり、Xa の近似値となっている。
スjに格納されている値m、け式(2)で表わされるグ
ラフの傾きを示しておシ、第2のメモリ5のアドレス」
に格納されている値1j は式(2)で表わされるグラ
フの切片を示していることに着目される。従って、加算
器7の出力に得られる値は、式(2)で表わされるyの
値に等しり、Xa の近似値となっている。
第1図の装置において、シフトレジスタ1及び零判定回
路3は、与えられた整数Xが、第4図のグラフの横軸上
のどの区間に含まれるかを判定するために用いられてい
る。すなわち、計算機では右へ(下位方向へ)1ビット
シフトすることは2で割ることに相当し、割算の結果の
うち小数点以下は切シ捨てになるので、例えば1ビット
だけ右ヘシフトすると零になる場合、元の整数は21よ
シ小さい数、すなわち1であシ、2ビットだけ右ヘシフ
トして零になれば元の整数は22よシ小さい数、すなわ
ち、2又は3である。一般に、jビットだけ右ヘシフト
して零になれば元の整数は2jよシ大きく 2 j +
I よシ小さい数である。こうして、シフトレジス
タ1の内容を1ビットずつ右ヘンフトさせていけば与え
られた整数Xが横軸上の2の整数乗のどの範囲にあるか
がわかる。
路3は、与えられた整数Xが、第4図のグラフの横軸上
のどの区間に含まれるかを判定するために用いられてい
る。すなわち、計算機では右へ(下位方向へ)1ビット
シフトすることは2で割ることに相当し、割算の結果の
うち小数点以下は切シ捨てになるので、例えば1ビット
だけ右ヘシフトすると零になる場合、元の整数は21よ
シ小さい数、すなわち1であシ、2ビットだけ右ヘシフ
トして零になれば元の整数は22よシ小さい数、すなわ
ち、2又は3である。一般に、jビットだけ右ヘシフト
して零になれば元の整数は2jよシ大きく 2 j +
I よシ小さい数である。こうして、シフトレジス
タ1の内容を1ビットずつ右ヘンフトさせていけば与え
られた整数Xが横軸上の2の整数乗のどの範囲にあるか
がわかる。
こうして求めた範囲内での曲線y == 1m上の2点
間を結ぶ直線9の傾きと切片がそれぞれ第1及び第2の
メモリに格納されている。
間を結ぶ直線9の傾きと切片がそれぞれ第1及び第2の
メモリに格納されている。
次に式(2)で表わされる近似値の誤差を求めておく。
式(1)及び(2)よシ、誤差eは
e=y−9=xa−2j”−1)(2a−1)x−2a
(2−28)−(3)となるので、その区間で誤差が最
大になるのは、式(4)を解いて 二 となシ、jと無関係になる。すなわち、いずれの区間に
おいても、式(6)で与えられる相対誤差が最大となる
。
(2−28)−(3)となるので、その区間で誤差が最
大になるのは、式(4)を解いて 二 となシ、jと無関係になる。すなわち、いずれの区間に
おいても、式(6)で与えられる相対誤差が最大となる
。
実数aを十にすると、平方根の近似値が得られ、この場
合の最大相対誤差は式(6)よりで、1.47 %の誤
差となる。
合の最大相対誤差は式(6)よりで、1.47 %の誤
差となる。
実数aを+にすると、三乗機の近似値が得られ、この場
合の最大相対誤差は式(6)よシで、1.31%の誤差
である。
合の最大相対誤差は式(6)よシで、1.31%の誤差
である。
実数aのとシ得る範囲は、誤差の許容度によるが、ロボ
ット等のサーボ制御においては、−2くa〈2の範囲に
あれば、近似値の誤差は充分に許容範囲内にある。
ット等のサーボ制御においては、−2くa〈2の範囲に
あれば、近似値の誤差は充分に許容範囲内にある。
以上説明したように、本発明によれば、整数を2の整数
乗で区切ることによシ、シフト演算と加算と乗算で、整
数のべき乗値の近似計算を、小規模のハードウェアで、
且つ高速に実現でき、しかも整数のいずれの区間でも相
対誤差が一定の最大値を越えないようにすることができ
る関数発生装置が得られる。
乗で区切ることによシ、シフト演算と加算と乗算で、整
数のべき乗値の近似計算を、小規模のハードウェアで、
且つ高速に実現でき、しかも整数のいずれの区間でも相
対誤差が一定の最大値を越えないようにすることができ
る関数発生装置が得られる。
第1図は本発明の一実施例による関数発生装置を示すブ
ロック図、 第2図は第1図の装置の動作を示すフローチャート、 第3図は本発明の適用分野の1つであるロボットのサー
ボ制御における制御対象の位置と速度の関係の一例を示
すグラフ、そして 第4図はy−Xaのグラフ(ただしaは1よシ小の正の
実数)である。 1・・・シフトレジスタ 2・・・カウンタ 3・・・零判定回路 4・・・第1のメモリ 5・・・第2のメモリ 6・・・乗算器 7・・・加算器
ロック図、 第2図は第1図の装置の動作を示すフローチャート、 第3図は本発明の適用分野の1つであるロボットのサー
ボ制御における制御対象の位置と速度の関係の一例を示
すグラフ、そして 第4図はy−Xaのグラフ(ただしaは1よシ小の正の
実数)である。 1・・・シフトレジスタ 2・・・カウンタ 3・・・零判定回路 4・・・第1のメモリ 5・・・第2のメモリ 6・・・乗算器 7・・・加算器
Claims (1)
- 【特許請求の範囲】 1、初期状態で所与の整数を格納し、シフト指令信号の
各パルスに応じて該整数を下位ビット方向に1ビットず
つシフトするシフトレジスタ、該シフト指令信号のパル
ス数を計数するカウンタ、 該カウンタの計数値j(j=0、1、2、3、・・・)
に対応する値2^j^(^a^−^1^)(2^a−1
)を格納する第1のメモリ、 該カウンタの計数値jに対応する値2^a^j(2−2
^a)を格納する第2のメモリ、 該第1のシフトレジスタの内容が零になったことを検出
する零判定回路、 該零判定回路が零を検出した時の該カウンタの計数値に
対応する該第1のメモリの格納値と該整数とを乗算する
乗算器、及び 該零判定回路が零を検出した時の該カウンタの計数値に
対応する該第2のメモリの格納値と該乗算器の出力とを
加算する加算器 を具備し、該加算器の出力に該所与の整数のa乗の近似
値を得るようにした関数発生装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14851884A JPS6128136A (ja) | 1984-07-19 | 1984-07-19 | 関数発生装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14851884A JPS6128136A (ja) | 1984-07-19 | 1984-07-19 | 関数発生装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6128136A true JPS6128136A (ja) | 1986-02-07 |
| JPH0326858B2 JPH0326858B2 (ja) | 1991-04-12 |
Family
ID=15454564
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14851884A Granted JPS6128136A (ja) | 1984-07-19 | 1984-07-19 | 関数発生装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6128136A (ja) |
Cited By (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 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS519348A (ja) * | 1974-07-11 | 1976-01-26 | Nippon Musical Instruments Mfg |
-
1984
- 1984-07-19 JP JP14851884A patent/JPS6128136A/ja active Granted
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS519348A (ja) * | 1974-07-11 | 1976-01-26 | Nippon Musical Instruments Mfg |
Cited By (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 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0326858B2 (ja) | 1991-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6131489B2 (ja) | ||
| US3806713A (en) | Method and apparatus for maximizing the length of straight line segments approximating a curve | |
| JPH0522271B2 (ja) | ||
| US4243924A (en) | System for interpolating an arc for a numerical control system | |
| JPS6128136A (ja) | 関数発生装置 | |
| EP0349182B1 (en) | Method and apparatus for approximating polygonal line to curve | |
| US4020331A (en) | Feed rate control system for numerical control machine tool | |
| JPS62502576A (ja) | 高速正弦および余弦発生装置 | |
| JPS6128135A (ja) | 関数発生装置 | |
| JP3315042B2 (ja) | 乗算装置 | |
| JPS6245562B2 (ja) | ||
| JPH01189765A (ja) | 関数演算装置 | |
| KR100194144B1 (ko) | 피이드포워드에 의한 서보모터의 위치 제어방법 및 제어기 | |
| KR0183657B1 (ko) | 가감속 궤적 생성 방법 | |
| KR930000128B1 (ko) | 원호보간에 있어서 평면이동 직교좌표위치 검출방법 | |
| KR840001179B1 (ko) | 수치데이타를 사용하여 기계가공하는 절삭작업을 수행하는 방법 | |
| SU1124248A1 (ru) | Устройство дл управлени манипул тором | |
| JPH0371228A (ja) | 開立計算装置 | |
| JP3139055B2 (ja) | 適合度演算方法および装置 | |
| EP0631253B1 (en) | A device for use in the digital processing of a graphic image containing a straight line | |
| KR100228576B1 (ko) | 어레이형 고속 좌표 회전 디지틀 컴퓨터 회로 | |
| JPS6350723B2 (ja) | ||
| JPS5839336B2 (ja) | 自動制御系のデイジタル処理方式 | |
| Raygoza-Panduro et al. | Design of a Mathematical Unit in FPGAs for the Implementation of the Control of a System of Magnetic Levitation | |
| JPH01311305A (ja) | パルス補間方法 |