KR100404680B1 - 스테핑 모터 제어 방법 및 장치 - Google Patents

스테핑 모터 제어 방법 및 장치 Download PDF

Info

Publication number
KR100404680B1
KR100404680B1 KR10-1999-7006083A KR19997006083A KR100404680B1 KR 100404680 B1 KR100404680 B1 KR 100404680B1 KR 19997006083 A KR19997006083 A KR 19997006083A KR 100404680 B1 KR100404680 B1 KR 100404680B1
Authority
KR
South Korea
Prior art keywords
target current
current value
sinusoidal
stepping motor
motor
Prior art date
Application number
KR10-1999-7006083A
Other languages
English (en)
Other versions
KR20000069890A (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 KR20000069890A publication Critical patent/KR20000069890A/ko
Application granted granted Critical
Publication of KR100404680B1 publication Critical patent/KR100404680B1/ko

Links

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P8/00Arrangements for controlling dynamo-electric motors of the kind having motors rotating step by step
    • H02P8/22Control of step size; Intermediate stepping, e.g. microstepping

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Control Of Stepping Motors (AREA)

Abstract

본 발명은 중앙처리장치(CPU)가 저장된 정현파 테이블(sinusoiD/Al table)로부터 항상 일정한 주사 시간 내에 정현 주기마다 최소 세 개의 선택된 디지털 목표 전류값을 읽어내고 이것을 D/A 변환기 또는 펄스폭 변조기를 써서 이산적 아날로그 목표 전류값으로 변환하는 스테핑 모터의 제어 방법 및 장치에 관한 것이다. 이 값들로부터 저역 통과 필터를 써서 목표 전류값을 위한 매끈한 정현파 신호가 재구성되고, 이 신호로부터 스테핑 모터의 상을 여자하기 위한 모터 전류가 파생된다. 판독된 정현파 테이블의 지점들 간의 간격의 선택에 따라 모터의 상의 길이가 변화되고, 그럼으로써 항상 일정한 주사 주파수로 인해 모터의 회전속도가 설정된다. 본 방법과 장치는 모든 영구 자석 여자식 스테핑 모터, 하이브리드 모터 및 동기 전동기의 제어장치 및 위치 결정장치에 적합하다.

Description

스테핑 모터 제어 방법 및 장치{METHOD AND DEVICE FOR CONTROLLING A STEPPING MOTOR}
오늘날 스테핑 모터는 위치 결정을 위한 다양한 용도로 기술 기기들에 사용된다. 스테핑 모터는 위치에 대한 정보 없이 매우 정확한 위치 결정을 가능하게 해준다. 높은 수준의 위치 결정 정밀도가 요구될 경우 대개 스테핑 모터의 구동은 마이크로 스텝 구동으로 되어야 한다. 이때 사용자는 매우 멀리 떨어져 있는 위치에 신속하게 도달하기 위해 필요한 빠른 처리 속도에 있어서도 전동기의 회전과 진동 빈곤에 대해 까다로운 요구를 하게 된다.
스테핑 모터세트의 마이크로 스텝 구동은 예를 들어
·'소형 전동기', H. Moczala외 저, Expert 출판사, 1993, 261-263쪽과
·'스테핑 모터 구동장치', F. Prautzsch 저, Franzis 출판사, 1988, 70-76쪽에 설명되어 있다. 여기서 기본 사항이 간략히 설명되어 있다.
마이크로 스텝 구동이라 함은 스테핑 모터에 풀 스텝 및 하프 스텝 구동 때의 직사각형 블록형 모터 전류 대신에 정현 곡선형으로 된 계단식 모터 전류를 공급해주는 것을 말한다. 계단식 모터 전류의 값은 목표 전류값으로서 저장되어 있는 정현파 테이블에 제시되어 있다. 연속하는 개개의 테이블 값들은 모터 제어 장치에 의해 차례로 읽혀지고, 이 값들로부터 모터 전류가 발생된다. 이때 각 테이블 값에는 어떤 특정한 높이의, 시간상 제한된 모터 전류값이 해당한다. 각 상별 새로운 모터 전류값은 각각 모터가 한 마이크로 스텝만큼 더 움직이도록 유발한다. 정현파 테이블는 연속하는 테이블 지점의 판독을 통해 항상 일정한 스텝 크기가 주어지도록 그렇게 형성되어 있다.
스테핑 모터의 풀 스텝의 수는 구조에 따라 결정된다. 모터 전류의 전체 정현 주기는 스테핑 모터가 4개의 풀 스텝을 회전하는 것에 해당한다. 때문에 완전한 정현 주기를 위한 테이블 지점의 수는 4개의 풀 스텝에 해당하는 마이크로 스텝의 수와 일치한다. 그러므로 정현 주기당 테이블 지점의 수는 마이크로 스텝의 스텝 크기를 결정하고, 그럼으로써 스테핑 모터의 위치 분해능을 결정한다.
모터의 회전 속도는 스텝 주파수의 증가 또는 감소, 즉 스텝간의 시간 간격 변화에 의하여 설정된다. 스테핑 모터의 원하는 회전 속도에 필요한 스텝 주파수는 곱 '스테핑 모터의 풀 스텝의 수 곱하기 마이크로 스텝의 수 곱하기 원하는 초당 회전수'로부터 산출된다.
공지된 스테핑 모터 제어 장치들에서는 어떤 기억장치에, 예를 들어 EPROM에 모터 전류를 위한 디지털 목표 전류값을 포함하고 있는 정현파 테이블가 저장되어 있다. 스테핑 모터가 소정의 목표 위치로 가야 된다면, CPU는 목표 위치에 도달하기 위해 필요한, 각각 일정한 스텝 크기를 갖는 마이크로 스텝 시퀀스를 정현 곡선형의 계단식 모터 전류값 시퀀스의 형태로 산출하고, 원하는 회전 속도를 내기 위해 필요한 스텝 주파수를 산출한다.
CPU에 의해 미리 산출된 마이크로 스텝 시퀀스의 길이에 상응하게 이에 필요한 디지털 목표 전류값은 CPU에 의해 산출된 스텝 주파수로 정현파 테이블의 연속하는 지점으로부터 읽혀진다.
모터 전류를 위한 판독된 디지털 목표 전류값은 D/A 변환기에 의해 아날로그 목표 전류값으로 변환되고, 이 값은 D/A 변환기의 출력부에서 정현 곡선형에 가까운 기본형을 갖는 계단식의 아날로그 신호로 나타난다. 최종 단계부에서 D/A 변환기의 출력 신호로부터 모터 전류(실제값)가 계단식 모터 전류값의 시간적 시퀀스로서 발생된다. 발생된 모터 전류값은 정현파 테이블에서 판독된 디지털 목표 전류값에 상응하게 정현 곡선에 근사한 계단파형으로 단계 지워져 있다. 동일한 방식으로 스테핑 모터의 각 상마다 각 마이크로 스텝별로 알맞게 위상이 어긋난 모터 전류값이 발생된다. 위상당 새로운 모터 전류값에 대해 스테핑 모터는 각각 하나의 마이크로 스텝을 실행한다.
정현 곡선형의 계단식 모터 전류값의 목표 위치까지 산출된 수는 모터의 목표 위치에 도달하는데 필요한 마이크로 스텝의 수에 일치한다. 도달된 각 목표 위치는 한 마이크로 스텝의 끝에 위치한다. 목표 위치의 가능한 분해능은 마이크로 스텝의 크기, 이에 따른 정현파 테이블의 지점의 수에 의하여 결정된다. 두 개의 마이크로 스텝간의 위치들에 접근하려면, 이것은 주어진 정현파 테이블로는 가능하지 않다. 목표 위치의 분해능의 증가는 더 세분화된 정현파 테이블, 이에 따른 더 증가된 수의 더 작은 마이크로 스텝으로만 가능하다. 이것은 CPU에 더 긴 스텝 시퀀스 산출을 요구한다. 때문에 여러 위치 분해를 위해서 서로 다르게 세분화된 정현파 테이블가 기억장치에 저장되어 있어야 한다. 스테핑 모터의 회전 속도의 증가는 보다 더 높은 스텝 주파수에 의해서만 가능하다. 이것도 또한 추가적으로 CPU 용량의 증대를 요구한다.
CPU가 스텝 주파수를 발생시키고 스텝 시퀀스를 산출하기 때문에 공지된 제어 장치에서는 분해능이 높은 동시에 스테핑 모터의 회전 속도가 빠를 때 필요한 매우 높은 스텝 주파수와 이로 인해 필요한 큰 CPU 용량이 단점이 된다. 그밖에도 가속된 동작은 스텝 주파수의 계속적인 변화를 요구한다. 마이크로 스텝 구동에서의 느린 가속도와 빠른 회전 속도는 분해능이 높아질 경우 매우 긴 스텝 시퀀스와 기술적으로 더 이상 실현 불가능한, 스텝간의 시간의 극도로 빠른 변경을 요구한다. 그렇기 때문에 스테핑 모터의 빠른 회전 속도는 위치 결정 분해능이 감소되었을 때, 그러니까 추가적으로 입력된, 적은 수의 테이블 값들을 갖는 규모가 더 작은 정현파 테이블들이 있어야만 가능하다. 그러나 위치 결정 분해능의 감소와 그에 따른 주파수의 감소는 모터 운전시의 소음과 진동을 유발한다. 가속 또는 감속 프로필 발생에 필요한 모터 전류값의 시퀀스를 산출하기 위해서도 마찬가지로 큰 CPU 용량이 필요하다. 그 대안으로 가동 전에 어느 정도의 가속 프로필의 수를 산출하고 기억장치에 저장할 수 있다. 이것은 기억장치의 제한된 용량 때문에 이렇게 적은 수의 저장된 가속 프로필로의 주행 운전을 제한한다.
본 발명은 관련 청구항들의 대개념에 따른 스테핑 모터의 제어 방법과 이 방법을 실행하는 장치에 관한 것이다.
도 1은 제 1 발명에 따른, D/A 변환기에 의해 디지털-아날로그 변환되는 장치의 회로도.
도 2는 제 2 발명에 따른, 펄스폭 변조기에 의해 디지털-아날로그 변환되는 장치의 회로도.
때문에 본 발명의 과제는 가능한 최대의 분해능과 매우 좋은 회전을 보이면서 낮은 주파수와 적은 CPU 용량을 가지고 동작하는 스테핑 모터 제어 방법과 이 방법을 수행하는 장치를 제시하는 것이다. 더 나아가 적은 용량의 CPU로 많은 수의 가속 프로필과 속도들을 설정할 수 있어야 한다.
이러한 과제는 본 발명에 따라 부속 청구항들의 특징적인 부분에 제시된 특징들로 해결된다. 본 발명의 또 다른 유리한 발전 형태들은 하위 청구항들의 대상이다.
본 발명에 따른 방법은 가변 스텝 주파수와 고정 스텝 크기가 아니라 항상 일정한 스텝 주파수와 가변 스텝 크기를 가지고 실행된다. 본 발명에 따라 EPROM에 저장되어, 모터 전류를 위한 디지털 목표 전류값을 함유하고 있는 어떤 정현파 테이블로부터 항상 일정한 주사 주파수로 정현파 테이블의 정현 주기당 최소 세 개의 임의로 선택된 목표 전류값이 읽혀진다. 임의의 수치 비약을 갖는 이 목표 전류값들로부터 저역 통과 필터링에 의하여 모터 전류를 위한 목표 전류값의 매끈한 정현 곡선형 진행이 재구성되고 그것으로부터 실제로 정현 곡선형의 모터 전류가 발생된다.
공지된 방법과는 달리 연속하는 디지털 목표 전류값이 정현파 테이블로부터 읽혀지는 것이 아니라, 판독될 디지털 목표 전류값이 모터의 원하는 운전 패턴에 알맞게 선택된다. 연속하는 테이블 지점들이 마이크로 스텝의 크기를 결정하기 때문에 정현파 테이블의 각 지점마다 일정한 모터 위치가 배정되어 있다. 그러므로 읽혀진 테이블 지점들의 선택에 따라 스텝 크기가 변화된다. 선택된 디지털 목표 전류값은 전부 항상 일정한 주사 주파수로, 그러니까 똑같은 시간 간격을 두고 읽혀지기 때문에, 이렇게 스텝 크기를 변화시킴으로써 동시에 스테핑 모터의 회전 속도도 변화된다. 스텝 크기가 클 경우 주사 주파수가 일정하기 때문에 스텝 크기가 작을 때보다 필연적으로 더 높은 회전 속도가 발생한다.
스테핑 모터의 다양한 일정 회전 속도는 각 n번째 값이 일정 주사 주파수로 정현파 테이블에서 읽혀지면서 발생되는데, 이때 n은 정수이다. n = 1일 때 정현파 테이블의 모든 목표 전류값이 읽혀지고 그럼으로써 발생된 정현파형 모터 전류의 최저 주파수, 그러니까 스테핑 모터의 최저 회전 속도가 설정된다. n = 2일 때 정현파 테이블로부터 하나 걸러 하나씩 목표 전류값이 읽혀진다. 주사 주파수가 일정할 경우 정현파 테이블의 스텝 크기는 두배가 되어 있으므로, 발생된 정현파형 모터 전류의 주파수도 n = 1일 때 보다 두배 크다. 그럼으로써 스테핑 모터의 회전 속도도 두배 빠르게 된다.
이렇게 숫자 n은 읽혀진 정현파 테이블의 시간적 업세팅 인자이며 따라서 발생된 정현파형 모터 전류 주파수의 설정값이다. 숫자 n이 커지고 이에 따라 읽혀진 정현파 테이블의 지점들간의 스텝 크기가 커질수록 발생된 정현파형 모터 전류의 주파수가 높아지고 스테핑 모터는 점점 더 빠른 속도로 회전한다. 스텝 크기가 일정하게 설정되어 있는 한 스테핑 모터의 회전 속도도 일정하다.
정현파 테이블의 스텝 크기를 단계적으로 늘리거나 줄임으로써 가속과 감속을 실현할 수 있다. 때문에 모터의 가속 운전을 설정하기 위하여 일정 주사 시간 내에 선택된 디지털 목표 전류값이 정현파 테이블에서 읽혀지고, 이때 판독된 정현파 테이블 지점들간의 간격은 계속 커진다. 모터의 감속 운전을 설정하기 위하여 일정 주사 시간 내에 선택된 디지털 목표 전류값이 정현파 테이블에서 읽혀지고, 이때 읽혀진 정현파 테이블 지점들간의 간격은 계속 작아진다.
CPU 용량이 충분히 클 경우 정현파 신호를 위해 필요한 디지털 목표 전류값도 EPROM에서 읽혀지는 대신에 계속 CPU에 의해 산출된다. 하지만 과제에 따라 여기서는 적은 CPU 용량을 갖는 스테핑 모터 제어장치를 제시한다.
스테핑 모터의 위치 및 회전 속도를 제어하기 위하여 CPU가 이용된다. CPU는 스테핑 모터의 원하는 목표 위치에 대하여 목표 위치에 도달하기까지 연속적으로 거쳐야 하는 중간 위치들의 시퀀스를 산출한다. 이를 위하여 스텝 크기도 임의로 변화시킬 수 있다. 스텝 크기는 정현파 테이블에서 읽혀질 테이블 지점들간의 간격에 의해 주어진다. 주사 주파수가 일정하기 때문에 스테핑 모터는 스텝이 클 경우 고속으로, 스텝이 작을 경우 저속으로 회전한다.
산출된 각각의 중간 위치에 대해 CPU는 모터의 각 상마다 정현파 테이블로부터 읽혀질 디지털 목표 전류값을 결정한다. 그러고 나서 CPU에 의해 산출된 중간 위치 시퀀스에 알맞게 CPU는 연속으로 일정한 주사 주파수로 정현파 테이블로부터 해당하는 디지털 목표 전류값을 읽어낸다.
CPU에 의해 읽혀진 디지털 목표 전류값은 이제 아날로그량으로 변환되고 그것으로부터 저역 통과 필터를 써서 목표 전류값의 매끈한 정현 곡선형 진행이 재구성되며, 이것으로부터 스테핑 모터의 상 여자를 위한 모터 전류가 파생된다. 이 점에 대하여 하위 청구항들에 여러 가지 가능한 실시 형태를 열거하였다.
본 방법의 가능한 실시 형태 중 하나에서는 정현파 테이블로부터 읽혀진 디지털 목표 전류값이 D/A 변환기로 전달된다. D/A 변환기의 출력부에 계단파형 아날로그 목표 전류값들이 나타난다. 이 값들의 기본 형태는 회전 속도가 느릴 경우, 그러니까 스텝 크기가 작을 경우 정현 곡선형에 가깝다. 회전 속도가 빠를 경우, 그러니까 스텝 크기가 클 경우 계단파형 아날로그 목표 전류값들은 큰 진폭 비약을 보이고 정현파와 어떤 유사성도 보이지 않는다. 모든 계단파형 목표 전류값이 일정한 주사 주파수를 갖고 나타난다. 이 값들은 오직 주사 주파수에 맞춰진 아날로그 저역 통과 필터를 써야만 여기서 제시된 특정한 전제 조건하에서 매끈한 정현 곡선형으로 재구성될 수 있다.
즉, 주사 주파수가 일정하기 때문에 주사 이론(통용되는 수학 교과서나 H. Moczala외의 '소형 전동기', Expert 출판사, 1993, 278-281쪽 참조)가 적용된다. 이 정리에 따르면 시간별로 변하는 신호는 주사 주파수가 재구성될 최대 주파수보다 적어도 2배 큰 값을 가질 때 일정 주사 주파수로 주사된 후에 주사된 값으로부터 완전히 재구성될 수 있다.
본 발명에 따른 방법에 있어서 이것은 풀 스텝 구동시 스테핑 모터의 설정 가능한 최대 회전 속도에 상응하여, 발생되는 정현파 주파수의 최대값보다 2배 이상 큰 주사 주파수를 선택해야 한다는 것을 의미한다. 이 주파수에서 바로 정현파 테이블의 주기당 단지 4번의 주사를 할 때 모터가 최대 속도로 주행한다. 동일한 낮은 주사 주파수로, 즉 정현 주기당 4개 이상의 목표값을 주사함으로써 다른 모든, 그러니까 더 느린 주행 속도도 가능하다.
이상으로부터 정현 곡선을 완전히 재구성하기 위해서는 완전한 정현 주기가 진행되는 동안 필터의 재시동점으로서 정현파 테이블로부터 최소한 3번의 주사가 필요하다는 결과가 도출된다. 2상 스테핑 모터의 풀 스텝 구동에서는, 그러니까 완전한 정현 주기 동안 4개의 스텝을 가질 경우, EPROM에서 정현파 테이블가 4개 지점에서 주사되기 때문에 이미 4개의 재시동점이 존재한다. 그럼으로써 풀 스텝 구동 시에 이미 주사 이론의 요구 조건이 계속 충족된다. 그만큼 더 많은 주사가 실시되는 마이크로 스텝 구동의 경우에는 어차피 요구 조건이 충족된다.
스테핑 모터의 제어를 위해 목표 전류값의 정현 곡선형 진행을 재구성하기 위하여 적정 저역 통과 필터를 사용한다. 이 저역 통과 필터는 계단파형 아날로그 목표 전류값들로부터 매끈한 정현 곡선을 재구성한다. 저역 통과 필터는 발생되는 정현파 주파수에 일치하지 않는 주파수는 전부 여파되어야 한다. 이를 위해 저역 통과 필터의 차단 주파수는 CPU의 하프 주사 주파수보다 더 낮은 값으로 택해야 한다. 저역 통과 필터를 단순화하기 위하여 가능한 최저 주파수보다 높은 일정 주사 주파수로 작업할 수 있다. 그러고 나서 저역 통과 필터의 출력부에 목표 전류값의 매끈한 정현파 신호가 나타나고, 이것은 최종 단계부의 입력부로 전달되고, 여기서 정현파 신호로부터 모터 전류를 발생시킨다.
본 방법의 가능한 또 다른 실시 형태에서는 정현파 테이블로부터 읽혀진 디지털 목표 전류값이 D/A 변환기 대신에 펄스폭 변조기로 전달된다. 펄스폭 변조기는 정현파 테이블로부터 입력된 각 디지털 목표 전류값을 위해 출력부에서 일정한 펄스폭 변조 주파수-아래에서는 줄여서 PWM 주파수라 칭하겠다-를 갖는 고주파 펄스열을 발생시킨다. 발생된 이 펄스열의 아날로그 평균값은 각각 입력 신호의 높이에 비례한다.
펄스폭 변조기에 의해 발생된 고주파 펄스열은 저역 통과 필터의 입력부로 전달된다. 펄스폭 변조기에 의해 발생된 펄스열의 일정한 PWM 주파수는 CPU의 주사 주파수보다 크거나 최소한 똑같은 크기를 가져야 하며, 그럼으로써 저역 통과 필터의 차단 주파수보다 2배 이상 커야 한다. 저역 통과 필터는 입력되는 각 고주파 펄스열마다 아날로그 평균값을 형성하고, 이때 PWM 주파수뿐만 아니라 주사 주파수도 여파된다. 그럼으로써 저역 통과 필터는 CPU에 의해 읽혀진 목표 전류값에 알맞게 목표 전류값을 위한 매끈한 아날로그 정현파 신호를 직접 재구성한다. 때문에 저역 통과 필터의 출력부에는 목표 전류값의 매끈한 정현파 신호가 나타나고, 이 신호는 최종 단계부의 출력부로 전달된다.
스테핑 모터의 각 상별로 정현파 테이블에서 읽혀진 목표 전류값으로부터 설명된 방식 중 하나로, 그러니까 D/A 변환기와 이어지는 저역 통과 필터의 결합에 의해서나 또는 펄스폭 변조기와 이어지는 저역 통과 필터의 결합에 의해서 적절하게 위상이 어긋난, 진짜로 정현 곡선형의 목표 전류값의 진행이 발생되고 각 최종 단계부로 전달된다. 최종 단계부의 출력부는 위상이 어긋난, 정현 곡선형의 모터 전류를 발생시킨다.
앞서서 공지된 제어 장치를 쓸 경우 스테핑 모터는 정현 곡선형의 계단식 모터 전류값에 상응하게 작은 발작적인 스텝으로 목표 위치로 나아간다. 처리 속도가 빠르고 이 때문에 위치 분해가 감소되었을 경우, 즉 스텝이 더 클 경우 앞서서 공지된 제어 장치로 가동하면 모터의 운전시 거슬리게 큰 소음과 진동이 유발된다. 이에 반해 본 발명에 따른 제어 장치를 갖는 스테핑 모터는 실제로 정현 곡선형인 모터 전류를 바탕으로 비약 없이, 그럼으로써 조용하고 저진동으로 목표 위치로 나아간다.
이 방법은 모든 영구 자석 여자식 스테핑 모터, 이에 따라 하이브리드 스테핑 모터와 선형 스텝 구동장치의 위치 설정에 적합하며, 동기 전동기처럼 최소 두 개의 코일과 위상 변조된 모터 전류를 갖는 모든 모터들의 위치 설정에 대체적으로 적합하다. 마찬가지로 이 방법을 다상 스테핑 모터에 응용하는 것도 가능한데, 이때 예를 들어 각 상마다 정현파 테이블로부터 필요한 디지털 목표 전류값이 필요한 위상 변조를 갖고 읽혀지고, 이 값으로부터 본 발명에 따라 모터의 여러 상을 위해 필요한 위상이 어긋난 모터 전류가 발생된다. 고성능의 CPU를 쓸 경우 정현파 테이블의 디지털 목표 전류값을 정현파 테이블로부터 도출하는 대신 계속 계산해내는 것도 가능하다.
지금까지 공지된 마이크로 스텝 구동에서의 스테핑 모터 제어장치에 비해 본 발명에 따른 방법은 모든 속도와 모든 정밀 위치 결정에 있어서 항상 동일한 낮은 주사 주파수로 작업한다. 그렇기 때문에 이 새로운 방법을 쓰면 주사 주파수가 일정할 경우 단지 가능한 한 세분화된 단 한 개의 정현파 테이블를 제시함으로써 위치 분해능이 임의로 증가될 수 있으며, 최대 속도가 변하지 않을 경우에도 이것이 가능하다. 본 발명에 따라 모든 스텝 크기 설정에 한 개의 세분화된 정현파 테이블면 충분하기 때문에 앞서서 공지된 방법에서 다양한 스텝 크기를 위한 여러 정현파 테이블를 저장하기 위해 필요한 메모리 용량이 필요 없게 된다.
이 새로운 방법은 회전이 최적화된 동시에 임의의 높은 위치 결정 분해능을 가지면서 가능한 속도와 가속 프로필의 수가 매우 많다는 것을 특징으로 한다. 기존의 스테핑 모터 제어장치에서는 고속은 단지 위치 분배가 감소되거나 스텝 주파수가 증가함으로써만 가능하고 이때 앞서 설명된 단점을 갖기 때문에 이 새로운 방법은 기존의 스테핑 모터 제어장치를 월등히 능가한다.
일정 주사 주파수의 크기는 단위 시간당 CPU의 산술 연산의 수를 결정하고 그럼으로써 필요한 CPU 용량에 영향을 미친다. 본 발명에 따른 방법은 모든 속도와 분해능에서 동일한 낮은, 일정 주사 주파수로 작업하기 때문에 항상 동일한 적은 CPU 용량만이 요구된다.
본 발명을 도면을 가지고 두 개의 실시예를 들어 상술하겠다.
도 1에서는 EPROM(1)에 발생될 모터 전류를 위한 디지털 목표 전류값을 함유하는 정현파 테이블가 저장되어 있다. 테이블 지점의 수는 모터의 가능한 위치 분해능을 결정한다. CPU(2)는 일정한 주사 주파수로 정현 주기마다 최소 세 개의 선택된 디지털 목표 전류값을 EPROM(1)의 정현파 테이블로부터 읽어낸다.
제시된 예에서는 편의상 모터의 일정 회전 속도가 설정되어야 한다고 가정한다. 이를 위하여 디지털 목표 전류값이 정현파 테이블로부터 읽혀질 테이블 지점간의 균일한 간격을 두고 정현파 테이블로부터 읽혀진다. 제시된 예에서는 정현파 테이블가 큰 스텝 크기를 가지고 읽혀진다고 가정한다. 그럼으로써 발생될 모터 전류의 주파수가 높아지고 이에 따라 스테핑 모터의 회전 속도도 빠르게 된다.
CPU(2)가 정현파 테이블로부터 읽어낸 디지털 목표 전류값은 D/A 변환기(3)로 전달된다. D/A 변환기(3)의 출력부에 계단파형의 아날로그 목표 전류값이 나타나는데, 이 값들을 도 1에 별도로 도시하였다. 이 값들은 도시된 예에서는 정현 곡선형에 가까운 진행을 보인다. 정현 주기마다 소수의 주사만이 실시되기 때문에 D/A 변환기(3)의 아날로그 출력 신호는 매우 큰 비약을 보인다.
이 신호들은 저역 통과 필터(4)의 입력부로 전달되고, 필터의 출력부에서 도 1에 별도로 도시된, 목표 전류값의 완전히 재구성된 정현파 신호가 나타난다. 이 매끈한 정현파 신호는 최종 단계부(5)로 전달되고, 여기서 2상 스테핑 모터(6)의 제 1 상을 위해 이 신호로부터 정현파형 모터 전류를 발생시킨다.
스테핑 모터(6)의 제 2 상을 위하여 역시 본 발명에 따른 방법에 따라 이미 설명된 방식으로 모터 전류가 발생된다. 이를 위해 CPU(2)는 스테핑 모터(6)의 제 2 상의 모터 전류를 위하여 선택된 디지털 목표 전류값을 EPROM(1)으로부터 읽어낸다. 이때 디지털 목표 전류값은 스테핑 모터(6)의 제 1 상을 위한 값에 비하여 위상이 90도 변조되어 정현파 테이블로부터 읽혀진다. 읽혀진 디지털 목표 전류값은 D/A 변환기(7)로 전달되고, 그 출력부에서 D/A 변환기(3)를 거친 후에 나타난 값에 비해 위상이 90도 변조된 계단파형 아날로그 목표 전류값이 나타난다.
D/A 변환기(7)의 출력 신호는 저역 통과 필터(8)의 입력부로 전달되고, 필터의 출력부에서 완전히 재구성된 정현파 신호가 나타난다. 이 신호는 저역 통과 필터(4)를 거친 후에 나타난 신호에 대해 위상이 90도 변조되었다. 저역 통과 필터(8)의 출력 신호는 최종 단계부(9)의 입력부로 전달되고, 여기서 스테핑 모터(6)의 제 2 상을 위해 정현파형 모터 전류를 발생시킨다.
스테핑 모터(6)의 양 상이 발생된 정현파형의, 위상이 어긋난 모터 전류를 공급받는 한 스테핑 모터(6)는 등속으로 회전한다. 스테핑 모터(6)의 최종 위치는 정현파 테이블의 90도 위상 변조된, CPU(2)로부터 읽힌 마지막 두 개의 디지털 목표 전류값에 의해 결정되는데, 이 값들은 양 상을 위한 모터 전류로 변환된다. 그럼으로써 모터는 자신의 최종 위치로 회전한다.
스테핑 모터(6)에 정현파형의 위상이 어긋난 모터 전류가 공급되지 않는 한, 그러니까 CPU(2)가 정현파 테이블로부터 더 이상 디지털 목표 전류값을 읽어내지 않는 한, 모터는 정지해 있다. 90도 위상 변조된 또 다른 디지털 목표 전류값이 읽혀져야 비로소 정현파형의 위상이 어긋난 모터 전류가 발생하고 스테핑 모터(6)가 다시 동작하게 된다.
도 2에서는 도 1의 D/A 변환기(3, 7)가 펄스폭 변조기(10, 11)로 대체되었다. 이 실시 형태는 펄스폭 변조기가 시판되는 많은 CPU 장치들에 이미 들어있기 때문에 특히 유리하다. 이것은 비용과 복잡한 회로 설계를 덜어준다. CPU(2)는 EPROM(1)에 저장된 정현파 테이블로부터 일정한 주사 주파수로 선택된 디지털 목표 전류값을 읽어낸다. 여기서도 역시 주사 이론을 만족시키기 위하여 정현 주기마다 적어도 세 개의 선택된 디지털 목표 전류값이 정현파 테이블로부터 읽혀져야 한다는 조건이 충족되어야 한다. 이 값들은 펄스폭 변조기(10)의 입력부로 전달된다.
펄스폭 변조기는 디지털 목표값을 일정 PWM 주파수로 고주파 펄스열로 변환시킨다. 펄스폭 변조기(10)의 출력부에서의 펄스열의 아날로그 평균값은 각각 그것의 디지털 입력 신호의 높이에 비례한다. 이는 예를 들어 0인 어떤 디지털 입력 신호는 펄스폭 변조기(10)의 출력부에서 개별 펄스의 펄스폭을 바탕으로 평균값이 역시 0인 펄스열을 발생시킨다는 것을 의미한다. 0보다 큰 디지털 입력 신호의 경우 새로운 펄스열의 평균값이 0보다 크고 입력 신호의 높이에 비례하게 되도록 펄스의 양의 부분이 넓어진다. 0보다 작은 디지털 입력 신호의 경우 새로운 펄스열의 평균값이 0보다 작고 입력 신호의 높이에 비례하게 되도록 펄스의 양의 부분이 좁아진다. 스텝 크기가 매우 클 때 펄스폭 변조기(10)의 출력부에 나타나는 펄스열은 도 2에서 별도로 도시하였다.
펄스폭 변조기(10)에 의해 발생된 고주파 펄스열은 저역 통과 필터(4)의 입력 부로 전달된다. 펄스폭 변조기(10)에 의해 발생된 펄스열의 PWM 주파수는 CPU(2)의 주사 주파수와 최소한 같거나 그보다 크고, 그럼으로써 저역 통과 필터(4)의 차단 주파수보다 2배 이상 높다. 저역 통과 필터(4)는 입력된 각각의 고주파 펄스열에 대해 아날로그 평균값을 형성하고, 이때 펄스폭 변조기(10)의 PWM 주파수뿐만 아니라 CPU(2)의 주사 주파수도 여파한다. 그럼으로써 재생산되는 정현파 신호에 일치하지 않는 모든 주파수들이 걸러내어진다. 그럼으로써 저역 통과 필터(4)는 목표 전류값의 완전히 매끈한 정현파 신호를 출력부에서 내보낸다. 저역 통과 필터(4)의 출력부에 나타나는 완전히 재구성된 매끈한 정현파 신호는 도 2에 별도로 도시하였다. 이 매끈한 정현파 신호는 최종 단계부(5)의 입력부로 전달되고, 여기서 이 신호로부터 스테핑 모터(6)의 제 1 상을 위한 모터 전류를 발생시킨다.
스테핑 모터(6)의 제 2 상을 위한 모터 전류도 이에 준하여 발생된다. 이를 위하여 CPU(2)는 일정 주사 주파수로 EPROM(1)으로부터 선택된 디지털 목표 전류값을 읽어내고 펄스폭 변조기(11)의 입력부로 전달한다. 이를 위해 디지털 목표 전류값은 스테핑 모터(6)의 제 1 상을 위한 값에 비해 위상이 90도 변조되어 정현파 테이블에서 읽혀진다.
전달되는 모든 디지털 목표 전류값을 위하여 펄스폭 변조기(11)는 출력부에서 입력 신호에 비례하는 아날로그 평균값을 갖는 고주파 펄스열을 내보낸다. 펄스폭 변조기(11)에 의해 발생된 펄스열은 저역 통과 필터(8)의 입력부로 전달된다. 이 필터는 이미 앞에서 저역 통과 필터(4) 부분에서 설명했듯이 입력된 펄스열로부터 목표 전류값의 완전히 매끈한 정현파 신호를 재구성한다. 저역 통과 필터(8)의 출력부에 나타난 재구성된 정현파 신호는 도 2에서 별도로 도시한, 저역 통과 필터(4)를 거쳐 재구성된 정현파 신호에 비하여 위상이 90도 변조되었다. 저역 통과 필터(8)의 출력부의 정현파 신호는 최종 단계부(9)의 입력부로 전달되고, 여기서 이 신호로부터 스테핑 모터(6)의 제 2 상을 위한 정현파형 모터 전류를 발생시킨다.
이 예에서도 또한 스테핑 모터(6)는 모터의 양 상에 정현파형의 위상이 어긋난 모터 전류가 공급되는 한 작동한다. 스테핑 모터(6)의 도달된 최종 위치는 마찬가지로 정현파 테이블로부터 읽혀진 마지막 두 개의 디지털 목표 전류값에 의해 결정되는데, 이 값들은 모터 전류로 변환된다.
도면부호에 대한 간단한 설명
1 - EPROM
2 - CPU
3 - D/A 변환기
4 - 저역 통과 필터
5 - 최종 단계부
6 - 2상 스테핑 모터
7 - D/A 변환기
8 - 저역 통과 필터
9 - 최종 단계부
10 - 펄스폭 변조기
11 - 펄스폭 변조기

Claims (13)

  1. 디지털 목표 전류값이 t개의 테이블 지점을 가지는 정현파 테이블의 형태로 저장되고 이 정현파 테이블로부터 판독되며, 상기 판독된 디지털 목표 전류값으로부터 스테핑 모터(6)의 상 여자를 위한 모터 전류가 도출되는 스테핑 모터(6)의 제어 방법에 있어서,
    a) 일정한 주사 주파수(fA)로 상기 정현파 테이블의 테이블 지점으로부터 디지털 목표 전류값을 선택하는 단계,
    b) 판독된 각각의 디지털 목표 전류값을 이산적 아날로그 신호로 변환하는 단계,
    c) flimit< 1/2fA인 차단 주파수(flimit)를 갖는 저역 통과 필터에 의해 모든 재구성될 수 있는 정현파 주파수의 스펙트럼 바깥에 있는 모든 주파수를 억제하는 단계, 및
    d) 스테핑 모터(6)의 상 여자를 위한 모터 전류가 도출되는 정현파 신호를 재구성하는 단계를 포함하고, 상기 판독되는 테이블 지점 사이의 간격이 매 테이블 지점마다의 간격으로부터 매 (t/2-1) 테이블 지점마다의 간격까지의 어떤 간격으로 변할 수 있는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 판독된 디지털 목표 전류값을 D/A 변환기(3, 7)에 의해 이산적 아날로그 신호로 변환하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 판독된 디지털 목표 전류값을 이산적 아날로그 신호로 변환하기 위해 fPWM≥ fA2flimit인 변조 주파수(fPWM)를 갖는 펄스폭 변조기(10, 11)에 의해 변조되는 것을 특징으로 하는 방법.
  4. 제 1 항 내지 제 3 항 중의 어느 한 항에 있어서, 스테핑 모터(6)의 일정 속도를 설정하기 위하여 디지털 목표 전류값을 테이블 지점들간에 동일한 간격으로 판독하는 것을 특징으로 하는 방법.
  5. 제 1 항 내지 제 3 항 중의 어느 한 항에 있어서, 스테핑 모터(6)의 가속 운동을 설정하기 위하여 디지털 목표 전류값을 테이블 지점들간에 계속 증가하는 간격으로 판독하는 것을 특징으로 하는 방법.
  6. 제 1 항 내지 제 3 항 중의 어느 한 항에 있어서, 스테핑 모터(6)의 감속 운동을 설정하기 위하여 디지털 목표 전류값을 테이블 지점들간에 계속 감소하는 간격으로 판독하는 것을 특징으로 하는 방법.
  7. 제 1 항 내지 제 3 항 중의 어느 한 항에 있어서, 선택된 디지털 목표 전류값을 계속해서 산출하고 중간 저장하는 것을 특징으로 하는 방법.
  8. 스테핑 모터를 제어하는 장치에 있어서,
    t개의 테이블 지점을 가지고 디지털 목표 전류값을 저장하는 디지탈 정현파 테이블,
    상기 디지털 정현파 테이블로부터 디지털 목표 전류값을 일정한 주사 주파수(fA)로 주사하는 CPU,
    선택된 테이블 지점으로부터의 상기 주사된 디지털 목표 전류값을 이산 아날로그 목표 전류값으로 변환하는 전자 변환기,
    flimit< fA/2인 차단 주파수(flimit)를 가지고 상기 전자 변환기의 출력에 결합되고, 정현파 신호를 재구성하는 저역 통과 필터, 및
    상기 저역 통과 필터의 출력에 결합되고, 스테핑 모터의 상을 위한 모터 전류를 생성하는 최종단을 포함하고 있으며, 상기 전자 변환기는 매 테이블 지점마다의 간격으로부터 매 (t/2-1)테이블 지점마다의 간격까지의 어떤 간격으로 선택된 상기 전류 값을 변환하는 것을 특징으로 하는 스테핑 모터를 제어하는 장치.
  9. 제 8 항에 있어서, 상기 전자 변환기가 D/A 변환기(3)인 것을 특징으로 하는 스테핑 모터를 제어하는 장치.
  10. 제 8 항에 있어서, 상기 전자 변환기가 PWM 주파수 ≥ 주사 주파수인 펄스폭 변조기(10)인 것을 특징으로 하는 스테핑 모터를 제어하는 장치.
  11. 제 4 항에 있어서, 선택된 디지털 목표 전류값을 계속해서 산출하고 중간 저장하는 것을 특징으로 하는 방법.
  12. 제 5 항에 있어서, 선택된 디지털 목표 전류값을 계속해서 산출하고 중간 저장하는 것을 특징으로 하는 방법.
  13. 제 6 항에 있어서, 선택된 디지털 목표 전류값을 계속해서 산출하고 중간 저장하는 것을 특징으로 하는 방법.
KR10-1999-7006083A 1997-02-06 1998-01-09 스테핑 모터 제어 방법 및 장치 KR100404680B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19704296A DE19704296C2 (de) 1997-02-06 1997-02-06 Verfahren und Vorrichtung zur Schrittmotoransteuerung
DE19704296.1 1997-02-06
PCT/DE1998/000053 WO1998035436A1 (de) 1997-02-06 1998-01-09 Verfahren und vorrichtung zur schrittmotoransteuerung

Publications (2)

Publication Number Publication Date
KR20000069890A KR20000069890A (ko) 2000-11-25
KR100404680B1 true KR100404680B1 (ko) 2003-11-07

Family

ID=7819359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-7006083A KR100404680B1 (ko) 1997-02-06 1998-01-09 스테핑 모터 제어 방법 및 장치

Country Status (7)

Country Link
US (1) US6194863B1 (ko)
EP (1) EP0958651B1 (ko)
JP (1) JP2001510678A (ko)
KR (1) KR100404680B1 (ko)
DE (2) DE19704296C2 (ko)
TW (1) TW355880B (ko)
WO (1) WO1998035436A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6121745A (en) * 1997-10-02 2000-09-19 Warner Electric Technology, Inc. Direct current command generation for a stepper motor drive
DE19842698C2 (de) * 1998-09-17 2002-08-01 Phytron Elektronik Gmbh Sollstromerzeugungsvorrichtung
DE19928357A1 (de) * 1999-06-21 2001-01-04 Sig Positec Bergerlahr Gmbh & Verfahren zum Betreiben einer Synchronmaschine sowie elektrischer Antrieb
DE19928356C1 (de) * 1999-06-21 2000-12-07 Sig Positec Bergerlahr Gmbh & Verfahren zum Positionieren eines Schrittmotors und elektrischen Antriebs
DE10007201A1 (de) 2000-02-17 2001-08-23 Zeiss Carl Jena Gmbh Verfahren zur Synchronsteuerung mehrerer Schrittmotoren
FR2805680B1 (fr) * 2000-02-29 2002-05-10 Sagem Generateur comportant deux paires de sorties differentielles
AU2001213154A1 (en) * 2000-08-15 2002-02-25 Vladimir Nikolayevich Davidov Method and apparatus for controlling acceleration and velocity of a stepper motor
US6823221B2 (en) 2001-11-28 2004-11-23 National Instruments Corporation Motion control system and method which includes improved pulse placement for smoother operation
DE10208675A1 (de) * 2002-02-28 2003-09-04 Wilo Gmbh Erzeugung skalierbarer periodischer Signale
FR2910198B1 (fr) * 2006-12-13 2009-03-13 Peugeot Citroen Automobiles Sa Procede de commande d'un moteur electrique de vehicule hybride ou elctrique
US7687703B2 (en) * 2007-03-22 2010-03-30 Qualcomm Incorporated Method and device for generating triangular waves
DE102010032607A1 (de) 2009-07-30 2011-02-03 Dornier Technologie Gmbh & Co. Kg Fahrzeugsitz, insbesondere Fluggastsitz, sowie Antriebseinheit für einen Fahrzeugsitz
RU2531360C2 (ru) * 2009-10-22 2014-10-20 КОНТИНЕНТАЛЬ АУТОМОТИВЕ СИСТЕМЗ ЮЭс, ИНК. Контроллер шагового двигателя
EP2550729A4 (en) * 2010-03-23 2017-05-03 Pelco, Inc. Voltage-controlled stepper motor driver
US8788099B2 (en) 2011-07-29 2014-07-22 National Instruments Corporation Position-based step control algorithm for a motion control system
DE102013213683B3 (de) * 2013-07-12 2014-10-23 Karl E. Brinkmann GmbH Vorrichtung und verfahren zum erzeugen eines rekonstruierten signals und testvorrichtung
JP2018098851A (ja) * 2016-12-09 2018-06-21 キヤノン株式会社 モータ制御装置及び画像形成装置
WO2019231632A1 (en) 2018-06-01 2019-12-05 Shure Acquisition Holdings, Inc. Pattern-forming microphone array

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989007859A1 (en) * 1988-02-18 1989-08-24 Siemens Aktiengesellschaft Microstepping of a unipolar d.c. motor

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4584512A (en) * 1980-02-27 1986-04-22 Pritchard Eric K Microstepping drives with waveform tuning and microprocessor control
GB8405253D0 (en) * 1984-02-29 1984-04-04 Peritronic Medical Ind Plc Controlling stepping motor
JPS6146198A (ja) * 1984-08-11 1986-03-06 Mitsubishi Electric Corp ステツプモ−タ駆動制御回路
US4929879A (en) * 1988-02-18 1990-05-29 Siemens-Bendix Automotive Electronics L.P. Microstepping of an unipolar stepping motor
JPH01291698A (ja) * 1988-05-13 1989-11-24 Sharp Corp パルスモータ駆動回路
JP2928518B2 (ja) * 1988-07-01 1999-08-03 キヤノン株式会社 ステッピングモータの駆動方法
US5055761A (en) * 1989-02-21 1991-10-08 Linear Instruments Smooth rotation by a galvanometer
US5198741A (en) * 1989-07-31 1993-03-30 Canon Kabushiki Kaisha Drive control system of stepping motor
JPH06334528A (ja) * 1993-05-25 1994-12-02 Fuji Electric Co Ltd ディジタル−アナログ電圧変換回路
DE19521445A1 (de) * 1995-06-16 1996-12-19 Moto Meter Gmbh Verfahren zur Ansteuerung eines Schrittmotors und Vorrichtung dazu
US6016044A (en) * 1995-09-11 2000-01-18 Alaris Medical Systems, Inc. Open-loop step motor control system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989007859A1 (en) * 1988-02-18 1989-08-24 Siemens Aktiengesellschaft Microstepping of a unipolar d.c. motor

Also Published As

Publication number Publication date
EP0958651B1 (de) 2003-05-07
EP0958651A1 (de) 1999-11-24
DE19704296A1 (de) 1998-08-20
JP2001510678A (ja) 2001-07-31
US6194863B1 (en) 2001-02-27
DE19704296C2 (de) 2001-03-01
DE59808273D1 (de) 2003-06-12
KR20000069890A (ko) 2000-11-25
TW355880B (en) 1999-04-11
WO1998035436A1 (de) 1998-08-13

Similar Documents

Publication Publication Date Title
KR100404680B1 (ko) 스테핑 모터 제어 방법 및 장치
EP0180083B1 (en) Control systems for variable reluctance electrical machines
US5572105A (en) Stepping motor control method including varying the number of split sections in one step drive period of a stepping motor
US4965504A (en) Control apparatus for inverter for driving AC motor
US5760359A (en) Motor control apparatus equipped with a controller for controlling rotational position of motor
SU552913A3 (ru) Устройство дл управлени шаговым двигателем
JPS58500146A (ja) マイクロプロセツサ制御によりマイクロ−ステツピングするチヤ−ト駆動装置
JP3798861B2 (ja) 同期モータの動作用のディジタルコントローラを有する回路
US4633423A (en) Coherent error suppression in digital tachometers and the like
US5844393A (en) Stepper drive control using variable step angle
US6060857A (en) Stepper motor controller
EP0324396A2 (de) Verfahren zur Kommutierung von Spulensträngen eines Gleichstrommotors
US4283672A (en) Stepper motor drive
JP3195820B2 (ja) 振動型モ−タを備えた装置
JP2714654B2 (ja) 可変リラクタンスモータの制御システム
JP3584622B2 (ja) モータ制御装置
SU1267375A1 (ru) Устройство дл регулировани скорости электродвигател
JP4104189B2 (ja) ステッピングモータ駆動装置
JPH09238491A (ja) モータ回転制御装置
RU2101845C1 (ru) Электропривод с частотно-токовым управлением
JP2769721B2 (ja) ディスク装置のステッピングモータ駆動方法
JPH0477324B2 (ko)
JPS61273194A (ja) リニアパルスモ−タの駆動方法
JPH10323091A (ja) ステップモータの駆動方法及び駆動装置
JPH07222494A (ja) ステッピングモータ駆動装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E801 Decision on dismissal of amendment
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091022

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee