KR100436635B1 - 매트릭스보간방법 - Google Patents

매트릭스보간방법 Download PDF

Info

Publication number
KR100436635B1
KR100436635B1 KR1019970027028A KR19970027028A KR100436635B1 KR 100436635 B1 KR100436635 B1 KR 100436635B1 KR 1019970027028 A KR1019970027028 A KR 1019970027028A KR 19970027028 A KR19970027028 A KR 19970027028A KR 100436635 B1 KR100436635 B1 KR 100436635B1
Authority
KR
South Korea
Prior art keywords
register
address
memory location
ordinate
value
Prior art date
Application number
KR1019970027028A
Other languages
English (en)
Other versions
KR980003942A (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 KR980003942A publication Critical patent/KR980003942A/ko
Application granted granted Critical
Publication of KR100436635B1 publication Critical patent/KR100436635B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4023Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Electric Motors In General (AREA)
  • Image Processing (AREA)

Abstract

ASIC 프로세서에서 메모리 매트릭스 보간 방법은 시프트 레지스터 사이에서 보간 루틴 내의 값을 시프트하고 상기 시프트 레지스터 내의 중복 데이터를 중간 결과값으로 오버라이팅함으로써 보간 루틴 내에서 감소된 양의 프로그램 코드 및 메모리 공간을 필요로 한다.

Description

매트릭스 보간 방법{MATRIX INTERPOLATION}
본 발명은 매트릭스 보간 방법에 관한 것으로서, 보다 구체적으로는 전기 머신용 제어기에 대하여 메모리 매트릭스 내에 저장된 값들 사이를 보간하는 방법에 관한 것이다.
릴럭턴스 머신은 2 개의 주요 부품, 즉 고정자 및 회전자로 구성된 전기 머신의 형태인데, 고정자는 주위에 배치되어 통상적으로 단방향성 전류를 전송하는 코일을 갖는 돌출극을 가지며, 회전자는 돌출극을 갖지만 어떠한 권선 또는 영구 자석도 가지지 않는다.
결합된 제어 및 전력 스위칭 전자 회로와, 릴럭턴스 머신은 통상적으로 스위치드 릴럭턴스(SR) 구동 시스템으로 언급된다. 통상적으로 전력 전자 회로는 DC 전원 또는 정류된 AC 전원으로부터 공급되는 하나의 위상당 2 개의 스위치와 2 개의 다이오드로 구성된다.
이러한 장치의 스위칭은 머신이 정확하게 작동하도록 회전자의 위치에 동기되어야 한다. 이러한 동기를 달성하기 위해, SR 머신의 회전자축에 장착된 이동부를 통상적으로 가지는 위치 감지기는 제어 전자 회로에 궤환되어 전력 장치용 파이어링 신호(firing signal)를 생성시키는 각도 회전자 위치 신호를 생성하는데 사용된다. 1993년 6월 21∼24일 동안 독일 뉘른베르크에서의 PCIM '93 Conference and Exhibition'에 스티븐슨(Stephenson) 및 블레이크(Blake) 등에 의해 발표된 "The Characteristics, Design and Applications of Switched Reluctance Motors and Drives"에는 스위치드 릴럭턴스 머신과 이 머신의 제어 및 전력 전자 회로에 대한 보다 상세한 설명이 기술되어 있다.
점점, 저비용 및 고용량 응용에 있어서, 제어 전자 회로는 마이크로프로세서를 내장한 주문형 집적 회로(ASIC; Application Specific Integrated Circuit)에 기초하고 있다.
SR 머신이 동작됨에 따른 제어법은 요구되는 머신 출력을 유지하기 위해 머신에 요구되는 특정 토크를 해석할 것이다. 통상적으로, 제어 입력은 폐쇄 루프 속도 제어 시스템에 있어서의 토크 요구이거나 또는 속도 요구일 것이고, 실제 머신 속도는 회전자 위치 신호로부터 유도된다. 응답에 있어서, 제어기는 제어 매개변수 중 선택된 하나를 머신 제어용 출력으로서 제공한다. 출력에는 일반적으로 ON 명령어, OFF 명령어, 자유 회전(FW) 명령어 및 초프(CHOP) 명령어가 있다. 어떤 응용에 있어서, 실시간으로 주어진 입력에 대한 적절한 출력을 계산하기 위해 제어법으로 제어기를 프로그래밍하는 것이 가능한 경우, 제어기는 주어진 입력에 대한 세트 출력의 룩업 표를 종종 사용할 것이다. 룩업 표의 한 형태는 저장된 매개변수값의 어레이를 액세스하기 위해 토크 및 속도의 입력이 로우(row) 및 칼럼 어드레스로서 사용되는 좌표 매트릭스를 포함한다. 매트릭스 전체에 할당된 공간을 최소화하기 위하여, 완전하지 못한 출력 세트가 주어진 입력 세트용으로 이용 가능한, 즉 어드레스 위치 보다 입력 조합이 더 이산적인 희소 매트릭스가 때때로 사용된다. 이러한 환경에서, 매끄러운 제어를 하기 위해서는 저장된 매개변수값 사이를 보간할 필요가 있다. 희소 매트릭스는 규칙적으로 이격되어 있는 매개변수값의 세트처럼, 또는 더 통상적인 동작 조건의 값 주위에 밀집되어 있는 불규칙적으로 이격되어 있는 매개변수값의 세트처럼 둘 중의 어느 한 쪽처럼 배열될 수 있다.
룩업 표에서는 매개변수값에 액세스함으로써 매개변수값을 결정하는 것에 반하여, 보간법은 실시간 처리 동작이다. 그러므로, 보간 속도가 입력에 대한 시스템의 응답 속도 상의 제한 요인이 되는 상황이 존재한다. 구동의 응답 능력을 증가시키기 위하여 보간에 소요되는 처리 시간을 감소시킬 수 있도록 하는 것이 바람직하다.
본 발명의 실시예의 목적은 매트릭스 내의 값들 사이의 능률적인 보간 방법을 제공하여 데이터의 처리량을 감소시키는데 있다.
본 발명의 또 다른 목적은 프로세서 내의 저장된 값들 사이를 보간하는 방법을 제공하는데 있다.
도 1은 본 발명의 실시예를 구체화하는 스위치드 릴럭턴스 구동 시스템의 개략적인 블록도.
도 2는 도 1의 ASIC의 주요 구성 부분의 블록도.
도 3은 도 2에 기술되어 있는 ASIC의 구성 부분 중 일부의 개략적인 블록도.
도 4는 ASIC의 연산 논리 장치의 블록도.
도 5는 스위치드 릴럭턴스 머신 내의 초핑 전류 제어를 기술하는 그래프.
도 6은 도 2의 ASIC의 기억 소자의 블록도.
도 7은 도 2의 ASIC의 페치 소자의 블록도.
도 8은 속도값에 따라 어드레스 지정되는 매개변수값의 1 차원 희소 매트릭스(sparse matrix)의 그래프.
도 9는 속도 및 토크에 따라 어드레스 지정 가능한 매개변수값의 불규칙적인 2 차원 희소 매트릭스의 그래프.
도 10은 속도 및 토크에 따라 어드레스 지정 가능한 매개변수값의 규칙적인 희소 매트릭스의 그래프.
<도면의 주요 부분에 대한 부호의 설명>
10 : 스위치드 릴럭턴스 모터
12 : 회전자
14 : 고정자
16 : 트랜스듀서
24 : 제어기
26 : 전력 스위치
본 발명은 다양한 방법으로 실행될 수 있으며, 그 일부를 첨부된 도면을 참조하여 설명한다.
본 발명은 첨부된 독립항에서 한정된다. 일부 양호한 특징들은 종속항에서 기술된다.
본 발명의 일 실시예는 적어도 1 차원 어드레스를 갖는 메모리 위치에 이산 매개변수값을 포함하는 어드레스 지정 가능한 메모리 장치로부터 입력 세로 좌표에 대응하는 목표 매개변수값을 유도하도록 처리 시스템 내에서 매개변수값들 사이를 보간하는 방법으로서, 어드레스의 각 차원에 대해서, 목표 매개변수값의 내용들 사이에서 제1 및 제2 메모리 위치 어드레스를 결정하는 단계와, 제1 레지스터에 유지되는 매개변수값을 제1 어드레스로 로딩하는 단계와, 제2 레지스터에 유지되는 매개변수값을 제2 어드레스로 로딩하는 단계와, 제2 레지스터의 내용에서 제1 레지스터의 내용을 차감하여 매개변수차를 생성하는 단계와, 상기 매개변수차를 제3 레지스터로 로딩하는 단계와, 제3 레지스터의 내용을 기울기값과 승산하여 비례값을 생성하는 단계와, 비례값을 제2 레지스터로 로딩하는 단계와, 상기 제2 레지스터의 내용에 제1 레지스터의 내용을 가산하여 목표 매개변수값을 생성하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은 청구항 제1항의 보간 방법에 있어서, 제1 및 제2 메모리 위치 어드레스는, 메모리 장치의 일부분에서 상기 메모리 장치의 다른 부분에 유지되는 매개변수값에 대응하는 세로 좌표값을 유지하는 메모리 위치의 시퀀스로 하나의 메모리 위치에 대한 인덱스를 지시하는 단계와, 입력 세로 좌표를 상기 제2 레지스터로 로딩하는 단계와, 상기 인덱스로 지시된 하나의 메모리 위치에 유지되는 제1세로 좌표를 상기 제1 레지스터로 로딩하는 단계와, 상기 제1 및 제2 레지스터 내에 유지된 상기 세로 좌표를 비교하는 단계와, 상기 비교 결과가 미리 규정된 특성이 아닌 경우 상기 인덱스를 한쪽 방향으로 시프트하여 상기 메모리 위치의 시퀀스로 다음 메모리 위치를 지시하는 단계와, 상기 메모리 위치의 시퀀스로 다음 메모리 위치에 유지되는 상기 다음 세로 좌표를 상기 제1 레지스터로 로딩한 후, 상기 제1 및 제2 레지스터의 비교를 반복하는 단계와, 상기 비교 결과가 미리 규정된 특성인 경우 상기 제1 세로 좌표의 하나의 메모리 위치 어드레스를 지시하는 상기 인덱스에 소정의 값을 부가하여 상기 메모리 장치의 다른 부분의 상기 제2 메모리 위치 어드레스를 규정하는 단계와, 상기 인덱스를 하나의 어드레스 공간만큼 다른 방향으로 시프트하여 상기 메모리 장치의 다른 부분 내의 상기 제1 메모리 위치 어드레스를 규정하는 단계에 의해 결정되는 것을 특징으로 한다.
본 발명의 실시예는 장치 가격이 주로 요구되는 저장 용량 및 레지스터 공간에 의존하는 ASIC 내의 실행에 특히 적용 가능하다. 또한, 본 발명은 요구 저장 용량을 감소시키고 보간 처리의 응답 속도를 증가시키는 비교적 적은 양의 프로그램 코드만을 요구한다.
본 발명의 일실시예는 보간 처리에 있어서 중간 값을 레지스터에 할당함으로써 보간 처리에서 감소된 저장 공간을 사용하여, 계산 처리에서 더 이상 요구되지 않는 액세스된 저장된 값을 대체한다. 보간된 매개변수값이 요구되는 실제 어드레스 값은 어느 한쪽의 보간될 매개변수값에 대해 매트릭스 내의 매개변수값을 규정하는데 사용된다.
예를 들어, 전기 모터 제어기의 경우에, 장치로부터의 출력은 제어기에 요구되는 속도 또는 토크 요구값, 및 모터 자체의 속도 및/또는 토크 피드백에 요구되는 요구값에 의존한 제어값일 수 있다. 불규칙적인 희소 매트릭스에서, 매개변수값이 저장되어 있는 규칙적인 어드레스는 불규칙적으로 이격되어 있는 속도/토크 값에 대응한다. 그러므로, 속도/토크 값은 메모리 장치 내에 매개변수값의 위치를 규정하는 가변 세로 좌표를 나타낸다.
도 1은 회전자(12) 및 고정자(14)를 구비하는 스위치드 릴럭턴스 모터(10)를 포함하는 스위치드 릴럭턴스 구동 시스템을 예시하고 있다. 회전자 위치 트랜스듀서(RPT)(16)는 회전자축에 장착된 엔코딩된 디스크(18) 및 고정된 단일 감지기(20)를 구비한다. 감지기(20)의 출력은 공개된 유럽 특허 제0630097호에 개시된 바와 같이 디스크(18)의 움직임에 따라 회전자 위치 정보를 유도하도록 배열된다. 제어기(24)는 모터 속도 및/또는 토크 요구 중 어느 한 쪽의 형태로 사용자 요구 입력(22)을 가진다. 모터(10)는 3상 머신이므로, 제어기는 6 개의 전력 스위치(26)에 대하여 6개의 파이어링 신호를 발생한다.
이러한 실시예에서, 제어기는 ASIC에 기초하여 단일 감지기 RPT 출력으로 3상 모터(10)를 제어한다. 표 1은 ASIC에 대한 핀 설명 리스트이다.
Figure pat00001
ASIC는 3 개의 메인 블록인 내장형 마이크로프로세서(28), 직렬 주변 장치 인터페이스(SPI)(30) 및 메인 SR 제어부(32)로 나누어진다. 데이터는 버퍼 수단(41, 43)에 의해 이러한 블록 사이에 전달될 수 있다. 상기 설계의 이러한 요소의 블록도는 도 2에 도시되어 있다. 또한 이 도면은 상기 블록간에 전달되는 주신호를 도시한다. 도 3은 이러한 주요 부분 내의 세부 부분을 도시하고 있다.
마이크로프로세서(28)는 SPI(30) 내의 프로그램 판독 전용 메모리(ROM)를 어드레스 지정하는데 사용되는 프로그램 카운터(33)를 생성한다. 마이크로프로세서(28)는 또한 SPI 내의 데이터 ROM(37)과 SR 제어부(32) 내의 다른 저장 소자(도시하지 않음)를 어드레스 지정하는데 사용되는 어드레스 버스(35) 상의 출력을 포함한다. 마이크로프로세서(28)로부터의 다른 2 개의 출력은 버퍼(41) 내에서 버퍼링되고 SPI(30) 및 SR 제어부(32)의 양쪽에 입력(36')으로 사용되는 데이터 출력 버스(36)와, 어드레스 버스(35)와 함께 일정 데이터의 목적지를 결정하는 제어 신호(38) 세트 상에 있다. 도 3에 도시된 바와 같이, 마이크로프로세서(28) 내에는 2 개의 주요 부분인 명령 페치 및 디코딩부(40) 및 연산 논리 장치(ALU)(42)가 있다. 디코딩부(40)는 프로그램 카운터(33)를 생성하고 명령 코드 및 프로그램 ROM(34)으로부터의 임의의 관련 데이터를 "페치"한다. 다음에 본 기술 분야의 당업자에 의해 이해될 수 있는 바와 같이 조합 논리를 사용하여 명령을 디코딩한다. 명령 디코딩에 있어서, 제어 신호가 발생되어 도 4에 도시된 바와 같이 4 개의 레지스터(A, B, C, D)를 포함하는 ALU(42)로 전달된다. 레지스터(A, B, C, D)는 디코딩부(40)로부터의 제어 신호에 따라 조작 처리된다.
SPI(30) 내의 프로그램 ROM(34)은 마이크로프로세서(28)에 의해 생성된 프로그램 카운터(33)에 의해 어드레스 지정된다. 다음에 SPI(30)는 입력 버스(44')로서 사용되는 버스(44) 상의 프로그램 데이터를 마이크로프로세서(28)에 출력한다. 데이터 ROM(37)은 어드레스 버스(35)와 마이크로프로세서(28)에 의해 생성된 제어 신호(38)와의 조합에 의해 어드레스 지정된다. 데이터 ROM(37)로부터 추출된 버스(39) 상의 데이터는 SR 제어부(32)의 데이터 출력(47)에 따라 버퍼링되어 마이크로프로세서로 입력되는 데이터를 형성한다.
SPI(30) 내에는 2 개 부분을 포함하는데, 하나는 프로그램 및 데이터를 어드레스 지정하는데 요구되는 회로를 따라 프로그램 ROM(34) 및 데이터 ROM(37)을 포함하는 저장 영역부이고, 나머지는 마스터 인 슬레이브 아웃(MISO) 핀을 통해 ASIC에 데이터를 입력하고, 마스터 아웃 슬레이브 인(MOSI) 핀(표 1 참조)을 통해 데이터를 출력하는 입/출력(I/O) 논리부(50)이다. 또한, 마이크로프로세서(28)는 어드레스 버스(35) 및 제어 신호(38)를 사용하여 상기 핀들을 어드레스 지정할 수 있다. ASIC로부터 출력될 데이터는 마이크로프로세서 데이터 출력(DATA_OUT) 버스(36)로부터 버퍼(41)를 통해 SPI 데이터 입력(SPI_DATA_IN) 버스(36')로 공급된다. 유사하게는, ASIC로 입력되는 데이터는 버퍼(43) 및 SPI 데이터 출력(SPI_DATA_OUT) 버스(39)를 통해 마이크로프로세서 데이터 입력(DATA_IN) 버스(39') 상에 마이크로프로세서(28)에 의해 수신된다.
SR 제어부(32)는 어드레스 및 제어 신호(35, 38)와, 마이크로프로세서(28)의 데이터 출력 버스(36)로부터 버퍼링되는 데이터 입력(36")을 수신한다. SR 제어부(32)는 마이크로프로세서 데이터 입력 버스(39') 상으로 버퍼링되는 SR 데이터 출력(SR_DATA_OUT) 버스(47) 상의 출력과, SR 머신을 전원에 접속시키는 6 개의 전력 스위치용 파이어링 신호(45)를 발생한다. 도 3은 이하의 9 개 부분으로 세분되는 SR 제어부(32)를 도시하고 있다:
1. 클록부(70) - 하나의 시스템 클록 신호는 수정 발진기로부터 ASIC에 입력된다(도시하지 않음). ASIC 내에서 요구되는 이러한 클록 주파수의 세분은 이 블록내에서 발생된다.
2. 주파수 체배기(72) - 단일 감지기 코딩 디스크 RPT(16)를 사용하여 모터를 개시하기 위해서는 회전자 위치가 알려져야 한다. 회전자 위치를 알리기 위해, 초기에 구동이 개시된 때에, 회전자를 알려진 위치에 위치시키는 "록(lock)" 루틴을 사용한다. 회전자를 고정시키기 위해, 머신의 2 개의 위상이 미리 규정된 시간 기간동안 가동된다. 그런 다음, 2 개의 위상 중 하나의 위상이 스위치 오프되어, 회전자는 회전자가 가동된 위상의 위치로 끌어당겨진다. 이러한 것들은 공개된 유럽 특허 제0630097호에 기술되어 있다. 이러한 루틴용 타이밍을 달성하기 위한 회로가 주기 측정용으로서 본 주파수 체배기 부분에 포함된다. 상기 주기는 마이크로프로세서 내로 판독되어 제어 루프 및/또는 보간 루틴에 사용하기 위해 모터의 속도가 계산될 수 있다.
3. RPT 디코딩부(74) - 공개된 유럽 특허 제0630097호에 기술되어 있는 바와 같이, RPT(16)에 의해 생성된 시퀀스는 오류에 대해 테스트되고 모터의 각 위상의 활성 주기를 결정하는데 사용된다.
4. 모드부(76) - 모터의 동작 모드는 모터가 동작하는 속도에 따라 마이크로프로세서에 의해 결정된다. 이것은 공개된 유럽 특허 제0534761호에 기술되어 있는 바와 같이, 초핑 모드, 단일 펄스 모드 및 연속 전류 모드들 간의 선택일 것이다. 모드는 모터의 각 위상이 활성 상태에 있을 동안의 시간, 즉 위상 권선이 전원에 접속되어 있는 동안의 시간을 결정한다. 또한, 사용될 스위칭 계획은 마이크로프로세서(28)로부터 기록되어 모드(76) 블록 내에 저장된다.
5. 입력 출력 논리부(78) - 이 논리부는 마이크로프로세서(28)에 의해 SR 제어부(32)에 기록된 저장값을 포함하고, 또한 SR 데이터 출력 버스(47) 상으로 출력 신호를 버퍼링한다.
6. 각도부(80) - 모터가 비교적 빠른 속도로 작동할 때, 모터는 알려진 단일 펄스 제어 모드에서 동작된다. 상기 마이크로프로세서는 모터의 속도 및 모터 상의 부하에 따라 턴 온 및 턴 오프되는 각도를 결정하기 위해 데이터 표를 보간한다. 이러한 값들은 SR 제어부(32)에 기록되고 각도부(80) 내에 저장되며, 3상의 활성 시간을 규정하는데 사용된다.
7. 초프부(82) - 모드부(76)에 저장되어 있는 스위칭 계획은 초프부(82) 내의 전력 장치용 파이어링 신호를 결정하는데 사용된다. 활성 기간은 저속에서 RPT 디코딩 블록(74)에 의해 결정되거나 또는 고속에서 각도부(80)의 출력에 의해 결정된다. 초프부(82)는 계획 및 모드를 위한 정확한 스위치 제어 신호를 생성하고, 예컨대 미국 특허 제5,461,295호에 기술되어 있는 기술에 따라 활성 기간 끝에서 전류를 램핑 다운(ramping down)하는 바와 같은 임의의 잡음 저감 기술도 실행한다.
8. 폴트부(84) - 초프 모드에서 생성된 파이어링 신호는 폴트 논리부에 입력된다. 구동 장치에 공급되는 주전원 상에 부족 전압 조건이 검출되었을 경우, 파이어링을 불가능하게 하는 바와 같이, 이 폴트 블록(84)은 구동 장치 보호를 실행한다.
9. 요구 인터페이스부(86) - 이 구동 장치의 "사용자"는 단일 요구 입력(22)으로 제어한다(도 1 참조). 이 입력은 아날로그 또는 디지털 신호일 수 있고, 실행되는 제어 계획에 따라 토크, 속도 또는 초핑 레벨 요구로서 사용될 수 있다. PWM 또는 아날로그 요구 신호는 비교기의 하나의 입력에 인가되어, 적절한 기준 입력 신호와 비교된다. 비교기의 출력은 인터페이스 장치에 의해 기준에 비례하여 요구 오차의 수치적인 값으로 변환된다.
도 3을 참조하면, ASIC 내의 처리는 마이크로프로세서(28)에 의해 실행된다. 이 마이크로프로세서(28)는 ALU 블록(42) 내에 내장된 4 개의 범용 레지스터(A, B, D, M)를 구비하며, 표 2에 주어진 명령 세트에 의해 동작될 수 있다. ASIC는 8 비트 메모리 어드레스 지정을 행한다. 메모리 맵은 표 3에 규정되어 있다. 또한, 마이크로프로세서(28)는 명령 페치 및 디코딩부(40) 내에 포함되고 범용 레지스터의 간접 로딩 및 저장에 사용될 수 있는 8 비트 인덱스 레지스터와, 장치가 초기화될 때에만 동작하는 코드를 사용할 수 있게 하는 주프로그램 코드의 개시 어드레스를 유지하는 11 비트 개시 어드레스 레지스터를 구비한다.
Figure pat00002
Figure pat00003
Figure pat00004
알 수 있는 바와 같이, 전력 장치 스위칭의 타이밍은 회전자 위치와 동기될 수 있다. 도 5에 도시되어 있는 바와 같이, 장치의 스위칭은 4 개의 매개변수, 온 각도, 오프 각도, 자유 회전(FW) 각도 및 초핑 레벨에 의해 결정된다. 상기 내용은 전술된 PCIM '93에 더욱 상세히 기술되어 있다.
위상 스위치가 온 상태일 때, 2 개의 스위치는 도통되도록 단락되어 공급 전압이 위상 권선 양단에 인가된다. 반대로, 위상 스위치는 2 개의 스위치가 개방된 때에 턴 오프된다. 하나의 스위치를 단락시키고 나머지 스위치를 개방함으로써 자유 회전 상태가 되기 때문에, 유도 위상 권선 내의 전류는 다시 순환하고 2 개의 스위치가 오프 상태일 때 보다 점차적으로 더 감소하게 된다. 초프 레벨은 요구되는 출력에 따라 세트되고 권선 전류가 초프 제어 내에서 유지되는 최상위 임계치가 된다.
제어 매개변수 ON, OFF, FW 및 초프 레벨은 측정된 토크 레벨 및 속도와 함께 데이터 ROM(37) 내의 희소 매트릭스로 ASIC 내에 저장된다. 어드레스 지정된 매트릭스 ROM 내용이 표 4에 도시된 바와 같을 때, 매개변수는 60∼FF 16진수(hex)로서 어드레스 지정된다. 통상적으로, 각각의 매트릭스 내에 저장된 값은 소정의 속도 및 부하에서 모터를 동작시킴으로써 경험적으로 결정되어 관련 데이터를 확립할 수 있다. 희소 매트릭스는 값들이 가장 통상적인 동작 조건 주변에 밀집되는 고르지 않은 형태의 매트릭스일 수 있다. 그러므로, 값들은 통상적인 동작 영역에서는 자주 집중되고 다른 영역에서는 값들이 점점 더 희박하다. 그럼에도 불구하고, 값들이 덜 밀집된 영역뿐만 아니라 밀집된 영역에서도 값들 간의 보간은 시스템이 입력에 응답하게 하는 정확도를 강화시키는데 필요하게 될 것이다.
표 4에 도시된 바와 같이, 측정된 데이터를 취득하여 얻은 토크 및 속도 값은 2 개의 로우(row)로서 간주되는 2 개의 인접 시퀀스의 메모리 위치에 저장된다. 이러한 실행에 있어서, OFF 각도 및 FW 각도는 속도만에 의하여 변하고 토크와는 무관하도록 취해진다. 이것은 각각의 이러한 제어 매개변수값이 단일 로우에 저장되도록 한다. 반대로, ON 각도 및 초프 레벨은 속도 및 토크 모두에 의하여 변화되도록 취해진다. 이러한 제어 매개변수용 저장부는 토크의 값이 존재하는 만큼이나 많은 로우를 요구할 것이다.
상기 실행에서, 8 개의 속도값 및 8 개의 토크값이 사용되고, 각각의 데이터값은 8 비트 수로서 유지된다. 데이터 포인트의 다른 수의 조합이 사용될 수 있고, 예컨대 OFF 각도가 속도 및 토크에 의해 변화될 수 있다라는 것을 당업자들은 이해할 수 있을 것이다.
SPI(30) 내에는 프로그램 ROM(34) 및 데이터 ROM(37)을 포함하는 서브-레벨 "저장부"가 있다. 도 6은 SPI(30)의 저장 레벨의 블록도를 도시하고 있다. 프로그램 ROM(34)은 11 비트 프로그램 카운터(33)에 의해 마이크로프로세서(28)로부터 어드레스 지정된다. 마이크로프로세서(28)의 출력은 프로그램 ROM 인에이블 신호(92)가 하이 상태일 때 래치된다. 데이터 ROM(37)은 8비트 ROM 어드레스 버스를 통해 마이크로프로세서에 의해 어드레스 지정된다. 비록 60-FF hex로서 마이크로프로세서에 의해 어드레스 지정되지만, 데이터 ROM(37) 자체는 00-9F 및 A0-FF로서 어드레스 지정되는 2 세트의 표를 구비한다. 페이지 선택 시스템은 마이크로프로세서(28)로부터의 어드레스를 데이터 ROM에 적절한 형태로 변형하는데 사용된다.
도 4의 각각의 마이크로프로세서 레지스터(A, B, M, D)는 3개의 제어선(C0, C1, C2)을 구비하며, 이 기능을 표 5에 설명한다.
Figure pat00005
또한, 레지스터는 캐리 인(CAIN) 및 캐리 아웃(CA0) 신호뿐만 아니라 개별적인 셋팅(SET) 및 클리어(CLR) 라인을 갖는다. 레지스터의 16 비트 출력(OUT)은 5 입력 16 비트 OR 게이트(ALU_BUS_OR)(98)를 통해 활성 로우 신호 ENAON, ENBON, ENDON, ENMON을 사용하는 주 ALU 버스(36) 상에서 인에이블된다. 16 비트 가산기(95)는 2 입력 16 비트 멀티플렉서(97)를 통해 레지스터(A)에 접속된다. 플래그 셋팅부(FLAG_SET)(104)는 오버플로우, 제로 및 네거티브 플래그를 세팅한다.
도 7은 명령 페치 및 디코딩부(40)의 부분 상세 블록도이고, 도 3에 도시된 프로그램 ROM(34)으로부터 명령을 페치시키는 수단을 도시하고 있다. 프로그램 ROM(34)은 프로그램 카운터(33)에 의해 어드레스 지정된다. 명령 페치 및 디코딩부(40) 내에서 명령은 도 7에 도시된 7 비트 m 스텝 카운터(110)로부터 발생되는 마이크로-스텝을 사용하여 타이밍된다. 카운터는 각각의 명령이 개시하기 전에 0으로 리셋되고 활성 신호는 명령을 실행하는 동안 그들의 스텝 위치에 따라 타이밍된다.
프로그램 카운터(33)는 병렬 부하(PL) 입력을 사용하여 로딩될 수 있다. 프로그램 카운터 입력원은 4 입력 멀티플렉서(112)이다. 4 입력은 다음과 같다:
프로그램 개시 어드레스(114) - 주 코드 루프를 개시한다.
버스(116) - 점프 명령이 실행된 경우, 점프 목적지 값은 주 데이터 버스를 통해 프로그램 카운터에 기록된다.
복귀 어드레스(118) - 서브루틴이 프로그램에 사용된 경우, 프로그램 카운터가 복귀하여야 하는 포인트가 복귀 어드레스 버스를 통해 로딩된다.
폴트(fault) 어드레스(120) - 멀티플렉서로의 제4 입력이 선택되는 장애 상태가 발생하는 경우, 0 이 프로그램 카운터로 로딩된다.
멀티플렉서 입력을 선택하고 프로그램 카운터를 병렬-로딩하는데 사용되는 신호는 점프 명령 및 서브루틴으로 점프 명령과 같은 특정 명령에 의해 생성된다.
토크 및 속도의 주어진 동작 포인트에서 정확한 제어 매개변수를 결정하기 위해, 마이크로프로세서는 공지된 저장된 값들 사이를 보간해야 한다. 보간을 달성하기 위해, 요구되는 최소한의 부가 코드로 매개변수를 보간할 수 있는 3 개의 명령이 표를 스캐닝하고 판독하도록 디자인된다.
본 발명의 이러한 실시예는 저장된 매개변수값으로 이루어진 매트릭스 내의 값들 사이의 보간과 관련된다. 고용량 제품에 있어서, 비용적으로 효율적인 제어기를 사용할 수 있도록 하는 것이 바람직하다. 그러므로, ASIC는 가능한한 비용 면에서 저렴하게 디자인되어야 한다. 비용 절약은 프로그램 코드 및 보간과 같은 데이터 조작동안의 임시 저장에 요구되는 데이터 저장 공간의 크기를 가능한한 최소화시킴으로써 실현될 수 있다.
모터 제어기에 있어서의 요구 상충은 제어기 구성 부분이 차지하는 영역(및 제어기 구성 부분의 비용) 및 응답 속도에서 대한 것이다. 한편, 실행될 필요가 있는 저장된 매개변수를 포함하는 어떠한 계산도 실행되지 않을 때, 포괄적인 범위의 매개변수값을 포함하는 룩업 표는 비교적 빨리 실시간으로 액세스될 수 있다. 그러나, 이것을 실행하는 데에는 비용이 많이 들고 공간을 차지하는 메모리가 필요하다. 한편, 저장된 매개변수값들 사이의 보간을 요구하는 희소 매트릭스는 실시간 계산 및 데이터 조작을 위한 보조 장치를 필요로 한다. 본 발명의 일실시예는 희소 매트릭스의 사용을 추구하는 한편, 보조 장치가 데이터 조작에 요구되는 범위 및 요구되는 처리 시간을 최소화한다. 이것은 희소 매트릭스와 관련하여 프로그램 코드를 가능한 감소시킴으로써 실행되어, 보간 루틴의 실행 시간을 감소시킬 수 있다. 본 발명에 따르면, 메모리 내의 임시 저장부 및 루틴의 실행에 있어서의 부가 레지스터 요구는 감소될 수 있다.
1 차원 표의 보간
전술한 바와 같이, OFF 각도 및 FW 각도 값은 속도 함수로서 ASIC 내의 로우에 저장된다. 도 8은 속도에 대한 매개변수 변화의 일례를 도시하고 있다. 모터가 일정 속도(S)로 회전하는 경우, 속도 값의 표는 매개변수 값이 얻어진 속도인 속도(S1, S2)를 결정하도록 스캐닝되고, 이 값들 사이에 S 값이 위치한다. 보간이 수학식 1a 및 수학식 1b에 의해서 실행될 수 있도록 매개변수값 P1 및 P2는 표로부터 추출되어야 한다.
Figure pat00006
여기서, S = 전류 속도값
S1 = 최저 속도값
S2 = 최고 속도값
P = 보간된 값, 즉 목표값
P1 = 최저 속도값(S1)에서의 매개변수값
P2 = 최고 속도값(S2)에서의 매개변수값
수학식 1a 및 수학식 1b에 따른 보간은 최고 속도값 및 이와 관련된 매개변수값에서 개시하고, 목표값을 향해 수치적으로 아래 방향으로 진행함으로써 동등하게 잘 실행될 수 있다는 것은 본 기술 분야에 숙련된 당업자들에게는 명백한 사실일 것이다. 이 경우에, 수학식은 다음과 같다:
Figure pat00007
다음 내용은 수학식 1a에 기초를 두고 있지만, 필요한 변경을 가하여 수학식 1b에 적용한다.
표 스캔 명령(TSC)
표 2에서의 표 스캔 명령(TSC)은 상기 수학식 1a 및 수학식 1b를 실행하는 제1 토크/속도 보간 루틴 부분이다. 명령이 사용되기 전에, 실제 속도값은 레지스터(A)로 로딩된다. 표 스캔 명령은 명령 콜에 명시된 속도 데이터를 유지하는 표 부분의 개시 어드레스를 가져야만 한다. "&"가 이 주소에 앞서게 되는데, 예를 들면 16 진수 68 에서 개시하는 표에 대하여 TSC &$68 이고, $는 16 진수 값을 나타낸다. 이것은 TSC &104, 즉 10 진수 104에서 개시하는 표에 대하여 동등한 값이 될 수 있다.
개시 어드레스는 명령 페치 및 디코딩부(40)에 위치한 인덱스 레지스터로 로딩되어 데이터 ROM(37)의 간접 어드레스 지정을 허용하게 된다. 다음에, 연속적인 속도 값은 레지스터(A) 내의 값과 비교되어 레지스터값의 어느 한쪽에 놓여있는 표 내의 2 개의 속도를 결정한다. 이것은 이하의 각 단계의 동작에 의하여 설명될 수 있다.
단계 1- 판독될 어드레스는 8 비트이므로 16 비트 버스의 최상위 8 비트(MSB)를 클리어한다. 프로그램 ROM(34)을 인에이블하여 어드레스 데이터를 출력한다.
단계 2- 어드레스 버스(35) 상의 어드레스 데이터를 인에이블한다. 어드레스 데이터를 인덱스 레지스터에 병렬 로딩한다. 단계 4 동안에 타이밍 정보에 사용될 2 비트 카운터를 클록킹한다.
단계 3- ROM 어드레스 버스(35) 상에 인덱스 레지스터 값을 배치한다. 2 비트 카운터를 다시 클록킹하여 단계 4의 개시에서 정확한 상태에 있게 한다.
단계 4- 표를 통해서는 소망하는 값이 위치할 곳이 얼마나 멀리 있는지를 알 수 없기 때문에, 단계 카운터는 단계 4 동안 2 개의 값이 배치되거나 또는 표의끝에 도달할 때까지 디스에이블된다.
그러므로, 상기 단계 동안의 타이밍은 3 개의 신호, 즉 양쪽 출력이 0 일 경우 EN0, 출력이 2 진수 01인 경우 EN1 및 출력이 2 진수 10일 경우 EN2를 생성하는 2 비트 카운터로부터 결정된다. 출력이 마지막 상태 EN2(10)에 있을 때 카운터가 리셋되어 제4의 가능한 상태(11)에 도달하는 것을 방지한다. 카운터의 3 가지 상태는 데이터 ROM 어드레스 지정을 위한 충분한 유지 시간 및 충분한 셋업을 허용하도록 표에서 추출되는 각각의 값에 사용된다.
단계 4의 개시에서, EN2가 활성화되어 데이터 ROM(37)이 인에이블되고 제1 데이터 값을 버스 상에 배치한다. 버스 값은 레지스터(A)의 내용에서 차감되고 만일 이 차감 결과가 양수이면, 즉 데이터 값이 실제 값 보다 작다면, 데이터 값은 표 5에 도시된 바와 같이 레지스터(D)의 제어선을 이진수 001로 세팅함으로써 버스로부터 레지스터(D)에 저장된다. 다음에, 인덱스 레지스터는 증가되어 다음 데이터 값을 지시하게 된다. 다음에, 2 비트 카운터는 리셋을 실행하고, 그 출력을 상태 EN0로 되돌려 놓는다. 이 상태 동안에, 마지막 차감 결과가 양수이면 단계 카운터는 디스에이블 상태가 된다. 어떠한 다른 신호도 EN0 기간 동안에 활성 상태로 되지 않는다. EN1이 활성 상태인 경우, 인덱스 레지스터는 ROM 어드레스 버스(35) 상으로 인에이블되어 데이터 ROM(37)이 액세스되기 전에 어드레스를 셋업시킨다. 이 패턴은 차감 결과가 음수이거나 또는 표의 끝에 도달할 때까지 계속한다. 이들 상태 중 어느 하나가 발생하는 경우, 단계 카운터는 다시 인에이블되고 명령은 단계 5로 이동한다.
단계 5- 요구되는 값 이하의 연속 값은 레지스터(D)에 저장되었기 때문에, 즉 단계 4 동안에 차감 결과가 양수일 때에는, 2 개의 표 포인트 중 낮은 포인트(S1)는 이미 저장되어 있다. 그러므로, 저장된 포인트 값은 레지스터(D)로부터 인에이블되고 레지스터(A)의 내용에서 차감된다. 이 차감에 의해 레지스터(A) 내에는 값(S-S1)이 생성된다.
단계 6- 단계 5의 계산 결과는 레지스터(A)로부터 인에이블되고 레지스터(M)로 로딩되어 표 스캔 명령 후 실행될 제산을 위해 준비가 이루어진다.
단계 7- 인덱스 레지스터는 단계 4 동안에 인에이블되어 ROM(37)으로부터 음의 차감 결과, 즉 S2를 제공하는 값을 추출하게 된다. 이제 인덱스 레지스터가 여전히 지시하고 있는 어드레스는 ROM 어드레스 버스(35) 상에서 인에이블된다.
단계 8- 인덱스 레지스터로부터의 어드레스는 ROM 어드레스 버스(35) 상에 여전히 나타나고, 데이터 ROM(37)은 인에이블되어 값(S2)을 버스 상에 배치하며, 이 값은 상기 버스로부터 취해져 레지스터(A)로 로딩된다.
단계 9- 인덱스 레지스터는 감소되어 2 개의 표값 중 낮은 값을 지시하게 된다.
단계 10- 인덱스 레지스터가 현재 지시하는 어드레스는 ROM 어드레스 버스(35) 상에서 인에이블된다.
단계 11- 인덱스 레지스터로부터의 어드레스는 ROM 어드레스 버스(35) 상에 여전히 나타나고, 데이터 ROM(37)은 인에이블되어 값(S1)을 버스 상에 배치하며, 이 값은 상기 버스로부터 취해져 레지스터(D)로 로딩된다.
단계 12- 레지스터(D)의 내용은 버스(35) 상에서 인에블되고 레지스터(A) 내의 값으로부터 차감된다. 그 결과는 레지스터(A)로 로딩된다.
단계 13- 레지스터(A)의 내용은 버스 상에서 인에블되고 레지스터(B)로 로딩된다. 레지스터(D)는 클리어된다. 2 비트 카운터는 리셋된다. 프로그램 카운터 및 명령 레지스터에 대하여 클록 인에이블을 생성하고 단계 카운터를 리셋하는 신호가 나타난다.
표 스캔 명령은 명령의 끝에서 레지스터가 정확한 값을 유지하여 보간 계산을 직접 처리하도록 설계되고 있다. 즉,
B 레지스터는 S2-S1을 유지한다.
M 레지스터는 S-S1을 유지한다.
수학식 1a 및 1b의 값을 구할 때 M을 B로 나누기 때문에, 그리고 몫이 1 이하이기 때문에, 나누기를 실행하기 전에 피제수(M)에 큰 상수, 이를테면 216을 곱하는 것이 당업계에서는 통상적이다. 이 상수의 효과는 계산시 최후 단계에서 계산에 반영된다.
이러한 실시예에 있어서, 레지스터(D)는 클리어되고(즉, 모두 0으로 세팅됨), 216(즉, 65536)의 곱을 효과적으로 제공하는 레지스터(M)에 부가된다. 레지스터(B)는 16 비트 제수이고 MD는 32 비트 피제수이다. 32 비트 몫은 MD에 재배치되고 레지스터(A)는 중간 계산에 사용된다. 보간 루틴에 사용될 수 있는 코드의 일례는 다음과 같다:
LDD A #$87 ; 목표 속도값과 함께 A를 로딩한다.
TSC &$68 ; 속도 데이터의 개시 어드레스로부터 표를 스캐닝한다.
LDD A &$30 ; 인덱스 레지스터로부터 S1의 어드레스와 함께 A를 로딩한다.
SEC ; 감산 이전에 캐리를 세트한다.
SBC #$68 ; S1의 어드레스로부터 초기 표 어드레스를 차감한다.
STR A & TEMP0 ; 나중에 사용하기 위해 임시 위치에 어드레스 오프셋을 저장한다.
DIV U, UL ; M*D를 B로 나누어 65536*(S-S1)/(S2-S1)을 제공한다.
STR D & TEMP1 ; 나중에 사용하기 위해 제산의 결과를 레지스터(D)에 저장한다.
표 6은 명령이 동작할 수 있는 표의 일례이다.
Figure pat00008
상기 명령 단계 실행시:
LDD A #$87
TSC &$68
인덱스 레지스터는 $68을 유지하므로, 표로부터 값 0을 발견한다;
그러므로, $87 - $0 = $87 (양의 결과)은 레지스터(D)에 0을 저장하고 인덱스 레지스터를 증가하여 $69를 제공한다. 이것은 표로부터 $24를 검색한다.
그러므로, $87 - $24 = $63 (양의 결과)은 레지스터(D)에 $24를 저장하고 인덱스 레지스터를 $6A로 증가시키며 표로부터 $49로 검색한다.
그러므로, $87 - $49 = $3E (양의 결과)는 레지스터(D)에 $49를 저장하고 인덱스 레지스터를 $6B로 증가시키며 표로부터 $6D를 검색한다.
그러므로, $87 - $6D = $1A (양의 결과)는 레지스터(D)에 $6D를 저장하고 인덱스 레지스터를 $6C로 증가시키며 표로부터 $92를 검색한다.
그러므로, $87 - $92 = $FFF5 (음의 결과)는 단계 4를 종료시킨다;
S - S1 = $87 - $6D = $1A를 계산하여 이 결과를 레지스터(M)에 저장시킨다;
값(S2)(=$92)을 ROM으로부터 얻고 그 얻은 값에서 레지스터(D)에 저장된 값(S1)을 차감한다. 즉, A는 $92 - $6D = $25를 유지한다.
이 결과는 레지스터(A)에서 레지스터(B)로 전송된다.
레지스터(D)는 클리어된다(즉, 모두 0으로 세팅한다).
명령의 끝에서의 레지스터 내용은 다음과 같다.
레지스터(A)는 25를 유지하며, 그 값은 단계 13에서 레지스터(B)로 로딩된다.
레지스터(B)는 25=S2-S1=92-6D를 유지한다.
레지스터(M)는 1A=S-S1=87-6D를 유지한다.
레지스터(D)는 0을 유지한다.
1차원 표 판독(TRD2)
다시 도 8을 참조하면, P1의 어드레스는 S1의 주소로부터 계산되고 레지스터(A)로 미리 로딩된다. 이 P1의 어드레스는 버스에서 인에이블되고 인덱스 레지스터로 병렬 로딩된다. P1의 어드레스는 공지된 S1의 어드레스를 취하여, 초기 속도 표 어드레스를 차감하고 매개변수값이 배치되어 있는 표의 상기 부분의 개시 어드레스에 그 결과 오프셋을 부가함으로써 결정된다.
1 차원 표 판독 명령(TRD2)은, 하나의 변수에만 의존하는 데이터를 보간할 때, 표 스캔과 함께 사용된다. 명령을 사용하기 전에, 레지스터(A)는 P1의 어드레스와 함께 로딩되어야 한다. 다음에 표 판독 명령은 잔존하는 보간 계산에 사용하기 위해 레지스터(D, M)에 P1 및 P2-P1의 값을 각각 복귀시킨다. 명령은 각각의 단계 상의 동작을 통해 설명될 수 있다:
단계 0- 레지스터(A)로 미리 로딩된 어드레스값(S1)은 버스 상에서 인에이블되고 인덱스 레지스터로 병렬 로딩된다.
단계 1- 인덱스 레지스터 내에 유지되는 어드레스는 ROM 어드레스 버스 상에서 인에이블된다.
단계 2- 인덱스 레지스터로부터의 P1의 어드레스는 ROM 어드레스 버스 상에 유지되고, P1에 대응하는 값은 데이터 ROM으로부터 인에이블되고 레지스터(D)로 로딩된다. 인덱스 레지스터는 증가되어 값 P2의 어드레스를 유지한다.
단계 3- 새로운 어드레스에 대한 시간을 셋업하는 동안 어떠한 동작도 하지 못한다.
단계 4- 인덱스 레지스터 내에 유지되는 어드레스 P2는 ROM 어드레스 버스상에서 인에이블된다.
단계 5- 인덱스 어드레스로부터의 어드레스는 ROM 어드레스 버스 상에 유지되고 P2의 대응 값은 데이터 ROM으로부터 인에이블되고 레지스터(A)로 로딩된다.
단계 6- 레지스터(D) 내에 유지되는 값은 버스 상에서 인에이블되고 레지스터(A)의 내용으로부터 차감된다. 그 결과, P2-P1은 레지스터(A)로 로딩된다.
단계 7- 레지스터(A)의 내용은 버스 상에서 인에이블되고 레지스터(M)로 로딩된다. 프로그램 카운터 및 명령 레지스터에 대하여 클록 인에이블을 생성하고 단계 카운터를 리셋하는 신호가 나타난다. 다음 명령은 프로그램 ROM으로부터 인에이블된다.
표 판독 명령이 사용될 수 있는 코드의 일례는 다음과 같다:
LDD A #$70 ; 오프 각도 표의 개시 어드레스와 함께 레지스터(A)를 로딩한다.
CLC ; 부가 동작을 하기 전에 캐리를 클리어한다.
ADC & TEMP2 ; 레지스터(A)에 속도 표 오프셋을 부가하여 P1의 어드레스를 제공한다.
TRD2 ; 표 판독 명령을 내린다.
STR D & TEMP4 ; 레지스터(D)의 내용(P1)을 임시 위치에 저장한다.
LDD B & TEMP3 ; 속도 표의 스캔으로부터 생성된 65536*(S-S1)/(S2-S1)값과 함께 레지스터(B)를 로딩한다.
MUL UL, SL ; 부호화된 레지스터(M)(P2-P1)에 부호화되지 않은레지스터(B)[65536*(S-S1)/(S2-S1)]을 곱하고, 그 결과를 레지스터(A, D)에 저장한다.
CLC ; 캐리를 클리어한다.
ADC & TEMP4 ; (P2-P1)*65536*((S-S1)/(S2-S1))의 16비트 상부에 저장된 값(P1)을 부가한다.
STR A & OFF ; 오프 각도 저장시 미리 규정된 위치에 부가 결과를 저장한다.
곱셈 결과의 하부 16비트를 버리는 것은 65536으로 제산한 효과를 갖는다는 것에 주목해야 한다.
이러한 명령이 실행되는 표 7은 다음과 같다.
Figure pat00009
이러한 예에 있어서, P1의 어드레스는 $74가 되도록 취해진다. 이것은 단계 0의 버스 상에서 인에이블되고 인덱스 레지스터로 로딩된다.
단계 2에서, 인덱스 레지스터는 데이터 ROM을 어드레스 지정하는데 사용된다. 어드레스 $74로부터 레지스터(D)로 로딩되는 값 $A0(P1)을 추출한다.
다음에, 인덱스 레지스터는 증가되어 P2 값의 어드레스(즉, $75)를 제공한다.
단계 5에서, 값(P2)은 데이터 ROM으로부터 추출되고 레지스터(A)로 로딩된다. 단계 6에서, 레지스터(D) 내의 값(P1)은 레지스터(A) 내의 값으로부터 차감되고, 그 결과값은 다음과 같다:
P2 - P1 = $9E - $A0 = $FFFE
이 값은 단계 7에서 레지스터(M)에 복사된다.
표 스캔 명령으로부터 계산된 값 및 표 판독 명령의 끝의 값으로부터, 요구되는 매개변수값(P)이 수학식 1a 및 수학식 1b에 따라 계산될 수 있다. 표 판독 명령 끝의 레지스터 내용은 다음과 같다:
레지스터(A)는 FFFE를 유지하며, 이 값은 단계 7에서 레지스터(M)로 로딩된다.
레지스터(B)는 사용되지 않는다.
레지스터(M)는 FFFE=P2-P1=9E-A0을 유지한다.
레지스터(D)는 A0=P1을 유지한다.
다음에, 수학식 1a 및 수학식 1b의 실행으로 P=D+M*TEMP3으로 정리되는데, TEMP3은 표 스캔 명령의 결과치이다.
상기 표 스캔 및 표 판독 명령의 설명에서는 제어 매개변수가 속도만의 함수라는 것을 고려하였지만, 제어 매개변수가 동등하게 토크만의 함수일 수 있다라는 것을 이해할 수 있을 것이다.
2차원 표의 보간
본 발명의 실시예에서, ON 각도 및 초프 레벨은 속도 및 토크에 의하여 변하는 매개변수로서 저장된다. 그러므로, 데이터의 적절한 표는 스캐닝되어야 하고, 각각 속도(S) 및 토크(T)의 측정된 값 중 어느 한쪽의 값(S1, S2, T1, T2)을 결정한다. 도 9는 토크 및 속도에 의한 제어 매개변수 변화의 일례를 도시하며, 제어 매개변수값(P11, P12, P21, P22)은 실행될 보간을 위해 표로부터 추출되어야만 한다.
4개의 매개변수값이 표로부터 추출되었을 때, 보간은 수학식 2 내지 수학식 4를 사용하여 실행된다.
P1=P11+[(P12-P11)*(S-S1)]/(S2-S1)
P2=P21+[(P22-P21)*(S-S1)]/(S2-S1)
P=P1+[(P2-P1)*(T-T1)]/(T2-T1)
여기서, P = 보간된 값, 즉 목표값
P1 = 최저 토크 포인트에서의 보간된 매개변수값
P2 = 최고 토크 포인트에서의 보간된 매개변수값
P11= 최저 속도 및 토크 포인트에서의 매개변수값
P12= 최고 속도 및 최저 토크 포인트에서의 매개변수값
P21= 최저 속도 및 최고 토크 포인트에서의 매개변수값
P22= 최고 속도 및 최고 토크 포인트에서의 매개변수값
S = 실제 속도값
S1= 표 내의 최저 속도값
S2= 표 내의 최고 속도값
T = 실제 토크값
T1= 표 내의 최저 토크값
T2= 표 내의 최고 토크값
중간값은 데이터 및 계산 결과를 저장하는 4 개의 레지스터를 여전히 사용하여 2 차원 표로부터 본 발명에 따른 유사한 방법으로 보간될 수 있다.
2 차원 표 판독이 실행되기 전에, 2 개의 표 스캔 명령, 즉 토크 데이터 상에 관한 하나의 명령과 속도 데이터 상에 관한 하나의 명령이 요구된다.
표 2의 2차원 표 판독 명령(TRD3)은 데이터 보간시 표 스캐닝(TSC)과 결합하여 사용된다. 명령을 사용하기 전에, 레지스터(A)는 P11의 어드레스와, 토크 및 속도 모두의 최저값에 대응하는 표 포인트와 함께 로딩된다. 명령은 각각의 단계에서의 동작을 통해 다시 기술될 수 있다.
단계 0- P11의 어드레스를 유지하는 레지스터(A)는 버스 상에서 인에이블되고 인덱스 레지스터로 병렬 로딩된다.
단계 1- 인덱스 레지스터의 내용은 ROM 어드레스 버스 상에서 인에이블된다.
단계 2- 인덱스 레지스터로부터의 어드레스는 ROM 어드레스 버스 상에 유지되고 대응값 P11은 데이터 ROM으로부터 인에이블되고 레지스터(D)로 로딩된다. 인덱스 레지스터는 증가되어 P12를 지시하게 된다.
단계 3- 새로운 어드레스에 대한 시간을 셋업할 때에는 어떠한 동작도 할수 없다.
단계 4- 인덱스 레지스터의 내용은 ROM 어드레스 버스 상에서 인에이블된다.
단계 5- 인덱스 레지스터로부터의 어드레스는 ROM 어드레스 버스 상에 유지되고 대응값 P12는 데이터 ROM으로부터 인에이블되고 레지스터(A)로 로딩된다.
단계 6- 레지스터(D)의 내용은 버스 상에서 인에이블되고 레지스터(A)에 유지되는 값으로부터 차감된다. 이 차감 결과(P12-P11)는 레지스터(A)로 로딩된다.
단계 7- 레지스터(A)의 내용은 버스 상에서 인에이블되고 레지스터(M)로 로딩된다.
단계 8 - 14
인덱스 레지스터를 7 회 증가시켜 P21을 지시하게 한다(8 값이 각각의 제어 매개변수에 대하여 저장되기 때문에 7 회가 증가한다).
단계 15- 인덱스 레지스터의 내용은 ROM 어드레스 버스 상에서 인에이블된다.
단계 16- 인덱스 레지스터로부터의 어드레스는 ROM 어드레스 버스 상에 유지되고 대응값 P21은 데이터 ROM으로부터 인에이블되고 레지스터(B)로 로딩된다. 인덱스 레지스터는 증가되어 P22를 지시하게 된다.
단계 17- 새로운 어드레스에 대한 시간을 셋업할 때에는 어떤 동작도 하지 못한다.
단계 18- 인덱스 레지스터의 내용은 ROM 어드레스 버스 상에서 인에이블된다.
단계 19- 인덱스 레지스터로부터의 어드레스는 ROM 어드레스 버스 상에 유지되고 대응하는 값 P22는 데이터 ROM으로부터 인에이블되고 레지스터(A)로 로딩된다.
단계 20- 레지스터(B)의 내용은 버스 상에서 완전히 인에이블되고 레지스터(A)에 유지되는 값으로부터 차감된다. 그 감산 결과(P22-P21)값은 레지스터(A)로 로딩된다. 프로그램 카운터 및 명령 레지스터에 대한 클록 인에이블을 생성하고 단계 카운터를 리셋하는 신호가 나타난다. 다음 명령은 프로그램 ROM으로부터 인에이블된다.
Figure pat00010
표 8은 어드레스 $C0에서 개시하는 8 ×8 표의 일례이다. 만일 P11이 어드레스 $D3에 있는 경우, 인덱스 레지스터는 한번 증가되어 $D4를 얻게 된다. 전술한 단계 8∼14에서 인덱스 레지스터를 7회 증가시키면, $D4로부터 $DB로 진행하여 P21을 지시하게 된다. 인덱스 레지스터는 단계 16에서 1 번 더 증가되어, P22, 즉 $DC를 지시한다.
표 판독 명령이 사용될 수 있는 코드의 일례는 다음과 같다:
LDD B & TEMP0 ; 토크 표 오프셋과 함께 레지스터(B)를 로딩한다.
LSLN #$3 ; 3부분만큼 왼쪽으로 시프트하며, 이것은 8을 곱하는 것과 동일하다.
TXR B A ; 레지스터(B)의 내용을 레지스터(A)로 옮긴다.
CLC ; 부가 이전에 캐리를 클리어한다.
ADC & TEMP2 ; 속도 표 오프셋에 부가하여 데이터 표의 개시와 관련된 P11의 위치를 제공한다.
STR A & TEMP2 ; 나중에 사용하기 위해 P11의 관련 위치를 저장한다.
CLC ; 캐리를 클리어한다.
ADC #$60 ; 초프 레벨 데이터 표의 개시 포인트에 부가한다.
TRD3 ; 표 판독 명령을 내린다.
STR D & TEMP4 ; 레지스터(D)의 내용 P11을 임시 위치에 저장한다.
STR B & TEMP5 ; 레지스터(B)의 내용 P21을 임시 위치에 저장한다.
STR A & TEMP6 ; 레지스터(A)의 내용 P22-P21을 임시 위치에 저장한다.
LDD B & TEMP3 ; 속도 표의 스캐닝으로부터 생성된 65536*(S-S1)/(S2-S1)값과 함께 레지스터(B)를 로딩한다. 이러한 로딩은 2 개의 표 스캔 명령이 이미 실행되었고 계산이 행해져서, 65536*[(S-S1)/(S2-S1)] 및 65536*[(T-T1)/(T2-T1)]을 생성하고, 다음에 상기 2 개의 값은 임시 위치에 저장된다는 것을 가정하였다.
MUL UL, SL ; 부호화되지 않은 레지스터(B)에 부호화된 레지스터(M;P12-P11)를 곱하고, 그 결과는 레지스터(A, D) 내에 저장된다.
CLC ; 캐리를 클리어한다.
ADC & TEMP4 ; 저장된 값 P11을 (P12-P11)*65536*(S-S1)/(S2-S1)의 상부 16 비트에 부가한다.
STR A & TEMP3 ; 부가 결과 P1을 임시 위치에 저장한다.
LDD M & TEMP6 ; P22-P21과 함께 레지스터(M)를 로딩한다.
LDD B & TEMP3 ; 65536*(S-S1)/(S2-S1) 값과 함께 레지스터(B)를 로딩한다.
MUL UL, SL ; 부호화되지 않은 레지스터(B)에 부호화된 레지스터(M)를 곱하고, 그 결과는 레지스터(A, D) 내에 저장된다.
CLC ; 캐리를 클리어한다.
ADC & TEMP5 ; 부가 결과는 P2이다.
SEC ; 차감 명령을 실행하기 전에 캐리를 세팅한다.
SBC & TEMP3 ; P2-P1을 계산한다.
TXR A B ; 레지스터(A)의 내용을 레지스터(B)로 옮긴다.
LDD M & TEMPP1 ; 토크 표 스캐닝으로부터 생성된 65536*(T-T1)/(T2-T1)값과 함께 레지스터(M)를 로딩한다.
MUL SL, UL ; 부호화된 레지스터(B; P2-P1)에 부호화되지 않은 레지스터(M)를 곱한다.
CLC ; 캐리를 클리어한다.
ADC & TEMP3 ; (P2-P1)*65536*(T-T1)/(T2-T1)에 P1을 부가한다.
STR A & CHOP ; 초프 레벨 저장시 미리 규정된 위치에 부가 결과를 저장한다.
곱셈 결과의 하부 16 비트를 버리는 것은 65536으로 제산하는 효과를 가진다는 것에 주목해야 한다.
상기 설명은 서로간에 보간이 요구되는 주어진 어드레스 세로 좌표에서 저장된 값들 간의 기울기, 즉 저장된 값들간의 변화율을 결정하는 것이 필요한 불규칙적인 희소 매트릭스의 보간에 관련된다. 또한, 본 발명은 세로 좌표간의 간격이 일정한 규칙적인 희소 매트릭스 내에서 실행될 수도 있다.
세로 좌표 간의 간격이 일정하기 때문에, 표 스캔 명령 내에서 실행되는 전술된 반복 처리가 필요치 않다. 대신에, 세로 좌표, 즉 특정 속도 바로 아래에 있는 속도의 세로 좌표는 특정 속도를 세로 좌표의 간격으로 단순히 제산함으로써 즉시 식별될 수 있다. 예를 들어, 도 10은 속도가 저장되어 있는 포인트 사이에 16의 간격을 갖는 규칙적인 2 차원 매트릭스를 도시하고 있다. 값 71이 토크 보간에 대하여 속도값으로 표시되는 경우, 71을 16으로 나누면 4.438이 된다. 정수 4 는 최하위 세로 좌표가 표에서 0위쪽으로 4번째라는 것을 표시한다, 즉 4 ×16은 64이다. 이것은 최저 세로 좌표의 식별을 인에이블하여 마이크로프로세서용 코드를 한번 통과하여 이루어질 수 있다.
불규칙적인 매트릭스에 대하여 상기에서 규정된 명칭을 사용할 때, 규칙적인 매트릭스의 보간 처리는 다음과 같이 기술될 수 있다.
어드레스를 갖는 희소 매트릭스는 다음과 같이 규정된다:
msa15, msa14, msa13, msa12, msa11, msa10, msa09, msa08, P1, P0, S6, S5, S4, T6, T5, T4; 여기서 S6, S5, S4 는 7 비트 속도 신호의 3 개의 최상위 비트이고, T6, T5, T4는 7 비트 토크 신호의 3 개의 최상위 비트이다. P1 및 P0는 매트릭스 내에 저장된 매개변수 형태를 정의하며, 행렬은 앞에서처럼 다음과 같이 정의된다.
Figure pat00011
msa15...msa08은 데이터가 위치되는 데이터 ROM 내의 어드레스이다.
해결할 수학식은 다음과 같다:
S = S3, S2, S1, S0 / (( S6, S5, S4+1)-(S6, S5, S4))
= S3, S2, S1, S0/16
T = T3, T2, T1, T0 / (( T6, T5, T4+1)-(T6, T5, T4))
= T3, T2, T1, T0 /16
Q = P11 + (P21 - P11)S.
R = P12 + (P22 - P12)S.
P = Q + (R - Q)T.
P = P11 + (P21 - P11)S + TP12 + TS(P22 - P12) - TP11+ TS(P11 - P21)
= P11 + (P21 - P11)S + (P12 - P11)T + TS(P22 + P11 - P12 - P21)
명령을 실행하기 전에, 이하의 데이터는 이하에 나타난 바와 같이 3 개의 레지스터로 로딩된다.
레지스터 A = 0,0,0,0,0,0,0,0,0, S6,S5,S4,S3,S2,S1,S0(속도).
레지스터 B = 0,0,0,0,0,0,0,0,0, T6,T5,T4,T3,T2,T1,T0(토크).
레지스터 D = msa15, msa14, msa13, msa12, msa11, msa10, msa09, msa08, P1, P0,0, 0, 0, 0, 0, 0.
단계 0∼3
레지스터(A)를 4 비트만큼 오른쪽으로 논리 시프트시킨다. 이 단계는 S3, S2, S1, S0을 버린다.
단계 4∼7
레지스터(B)를 4 비트만큼 오른쪽으로 논리 시프트한다. 이 단계는 T3, T2, T1, T0을 버린다.
단계 8∼10
레지스터(A)를 3 비트만큼 왼쪽으로 논리 시프트한다. 이 단계는 정확한 위치에 S6, S5, S4를 부가한다.
단계 11
레지스터(A)를 레지스터(B)에 부가한다. 이 단계는 어드레스의 6 개의 최하위비트를 생성한다.
단계 12
레지스터(D)를 레지스터(A)에 부가한다. 이 단계는 표 내의 베이스 포인트(P11)의 어드레스를 생성한다.
단계 13
베이스 포인트(P11)의 어드레스와 함께 인덱스 레지스터를 로딩한다.
단계 14
표의 베이스 포인트(P11)를 레지스터(D)로 로딩한다.
단계 15∼22
8 만큼 인덱스 레지스터를 증가시켜 매트릭스 내의 P21을 지시하게 한다.
단계 23
포인트 P21을 레지스터(A)로 로딩한다.
단계 24
레지스터(A)로부터 레지스터(D)를 차감하고 그 결과(P21-P11)를 레지스터(A)에 저장한다.
단계 25
레지스터(A)의 내용(P21-P11)을 레지스터(B)로 전송한다.
단계 26
1 만큼 인덱스 레지스터가 증가되어 인덱스 레지스터는 포인트 P22의 어드레스를 포함하게 된다.
단계 27
포인트 P22를 레지스터(A)로 로딩한다.
단계 28∼35
8 만큼 인덱스 레지스터가 증가되어 인덱스 레지스터는 포인트 P12의 어드레스를 포함하게 된다.
단계 36
포인트 P12를 레지스터(M)로 로딩한다.
단계 37
레지스터(A)에서 레지스터(M)를 차감하고 그 결과(P22-P12)를 레지스터(A)에 저장한다.
단계 38
레지스터(A)에서 레지스터(M)를 차감하고 그 결과(P22-P12+P11-P21)를 레지스터(A)에 저장한다.
단계 39
레지스터(A)의 내용(P22-P12+P11-P21)을 레지스터(M)로 전송한다.
단계 40
포인트 P12를 레지스터(A)로 로딩한다.
단계 41
레지스터(A)로부터 레지스터(D)를 차감하고 그 결과(P12-P11)를 레지스터(A)에 저장한다.
단계 42
명령 종료.
명령 종료에서 이하의 부분적인 결과가 계산된다:
레지스터(A) = P12 - P11
레지스터(B) = P21 - P11
레지스터(M) = P22 - P12 + P11 - P21
레지스터(D) = P11
결과(P)는 이하에서 상세히 기술되는 기존의 마이크로프로세서 명령을 사용하여 통상적으로 계산될 수 있다.
S*16이 어드레스($S)에 저장되고 T*16은 어드레스($T)에 저장된다고 가정한다. S 및 T의 최대값은 1 이므로 어드레스($S) 및 어드레스($T)에는 S 및 T의 값의 16 배가 저장된다.
STR A & TEMP0 ; TEMP0는 P12-P11을 포함한다
STR M & TEMP1 ; TEMP1은 P22-P12+P11-P21을 포함한다
STR D & TEMP2 ; TEMP2는 P11을 포함한다
LDD M & S ; M은 S*16을 포함한다
MUL, SL, UL ; D는 (P21-P11)S*16을 포함한다.
TXR D A ; A는 (P21-P11)S*16을 포함한다.
RORN #$4 ; A는 (P21-P11)S를 포함한다.
LDD B & TEMP2 ; B는 P11을 포함한다.
CLC ; 캐리를 클리어한다.
ADC B ; A는 P11+(P21-P11)S을 포함한다.
STR A & TEMP2 ; TEMP2는 P11+(P21-P11)S를 포함한다.
LDD B & TEMPO ; B는 T*16을 포함한다.
LDD M & $T ; M은 P12-P11을 포함한다.
MUL, SL, UL ; D는 (P12-P11)T*16을 포함한다.
TXR D A ; A는 (P12-P11)T*16을 포함한다.
RORN #$4 ; A는 (P21-P11)T를 포함한다.
LDD B & TEMP2 ; B는 P11+(P21-P11)S를 포함한다.
CLC ;
ADC B ; A는 P11+(P21-P11)S+(P12-P11)T를 포함한다.
STR A & TEMP2 ; TEMP2는 P11+(P21-P11)S+(P12-P11)T를 포함한다.
LDD B & S ; B는 S*16을 포함한다.
LDD M & T ; M은 T*16을 포함한다.
MUL, UL, UL ; D는 S*T*256을 포함한다.
TXR D A ; A는 S*T*256을 포함한다.
RORN #$4 ; A는 S*T*16을 포함한다.
TXR A M ; M은 S*T*16을 포함한다.
LDD B & TEMP1 ; B는 P22-P12+P11-P21을 포함한다.
MUL, SL, UL ; D는 (P22-P12+P11-P21)*S*T*16을 포함한다.
TXR D A ; A는 (P22-P12+P11-P21)*S*T*16을 포함한다.
RORN #$4 ; A는 (P22-P12+P11-P21)*S*T을 포함한다.
LDD B & TEMP2 ; B는 P11+(P21-P11)S+(P12-P11)T를 포함한다.
CLC ;
ADC B ; A는 P11+(P21-P11)S+(P12-P11)T+(P22-P12+P11-P21)ST, 즉 요구되는 값 P를 포함한다.
본 발명은 규칙적이거나 또는 불규칙적일 수 있는 희소 매트릭스의 매개변수값들 사이를 보간하는 방법을 제공한다. 레지스터 간의 보간의 부분적인 결과를 교환함으로써, 다른 저장 공간이 최소로 요구된다. 저장 공간의 축소는 축소된 프로그램 코드를 수반한다. 이러한 2 개의 특징의 조합으로 현저하게 적은 프로그램 메모리 영역이 사용될 수 있고 프로그램 사이클 시간이 빨라진다.
본 발명이 전술된 SR 제어기에 기초한 ASIC 이외의 처리 시스템에서 실행될 수 있다라는 것은 당업자들에게는 명백한 사실일 것이다. 그러므로, 본 발명은 다양한 변경 및 대체 형태가 가능하며, 특정 실시예는 도면 및 상세한 설명에서 실시예를 통해 기술되었다. 그러나, 이러한 도면 및 상세한 설명은 본 발명을 기재된 특정 실시예에 한정하기 위한 것이 아니며, 오히려 첨부된 청구항에 규정된 바와 같은 본 발명의 사상 및 범위 내에서의 모든 변경 및 대안을 포함한다는 것을 이해할 수 있을 것이다.
본 발명에 의하면 매트릭스 내의 값들 사이를 보간하여 데이터 처리량을 감소시킬 수 있다.

Claims (8)

  1. 적어도 1 차원 어드레스를 갖는 메모리 위치에 이산 매개변수값들을 포함하는 어드레스 지정 가능한 메모리 장치로부터 입력 세로 좌표에 대응하는 목표 매개변수값을 유도하도록 처리 시스템 내에서 매개변수값들 사이를 보간하는 방법에 있어서,
    어드레스의 각 차원에 대해서,
    상기 목표 매개변수값의 내용들 사이에서 제1 및 제2 메모리 위치 어드레스를 결정하는 단계와;
    제1 어드레스에 유지되는 매개변수값을 제1 레지스터로 로딩하는 단계와;
    제2 어드레스에 유지되는 매개변수값을 제2 레지스터로 로딩하는 단계와;
    상기 제2 레지스터의 내용에서 상기 제1 레지스터의 내용을 차감하여 매개변수차를 생성하는 단계와;
    상기 매개변수차를 제3 레지스터로 로딩하는 단계와;
    상기 제3 레지스터의 내용을 기울기값과 승산하여 비례값을 생성하는 단계와;
    상기 비례값을 상기 제2 레지스터로 로딩하는 단계와;
    상기 제2 레지스터의 내용에 상기 제1 레지스터의 내용을 가산하여 상기 목표 매개변수값을 생성하는 단계
    를 포함하는 것을 특징으로 하는 보간 방법.
  2. 제1항에 있어서, 상기 제1 및 제2 메모리 위치 어드레스는,
    상기 메모리 장치의 일부분에서 상기 메모리 장치의 다른 부분에 유지되는 매개변수값에 대응하는 세로 좌표값을 유지하는 메모리 위치의 시퀀스로 하나의 메모리 위치에 대한 인덱스를 지시하는 단계와;
    상기 입력 세로 좌표를 상기 제2 레지스터로 로딩하는 단계와;
    상기 인덱스로 지시된 하나의 메모리 위치에 유지된 제1 세로 좌표를 상기 제1 레지스터로 로딩하는 단계와;
    상기 제1 및 제2 레지스터에 유지된 상기 세로 좌표를 비교하는 단계와;
    상기 비교 결과가 미리 규정된 특성이 아닌 경우, 상기 인덱스를 한쪽 방향으로 시프트하여 상기 메모리 위치의 시퀀스로 다음 메모리 위치를 지시하는 단계와;
    상기 메모리 위치의 시퀀스로 다음 메모리 위치에 유지된 상기 다음 세로 좌표를 상기 제1 레지스터로 로딩한 후, 상기 제1 및 제2 레지스터의 비교를 반복하는 단계와;
    상기 비교 결과가 미리 규정된 특성인 경우, 상기 제1 세로 좌표의 하나의 메모리 위치 어드레스를 지시하는 상기 인덱스에 소정의 값을 부가하여 상기 메모리 장치의 다른 부분의 상기 제2 메모리 위치 어드레스를 규정하는 단계와;
    상기 인덱스를 하나의 어드레스 공간만큼 다른 방향으로 시프트하여 상기 메모리 장치의 다른 부분 내에 상기 제1 메모리 위치 어드레스를 규정하는 단계에 의해 결정되는 것을 특징으로 하는 보간 방법.
  3. 제2항에 있어서, 상기 기울기값은,
    상기 메모리 위치의 시퀀스로 하나의 메모리 위치의 세로 좌표를 상기 제1 레지스터로 로딩하는 단계와;
    상기 메모리 위치의 시퀀스로 이전 메모리 위치의 세로 좌표를 상기 제2 레지스터로 로딩하는 단계와;
    상기 입력 세로 좌표에서 상기 제1 레지스터의 내용을 차감하여 제1 세로 좌표차를 생성하는 단계와;
    상기 제1 세로 좌표차를 상기 제3 레지스터로 로딩하는 단계와;
    상기 제2 레지스터의 내용에서 상기 제1 레지스터의 내용을 차감하여 제2 세로 좌표차를 생성하는 단계와;
    상기 제2 세로 좌표차를 제4 레지스터로 로딩하는 단계와;
    상기 제3 레지스터의 내용을 상기 제4 레지스터의 내용으로 제산(除算)하는 단계와;
    상기 제산의 결과를 기울기값으로서 저장하는 단계에 의해 결정되는 것을 특징으로 하는 보간 방법.
  4. 제1항에 있어서, 상기 제1 및 제2 메모리 위치 어드레스는,
    근접한 매개변수값에 대응하는 세로 좌표 사이의 이격값으로 상기 입력 세로좌표를 제산하여 피제수(被除數)를 생성하는 단계와;
    상기 피제수의 최하위 비트를 버리고 최상위 비트를 포함하는 값을 남기는 단계와;
    상기 최상위 비트를 포함하는 값과 동일한 다수의 메모리 위치 어드레스만큼 한쪽 방향으로 인덱스를 시프트하여 상기 제1 메모리 위치 어드레스를 지시하는 단계와;
    상기 인덱스를 하나의 메모리 위치 어드레스만큼 상기 한쪽 방향으로 시프트하여 상기 제2 메모리 위치 어드레스를 지시하는 단계에 의해 결정되는 것을 특징으로 하는 보간 방법.
  5. 적어도 1 차원 어드레스를 갖는 메모리 위치에 이산 매개변수값들을 포함하는 어드레스 지정 가능한 메모리 장치로부터 입력 세로 좌표에 대응하는 목표 매개변수값을 유도하도록 처리 시스템 내에서 매개변수값들 사이를 보간하는 방법에 있어서,
    어드레스의 각 차원에 대해서,
    상기 목표 매개변수값의 내용들 사이에서 제1 및 제2 메모리 위치 어드레스를 결정하는 단계와;
    상기 제1 어드레스에 유지되는 매개변수값을 제1 레지스터로 로딩하는 단계와;
    상기 제2 어드레스에 유지되는 매개변수값을 제2 레지스터로 로딩하는 단계와;
    상기 제2 레지스터의 내용에서 상기 제1 레지스터의 내용을 차감하여 매개변수차를 생성하는 단계와;
    상기 매개변수차를 제3 레지스터로 로딩하는 단계와;
    상기 제3 레지스터의 내용을 기울기값과 승산하여 비례값을 생성하는 단계와;
    상기 비례값을 상기 제1 레지스터로 로딩하는 단계와;
    상기 제2 레지스터의 내용에서 상기 제1 레지스터의 내용을 차감하여 상기 목표 매개변수값을 생성하는 단계
    를 포함하는 것을 특징으로 하는 보간 방법.
  6. 제5항에 있어서, 상기 제1 및 제2 메모리 위치 어드레스는,
    상기 메모리 장치의 일부분에서 상기 메모리 장치의 다른 부분에 유지되는 매개변수값에 대응하는 세로 좌표값을 유지하는 메모리 위치의 시퀀스로 하나의 메모리 위치에 대한 인덱스를 지시하는 단계와;
    상기 입력 세로 좌표를 상기 제2 레지스터로 로딩하는 단계와;
    상기 인덱스로 지시된 하나의 메모리 위치에 유지된 제1 세로 좌표를 상기 제1 레지스터로 로딩하는 단계와;
    상기 제1 및 제2 레지스터에 유지된 상기 세로 좌표를 비교하는 단계와;
    상기 비교 결과가 미리 규정된 특성이 아닌 경우, 상기 인덱스를 한쪽 방향으로 시프트하여 상기 메모리 위치의 시퀀스로 다음 메모리 위치를 지시하는 단계와;
    상기 메모리 위치의 시퀀스로 다음 메모리 위치에 유지된 상기 다음 세로 좌표를 상기 제1 레지스터로 로딩한 후, 상기 제1 및 제2 레지스터의 비교를 반복하는 단계와;
    상기 비교 결과가 미리 규정된 특성인 경우, 상기 제1 세로 좌표의 하나의 메모리 위치 어드레스를 지시하는 상기 인덱스에 소정의 값을 부가하여 상기 메모리 장치의 다른 부분의 상기 제2 메모리 위치 어드레스를 규정하는 단계와;
    상기 인덱스를 하나의 어드레스 공간만큼 다른 방향으로 시프트하여 상기 메모리 장치의 다른 부분 내에 상기 제1 메모리 위치 어드레스를 규정하는 단계에 의해 결정되는 것을 특징으로 하는 보간 방법.
  7. 제6항에 있어서, 상기 기울기값은,
    상기 메모리 위치의 시퀀스로 하나의 메모리 위치의 세로 좌표를 상기 제1 레지스터로 로딩하는 단계와;
    상기 메모리 위치의 시퀀스로 이전 메모리 위치의 세로 좌표를 상기 제2 레지스터로 로딩하는 단계와;
    상기 입력 세로 좌표에서 상기 제1 레지스터의 내용을 차감하여 제1 세로 좌표차를 생성하는 단계와;
    상기 제1 세로 좌표차를 상기 제3 레지스터로 로딩하는 단계와;
    상기 제2 레지스터의 내용에서 상기 제1 레지스터의 내용을 차감하여 제2 세로 좌표차를 생성하는 단계와;
    상기 제2 세로 좌표차를 제4 레지스터로 로딩하는 단계와;
    상기 제3 레지스터의 내용을 상기 제4 레지스터의 내용으로 제산하는 단계와;
    상기 제산의 결과를 기울기값으로서 저장하는 단계에 의해 결정되는 것을 특징으로 하는 보간 방법.
  8. 제5항에 있어서, 상기 제1 및 제2 메모리 위치 어드레스는,
    근접한 매개변수값에 대응하는 세로 좌표 사이의 이격값으로 상기 입력 세로 좌표를 제산하여 피제수를 생성하는 단계와;
    상기 피제수의 최하위 비트를 버리고 최상위 비트를 포함하는 값을 남기는 단계와;
    상기 최상위 비트를 포함하는 값과 동일한 다수의 메모리 위치 어드레스만큼 한쪽 방향으로 인덱스를 시프트하여 상기 제1 메모리 위치 어드레스를 지시하는 단계와;
    상기 인덱스를 하나의 메모리 위치 어드레스만큼 상기 한쪽 방향으로 시프트하여 상기 제2 메모리 위치 어드레스를 지시하는 단계에 의해 결정되는 것을 특징으로 하는 보간 방법.
KR1019970027028A 1996-06-27 1997-06-25 매트릭스보간방법 KR100436635B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9613538.9 1996-06-27
GBGB9613538.9A GB9613538D0 (en) 1996-06-27 1996-06-27 Matrix interpolation

Publications (2)

Publication Number Publication Date
KR980003942A KR980003942A (ko) 1998-03-30
KR100436635B1 true KR100436635B1 (ko) 2004-09-01

Family

ID=10796017

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970027028A KR100436635B1 (ko) 1996-06-27 1997-06-25 매트릭스보간방법

Country Status (6)

Country Link
US (1) US5892348A (ko)
EP (1) EP0817365B1 (ko)
KR (1) KR100436635B1 (ko)
DE (1) DE69704812T2 (ko)
GB (1) GB9613538D0 (ko)
TW (1) TW345639B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030037632A (ko) * 2001-11-07 2003-05-14 현대자동차주식회사 가공 프로그램의 파라메타 관리방법
US7519990B1 (en) * 2002-07-19 2009-04-14 Fortinet, Inc. Managing network traffic flow
US7201244B2 (en) 2003-10-03 2007-04-10 Letourneau, Inc. Vehicle for materials handling and other industrial uses
US7095206B2 (en) * 2004-05-26 2006-08-22 Delphi Technologies, Inc. Switched reluctance motor control with partially disabled operation capability
GB2469135B (en) * 2009-04-04 2013-11-06 Dyson Technology Ltd Power tuning an electric system
GB2469140B (en) 2009-04-04 2013-12-11 Dyson Technology Ltd Control of an electric machine
GB2469129B (en) 2009-04-04 2013-12-11 Dyson Technology Ltd Current controller for an electric machine
GB2469143B (en) * 2009-04-04 2014-03-12 Dyson Technology Ltd Control of a permanent-magnet machine
GB2469126B (en) * 2009-04-04 2013-11-06 Dyson Technology Ltd Control of an electric machine
US8975878B2 (en) 2010-12-23 2015-03-10 Caterpillar Inc. Switched reluctance generator integrated controls
US10547849B1 (en) * 2016-03-03 2020-01-28 Rockwell Collins, Inc. Low-power and low-latency distortion correction for image processors
DE102019001462A1 (de) * 2019-03-04 2020-09-10 Nidec Drivexpert Gmbh Verfahren zum geräuschreduzierten Betreiben eines geschalteten Reluktanzmotors

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62139083A (ja) * 1985-12-13 1987-06-22 Canon Inc 2次元線形補間回路
US4837722A (en) * 1986-05-14 1989-06-06 Massachusetts Institute Of Technology Digital high speed 3-dimensional interpolation machine
US4841462A (en) * 1984-11-21 1989-06-20 Etat Francais, Administration Des P.T.T. (Centre National D'etudes Des Telecommunications) Random access memory and linear interpolation circuit comprising application thereof
JPH0368086A (ja) * 1989-08-07 1991-03-25 Nec Corp 直線補間回路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0436002A4 (en) * 1989-07-25 1993-01-27 Eastman Kodak Company A system for performing linear interpolation
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
GB9120404D0 (en) * 1991-09-25 1991-11-06 Switched Reluctance Drives Ltd Control of switched reluctance machines
GB9311694D0 (en) * 1993-06-07 1993-07-21 Switched Reluctance Drives Ltd Electric machine rotor prosition encoder
US5442581A (en) * 1993-11-30 1995-08-15 Texas Instruments Incorporated Iterative division apparatus, system and method forming plural quotient bits per iteration
US5461295A (en) * 1994-01-28 1995-10-24 Emerson Electric Co. Noise reduction in a switched reluctance motor by current profile manipulation
US5475289A (en) * 1994-11-04 1995-12-12 Trw Inc. Method and apparatus for controlling an electric assist steering system using two-dimensional interpolation for current commands

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4841462A (en) * 1984-11-21 1989-06-20 Etat Francais, Administration Des P.T.T. (Centre National D'etudes Des Telecommunications) Random access memory and linear interpolation circuit comprising application thereof
JPS62139083A (ja) * 1985-12-13 1987-06-22 Canon Inc 2次元線形補間回路
US4837722A (en) * 1986-05-14 1989-06-06 Massachusetts Institute Of Technology Digital high speed 3-dimensional interpolation machine
JPH0368086A (ja) * 1989-08-07 1991-03-25 Nec Corp 直線補間回路

Also Published As

Publication number Publication date
GB9613538D0 (en) 1996-08-28
DE69704812D1 (de) 2001-06-21
US5892348A (en) 1999-04-06
DE69704812T2 (de) 2001-08-30
TW345639B (en) 1998-11-21
EP0817365B1 (en) 2001-05-16
KR980003942A (ko) 1998-03-30
EP0817365A1 (en) 1998-01-07

Similar Documents

Publication Publication Date Title
KR100436635B1 (ko) 매트릭스보간방법
EP0351783B1 (en) PWM inverter apparatus
US4617675A (en) Digital PWMed pulse generator
EP0403729B1 (en) Digital-signal processing apparatus
JPH11191991A (ja) 直流モータ駆動における相切り換え同期回路
KR880002076A (ko) 수치제어장치
US5355462A (en) Processor data memory address generator
EP0240606A2 (en) Pipe-line processing system and microprocessor using the system
JPH0468867B2 (ko)
JP2752514B2 (ja) Cnc装置のプロブラム実行方式
KR870002490A (ko) 시이퀸스 펄스 제어식 구동기
US5323436A (en) Apparatus of and method for counting a number of revolutions of a servo motor
HUP9802775A2 (hu) Eljárás felhasználói program létrehozására és tárolására, programozó egység az eljáráshoz, üzemeltetési eljárás memóriaegység felhasználásával végzett programvezérléshez, valamint memóriaegység felhasználásával végzett programvezérlés az üzemeltetési eljá
JP3010095B2 (ja) クリック付きロータリエンコーダの読取り方法
JP3289921B2 (ja) プログラマブルコントローラ
JP4054916B2 (ja) ステッピングモータ制御回路、電子カメラ及びステッピングモータ制御方法
JP2526703B2 (ja) プログラマブルコントロ―ラ
JP3288822B2 (ja) ブラシレスモータの制御方式
JP2641568B2 (ja) 電動機の制御装置
JP2002323911A (ja) シーケンス制御装置
US5656913A (en) Microcomputer for driving induction motor
JP2522073B2 (ja) 正弦波pwm信号発生装置
JPS61183707A (ja) 位置制御装置
JP2990111B2 (ja) タイマ回路
JPH04331489A (ja) モータ制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee