KR20080052418A - 속도 검출 장치 - Google Patents

속도 검출 장치 Download PDF

Info

Publication number
KR20080052418A
KR20080052418A KR1020070124972A KR20070124972A KR20080052418A KR 20080052418 A KR20080052418 A KR 20080052418A KR 1020070124972 A KR1020070124972 A KR 1020070124972A KR 20070124972 A KR20070124972 A KR 20070124972A KR 20080052418 A KR20080052418 A KR 20080052418A
Authority
KR
South Korea
Prior art keywords
coordinates
calculation
equation
reality
register
Prior art date
Application number
KR1020070124972A
Other languages
English (en)
Other versions
KR100959215B1 (ko
Inventor
류지 아오노
Original Assignee
도시바 기카이 가부시키가이샤
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 도시바 기카이 가부시키가이샤 filed Critical 도시바 기카이 가부시키가이샤
Publication of KR20080052418A publication Critical patent/KR20080052418A/ko
Application granted granted Critical
Publication of KR100959215B1 publication Critical patent/KR100959215B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P3/00Measuring linear or angular speed; Measuring differences of linear or angular speeds
    • G01P3/42Devices characterised by the use of electric or magnetic means
    • G01P3/44Devices characterised by the use of electric or magnetic means for measuring angular speed
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P3/00Measuring linear or angular speed; Measuring differences of linear or angular speeds
    • G01P3/42Devices characterised by the use of electric or magnetic means
    • G01P3/44Devices characterised by the use of electric or magnetic means for measuring angular speed
    • G01P3/48Devices characterised by the use of electric or magnetic means for measuring angular speed by measuring frequency of generated current or voltage
    • G01P3/481Devices characterised by the use of electric or magnetic means for measuring angular speed by measuring frequency of generated current or voltage of pulse signals
    • G01P3/489Digital circuits therefor
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P13/00Indicating or recording presence, absence, or direction, of movement
    • G01P13/02Indicating direction only, e.g. by weather vane
    • G01P13/04Indicating positive or negative direction of a linear movement or clockwise or anti-clockwise direction of a rotational movement
    • G01P13/045Indicating positive or negative direction of a linear movement or clockwise or anti-clockwise direction of a rotational movement with speed indication

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Transmission And Conversion Of Sensor Element Output (AREA)

Abstract

작은 연산 회로에서 이동 속도 또는 각속도를 고정밀도로 검출할 수 있는 속도 검출 회로 및 서보 모터를 제공한다. 속도 검출 장치는, 가(假)각도 Φi와 tanΦi를 기억하는 메모리(52)와, 운동체의 제1 현실의 좌표를 저장하는 제1 레지스터 R11과, 제2 현실의 좌표를 저장하는 제2 레지스터 R21과, 제1 현실의 좌표(x1, y1)의 x1과 tanΦi에 기초하여 y1의 자릿수를 시프트한 결과값과의 가감산에 의해 나타내어지는 제1 계산 상의 좌표를 산출하는 연산부(51)와, 제2 현실의 좌표(x2, y2)의 y2와 tanΦi에 기초하여 x2의 자릿수를 시프트한 결과값과의 가산 또는 감산에 의해 나타내어지는 제2 계산 상의 좌표를 산출하는 연산부(58)와, 가(假)각도를 적산하는 연산부(80)를 구비하고, 연산부(51, 58)는, 제1 및 제2 현실의 좌표를 서로 접근시키도록 연산한다.
운동체, 각속도, 메모리, 레지스터, 연산 회로

Description

속도 검출 장치{SPEED DETECTION DEVICE}
본 발명은, 속도 검출 장치에 관한 것이다.
서보 모터의 운동 제어에서는, 위치 검출기 내부에서 기계의 이동 거리 또는 축의 이동 각도에 기초한 SIN 신호 및 COS 신호를 생성한다. 위치 검출기의 연산 회로는, SIN 신호 및 COS 신호를 단위 시간마다 샘플링하고, 2개의 샘플 간의 거리차 또는 각도차와 2회의 샘플링의 시간 간격으로부터 이동 속도 또는 각속도를 산출하고 있었다.
예를 들면, 2회의 샘플링에서 얻어진 좌표를 (x1, y1) 및 (x2, y2)라고 하고, 샘플링의 시간 간격을 t(sec)라고 하면, 각속도 ω(rad/sec)는 수학식 1과 같이 나타낼 수 있다.
Figure 112007087269845-PAT00001
여기에서, θ1(rad) 및 θ2(rad)는, 2회의 샘플링의 시각에서의 절대 각도(편각)이다. 수학식 2에 나타낸 바와 같이, 각속도 ω를 얻기 위해서는, 좌표로부 터 편각을 산출해야 한다.
[비특허문헌1] 쯔기모토 히데히코 등 "AC 서보 시스템의 이론과 설계의 실제" 통합 전자 출판사(P142∼P149)
상기 문제에 대처하기 위해, 연산 회로로서 CPU 혹은 커스텀 LSI(Large-Scale Integrated circuit)를 이용하여, 디지털 로직 회로에서 수학식 2의 연산을 실현하는 것이 고려된다.
그러나, 아크탄젠트(tan-1)는, sin/cos라고 하는 나눗셈을 필요로 한다. 아크탄젠트의 계산에는 다음의 두가지 문제점이 있다. 그 하나의 문제점은, 단위원 상의 cos 신호가 0에 가까우면, 탄젠트(sin÷cos)의 값이 절대값이 매우 커지는 것이다. 그 결과, 아크탄젠트의 결과의 오차가 매우 커지게 된다.
다른 하나의 문제점은, 아크탄젠트 및 탄젠트를 구하기 위해 나눗셈(sin÷cos)이 필요하게 되는 것이다. 제산기는, 디지털 회로로 실현하는 것이 곤란한 회로이며, 실현하기 위해서는 가감산에 비해 상당히 대규모의 디지털 회로를 이용할 필요가 있다.
또한, 승산기도, 디지털 회로로 실현하기 위해서는 가감산에 비해 상당히 대규모의 디지털 회로를 이용할 필요가 있다.
따라서, 본 발명은, 소규모의 연산 회로로 운동체의 속도를 고정밀도로 검출 할 수 있는 속도 검출 회로를 제공하는 것이다.
본 발명에 따른 실시 형태에 따른 속도 검출 장치는, 회전 운동 또는 왕복 운동을 행하는 운동체의 위치를 나타내는 좌표를 주기적으로 샘플링하고, 상기 좌표에 기초하여 상기 운동체의 각속도를 검출하는 속도 검출 장치로서,
미리 설정된 복수의 가(假)각도, 및, 그 복수의 가(假)각도의 각각에 대한 삼각 함수의 값을 기억하는 메모리와, 제1 샘플링에서 얻어진 운동체의 제1 현실의 좌표를 저장하는 제1 레지스터와, 상기 제1 샘플링의 다음의 제2 샘플링에서 얻어진 운동체의 제2 현실의 좌표를 저장하는 제2 레지스터와, 상기 제1 현실의 좌표(x1, y1)의 x1과 상기 삼각 함수의 값에 기초하여 y1의 자릿수를 시프트한 결과값과의 가산 또는 감산에 의해 나타내어지는 제1 계산 상의 좌표를 산출하는 제1 연산부와, 상기 제2 현실의 좌표(x2, y2)의 y2와 상기 삼각 함수의 값에 기초하여 x2의 자릿수를 시프트한 결과값과의 가산 또는 감산에 의해 나타내어지는 제2 계산 상의 좌표를 산출하는 제2 연산부와, 상기 제1 또는 상기 제2 연산부에서의 연산에서 이용된 상기 가(假)각도를 적산하는 제3 연산부를 구비하고, 상기 제1 및 상기 제2 연산부는, 상기 제1 및 상기 제2 현실의 좌표를 서로 접근시키도록 연산하는 것을 특징으로 한다.
상기 제1 및 상기 제2 연산부는, 상기 가(假)각도를 작게 하면서, 상기 제1 및 상기 제2 계산 상의 좌표를 수속시키도록 연산을 반복하고, 상기 제3 연산부는, 상기 제1 또는 상기 제2 연산부에서의 연산으로 수속하는 상기 가(假)각도를 적산 하고, 상기 제1 및 상기 제2 계산 상의 좌표가 수속했을 때의 그 가(假)각도에 기초하여 상기 운동체의 각속도를 생성하여도 된다.
상기 메모리는, 상기 가(假)각도로서 Φi012>…>Φi>…Φn) (n은 자연수), 상기 삼각 함수의 값으로서 tanΦi를 기억하고,
상기 제1 또는 상기 제2 계산 상의 좌표를 (xxci, yyci)로 하면,
Figure 112007087269845-PAT00002
Figure 112007087269845-PAT00003
(단, Φi=tan-12-i(i=0, 1, 2 …n)이며, i=0일 때, 상기 제1 연산부에서는, xxci-1=x1, yyci -1=y1이며, 상기 제2 연산부에서는, xxci -1=x2, yyci -1=y2임)
상기 제1 및 상기 제2 연산부는, i=0, 1, 2 …n의 순으로 수학식 2 또는 수학식 3을 연산하고, 상기 제3 연산부는, 상기 가(假)각도를 i마다 적산하여도 된다.
상기 제1 및 상기 제2 연산부는, i=0, 1, 2 …n의 순으로 수학식 2 및 수학식 3을 교대 또는 상보로 연산하고, 또한, 상기 제1 연산부가 수학식 2를 연산할 때에는, 상기 제2 연산부는 수학식 3을 연산하고, 상기 제1 연산부가 수학식 3을 연산할 때에는, 상기 제2 연산부는 수학식 2를 연산하여도 된다.
상기 속도 검출 장치는, 상기 제1 계산 상의 좌표를 유지하는 제3 레지스터와, 상기 제2 계산 상의 좌표를 유지하는 제4 레지스터와, 상기 제3 연산부에서 적산된 상기 가(假)각도를 유지하는 제5 레지스터를 더 구비하고 있어도 된다.
상기 샘플링 주기를 단위 시간으로 함으로써, 상기 제3 연산부에서 적산된 상기 가(假)각도의 2배를 상기 운동체의 각속도로 하여도 된다.
상기 제3 연산부에서 집적된 상기 가(假)각도는, 상기 운동체의 회전 각도의 2분의 1이어도 된다.
상기 속도 검출 장치는, 로터리 인코더 또는 리니어 스케일에 배치되어 있어도 된다.
본 발명에 따른 실시 형태에 따른 속도 검출 장치는, 회전 운동 또는 왕복 운동을 행하는 운동체의 위치를 나타내는 좌표를 주기적으로 샘플링하고, 상기 좌표에 기초하여 상기 운동체의 각속도를 검출하는 속도 검출 장치로서,
미리 설정된 복수의 가(假)각도 Φi012>…>Φi>…Φn)(n은 자연수), 및, 그 복수의 가(假)각도의 각각에 대한 삼각 함수의 값 tanΦi를 기억하는 메모리와, 제1 샘플링에서 얻어진 운동체의 제1 현실의 좌표(x1, y1)를 저장하는 제1 레지스터와, 상기 제1 샘플링의 다음의 제2 샘플링에서 얻어진 운동체의 제2 현실의 좌표(x2, y2)를 저장하는 제2 레지스터와, 상기 제1 현실의 좌표(x1, y1)와 상기 삼각 함수의 값 tanΦi에 기초하여 수학식 2 또는 수학식 3을 연산하는 제1 연산부와, 상기 제2 현실의 좌표(x2, y2)와 상기 삼각 함수의 값 tanΦi에 기초하여 수학식 2 또는 수학식 3을 연산하는 제2 연산부와, 상기 제1 또는 상기 제2 연산부에서의 연산에서 이용된 상기 가(假)각도 Φi를 적산하는 제3 연산부를 구비하고,
[수학식 2]
Figure 112007087269845-PAT00004
[수학식 3]
Figure 112007087269845-PAT00005
(단, Φi=tan-12-i(i=0, 1, 2 …n)이며, i=0일 때, 상기 제1 연산부에서는, xxci-1=x1, yyci -1=y1이며, 상기 제2 연산부에서는, xxci -1=x2, yyci -1=y2임)
상기 제1 및 상기 제2 연산부는, i=0, 1, 2 …n의 순으로 수학식 2 또는 수학식 3을 연산하고, 상기 제3 연산부는, 상기 가(假)각도를 i마다 적산한다.
상기 제1 및 상기 제2 연산부는, i=0, 1, 2 …n의 순으로 수학식 2 및 수학식 3을 교대 또는 상보로 연산하고, 또한, 상기 제1 연산부가 수학식 2를 연산할 때에는, 상기 제2 연산부는 수학식 3을 연산하고, 상기 제1 연산부가 수학식 3을 연산할 때에는, 상기 제2 연산부는 수학식 2를 연산하여도 된다.
본 발명에 따른 속도 검출 장치는, 소규모의 연산 회로로 운동체의 속도를 고정밀도로 검출할 수 있다.
이하, 도면을 참조하여 본 발명에 따른 실시 형태를 설명한다. 본 실시 형태는, 본 발명을 한정하는 것은 아니다.
도 1은, 본 발명에 따른 실시 형태에 따른 속도 검출 장치(100)의 블록도이다. 속도 검출 장치(100)는, 로터리 인코더 또는 리니어 스케일(10)과, A/D 컨버터(40)와, 연산부(50)를 구비하고 있다. 연산부(50)는, 범용 CPU 또는 커스텀 LSI이다. 연산부(50)는, 예를 들면, FPGA(Field Programmable Gate Arrary)로 된다. 속도 검출 장치(100)는, 예를 들면, 회전 운동 또는 왕복 운동을 행하는 운동체를 구비한 서보 모터에 배설되어도 된다. 운동체는, 예를 들면, 공작 기계에 배치된 서보 모터의 로터 또는 왕복 운동하는 암 등이다. 속도 검출 장치(100)는, 예를 들면, 로터리 인코더 또는 리니어 스케일(10)을 이용한 위치 결정 장치에 배치되어도 된다.
로터리 인코더 또는 리니어 스케일(10)은, 회전 운동 또는 왕복 운동을 행하는 운동체의 위치를 나타내는 좌표(sin, cos)의 신호를 출력한다. 이 좌표(sin, cos)는, 직교 위상의 정현파의 값이다. A/D 컨버터(40)는, 로터리 인코더 또는 리니어 스케일(10)로부터의 sin 신호 및 cos 신호를 디지털 신호로 변환한다. 또한, 연산부(50)는 A/D 컨버터(40)로부터의 sin 신호 및 cos 신호의 각각에 기초하는 디 지털 신호를 받아, 운동체의 각속도 또는 속도를 산출한다.
연산부(50)는, FPGA로 되지만, FPGA 대신에, 다른 임의의 LSI를 이용할 수 있다. 연산부(50)를 커스텀 LSI 상에서 로직 회로로서 실현한 경우, 동일한 처리를 반복하는 반복 처리를 단시간에 행할 수 있다. 한편으로, 연산부(50)는, 범용 CPU 및 소프트웨어에 의해 실현하여도 된다. 연산부(50)를 범용 CPU 및 소프트웨어에 의해 실현한 경우, 프로그램의 변경으로 다양한 처리를 행할 수 있다.
도 2는, 연산부(50)의 내부 구성을 도시하는 블록도이다. 연산부(50)는, 제1 연산부로서의 CORDIC 로테이션(이하, 로테이터라고도 함)(51)과, 제2 연산부로서의 CORDIC 로테이션(58)과, 메모리(52, 59)와, 회전 방향 판별부(53)와, 에리어 판별부(54, 55)와, 선택부(56, 57)와, 제1 내지 제4 레지스터 R11, R21, R31 및 R41과, 제5 레지스터로서의 회전 각도 레지스터 R51과, 각속도 유지 레지스터 R61과, 제3 연산부로서의 가산기(80)를 구비하고 있다.
도 3은, 제1 현실의 좌표(sinθ, cosθ) 및 제2 현실의 좌표(sin(θ+Φ), cos(θ+Φ))의 위치 관계를 도시하는 도면이다. 제2 현실의 좌표(sin(θ+Φ), cos(θ+Φ))은, 도 3에 도시한 바와 같이 제1 현실의 좌표(sinθ, cosθ)를 기준으로 하여 Φ만큼 로터를 회전시켰을 때의 현실의 좌표이다. 도 3의 지면에서, 로터는 CCW(Counter Clock Wise) 방향(도 3의 화살표의 방향)으로 회전하고 있다. 또한, θ 및 Φ의 단위는, rad(라디안)이다.
도 2 및 도 3을 참조하여, 로터가 제1 현실의 좌표로부터 제2 현실의 좌표까지 회전할 때의 각속도를, sin 신호 및 cos 신호로부터 산출하는 과정을 설명한다. 또한, 왕복 운동을 행하는 운동체의 속도는, 각속도로부터 간단히 산출할 수 있으므로, 여기에서는, 각속도의 산출만을 설명한다.
본 실시 형태에서는, 각속도를 산출하기 위해 CORDIC(C0ordinate Rotation Digital Computer) 알고리즘이 이용된다. CORDIC 알고리즘에는, 벡터링 모드 및 로테이션 모드가 있다. 본 실시 형태에서는, 로테이션 모드를 이용한다. 이 CORDIC 알고리즘은, 연산부(50) 내에 내장되어 있고, 본 실시 형태에서는 로직 회로에 의해 실현되어 있다.
이해를 용이하게 하기 위해서, 운동체로서의 로터가 1회전하면, 로터리 인코더(10)가 1사이클의 sin파 및 cos파를 출력하는 것으로 한다. 속도 검출 장치(100)는, 1사이클의 동안에 주기적(주기 T)으로 로터의 좌표를 샘플링한다. 속도 검출 장치(100)는, 제1 샘플링에서 로터의 2차원 좌표(유클리드 좌표)(x1, y1)을 획득하고, 제1 샘플링의 다음의 제2 샘플링에서 일정 시간 후의 2차원 좌표(x2, y2)를 획득한다. x1 및 x2는 sin값이며, y1 및 y2는 cos값이다. 속도 검출 장치(100)는, 좌표(x1, y1) 및 좌표(x2, y2)에 기초하여 제1 샘플링 시에서의 로터의 위치로부터 제2 샘플링 시의 로터의 위치까지의 각도 Φ을 CORDIC 알고리즘에 의해 계산한다. 샘플링은, 소정의 주기에서 행해지므로, 이 각도 Φ가 판명되면, 로터의 각속도가 얻어진다.
메모리(52)는, 미리 설정된 복수의 가(假)각도 Φ0∼Φn012>… Φn)(n은 자연수), 및, 그 복수의 가(假)각도의 각각에 대한 삼각 함수의 값 tanΦ0∼ tanΦn을 기억하고 있다. 속도 검출 장치(100)의 초기 상태에서, 제1 내지 제4 레지스터는 특정값을 저장하지 않고 있다. 제5 레지스터 R51은, 제로이다. 또한, 제5 레지스터 R51은, 샘플링마다 제로로 리세트된다.
우선, 연산부(50)는, 제1 샘플링에서 얻어진 로터의 제1 현실의 좌표(x1, y1)=(sinθ, cosθ)을, A/D 컨버터(40)로부터 디지털값으로 수취한다. 제1 좌표는, 제2 레지스터 R21에 저장된다.
당초, 제1, 제3 및 제4 레지스터 R11, R31 및 R41은 일정하지 않다. 이 때의 계산값은, 부정값에 기초하므로 배제한다.
다음으로, 연산부(50)는, 다음의 주기에서 제2 샘플링을 행한다. 연산부(50)는, 제2 샘플링에서 얻어진 로터의 제2 현실의 좌표(x2, y2)=(sin(θ+Φ), cos(θ+Φ))을, A/D 컨버터(40)로부터 디지털값으로 수취한다. 이 때, 제1 현실의 좌표(sinθ, cosθ)은 제1 레지스터 R11로 옮겨지고, 제2 현실의 좌표(sin(θ+Φ), cos(θ+Φ))이 제2 레지스터 R21에 저장된다.
제2 현실의 좌표를 받았을 때에는, 제3 레지스터 R31은 아직 부정이므로, 선택부(56)는, 제1 레지스터 R11을 선택하고, 제1 현실의 좌표(sinθ, cosθ)를 에리어 판별부(54) 및 로테이터(51)에 보낸다. 또한, 이 때, 제4 레지스터 R41도 아직 부정이므로, 선택부(57)는, 제2 레지스터 R21을 선택하고, 제2 현실의 좌표(sin(θ+Φ), cos(θ+Φ))를 에리어 판별부(55) 및 로테이터(58)에 보낸다.
로테이터(51)는, 제1 좌표(x1, y1)=(sinθ, cosθ), 및, 메모리(52)로부터의 삼각 함수의 값 tanΦ0을 이용하여 제1 계산 상의 좌표(xxc1, yyc1)를 계산한다. 한편, 로테이터(58)는, 제2 현실의 좌표(x2, y2)=(sin(θ+Φ), cos(θ+Φ)), 및, 메모리(59)로부터의 삼각 함수의 값 tanΦ0을 이용하여 제2 계산 상의 좌표(xxc1, yyc1)를 계산한다. 로테이터(51 및 58)의 구체적인 연산 내용에 관해서는 후술한다. 또한, 로테이터(51 및 58)는, 모두 후술하는 수학식 2 및 수학식 3을 연산하므로, 제1 및 제2 계산 상의 좌표는, (xxci, yyci)로 표현하고 있다. 그러나, 제1 계산 상의 좌표 및 제2 계산 상의 좌표는, 서로 다른 좌표이다. i는, 로테이터(51, 58)가 이미 실행한 연산 횟수와 동등하다.
제3 레지스터 R31은, 제1 계산 상의 좌표(xxc1, yyc1)를 저장한다. 제4 레지스터 R41은, 제2 계산 상의 좌표(xxc1, yyc1)를 저장한다. 그 후, 선택부(56 및 57)는, 다음의 주기의 샘플링이 행해질 때까지, 각각 제3 및 제4 레지스터 R31 및 R41을 선택한다. 로테이터(51 및 58)는, 각각 제3 및 제4 레지스터 R31 및 R41에 저장된 좌표와, 삼각 함수의 값 tanΦ1을 이용하여 마찬가지의 계산을 반복한다. 그들의 계산 결과는, 제1 계산 상의 좌표(xxci, yyci) 및 제2 계산 상의 좌표(xxci, yyci)로서, 각각 제3 및 제4 레지스터 R31 및 R41에 덮어쓰기된다. 이와 같이, 로테이터(51 및 58)는, 삼각 함수의 값 tanΦ0, tanΦ1, tanΦ2, …tanΦi를 순서대로 이용하여 각각 제1 계산 상의 좌표 및 제2 계산 상의 좌표를 계산한다. i=0, 1, 2 …에 대응하는 각 연산에서, 로테이터(51 및 58)는, 제1 계산 상의 좌표 및 제2 계산 상의 좌표를 서로 접근시키도록 연산한다. 이에 의해, 제1 계산 상의 좌표 및 제2 계산 상의 좌표는, 로테이터(51 및 58)에 의한 계산마다, 제1 현실의 좌표와 제2 현실의 좌표 사이의 중간 좌표(sin(θ+Φ/2), cos(θ+Φ/2))에 수속해 간다. 중간 좌표는, 샘플링마다 결정되고, 회전 각도 레지스터 R51로 보내진다. 회전 각도 레지스터 R51 내의 데이터는, 샘플링마다 갱신된다.
가산기(80)는, 회전각 유지 레지스터 R51에 저장되어 있는 가(假)각도 +Φi-1 또는 -Φi-1에 가(假)각도 -Φi 또는 +Φi를 가산하고, 그 가산 결과를 회전각 유지 레지스터 R41로 되돌린다. 이와 같이, 가산기(80)는, 가(假)각도 ±Φ0、±Φ1, ±Φ2, …, ±Φi를 적산하고, 회전각 유지 레지스터 R51은, 적산된 가(假)각도를 유지한다. 가(假)각도 Φi가 수속했을 때에, 회전각 유지 레지스터 R51에 저장된 각도는, 제1 현실의 좌표로부터 중간 좌표에의 회전각 Φ/2로 된다. 회전각 유지 레지스터 R51 내의 회전각은, 샘플링마다 갱신된다. 여기에서, 적산이란, 전 회의 연산 결과에 대하여 가산 또는 감산을 더 반복하여 연산하는 것이다. 예를 들면, 적산된 가(假)각도는, Φ0123+…과 같이 나타낼 수 있다.
실제의 로터의 회전 각도는, 회전 각도 레지스터 R51 내의 데이터를 2배로 함으로써 구할 수 있다. 데이터를 2배로 하는 것은, 디지털값을 1비트만큼 좌시프트하면 족하다. 좌시프트란, 임의의 수치가 보다 큰 값으로 되는 방향으로 자릿수 를 시프트시키는 것이다. 따라서, 이 때의 연산에 승산기는 불필요하다. 이 연산은, 회전 각도 레지스터 R51, 각속도 유지 레지스터 R61, 혹은, FPGA(50)의 외부 회로 중 어느 하나가 행해져도 된다.
현실의 좌표의 샘플링 주기는 일정하므로, 로터의 회전 각도 Φ의 값은, 그대로 상대적인 각속도로서 이용할 수 있다. 현실의 좌표의 샘플링 주기를 단위 시간으로 하면, 로터의 회전 각도 Φ의 값은, 그대로 절대적인 각속도로서 이용할 수 있다. 각속도는, 각속도 유지 레지스터 R61에 저장되며, 필요에 따라 출력된다. 각속도 유지 레지스터 R61 내의 각속도는, 샘플링마다 갱신된다.
또한, 가산기(80)는, 로테이터(58)로부터 중간 좌표(sin(θ+Φ/2), cos(θ+Φ/2))를 획득하여도 된다. 제1 계산 상의 좌표 및 제2 계산 상의 좌표는, 동일 중간 좌표에 수속하기 때문이다.
에리어 판별부(54)는, 제1 레지스터 R11에 저장된 제1 현실의 좌표가 속하는 영역 또는 제3 레지스터 R31에 저장된 제1 계산 상의 좌표가 속하는 영역 중 어느 한쪽을 판별한다. 즉, 에리어 판별부(54)는, 선택부(56)에 의해 선택된 좌표가 속하는 영역을 판별한다. 판별부(55)는, 제2 레지스터 R21에 저장된 제2 현실의 좌표가 속하는 영역 또는 제4 레지스터 R41에 저장된 제2 계산 상의 좌표가 속하는 영역의 어느 한쪽을 판별한다. 즉, 에리어 판별부(55)는, 선택부(57)에 의해 선택된 좌표가 속하는 영역을 판별한다.
다음으로, 로테이터(51 및 58)의 구체적 연산 내용을 설명한다. 제1 및 제2 계산 상의 좌표(xxci, yyci)은 수학식 2 또는 수학식 3과 같이 나타낼 수 있다. 비교기(53)는, 판별부(54 및 55)의 판별 결과에 기초하여 수학식 2 또는 수학식 3 중 어느 하나를 선택한다. 로테이터(51 및 58)는, 비교기(53)의 비교 결과에 기초하여 수학식 2 또는 수학식 3의 연산을 실행한다. 로테이터(58)는, 인버터(60)에 의해 비교기(53)의 비교 결과의 반전 신호를 수신한다. 따라서, 로테이터(58)는, 제2 현실의 좌표 또는 제2 계산 상의 좌표를, 제1 현실의 좌표 또는 제1 계산 상의 좌표의 이동 방향과 반대 방향으로 이동시키도록 연산을 행한다.
[수학식 2]
Figure 112007087269845-PAT00006
혹은,
[수학식 3]
Figure 112007087269845-PAT00007
단, tanΦi=2-i(i=0, 1, 2 …n)이다. i=0일 때, 로테이터(51)에 부여하는 초기값으로서의 제1 현실의 좌표는, xxci -1=x1, yyci -1=y1이다. 또한, 로테이터(58)에 부여하는 초기값으로서의 제2 현실의 좌표는, xxci -1=x2, yyci -1=y2이다.
수학식 2 및 수학식 3에 대하여 설명한다. 우선, 제1 현실의 좌표 및 제2 현실의 좌표는 수학식 4∼수학식 7과 같이 나타낼 수 있다.
x(i-1)=cosθ
y(i-1)=sinθ
x(i)=cos(θ+Φ)
y(i)=sin(θ+Φ)
수학식 6 및 수학식 7을 삼각 함수의 가법 정리를 이용하여 변형하면, 수학식 8 및 수학식 9로 된다.
x(i)=cosθ·cosΦ-sinθ·sinΦ
y(i)=sinθ·cosΦ-cosθ·sinΦ
수학식 8 및 수학식 9에 수학식 4 및 수학식 5를 대입하고, 변형하면, 수학식 10∼수학식 13이 얻어진다.
x(i)/cosΦ=x(i-1)-y(i-1)·tanΦ
y(i)/cosΦ=y(i-1)+x(i-1)·tanΦ
x(i)/cosΦ을 xxc(i)로 하고, y(i)/cosΦ을 yyc(i)로 하면, 수학식 10 및 수학식 11은 각각 수학식 10a 및 수학식 11b와 같이 나타낼 수 있다.
xxc(i)=x(i-1)-y(i-1)·tanΦ
yyc(i)=y(i-1)-x(i-1)·tanΦ
여기에서, CORDIC 알고리즘을 이용한다. 보다 상세하게는, tanΦ의 값을 수학식 12와 같이 ±2-i로 제한한다. 이와 같이 제한된 tanΦ를 tanΦi로 한다.
Figure 112007087269845-PAT00008
이 때, Φi가 취할 수 있는 값은, 수학식 13과 같이 제한된다. 이 각도 Φi는 이산적인 수치를 취하고, 이 Φi가 "가(假)각도"이다.
Figure 112007087269845-PAT00009
수학식 10 및 수학식 11에 삼각 함수의 값 tanΦi를 대입하면 계산 상의 좌표가 얻어진다. 여기에서, 로테이터(51 및 58)의 각 초기값(i=0)은, 각각 도 2의 제1 레지스터 R11에 저장된 제1 현실의 좌표(x1, y1) 및 제2 레지스터 R21에 저장된 제2 현실의 좌표(x2, y2)이다. 즉, 로테이터(51)에서, (xxc(0), xxc(0))=(x1, y1), 로테이터(58)에서, (xxc(0), xxc(0))=(x2, y2)이다. 제1 및 제2 현실의 좌표는, 제1 및 제2 샘플링에서 판명되고 있다.
(최초의 연산(i=O))
로테이터(51)는, 초기값으로서의 제1 현실의 좌표(x1, y1)를 수학식 10 및 수학식 11에 대입한 연산을 최초로 실행한다. 즉, 로테이터(51)는, 수학식 14 및 수학식 15를 실행한다. 이 때, 선택부(56)는, 제1 레지스터 R11을 선택한다.
xxc1=x1-y1·tanΦ0
yyc1=y1+x1·tanΦ0
수학식 12에 도시한 바와 같이, tanΦi=±2-i다. 따라서, 수학식 14 및 수학식 15에 포함되는 승산항(y1·tanΦ0) 및 (x1·tanΦ0)은, 삼각 함수의 값 tanΦ0=±2-i에 기초하여, 디지털값(바이너리 값)으로서 나타낸 y1 및 x1의 자릿수를 단지 시프트하면 족하다. 즉, 로테이터(51)는, 실제로는 승산을 연산할 필요는 없다. 이에 의해, 로테이터(51)에는, 승산기가 불필요해진다. 단, 수학식 14, 수학식 15에서 나타내는 최초의 연산에는, tanΦ0=1이므로, 로테이터(51)는, 자릿수의 시프트를 행하지 않는다. 그 후, 로테이터(51)는, x1 또는 y1과 승산항의 결과값을 가 산 또는 감산한다. 이에 의해, 로테이터(51)는, 승산없이, 수학식 14 및 수학식 15를 연산할 수 있다.
한편, 로테이터(58)는, 초기값으로서의 제2 현실의 좌표(x2, y2)를 수학식 10 및 수학식 11에 대입한 연산을 최초로 실행한다. 즉, 로테이터(58)는, 수학식 16 및 수학식 17을 실행한다. 이 때, 선택부(57)는, 제2 레지스터 R21을 선택한다.
xxc1=x2+y2·tanΦ0
yyc1=y2-x2·tanΦ0
로테이터(58)도, 수학식 16 및 수학식 17에 포함되는 승산항(y2·tanΦ0) 및 (x2·tanΦ0)의 연산을 하기 위해, 실제로는 승산을 연산할 필요는 없고, 디지털값(바이너리 값)으로서 나타낸 y2 또는 x2의 자릿수를 단지 시프트하면 된다. 이에 의해, 로테이터(58)에는, 승산기가 불필요해진다. 단, 수학식 16 및 수학식 17에서 나타내어진 최초의 연산에서는, tanΦ0=1이므로, 로테이터(58)는, 자릿수의 시프트를 행하지 않는다. 그 후, 로테이터(58)는, x2 또는 y2와 승산항의 결과값을 가산 또는 감산한다. 이에 의해, 로테이터(58)는, 승산없이, 수학식 16 및 수학식 17을 연산할 수 있다.
(2회째 이후의 연산(i=1 …))
2회째 이후의 연산에서는, 로테이터(51 및 58)는, 수학식 2 또는 수학식 3을 이용한다.
로테이터(51)에서 연산된 제1 계산 상의 좌표(xxc1, yyc1)는, 제3 레지스터 R31에 저장된다. 그 후, 선택부(56)는, 제3 레지스터 R31을 선택하고, 제1 계산 상의 좌표(xxc1, yyc1)를 로테이터(51)에 보낸다. 로테이터(51)는, 제1 계산 상의 좌표(xxc1, yyc1)를, 각각 수학식 2 또는 수학식 3의 xxci -1 및 yyci -1에 대입하고, 연산을 반복한다. 이에 의해, 제1 계산 상의 좌표(xxc2, yyc2)가 얻어진다. 제1 계산 상의 좌표(xxc2, yyc2)는, (xxc1, yyc1)를 대신하여, 제3 레지스터 R31에 덮어쓰기된다. 즉, 로테이터(51)는, 최초의 1회째의 연산에서는 수학식 14 및 수학식 15를 연산하고, 그 후에는, 수학식 2 또는 수학식 3의 연산을 반복한다.
수학식 2 및 수학식 3에 포함되는 승산항(yyci -1·tanΦ0) 및 (xxci -1·tanΦ0)은, 삼각 함수의 값 tanΦi=±2-i에 기초하여, 디지털값(바이너리값)으로서 나타낸 yyci -1 및 xxci -1의 자릿수를 단지 시프트하면 족하다. 본 실시 형태에서는, 로테이터(51)는, yyci -1 및 xxci -1을 i만큼 우시프트시킨다. 우시프트란, 임의의 수치가 보다 작은 값으로 되는 방향으로 자릿수를 시프트시키는 것이다. 즉, 수학식 2 및 수학식 3에 관해서, 로테이터(51)는, 실제로는 승산을 연산할 필요는 없다. 그 후, 로테이터(51)는, xxci -1 또는 yyci -1과 승산항의 결과값을 가산 또는 감산한다. 이에 의해, 로테이터(51)는, 승산없이, 수학식 2 또는 수학식 3을 연산할 수 있다. i의 값은 연산마다 하나씩 커지므로, 승산항의 시프트량은 연산마다 커진다. 이에 의해, 계산 상의 좌표(xxci, yyci)는, 연산마다 수속한다. 이 연산에서 이용된 가(假)각도 Φi는, 연산마다 회전 각도 레지스터 R51에 적산된다.
또한, 로테이터(58)에서 연산된 제2 계산 상의 좌표(xxc1, yyc1)는, 제4 레지스터 R31에 저장된다. 그 후, 선택부(57)는 제4 레지스터 R41을 선택하고, xx1 및 yy1을 로테이터(58)에 보낸다. 로테이터(58)는, xx1 및 yy1을, 수학식 2 또는 수학식 3의 xxi-1 및 yyi-1에 대입하고, 연산을 반복한다. 이에 의해, xx2 및 yy2가 얻어진다. 즉, 로테이터(58)는, 최초의 1회째의 연산에서는 수학식 16 및 수학식 17을 연산하고, 그 후, 로테이터(51)와 마찬가지로 수학식 2 또는 수학식 3의 연산을 반복한다.
로테이터(58)도, 로테이터(51)와 마찬가지로, 수학식 2 및 수학식 3에 관하여 승산을 연산할 필요는 없다. 그 후, 로테이터(58)는, xxci -1 또는 yyci -1과 승산항의 결과값을 가산 또는 감산한다. 이에 의해, 로테이터(58)도, 승산없이, 수학식 2 또는 수학식 3을 연산할 수 있다.
수학식 10 및 수학식 11에서, x(i)/cosΦ을 xxc(i)로 치환하고, y(i)/cos Φ을 yyc(i)로 치환한 의미는, cosΦ의 승산을 연산으로부터 제외하기 위해서이다. 이와 같이 치환함으로써, 로테이터가 실질적으로 승산을 연산할 필요가 없어진다. 또한, 계산 상의 좌표로서 얻어지는 결과(xxc1, yyc2)는, 좌표에 cosΦ을 나눈 값이다. 이는, 어디까지나 연산 도중의 계산 상의 결과이며, 각도 Φ/2가 최종적으로 얻어지면 지장은 없다.
상기 로테이터(51 및 58)의 연산 동작은, 연산 시간 단축을 위해 각 i에 대하여 동시에 실행된다. 또한, 로터의 회전 방향에 따라, 수학식 14∼수학식 17 내의 +, -의 부호는, 역부호로 되는 경우도 있다.
수학식 12 및 수학식 13에 나타내는 각 i에 대한 이산적인 수치는, 미리 설정되어 있으며, 메모리(52 및 59)에 기억되어 있다. 즉, 메모리(52 및 59)는, 가(假)각도 Φi, 가(假)각도 Φi의 각각에 대한 삼각 함수의 값 tanΦi를 각 i마다 기억하고 있다.
로테이터(51 및 58)는, 각각 메모리(52 및 59)에 기억된 수학식 12에 나타내는 수치를 획득한다. 로테이터(51 및 58)는, 수학식 2 또는 수학식 3에 나타내는 제1 및 제2 계산 상의 좌표(xxci, yyci)를 각 i에 관해서 i=0, 1, 2 …의 순번으로 계산한다.
수학식 2는, 가(假)각도가 플러스인 경우에 성립하는 식이며, 수학식 3은, 가(假)각도가 마이너스인 경우에 성립하는 식이다. 수학식 2 및 수학식 3의 Φi는, 절대값으로 표시되어 있다. 즉, 수학식 3은, 수학식 2의 Φi에 -Φi를 대입하여 얻어지는 식이다. 가(假)각도가 플러스(+Φi)인 경우, 로테이터(51 및 58)는, 도 4에 도시하는 반시계 회전 방향 CCW로 계산 상의 좌표를 이동시킨다. 가(假)각도가 마이너스(-Φi)인 경우, 로테이터(51 및 58)는, 도 4에 도시하는 시계 회전 방향 CW로 계산 상의 좌표를 이동시킨다. 로테이터(51 및 58)는, 회전 방향 판단부(53)로부 터의 신호에 따라서 수학식 2 또는 수학식 3 중 어느 하나를 선택한다.
로테이터(51 및 58)는, 제1 및 제2 계산 상의 좌표를 서로 접근시키기 위해서, i=0, 1, 2 …n의 순으로 수학식 2 및 수학식 3을 교대 또는 상보로 연산한다. 즉, 로테이터(51)가 수학식 2를 연산할 때에는, 로테이터(58)는 수학식 3을 연산하고, 로테이터(51)가 수학식 3을 연산할 때에는, 로테이터(58)는 수학식 2를 연산한다. 제1 계산 상의 좌표의 이동 방향 및 제2 계산 상의 좌표의 이동 방향은, 한 방향이 정해지면, 다른 쪽도 결정되므로, 회전 방향 판별부(53)는 하나로 족하다.
가(假)각도 Φi는, 수학식 13에 도시한 바와 같이 i가 커짐에 따라 작아진다. 따라서, 도 4에 도시한 바와 같이, 제1 계산 상의 좌표 및 제2 계산 상의 좌표를, 제1 현실의 좌표(x1, y1)와 제2 현실의 좌표(x2, y2)의 중간의 좌표로 수속시킬 수 있다. 로테이터(51 및 58)는, 제1 및 제2 계산 상의 좌표를 서로 접근시키도록 연산하므로, 가(假)각도 Φi는, 수속의 결과, 실제의 회전 각도의 2분의1(Φ/2)로 된다. 가(假)각도 ±Φi의 적산은, 레지스터 R51에 저장된 로테이터(51)의 연산 결과를, 가산기(80)가 로테이터(51)의 연산마다 적산함으로써 실행된다. 또한, 가(假)각도 ±Φi의 적산 결과는, 로테이터(58)의 연산 결과를 적산하는 것에 의해서도 마찬가지로 얻어진다.
도 4를 참조하여, 연산부(50)의 동작을 개념적으로 설명한다. 로테이터(51)는, 우선, 제1 현실의 좌표(x1, y1)를 CCW 방향으로 Φ0만큼 회전시킨다. 실제로는, 로테이터(51)는, 수학식 14 및 수학식 15을 연산하고, 제1 계산 상의 좌표를 산출한다. CCW는, 제1 현실의 좌표(x1, y1)를 기준으로 하여 제2 현실의 좌표(x2, y2)로 향하는 방향이다.
이와 동시에, 로테이터(58)는, 제2 현실의 좌표(x2, y2)를 CW 방향으로 Φ0만큼 회전시킨다. 실제로는, 로테이터(58)는, 수학식 16 및 수학식 17을 연산하고, 제2 계산 상의 좌표(xxc1, yyc1)를 산출한다. CW는, 제2 현실의 좌표(x2, y2)를 기준으로 하여 제1 현실의 좌표(x1, y1)로 향하는 방향이다. 결과적으로, 로테이터(51 및 58)는, 제1 현실의 좌표와 제2 현실의 좌표를 서로 접근시키는 방향(서로 마주 보는 방향)으로 회전시키도록 연산한다.
다음으로, 로테이터(51)는, 제1 계산 상의 좌표(xxc1, yyc1)를 CW 방향으로 Φ1만큼 회전시킨다. 실제로는, 로테이터(51)는, 수학식 2(i=1)를 연산하고, 제1 계산 상의 좌표를 재계산한다.
이와 동시에, 로테이터(58)는, 제2 계산 상의 좌표(xxc2, yyc2)을 CCW 방향으로 Φ1만큼 회전시킨다. 실제로는, 로테이터(58)는, 수학식 2를 연산하고, 제2 계산 상의 좌표를 재계산한다.
다음으로, 로테이터(51)는, 제1 계산 상의 좌표(xxc1, yyc1)를 CW 방향으로 Φ1만큼 회전시킨다. 실제로는, 로테이터(51)는, 수학식 3(i=1)을 연산하고, 제1 계산 상의 좌표를 재계산한다. 이와 동시에, 로테이터(58)는, 제2 계산 상의 좌표(xxc2, yyc2)을 CCW 방향으로 Φ1만큼 회전시킨다. 실제로는, 로테이터(58)는, 수학식 2를 연산하고, 제2 계산 상의 좌표를 재계산한다.
다음으로, 로테이터(51)는, 제1 계산 상의 좌표를 CCW 방향으로 Φ2만큼 회 전시킨다. 실제로는, 로테이터(51)는, 수학식 2(i=2)을 연산하고, 제1 계산 상의 좌표를 재계산한다. 이와 동시에, 로테이터(58)는, 제2 계산 상의 좌표를 CW 방향으로 Φ2만큼 회전시킨다. 실제로는, 로테이터(58)는, 수학식 3을 연산하고, 제2 계산 상의 좌표를 재계산한다.
수학식 13에 도시한 바와 같이 i가 커짐에 따라, 가(假)각도 Φi의 값은 작아져 간다. 또한, 로테이터(51 및 58)는, 각 연산에서, 제1 계산 상의 좌표와 제2 계산 상의 좌표를 서로 접근시키는 방향(서로 마주 보는 방향)으로 회전시키도록 연산한다. 따라서, 로테이터(51 및 58)가 연산을 반복할 때마다, 제1 계산 상의 좌표 및 제2 계산 상의 좌표는, 중간 좌표(sin(θ+Φ/2), cos(θ+Φ/2))로 수속한다. 제1 계산 상의 좌표 및 제2 계산 상의 좌표가 중간 좌표에 수속했을 때, 가(假)각도 Φi는, 거의 Φ/2에 동등하다.
다음으로, 회전 방향 판별부(53)가 방향 CW 또는 CCW(수학식 2 또는 수학식 3)를 선택하는 방법을 설명한다.
도 5는, 좌표를 분할한 8개의 영역을 도시하는 도면이다. 도 6은, 임의의 좌표(x, y)가 도 5에 도시하는 영역 I∼VIII 중 어디에 속할지를 판별하기 위한 플로우도이다. 판별부(54 및 55)는, 제1 현실의 좌표, 제2 현실의 좌표, 제1 계산 상의 좌표 및 제2 계산 상의 좌표가 도 5의 영역 I∼VIII 중 어디에 속할지를 판별한다. 제1 현실의 좌표를 판별하는 경우에는, 도 6의 (x, y)에 (x1, y1)을 대입하면 된다. 제2 현실의 좌표를 판별하는 경우에는, 도 6의 (x, y)에 (x2, y2)를 대 입하면 된다. 제1 또는 제2 계산 상의 좌표를 판별하는 경우에는, 도 6의 (x, y)에 (xxci, yyci)를 대입하면 된다.
스텝 S11 및 S12에서, x>0 또한 y>0인 경우, 좌표(x, y)는, 도 5의 영역 I 또는 II에 속한다. 또한, 스텝 S13에서, x≥y인 경우, 좌표(x, y)는 영역 I에 속하고, x<y인 경우, 좌표(x, y)는 영역 II에 속하는 것을 알 수 있다.
스텝 S11 및 S12에서, x>0 또한 y≤0인 경우, 좌표(x, y)는, 도 5의 영역 VII 또는 VIII에 속한다. 또한, 스텝 S14에서, |x|≥|y|인 경우 좌표(x, y)는 영역 VIII에 속하고, |x|<|y|인 경우, 좌표(x, y)는 영역 VII에 속하는 것을 알 수 있다.
스텝 S11 및 S15에서, x≤0 또한 y>0인 경우, 좌표(x, y)는, 도 5의 영역 III 또는 IV에 속한다. 또한, 스텝 S16에서, |x|≥|y|인 경우, 좌표(x, y)는 영역 IV에 속하고, |x|<|y|인 경우, 좌표(x, y)는 영역 III에 속하는 것을 알 수 있다.
스텝 S11 및 S15에서, x≤0 또한 y≤0인 경우, 좌표(x, y)는, 도 5의 영역 V 또는 VI에 속한다. 또한, 스텝 S17에서, |x|≥|y|인 경우, 좌표(x, y)는 영역 V에 속하고, |x|<|y|인 경우, 좌표(x, y)는 영역 VI에 속하는 것을 알 수 있다.
에리어 판별부(54 및 55)는, 도 6의 플로우를 ASIC(Application Specific Integrated Circuit)와 같은 커스텀 LSI로 구성하면 된다.
도 7의 (a) 및 도 7의 (b)는, 제1 현실의 좌표 및 제2 현실의 좌표, 또는, 제1 계산 상의 좌표 및 제2 계산 상의 좌표가 속하는 영역에 기초하여, 제1 및 제2 계산 상의 좌표의 회전 방향(CCW 또는 CW)을 규정한 표이다. 회전 방향 판별부(53)는, 도 7의 (a) 및 도 7의 (b)의 표에 따라서, 로테이터(51 및 58)가 이용하는 연산식(수학식 2 또는 수학식 3)을 선택한다.
도 7의 (a) 및 도 7의 (b)의 "목표"는, 목표로 되는 좌표가 속하는 영역을 나타낸다. 제1 현실의 좌표 및 제2 현실의 좌표는, 그 한쪽이 다른 쪽을 목표로 한다. 제1 계산 상의 좌표 및 제2 계산 상의 좌표는, 그 한쪽이 다른 쪽을 목표로 한다. 도 7의 (a) 및 도 7의 (b)의 "전회"는, 전회의 연산에 의해 얻어진 계산 상의 좌표(xxci -1, yyci -1)가 속하는 영역을 나타낸다. 혹은, 최초의 연산에서는, 제1 현실의 좌표 및 제2 현실의 좌표를 나타낸다. 예를 들면, 제1 현실의 좌표가 영역 I에 속하고, 제2 현실의 좌표가 영역 II에 속하는 경우, 제1 현실의 좌표에 있어서, 목표는 영역 II로 된다. 따라서, 회전 방향 판별부(53)는, "목표"의 영역이 II이며, 또한, "전회"의 영역이 I인 회전 방향 CCW를 선택한다. 즉, 회전 방향 판별부(53)는, 로테이터(51)가 수학식 2를 선택하도록 신호를 보낸다. 이 때, 로테이터(58)는 수학식 3을 선택한다.
마찬가지로, i=1에서의 제1 계산 상의 좌표가 영역 II에 속하고, 제2 계산 상의 좌표가 영역 I에 속하는 경우, 제1 계산 상의 좌표에 있어서, 목표는 영역 I로 된다. 따라서, 회전 방향 판별부(53)는, "목표"의 영역이 I이며, 또한, "전회"의 영역이 II인 회전 방향 CW를 선택한다. 즉, 회전 방향 판별부(53)는, 로테이터(51)가 수학식 3을 선택하도록 신호를 보낸다. 이 때, 로테이터(58)는 수학식 2 를 선택한다.
제1 현실의 좌표와 제2 현실의 좌표가 동일한 영역에 속하는 경우, x1과 x2를, 혹은, y1과 y2를 비교한다. 예를 들면, 제1 현실의 좌표와 제2 현실의 좌표가 모두 영역 I에 속하는 경우, y1과 y2를 비교한다. y1<y2인 경우에는, 제1 현실의 좌표를 CCW 방향으로 회전시키고, 제2 현실의 좌표를 CW 방향으로 회전시킨다.
제1 계산 상의 좌표와 제2 계산 상의 좌표가 동일한 영역에 속하는 경우, 제1 계산 상의 좌표의 xxci와 제2 계산 상의 좌표의 xxci를 비교한다. 혹은, 제1 계산 상의 좌표의 yyci와 제2 계산 상의 좌표의 yyci를 비교한다. 예를 들면, i=1에서 제1 계산 상의 좌표와 제2 계산 상의 좌표가 모두 영역 I에 속하는 경우, 제1 계산 상의 좌표의 xxc1과 제2 계산 상의 좌표의 xxc1을 비교한다. 제1 계산 상의 좌표의 xxc1이 제2 계산 상의 좌표의 xxc1보다 큰 경우에는, 제1 계산 상의 좌표를 CCW 방향으로 회전시키고, 제2 계산 상의 좌표를 CW 방향으로 회전시킨다.
이와 같이, 제1 현실의 좌표와 제2 현실의 좌표가 동일한 영역에 속하는 경우, 혹은, 제1 계산 상의 좌표와 제2 계산 상의 좌표가 동일한 영역에 속하는 경우에도, 회전 방향 판별부(53)는, 수학식 2 또는 수학식 3을 정확하게 선택할 수 있다.
회전 방향 판별부(53)는, 도 7의 (a) 및 도 7의 (b)의 선택 조건을 ASIC과 같은 커스텀 LSI로 구성하면 된다.
본 실시 형태에서, 속도 검출 장치(100)는, 로터의 각속도를 산출한다. 그러나, 속도 검출 장치(100)는, 왕복 운동을 하는 운동체에도 적용할 수 있다. 이 경우, 속도 검출 장치(100)는, FPGA(50)에서 얻어진 각속도를 운동체의 속도로 변환하면 된다.
본 실시 형태에 따르면, 속도 검출 장치(100)는, 속도 검출의 정밀도를 악화시키고 있던 제산이나 승산을 이용하는 일 없이, sin 신호 및 cos 신호의 가산 및 감산만을 이용하여 회전 각도를 검출할 수 있으므로 고정밀도이다. 여기에서, 수학식 2 및 수학식 3에는, tanΦi를 승산하는 항이 존재한다. 그러나,tanΦi는, =2-i이므로, tanΦi의 승산은, xxci -1 또는 yyci -1의 디지털값을 i비트만큼 우시프트하는 것과 등가이다. 따라서, 로테이터(51 및 58)는, 실제로는, 승산기를 포함하지 않으며, 단지, 디지털값을 자릿수 내림하는 회로를 포함할 뿐이다.
일반적으로, 연산기를 로직 회로로 실현하고자 하면, 제산기 및 승산기는, 가산기 및 감산기에 비해, 매우 회로 규모가 커진다. 본 실시 형태에서는, FPGA(50)는, 2개의 로테이터를 포함하지만, 이들 로테이터로부터 제산기 및 승산기를 생략함으로써, 전체의 회로 규모는, 매우 작은 것으로 된다. 또한, 제산기 및 승산기가 없으므로, 본 실시 형태에 따른 FPGA(50)는, 커스텀 로직 LSI로 실현하기 쉽다. 본 실시 형태의 로테이터(51, 58)는, 전술한 바와 같이 간단한 식을 반복하여 연산한다. 커스텀 로직 LSI는, 이와 같이 간단한 연산을 고속으로 연산하는 데에 바람직하다. 따라서, 본 실시 형태에 따른 FPGA(50)는, 커스텀 로직 LSI를 이용하여 연산 속도를 고속화할 수 있다. 즉, 본 실시 형태에 따른 FPGA(50)는, 로직 LSI에서 실현한 경우에 특히 유리하다고 할 수 있다.
본 실시 형태에서, 회전 각도 레지스터 R51은, 로테이터(51)의 연산마다 가(假)각도를 2배로 한 값을 유지하여도 된다. 이 경우, 가산기(80)에서 적산되어 회전 각도 레지스터 R51에 유지된 가(假)각도의 값을 그대로 로터의 회전 각도로 할 수 있다.
도 1은 본 발명에 따른 실시 형태에 따른 속도 검출 장치(100)의 블록도.
도 2는 FPGA(50)의 내부 구성을 도시하는 블록도.
도 3은 제1 현실의 좌표 및 제2 현실의 좌표의 위치 관계를 도시하는 도면.
도 4는 제1 계산 상의 좌표 및 제2 계산 상의 좌표를 중간 좌표에 수속시킬 때의 개념도.
도 5는 좌표를 분할한 8개의 영역을 도시하는 도면.
도 6은 임의의 좌표가 도 5에 도시하는 영역 I∼VIII 중 어느 하나에 속하는지를 판별하기 위한 플로우도.
도 7은 제1 좌표, 현실의 제2 좌표 및 계산 상의 제2 좌표의 각각이 속하는 영역에 기초하여, 계산 상의 제2 좌표의 회전 방향 CCW 또는 CW를 규정한 표.
<도면의 주요 부분에 대한 부호의 설명>
50 : FPGA
51, 58 : CORDIC 로테이션
52, 59 : 메모리
53 : 회전 방향 판별부
54, 55 : 에리어 판별부
56, 57 : 선택부
R11 : 제1 레지스터
R21 : 제2 레지스터
R31 : 제3 레지스터
R41 : 제4 레지스터
R51 : 회전 각도 레지스터
R61 : 각속도 유지 레지스터

Claims (10)

  1. 회전 운동 또는 왕복 운동을 행하는 운동체의 위치를 나타내는 좌표를 주기적으로 샘플링하고, 상기 좌표에 기초하여 상기 운동체의 각속도를 검출하는 속도 검출 장치로서,
    미리 설정된 복수의 가(假)각도, 및, 그 복수의 가(假)각도의 각각에 대한 삼각 함수의 값을 기억하는 메모리와,
    제1 샘플링에서 얻어진 운동체의 제1 현실의 좌표(x1, y1)를 저장하는 제1 레지스터와,
    상기 제1 샘플링의 다음의 제2 샘플링에서 얻어진 운동체의 제2 현실의 좌표(x2, y2)를 저장하는 제2 레지스터와,
    상기 x1과 상기 삼각 함수의 값에 기초하여 y1의 자릿수를 시프트한 결과값과의 가산 또는 감산에 의해 나타내어지는 제1 계산 상의 좌표를 산출하는 제1 연산부와,
    상기 y2와 상기 삼각 함수의 값에 기초하여 x2의 자릿수를 시프트한 결과값과의 가산 또는 감산에 의해 나타내어지는 제2 계산 상의 좌표를 산출하는 제2 연산부와,
    상기 제1 또는 상기 제2 연산부에서의 연산에 의해 얻어진 상기 가(假)각도를 적산하는 제3 연산부를 구비하고,
    상기 제1 및 상기 제2 연산부는, 상기 제1 및 상기 제2 현실의 좌표를 서로 접근시키도록 연산하는 것을 특징으로 하는 속도 검출 장치.
  2. 제1항에 있어서,
    상기 제1 및 상기 제2 연산부는, 상기 가(假)각도를 작게 하면서, 상기 제1 및 상기 제2 계산 상의 좌표를 수속시키도록 연산을 반복하고,
    상기 제3 연산부는, 상기 제1 또는 상기 제2 연산부에서의 연산에서 수속하는 상기 가(假)각도를 적산하고, 상기 제1 및 상기 제2 계산 상의 좌표가 수속했을 때의 그 가(假)각도에 기초하여 상기 운동체의 각속도를 생성하는 것을 특징으로 하는 속도 검출 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 메모리는, 상기 가(假)각도로서 Φi012>…>Φi>… Φn)(n은 자연수), 상기 삼각 함수의 값으로서 tanΦi를 기억하고,
    상기 제1 또는 상기 제2 계산 상의 좌표를 (xxci, yyci)로 하면,
    [수학식 2]
    Figure 112007087269845-PAT00010
    [수학식 3]
    Figure 112007087269845-PAT00011
    (단, Φi=tan-12-i(i=0, 1, 2 …n)이며, i=0일 때, 상기 제1 연산부에서는, xxci -1=x1, yyci -1=y1이며, 상기 제2 연산부에서는, xxci -1=x2, yyci -1=y2임)
    상기 제1 및 상기 제2 연산부는, i=0, 1, 2 …n의 순으로 수학식 2 또는 수학식 3을 연산하고,
    상기 제3 연산부는, 상기 가(假)각도를 i마다 적산하는 것을 특징으로 하는 속도 검출 장치.
  4. 제3항에 있어서,
    상기 제1 및 상기 제2 연산부는, i=0, 1, 2 …n의 순으로 수학식 2 및 수학식 3을 교대 또는 상보로 연산하고, 또한, 상기 제1 연산부가 수학식 2를 연산할 때에는, 상기 제2 연산부는 수학식 3을 연산하고, 상기 제1 연산부가 수학식 3을 연산할 때에는, 상기 제2 연산부는 수학식 2를 연산하는 것을 특징으로 하는 속도 검출 장치.
  5. 제2항에 있어서,
    상기 제1 계산 상의 좌표를 유지하는 제3 레지스터와,
    상기 제2 계산 상의 좌표를 유지하는 제4 레지스터와,
    상기 제3 연산부에서 적산된 상기 가(假)각도를 유지하는 제5 레지스터
    를 더 구비한 것을 특징으로 하는 속도 검출 장치.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 샘플링 주기를 단위 시간으로 함으로써, 상기 제3 연산부에서 적산된 상기 가(假)각도의 2배를 상기 운동체의 각속도로 하는 것을 특징으로 하는 속도 검출 장치.
  7. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 제3 연산부에서 집적된 상기 가(假)각도는, 상기 운동체의 회전 각도의 2분의 1인 것을 특징으로 하는 속도 검출 장치.
  8. 제1항에 있어서,
    상기 속도 검출 장치는, 로터리 인코더 또는 리니어 스케일에 배비되어 있는 것을 특징으로 하는 속도 검출 장치.
  9. 회전 운동 또는 왕복 운동을 행하는 운동체의 위치를 나타내는 좌표를 주기적으로 샘플링하고, 상기 좌표에 기초하여 상기 운동체의 각속도를 검출하는 속도 검출 장치로서,
    미리 설정된 복수의 가(假)각도 Φi012>…>Φi>… Φn)(n은 자연수), 및, 그 복수의 가(假)각도의 각각에 대한 삼각 함수의 값 tanΦi를 기억하는 메모리와,
    제1 샘플링에서 얻어진 운동체의 제1 현실의 좌표(x1, y1)를 저장하는 제1 레지스터와,
    상기 제1 샘플링의 다음의 제2 샘플링에서 얻어진 운동체의 제2 현실의 좌표(x2, y2)를 저장하는 제2 레지스터와,
    상기 제1 현실의 좌표(x1, y1)와 상기 삼각 함수의 값 tanΦi에 기초하여 수학식 2 또는 수학식 3을 연산하는 제1 연산부와,
    상기 제2 현실의 좌표(x2, y2)와 상기 삼각 함수의 값 tanΦi에 기초하여 수학식 2 또는 수학식 3을 연산하는 제2 연산부와,
    상기 제1 또는 상기 제2 연산부에서의 연산에서 이용된 상기 가(假)각도 Φi를 적산하는 제3 연산부를 구비하고,
    [수학식 2]
    Figure 112007087269845-PAT00012
    [수학식 3]
    Figure 112007087269845-PAT00013
    (단, Φi=tan-12-i(i=0, 1, 2 …n)이며, i=0일 때, 상기 제1 연산부에서는, xxci-1=x1, yyci -1=y1이며, 상기 제2 연산부에서는, xxci -1=x2, yyci -1=y2임)
    상기 제1 및 상기 제2 연산부는, i=0, 1, 2 …n의 순으로 수학식 2 또는 수학식 3을 연산하고,
    상기 제3 연산부는, 상기 가(假)각도를 i마다 적산하는 것을 특징으로 하는 속도 검출 장치.
  10. 제9항에 있어서,
    상기 제1 및 상기 제2 연산부는, i=0, 1, 2 …n의 순으로 수학식 2 및 수학식 3을 교대 또는 상보로 연산하고, 또한, 상기 제1 연산부가 수학식 2를 연산할 때에는, 상기 제2 연산부는 수학식 3을 연산하고, 상기 제1 연산부가 수학식 3을 연산할 때에는, 상기 제2 연산부는 수학식 2를 연산하는 것을 특징으로 하는 속도 검출 장치.
KR1020070124972A 2006-12-05 2007-12-04 속도 검출 장치 KR100959215B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00328311 2006-12-05
JP2006328311A JP4987448B2 (ja) 2006-12-05 2006-12-05 速度検出装置

Publications (2)

Publication Number Publication Date
KR20080052418A true KR20080052418A (ko) 2008-06-11
KR100959215B1 KR100959215B1 (ko) 2010-05-19

Family

ID=39432006

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070124972A KR100959215B1 (ko) 2006-12-05 2007-12-04 속도 검출 장치

Country Status (5)

Country Link
US (1) US7668689B2 (ko)
JP (1) JP4987448B2 (ko)
KR (1) KR100959215B1 (ko)
CN (1) CN101196532B (ko)
DE (1) DE102007057476B4 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4987269B2 (ja) * 2005-08-22 2012-07-25 東芝機械株式会社 速度検出装置およびサーボモータ
JP5079346B2 (ja) * 2007-01-30 2012-11-21 東芝機械株式会社 波形補正装置および波形補正方法
JP2009281883A (ja) * 2008-05-22 2009-12-03 Toshiba Mach Co Ltd 速度検出装置およびサーボモータ
DE102014219004A1 (de) * 2014-09-22 2016-03-24 Continental Teves Ag & Co. Ohg Signalverarbeitungsvorrichtung zur Verarbeitung eines Messsignals in einem Kraftfahrzeug
CN114707110B (zh) * 2022-06-07 2022-08-30 中科亿海微电子科技(苏州)有限公司 一种三角函数和双曲函数扩展指令计算装置及处理器核

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4152645A (en) * 1977-05-26 1979-05-01 Acurex Corporation Method and apparatus for producing an analogue output proportional to rotational speed employing digital to analogue conversion
JPH07294992A (ja) * 1994-04-27 1995-11-10 Nikon Corp 振れ補正機能を有する撮影装置
KR19990085924A (ko) * 1998-05-22 1999-12-15 윤종용 삼각함수 생성장치 및 방법
EP1471332A1 (en) * 2003-04-17 2004-10-27 Dialog Semiconductor GmbH Digital interface for an angular sensor
JP2007520009A (ja) * 2004-01-28 2007-07-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複素位相回転に対するcordicアルゴリズムの実施
DE602005012743D1 (de) * 2004-01-29 2009-04-02 Panasonic Corp Verfahren und Vorrichtung zu Berechnung der Lenkwinkelgeschwindigkeit
JP2006201148A (ja) 2004-12-22 2006-08-03 Toshiba Mach Co Ltd 信号処理装置、信号処理方法、信号処理プログラム、信号処理プログラムを記録した記録媒体、速度検出装置、サーボ機構
JP4987269B2 (ja) * 2005-08-22 2012-07-25 東芝機械株式会社 速度検出装置およびサーボモータ
US7932692B2 (en) * 2006-11-13 2011-04-26 Denso Corporation Control system for rotary electric machine with salient structure

Also Published As

Publication number Publication date
JP4987448B2 (ja) 2012-07-25
DE102007057476A1 (de) 2008-06-26
US20080133172A1 (en) 2008-06-05
KR100959215B1 (ko) 2010-05-19
CN101196532B (zh) 2010-12-22
CN101196532A (zh) 2008-06-11
US7668689B2 (en) 2010-02-23
DE102007057476B4 (de) 2010-09-09
JP2008139257A (ja) 2008-06-19

Similar Documents

Publication Publication Date Title
CA2725894C (en) Sine/cosine generator
KR100959215B1 (ko) 속도 검출 장치
CN1045879A (zh) 坐标旋转数字计算机的复数乘法器
JP2007520009A (ja) 複素位相回転に対するcordicアルゴリズムの実施
CN105978570B (zh) 一种正余弦编码器高精度信号处理***
CN108733349B (zh) 一种基于定点数的三角函数运算电路
JP4757328B2 (ja) 逆正接演算装置及び逆正接演算プログラム
JP5079346B2 (ja) 波形補正装置および波形補正方法
JP4987269B2 (ja) 速度検出装置およびサーボモータ
JP3460017B2 (ja) R/dコンバータ
KR101239570B1 (ko) 속도 검출 장치 및 서보 모터
JP2008185459A (ja) 位置検出装置
JPH0775019B2 (ja) 複素数の大きさの近似値を決定する装置およびその方法
Lygouras Memory reduction in look-up tables for fast symmetric function generators
JP3967963B2 (ja) アブソリュート変位検出装置
JP6750857B2 (ja) 座標データ回転演算装置及び座標データ回転演算方法
JP2021012052A (ja) 座標データ回転演算装置及び座標データ回転演算方法
KR20070022597A (ko) 속도 검출 장치 및 서보 모터
CN117235423A (zh) 一种利用cordic实现角度计算的方法
CN114840171A (zh) 三角函数计算方法及装置
EP2495534B1 (en) 360-degree angle decoder
JP2004172794A (ja) 複合三角関数演算器及び位相回転演算装置
Mushina et al. Reduced Hardware Cordic Based 16 Point Fft Processor
JPS59168546A (ja) デジタル関数計算装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130502

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140418

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150416

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160418

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee