KR100760204B1 - 모터 제어시스템의 펄스 발생방법 및 그 장치 - Google Patents

모터 제어시스템의 펄스 발생방법 및 그 장치 Download PDF

Info

Publication number
KR100760204B1
KR100760204B1 KR1020060070007A KR20060070007A KR100760204B1 KR 100760204 B1 KR100760204 B1 KR 100760204B1 KR 1020060070007 A KR1020060070007 A KR 1020060070007A KR 20060070007 A KR20060070007 A KR 20060070007A KR 100760204 B1 KR100760204 B1 KR 100760204B1
Authority
KR
South Korea
Prior art keywords
pulse
motor
control
outputting
pulses
Prior art date
Application number
KR1020060070007A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020060070007A priority Critical patent/KR100760204B1/ko
Application granted granted Critical
Publication of KR100760204B1 publication Critical patent/KR100760204B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • 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
    • H02P7/00Arrangements for regulating or controlling the speed or torque of electric DC motors
    • H02P7/06Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current
    • H02P7/18Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power
    • H02P7/24Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices
    • H02P7/28Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices using semiconductor devices
    • H02P7/285Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices using semiconductor devices controlling armature supply only
    • H02P7/29Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices using semiconductor devices controlling armature supply only using pulse modulation
    • 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
    • H02P2209/00Indexing scheme relating to controlling arrangements characterised by the waveform of the supplied voltage or current
    • H02P2209/09PWM with fixed limited number of pulses per period

Landscapes

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

Abstract

제어주기 안에서 실수개의 펄스를 출력하는 모터제어시스템의 펄스발생방법 및 그 장치를 개시한다. 본 발명은 모터의 가감속 구간 및 정속 구간에서 속도 성분의 변화가 감소하게 됨에 따라 모터 제어의 정밀도를 높이고 모터의 속도 제어를 부드럽게 수행하며, 모터 속도 제어 시 진동 및 소음을 줄일 수 있다.

Description

모터 제어시스템의 펄스 발생방법 및 그 장치{PULSE GENERATING METHOD AND PULSE GENERATOR IN MOTOR CONTROL SYSTEM}
도 1은 종래기술에 따른 모터 제어시스템의 제어블록도이다.
도 2a는 종래 기술에 따른 한 주기 동안 제1펄스와 제2펄스를 교대로 출력하는 경우 제1펄스와 제2펄스의 펄스 폭에 대응하는 기준클럭의 카운트 값을 펄스 파형으로 도시한 것이다.
도 2b는 종래 기술에 따른 따른 한 주기 동안 제1펄스를 연속 출력하고 제2펄스를 연속 출력하는 경우 제1펄스와 제2펄스의 펄스 폭에 대응하는 기준클럭의 카운트 값을 펄스 파형으로 도시한 것이다.
도 3a는 일반적인 모터 제어시스템이 모터를 제어하기 위한 속도 프로파일을 나타낸 그래프이다.
도 3b는 도 3a의 등속도 구간(A)에서 상위제어기에서 출력하는 위치명령의 레벨을 나타낸 도면이다.
도 3c는 도 3b의 위치명령에 대응하는 속도명령의 레벨을 나타낸 도면이다.
도 4는 모터제어시스템의 상위제어기의 제어명령에 따라 모터의 위치와 속도를 제어하기 위한 펄스를 모터 구동부에 출력하기 위한 본 발명에 따른 펄스발생장치의 구성도이다.
도 5 및 도 6은 본 발명의 바람직한 실시 예에 따른 펄스 발생장치로부터 출력되는 펄스의 파형에 대한 실시 예를 도시한 것으로, 도 5는 5주기에 6개 펄스를 출력하는 경우의 예이고, 도 6은 5주기에 1개 펄스를 출력하는 경우의 예이다.
도 7은 본 발명에 따른 펄스 발생방법의 제어흐름도이다.
도 8은 본 발명에 따른 제어연산부가 상위지령을 설정하기 위한 제어 흐름도이다.
본 발명은 모터 구동 시 발생할 수 있는 소음 및 진동을 줄이기 위한 모터 제어시스템의 펄스 발생방법 및 그 장치에 관한 것이다.
모터제어시스템은 상위 제어기의 제어 명령에 따라 이루어지는데, 상위 제어기에서 출력하는 위치 명령에 기초하여 모터 속도를 제어하는 것이 일반적이다.
한국공개특허 10-2005-00119221호(공개 2005. 11. 23)에 개시하고 있는 모터제어시스템은, 도 1에 도시한 바와 같이, 모터(5)와 모터를 구동시키는 모터구동부(3)와 소정 프로그램에 기초하여 모터구동부에 펄스를 출력하는 상위제어기(1)를 포함한다. 여기서 상위제어기(1)는 모터의 속도와 위치를 제어하기 위한 제어명령에 따라 펄스를 발생하여 모터구동부에 인가하는 펄스발생장치(10)를 구비한다. 모터구동부(3)는 펄스발생장치로부터 출력되는 펄스에 기초하여 모터의 속도를 제어하게 된다.
인용 문헌에 따르면, 도 2a 및 도 2b의 도시와 같이, 모터 제어의 정밀도를 높이기 위해 상위 제어기(1)의 위치 명령에 기초하여 펄스발생장치(10)에서 한 주기 내에서 정해진 총 펄스 개수를 모두 출력하도록 펄스의 개수를 산출하는데, 한 주기 내에서 한 종류의 펄스만을 출력하기 어려운 경우에는 펄스 폭이 다른 여러 종류의 펄스를 섞어서 출력하도록 하고 있다.
이를 구체적으로 설명하면, 도 2a에 도시한 하나의 실시 예에 의하면, 위치명령으로서 펄스의 폭을 결정하는 기준 클럭의 개수가 n이고 그 카운트한 값이 PG-GMT1가 되는 것에 의존하여 발생시키는 제1펄스와, 펄스의 폭을 결정하는 기준 클럭의 개수가 n+1이고 그 카운트 값이 PG_GMT2가 되는 것에 의존하여 발생시키는 제2펄스를 교대로 출력하고, 이러한 제1펄스와 제2펄스로 된 펄스 열(PG_XP)을 입력받은 모터 구동부(3)가 상위 제어기의 위치명령에 맞는 속도로 모터를 구동시키게 된다. 이러한 동작은 스타트 신호(start)가 입력되는 시기 마다 반복되며, 등속도 구간이나 완만한 가속도 구간에서 모터를 제어할 때 적용하도록 하고 있다.
또한 도 2b에 도시한 다른 실시 예에 의하면, 펄스 폭이 n인 상기 제1펄스를 제1개수만큼 연속 출력한 후 펄스 폭이 n+1인 제2펄스를 제2개수만큼 연속 출력하며, 이러한 연속 출력하는 제1펄스와 제2펄스로 된 펄스 열(PG_XP)가 모터 구동부(3)에 인가됨으로서 모터의 속도가 제어된다. 이러한 동작은 스타트 신호(start)가 입력되는 시기 마다 반복되며, 다소 급한 감속 구간 또는 가속 구간에서 모터를 제어할 때 적용하도록 하고 있다.
실제 상위제어기에서는 주어진 작업 내용에 의거하여 작성되는 모터의 속도 프로파일에 기초하여 모터 제어를 위한 위치명령을 만들어 펄스발생장치로 하여금 펄스를 출력하도록 하고 있다.
모터 속도를 정밀 제어하고 또한 모터의 속도를 부드럽게 제어하기 위해서는 펄스발생장치가 소정 주기 안에서 실수개의 펄스를 출력할 수 있어야 하고 이를 고려하여 상위제어기에서 보다 세밀한 위치명령을 만들어 주어야 한다.
그러나 앞서 설명한 종래기술에서는 펄스발생장치가 주기 안에서 출력할 수 있는 펄스가 정수개로 제한되어 있기 때문에, 이러한 제한을 고려한 상위제어기에서 펄스발생장치로 제공하는 위치명령에 의해서는 펄스 폭이 다른 2종류 이상의 펄스를 출력하거나 매 주기 마다 출력하는 펄스의 개수가 다르게 되는 결과를 초래하며, 이 때문에 모터의 제어 성능이 저하가 된다.
도 3a에 도시한 바와 같이, 모터 제어시스템이 모터를 제어하기 위한 속도 프로파일은 감속 구간과, 등속도 구간, 및 가속 구간을 포함한다.
종래기술에 따르면(도 2a 적용하는 경우), 예를 들어 도 3a의 등속도 구간(A)의 위치명령은, 도 3b에 도시한 바와 같이 위치 명령은 크기 레벨이 큰 제1펄스(펄스 폭이 101개의 클럭펄스를 카운트한 크기)와 크기 레벨이 작은 제2펄스(펄스 폭이 100개의 클럭펄스를 카운트한 크기)가 교대로 출력하게 한다.
이러한 위치 명령을 미분하여 얻게 되는 모터 속도는, 도 3c에 도시한 바와 같이, 그 속도 레벨의 차이가 증폭된다. 예를 들어 제어주기가 1ms인 경우 속도 레벨은 1000펄스만큼의 차이로 발생하게 된다. 이와 같이 위치명령의 차이가 작아도 그에 다른 속도 명령에서의 차이는 증폭되므로 인하여 모터 제어 시 소음과 진동이 발생하게 되고 결국 모터 제어시스템에 대한 제어성능을 감소시키게 된다.
본 발명의 목적은 제어주기 안에서 실수개의 펄스를 출력하여 모터 제어의 정밀도를 높이고 모터의 속도를 부드럽게 제어할 수 있도록 한 모터제어시스템의 펄스발생방법 및 그 장치를 제공함에 있다.
본 발명의 다른 목적은 모터의 위치명령에 따라 펄스를 토글하는 동작과 펄스의 토글을 지연하는 동작을 적절하게 수행하여 펄스 폭이 일정한 펄스를 모터구동부로 출력함으로서 모터 속도 제어 시 진동 및 소음을 줄일 수 있도록 한 펄스발생방법 및 그 장치를 제공함에 있다.
본 발명의 다른 목적은 기준클럭을 카운트하는 하나의 클럭 카운터를 이용하여 펄스를 토글하기 위해 카운트하는 동작과 펄스의 토글을 지연하기 위해서 카운트하는 동작을 선택적으로 수행함으로서 제조비용을 줄일 수 있도록 한 펄스발생방법 및 그 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명은, 모터와 상기 모터를 구동하는 모터구동부 및 상기 모터구동부에 펄스를 출력하는 펄스발생장치를 구비하는 모터제어시스템의 펄스발생방법에 있어서, 기준 클럭의 주파수에 기초하여 제어 주기를 설정하는 단계; 설정한 제어주기 동안 출력하는 펄스의 개수를 설정하는 단계; 상기 기준 클럭을 카운트하는 단계; 상기 기준클럭을 카운트한 값이 상기 펄스를 토글하기 위해 설정한 값 또는 상기 펄스의 토글을 지연하기 위해 설정한 값 중 적어도 어느 하나와 일치하면 일치신호를 출력하는 단계; 및 상기 일치신호에 기초하여 상기 모터구동부에 출력하는 펄스를 토글하는 단계를 포함하는 특징으로 한다.
상기 모터구동부에 출력하는 펄스 열은 펄스 폭이 일정한 단일 종류의 펄스로 이루어진다.
상기 모터구동부에 출력하는 펄스의 개수는 제어주기 안에서 실수개로 한다.
상기 펄스의 토글을 지연하기 위해 설정한 값은 이전 제어주기에서 설정한 제어변수를 기초로 하여 설정한다.
상기 제어주기 안에서 상기 펄스를 토글하고 남은 소수점 이하의 펄스는 제어주기가 종료 시 까지 토글시키지 않는다.
상기 목적을 달성하기 위한 본 발명은, 모터와 상기 모터를 구동하는 모터구동부와 상기 모터의 속도를 제어하기 위한 펄스를 상기 모터구동부로 출력하는 펄스발생장치를 포함하되, 상기 펄스 발생장치는 상위 제어기의 제어명령에 따라 소정 주기마다 상기 모터를 제어하기 위한 제어변수를 출력하는 제어연산부와, 상기 제어연산부로부터 제공받은 제어변수에 기초하여 소정 제어주기 안에서 실수개의 펄스를 출력하는 로직회로부를 포함한다.
상기 로직회로부는, 제어변수를 저장하는 레지스터부; 기준클럭을 출력하는 기준클럭 출력부; 상기 기준클럭 출력부로부터 출력되는 상기 기준 클럭을 카운트하는 클럭카운트; 상기 클럭카운트에서 카운트하는 카운트 값과 레지스터의 제1제어변수와 제2제어변수 중 어느 하나를 선택적으로 비교하여 일치하면 일치신호를 출력하는 비교부; 및 상기 비교부의 일치신호에 따라 펄스를 토글하여 출력하는 펄 스발생부를 포함한다.
상기 제1제어변수는 상기 펄스를 토글하기 위해 설정하는 펄스의 폭에 대응하는 기준클럭의 개수를 설정한 값이고, 상기 제2제어변수는 상기 펄스의 토글을 지연하기 위해 지연 시간에 대응하는 기준클럭의 개수를 설정한 값이다.
이하, 본 발명의 바람직한 실시 예를 첨부도면에 따라 설명한다.
본 발명에 따른 모터제어시스템은, 도 1에 도시한 종래기술의 모터 제어시스템과 기본적인 구성을 공통적으로 구비하고 있으며, 즉 모터(5)와 모터를 회전 구동하기 위한 모터구동부(3) 그리고 모터구동부에 모터의 속도를 제어하기 위한 제어명령을 출력하는 상위제어기(1)를 포함한다. 상위 제어기는 모터의 속도 제어를 위한 펄스를 발생하는 펄스발생장치를 포함할 수 있다.
본 발명의 모터제어시스템은, 도 4와 같은 펄스발생장치를 구비한다. 이 펄스발생장치는 소정 프로그램에 의해 일정 시간 간격 즉 매 주기마다 상위제어기의 제어명령을 출력하는 제어연산부(120)와, 제어연산부로부터 제공받은 제어명령에 기초하여 제어주기 안에서 실수개의 펄스를 출력하기 위해 펄스 폭이 일정한 단일 종류의 펄스(PG_XP)를 출력하는 로직회로부(130)를 포함한다. 또한 로직회로부(130)는 제어연산부(120)가 제공하는 정보에 따라 모터의 회전방향을 판단하여 모터구동부로 방향신호(PG_DIR)를 출력한다.
여기서 제어연산부(120)와 로직회로부(130) 사이에는 도시되지 않은 데이터 버스(Data Bus), 어드레스 버스(Address Bus), 데이터를 읽어 들이거나 로딩하기 위한 리드(READ), 라이트(Write) 제어신호선 및 초기화를 위한 리셋(Reset) 신호선 등이 마련될 수 있다.
제어연산부(120)는 한 주기에 대한 정보를 기준 클럭의 주파수에 기초하여 산출한다. 예를 들어 모터제어시스템이 일정 시간 간격 t 마다 모터의 속도제어를 수행하고, 기준 클럭의 주파수를 f라고 가정하는 경우, 제어연산부(120)는 제어주기 T를 [식1]에 의해 산출한다.
[식1] T = t × f
예를 들어 모터제어시스템이 40㎲ 간격으로 모터의 속도제어를 수행하고, 기준 클럭의 주파수가 30㎒인 경우, 제어주기 T는 1200이 된다.
제어연산부(120)는 모터의 위치명령에 관련하여 소정 주기 동안 출력될 총 펄스 개수, 펄스의 토글 시기를 결정하는 것으로 펄스의 폭을 결정하는 기준 클럭의 개수, 한 주기 동안 출력하는 펄스의 개수, 펄스의 토글을 지연하기 위한 지연 시간에 대한 정보를 설정하고 그 설정 정보를 로직회로부(130)에 제공한다.
상기 로직회로부(130)는 제어연산부(120)로부터 제공받은 정보를 저장하는 레지스터부(131)을 구비한다.
상기 로직회로부(130)는 기준 클럭을 출력하는 기준클럭 출력부(134)와, 기준 클럭을 카운트하는 클럭카운터(135)와, 펄스(PG_XG) 출력과정에서 사용되는 다양한 변수들을 비교하는 비교부(132)와, 비교부(132)로부터의 일치신호에 따라 펄스(PG_XG)를 출력하는 펄스발생부(133)를 포함한다.
기준클럭 출력부(134)는 기 설정된 일정 주파수를 갖는 기준 클럭을 출력하고, 클럭카운터(135)는 기준클럭 출력부(134)로부터 출력되는 기준클럭의 개수를 카운트한다.
비교부(132)는 클럭카운터(135)의 카운트 값과 펄스의 토글 시기를 결정하는 것으로 펄스의 폭을 결정하는 기준 클럭의 개수 또는 펄스의 토글을 지연하기 위한 지연 시간을 결정하는 기준 클럭의 개수와 비교하여, 양자가 일치하는 경우 일치신호를 출력한다. 여기서 펄스발생부(133)는 비교부(132)로부터 일치신호가 입력되는 경우 출력할 펄스(PG_XP)를 토글시킨다.
클럭카운터(135)는 비교부(132)의 리셋 신호에 의해 카운트 동작을 초기화하고 처음부터 다시 카운트한다.
비교부(132)는 펄스를 토글하기 위한 비교 동작과 펄스의 토글을 지연하기 위한 비교 동작을 수행하기 위한 각각의 경우에 리셋신호를 클럭카운터(135)에 인가한다. 물론 다른 실시 예로서 클럭카운터를 복수로 마련하여 펄스의 토글을 위한 토글 시간 카운트 동작과 펄스의 토글을 지연하기 위한 지연시간 카운트 동작을 개별적으로 수행할 수도 있다.
한편, 본 발명의 로직회로부(130)는 펄스발생부(133)로부터 출력되는 펄스(PG_XP)의 개수를 카운트하는 펄스카운터(136)를 포함할 수 있다. 펄스카운터(136)의 카운트 값은 제2레지스터(131b)에 저장되고, 비교부(132)에 제공될 수 있다.
또한 본 발명에 따른 로직회로부(130)는 클럭카운터(135)의 카운트 값, 펄스카운터(136)의 카운트 값 등과 같은 펄스 폭이 일정한 단일 종류의 펄스(PG_XP)를 출력하는 과정에서 사용되는 다양한 변수를 레지스터부(131)에 저장한다. 여기서 레지스터부(131)는 제어연산부(120)로부터 제공되는 변수를 저장하는 제1레지스터(131a)와 펄스 폭이 일정한 단일 종류의 펄스(PG_XP)를 출력하는 과정에서 사용되는 변수를 저장하는 제2레지스터(131b)를 포함할 수 있다.
상기 구성을 갖춘 본 발명의 바람직한 실시 예에 따른 펄스발생방법을 첨부도면에 따라 상세히 설명한다.
먼저, 펄스 발생과정에서 사용되는 변수들을 정의한다. 여기서 제어연산부(120)가 제공하는 변수로서 제1레지스터(131a)에 저장하는 정보는 다음과 같다.
XP_VALUE : 제어주기에서 토글하여 출력할 펄스의 개수
PG_CMT1 : 토글할 제1펄스의 폭에 대응하는 기준클럭의 개수
PG_CMT2 : 토글할 제2펄스의 폭에 대응하는 기준클럭의 개수
RATE 1 : 제2펄스에 대하여 토글할 제1펄스의 비
RATE 2 : 제1펄스에 대하여 토글할 제2펄스의 비
PG_DIR : 모터의 회전 방향
PG_DLY : 펄스의 토글을 지연하는 시간에 대응하는 기준 클럭의 개수
실시 예에서는 하나의 펄스 즉 펄스의 폭이 같은 한 종류의 펄스를 출력하는 것으로 도시하고 있으나, 제1펄스와 펄스 폭이 다른 제2펄스를 이용하여 토글하여 출력하고 그 출력 펄스의 토글을 지연하여 제어주기 안에서 실수개의 펄스를 출력하는 구성을 배제하지 않기 위하여 이를 고려하는 변수 PG_CMT2 및 RATE 2에 대하여도 정의하도록 한다.
로직회로부(130)는 펄스발생부(133)에서 펄스 폭이 일정한 단일 종류의 펄 스(PG_XP)를 출력하는 과정에서 필요한 변수로서 제2레지스터(131b)에 저장히는 정보는 다음과 같다.
CN(CountableNumber) : 소정 제어주기 동안 카운트한 총 기준클럭의 개수
IPC(InputPulseCount) : 한 제어주기에 출력하는 펄스의 개수
TIPC(TotalInputPulseCount) : 이전 제어주기까지 출력한 펄스의 개수
EIPC(EffectiveInputPulseCount) : 이번 제어주기에서 출력하는 펄스의 개수
DFTP(DecFlactionTotalPulse) : 이번 제어주기에서 출력하는 소수점 이하의 펄스에 대응하는 기준클럭의 개수
EN(EffectiveNumber) : 소정 제어주기 동안 카운트한 총 기준클럭의 개수(CN)에서 이번 제어주기에서 펄스의 토글을 지연하는 시간에 대응하는 기준클럭의 개수(PG_DLY)과 소수점 이하의 펄스에 대응하는 기준클럭의 개수(DFTP)를 뺀 값
iPG_VALUE, iPG_CMT1, iPG_CMT2, iRATE1, iRATE2, iPG_DLY : 초기 변수들의 값
본 발명에 따른 펄스발생방법을 제어주기 안에서 실수개의 펄스를 출력하기 위한 2가지 예에 따라 설명한다.
그 하나의 예는 5번의 제어주기에 6개의 펄스를 출력하는 경우인데, 본 발명에 따른 펄스발생방법을 설명하기에 앞서, 종래기술에 따라 5번의 제어주기 안에서 6개의 펄스를 출력한다고 하면 1번의 제어주기 동안 2개 펄스를 출력하고 4번의 제어주기에서 각각 1개 펄스를 출력하는 방식을 적용할 것으로 가정하면 5번의 제어주기 동안 출력하는 펄스의 개수가 모든 제어주기에서 고르지 않게 펄스를 출력하 는 결과가 된다.
이러한 문제를 해소하기 위한 본 발명의 모터제어시스템의 펄스발생방법은, 도 5와 같이 펄스발생장치에서 출력하는 펄스(PG_XP)는 예를 들어 5번의 제어주기에 6개 펄스(P1-P6)를 출력하도록 하는데, 각 제어주기마다 1.2개 펄스를 똑같이 출력한다.
도 5를 참고하면, 스타트 신호(start 입력)가 입력되면 제어주기 1에서 비교부(132)는 클럭 카운터(135)의 카운트 값이 토글할 펄스의 폭에 대응하는 기준클럭의 개수가 되면 일치신호를 펄스발생부(133)로 출력하고, 이에 따라 펄스발생부(133)는 출력 펄스를 토글(High → Low)한다. 그리고 제어주기 1이 안에서 비교부(132)가 다시 일치신호를 출력하면 이에 따라 펄스발생부(133)가 출력 펄스를 다시 토글(Low → High) 한다. 이와 같이 하여 1개의 펄스(P1)를 출력한 후 소수점이하의 펄스 즉, 0.2 펄스 시간(DFTP) 만큼 경과한 후 제어주기 2의 시작을 지시하는 스타트 신호(start)가 입력된다. 초기의 제어주기 1에서는 펄스의 토글을 지연하는 동작이 없고, 제어주기 2에서는 후술할 도 8의 순서도에 따라 설정되는 지연 시간(PG_DLY) 동안 지연하며 그 지연 시간의 종료 여부를 비교부(132)가 비교한 결과 클럭 카운터(135)의 카운트 값이 지연 시간과 일치하면 일치신호를 펄스발생부(133)로 출력하며, 이에 따라 펄스발생부(133)는 펄스를 토글한다. 이후 펄스를 토글하는 동작과 펄스 토글을 지연하는 동작을 수행하여 각 제어주기에서 1.2개의 펄스를 출력하도록 한다.
다른 예로서 본 발명에 따른 펄스발생방법은, 도 6에 도시한 바와 같이, 펄 스발생장치에서 5번의 제어주기에 1개 펄스(PG_XP)를 출력하는데, 각 제어주기마다 0.2개 펄스를 출력하게 된다. 여기서 제어주기 1에서는 지연 시간이 0이고 토글할 펄스의 기준클럭의 개수가 커서 일치신호를 발생하기 이전에 제어주기 2의 시작을 알리는 스타트가 입력되어 펄스의 토글이 발생하지 않는다. 제어주기 2에서는 지연 시간에 대응하는 기준클럭의 개수가 커서 일치신호를 발생하기 이전에 제어주기 3의 시작을 지시하는 스타트 신호가 입력되어 펄스의 토글이 발생하지 않게 되며, 제어주기 3에서는 지연 시간에 대응하는 기준클럭과 클럭카운터(135)의 카운트 값이 일치하는 시기에서 일치신호를 펄스발생부(133)에 출력하고, 이에 따라 펄스발생부(133)는 출력 펄스를 토글(High → Low)한다. 그리고 제어주기 4 및 제어주기 5에서도 설정된 지연시간에 대응하는 기준클럭이 커서(* 표시된 수치) 펄스의 토글이 발생하지 않는다.
이하에서는 본 발명에 따른 모터제어시스템의 펄스발생방법을 도 7 및 도 8에 따라 설명한다.
먼저 한 제어주기가 시작되는 경우 즉, 제어연산부(120)가 로직회로부(130)에 스타트 신호(start 입력)가 입력되면 제2레지스터(131b)에 저장된 count, rate1, rate2, xp_value를 초기화한다(201).
이와 함께 제어연산부(120)는 XP_VALUE, PG_CMT1, PG_CMT2, RATE 1, RATE 2, PG_DIR, PG_DLY 등의 제어 변수를 설정하고, 설정한 변수를 로직 회로부(130)에 제공한다(202).
여기서 제어연산부(120)가 제어 변수를 설정하는 동작에 관하여 도 8의 제어 흐름도에 따라 설명한다.
도 8을 참고하면, 제어주기의 시작을 알리는 스타트 신호(start)가 입력되면 제어변수 iPG_VALUE, iPG_CMT1, iPG_CMT2, iRATE1, iRATE2, iPG_DLY를 초기화시킨다(301). 제어주기 안에서 출력할 펄스의 개수 IPC가 0인지 판단하여(302), IPC가 0이면 종료한다.
IPC가 0이 아니면 5(한 제어주기 안에서 출력하는 1개 펄스의 반에 해당하며 1개 펄스를 10으로 하였을 때 그 절반인 값)보다 큰지 판단하고(303), 그 판단에 따라 5보다 크면 토글할 제1펄스의 폭에 대응하는 기준클럭의 개수(PG_CMT1)를 연산한다(304). 여기서 PG_CMT1는 CN*5/IPC에 따라 구한다.
그 다음, 이전 제어주기까지 출력한 펄스의 개수(TIPC)를 5로 나누고 그 나머지(TIPC%5)가 0인지 즉, 펄스의 토글을 지연하기 위한 지연(Delay)가 필요 없는지 판단하고(305), 그 판단 결과 그 나머지(TIPC%5)가 0이면 펄스의 토글을 지연하는 시간에 대응하는 기준 클럭의 개수(PG_DLY)를 0으로 설정하고, 이번 제어주기에서 출력하는 펄스의 개수(EIPC)를 IPC로 설정한다(306).
그 다음, 이전 TIPC에 IPC를 더하여 갱신한다(TIPC+). 그 다음, 이번 제어주기에서 출력하는 소수점 이하의 펄스에 대응하는 기준클럭의 개수(DFTP)를 연산한다. 여기서 DFTP는 (PG_CMT1*(TIPC%5))/5에 따라 구한다. 그 다음, 이전 EIPC에 나머지(TIPC%5)를 빼서 갱신한다(EIPC-)(307).
그 다음, CN에서 PG_DLY과 DFTP를 빼서 소정 제어주기 동안 카운트한 총 기준클럭의 개수(EN)을 구한다. 그 다음 나머지(EIPC%5)에 1을 더하여 제어주기에서 토글하여 출력할 펄스의 개수(XP_VALUE)를 설정하고, 그 다음 정해진 연산식에 따라 PG_CMT2, RATE 1, RATE 2를 각각 구하여 설정한다(308). 이후 종료하고 다음 제어주기의 스타트 신호가 입력되면 301부터 반복한다.
위와 같은 단계를 수행하는 도중 상기 305의 판단 결과 그 나머지(TIPC%5)가 0이 아니거나 펄스의 토글을 지연하는 동작이 필요한 경우 PG_DLY 및 EIPC를 각각 연산한다. 여기서 PG_DLY는 PG_CMT1*(5-(TIPC%5))/5에 따라 구하고, EIPC는 IPC-(5-(TIPC%5))에 따라 구한다(309). 이후 307과 308를 수행하고 나서 종료한다. 그 다음 제어주기의 스타트 신호가 입력되면 301부터 반복한다.
위와 같은 단계를 수행하는 도중 상기 303의 판단 결과 IPC가 5보다 크지 않으면 PG_CMT1를 연산한다. 여기서 PG_CMT1는 CN*5/IPC 에 따라 구한다(310).
그 다음, 이전 제어주기까지 출력한 펄스의 개수(TIPC)를 5로 나누고 그 나머지(TIPC%5)가 0인지 즉, 펄스의 토글을 지연하기 위한 지연(Delay)가 필요 없는지 판단하고(311), 그 판단 결과 그 나머지(TIPC%5)가 0이면 PG_DLY를 0으로 설정한다(312).
그 다음, XP_VALUE 및 RATE 1을 각각 1로 설정하고, PG_CMT2 및 RATE 2를 각각 0으로 설정하고, 아울러 이전 TIPC에 IPC를 더하여 갱신한다(TIPC+)(313). 이후 종료하고 다음 제어주기의 스타트 신호가 입력되면 301부터 반복한다.
위와 같은 단계를 수행하는 도중 상기 311의 판단 결과
그 나머지(TIPC%5)가 0이 아니거나 펄스의 토글을 지연하는 동작이 필요한 경우 PG_DLY를 연산한다. 여기서 PG_DLY는 PG_CMT1*(5-(TIPC%5))/5에 따라 구하여 설정한다(314). 이후 313단계를 수행하고 나서 종료한다. 그 다음 제어주기의 스타트 신호가 입력되면 301부터 반복한다.
상술한 바와 같이 제어변수의 설정을 통하여 도 7의 202단계에 대한 과정이 완료한 다음, 로직회로부(130)는 XP_VALUE이 0이거나 RATE1이 0인지 각각 판단하고(203)(204), XP_VALUE과 RATE1 중 어느 하나가 0이면 종료한다. 그 판단결과 XP_VALUE가 0이 아니고 RATE1이 0이 아니면 클럭 카운터(135)에 기준클럭 펄스가 제공되어 클럭카운터에 입력되는 지를 판단하고(205), 기준클럭 펄스가 입력되는 경우 클럭 카운터(135)에 의해 카운트하는 값 즉, 펄스의 토글을 지연하기 위한 지연 시간에 대응하여 설정하는 지연카운트 값(DLY_CNT)이 0인지 판단하고(206), 그 판단 결과 0이 아니면 1씩 감산하여 지연카운트 값(DLY_CNT)을 디스카운트한다(207).
그 판단 결과 지연카운트 값(DLY_CNT)이 0이면 비교부(132)는 일치신호를 펄스발생부(133)로 출력하고 그에 따라 펄스발생부(133)은 펄스를 토글하여 출력한다. 그런 다음 비교부(132)는 클럭카운터(135)에 리셋 신호를 출력한다.
그 다음 XP_VALUE의 부호에 따라 모터의 회전 방향을 판단한다(208). 그 판단 결과 XP_VALUE가 0보다 크면 모터의 회전방향이 반시계방향(CCW)에 대응하게 PG_DIR를 출력하고(209), 그 판단 결과 XP_VALUE가 0보다 크지 않으면 모터의 회전방향이 시계방향(CW)에 대응하게 PG_DIR를 출력한다(210).
동작 209, 210을 수행한 다음, 클럭 카운터(135)에 기준클럭 펄스가 제공되어 클럭카운터에 입력되는 지를 판단하고(211), 그 판단 결과 펄스 입력이 있는 경 우 클럭카운터(135)의 카운터에 1씩 더하여 갱신하고(212), 그 갱신한 카운트 값(count)이 설정한 PG_GMT1인지 판단하고(213), 그 판단 결과 갱신한 카운트 값(count)이 설정한 PG_GMT1에 도달하지 않은 경우 동작 211로 진행한다. 그 판단 결과 갱신한 카운트 값(count)이 설정한 PG_GMT1에 도달한 경우 비교부(132)는 일치신호를 펄스발생부(133)로 출력하고 그에 따라 펄스발생부(133)은 펄스를 토글하여 출력한다(214).
그 다음 비교부(132)는 제1레지스터(131b)에 저장된 변수 rate 1, xp_value에 1씩 더하여 갱신하고 count를 초기화하고 클럭 카운터(135)에 리셋신호를 출력한다(215).
그 다음 제1레지스터(131a)에 저장되는 RATE 1와 갱신한 rate 1가 같은지 판단하고(216), RATE 1와 갱신한 rate 1이 같지 않으면 동작 211로 진행하며, RATE 1와 갱신한 rate 1이 같으면 rate 1을 초기화하고(217).
한편 상술한 동작 211 내지 동작 217에 대응하는 동작 218 내지 224는 그 대상이 펄스 폭이 다른 제2펄스를 그 대상으로 사용하는 것을 가정한 것으로 도 5 및 도 6에서 도시한 펄스의 출력과는 실질적으로 관련이 없으며, 이에 대한 구체적인 설명은 중복되므로 생략한다.
동작 224에 이어 제1레지스터에 설정되는 XP_VALUE의 절대값이 제2레지스터에 저장되어 갱신되는 xp_value와 일치하는지 판단하고(225), 그 판단 결과 일치하지 않으면 제어주기 안에서 토글할 펄스가 있는 경우에 해당하므로 동작 211로 진행하여 상기 동작을 반복한다.
동작 225의 판단 결과 일치하면 종료한다. 이후 다음 제어주기의 시작을 알리는 스타트 신호가 입력되면 상술한 도 7의 제어 흐름도에 따라 펄스 폭이 일정한 단일 종류의 펄스(PG_XP)를 출력하는 동작을 수행한다.
앞서 설명한 도 5와 도 6에 도시한 각 제어주기에서의 제어변수의 수치는 제어주기 T를 1200으로 하여 도 8에 따라 연산하여 설정한 경우의 예이다.
전술한 실시 예들에 따른 로직 회로부(130)는 프로그래머블 롬(Programmable ROM)의 일종인 FPGA(Field Programmable Gate Array) 등을 이용하여 구현할 수 있다.
이상과 같이 본 발명은 제어주기 안에서 실수개의 펄스를 출력할 수 있어서 펄스의 급격한 변화가 줄어 모터의 가감속 구간 및 정속 구간에서 속도 성분의 변화가 감소하게 됨에 따라 모터 제어의 정밀도를 높이고 모터의 속도 제어를 부드럽게 수행할 수 있다.
본 발명은 모터의 위치명령에 따라 펄스 폭이 일정한 단일 종류의 펄스를 모터구동부로 출력할 수 있어서 모터 속도 제어 시 진동 및 소음을 줄일 수 있다.
본 발명은 펄스의 토글하기 위해 카운트하는 동작과 펄스의 토글을 지연하기 위해서 카운트하는 동작을 하나의 클럭 카운터를 이용하여 선택적으로 수행할 수 있어서 제조비용을 줄일 수 있다.

Claims (8)

  1. 모터와 상기 모터를 구동하는 모터구동부 및 상기 모터구동부에 펄스를 출력하는 펄스발생장치를 구비하는 모터제어시스템의 펄스발생방법에 있어서,
    기준 클럭의 주파수에 기초하여 제어 주기를 설정하는 단계;
    설정한 제어주기 동안 출력하는 펄스의 개수를 설정하는 단계;
    상기 기준 클럭을 카운트하는 단계;
    상기 기준클럭을 카운트한 값이 상기 펄스를 토글하기 위해 설정한 값 또는 상기 펄스의 토글을 지연하기 위해 설정한 값 중 적어도 어느 하나와 일치하면 일치신호를 출력하는 단계; 및
    상기 일치신호에 기초하여 상기 모터구동부에 출력하는 펄스를 토글하는 단계를 포함하는 특징으로 하는 모터제어시스템의 펄스 발생방법.
  2. 제1항에 있어서,
    상기 모터구동부에 출력하는 펄스 열은 펄스 폭이 일정한 단일 종류의 펄스로 이루어지는 모터제어시스템의 펄스 발생방법.
  3. 제2항에 있어서,
    상기 모터구동부에 출력하는 펄스의 개수는 제어주기 안에서 실수개로 출력하는 모터제어시스템의 펄스 발생방법.
  4. 제1항에 있어서,
    상기 펄스의 토글을 지연하기 위해 설정한 값은 이전 제어주기에서 설정한 제어변수를 기초로 하여 설정하는 모터제어시스템의 펄스 발생방법.
  5. 제3항에 있어서,
    상기 제어주기 안에서 상기 펄스를 토글하고 남은 소수점 이하의 펄스는 제어주기가 종료 시 까지 토글시키지 않는 모터제어시스템의 펄스 발생방법.
  6. 모터와 상기 모터를 구동하는 모터구동부와 상기 모터의 속도를 제어하기 위한 펄스를 상기 모터구동부로 출력하는 펄스발생장치를 포함하되,
    상기 펄스 발생장치는
    상위 제어기의 제어명령에 따라 소정 주기마다 상기 모터를 제어하기 위한 제어변수를 출력하는 제어연산부와, 상기 제어연산부로부터 제공받은 제어변수에 기초하여 소정 제어주기 안에서 실수개의 펄스를 출력하는 로직회로부를 포함하는 모터제어시스템의 펄스발생장치.
  7. 제6항에 있어서,
    상기 로직회로부는,
    제어변수를 저장하는 레지스터부;
    기준클럭을 출력하는 기준클럭 출력부;
    상기 기준클럭 출력부로부터 출력되는 상기 기준 클럭을 카운트하는 클럭카운트;
    상기 클럭카운트에서 카운트하는 카운트 값과 레지스터의 제1제어변수와 제2제어변수 중 어느 하나를 선택적으로 비교하여 일치하면 일치신호를 출력하는 비교부; 및
    상기 비교부의 일치신호에 따라 펄스를 토글하여 출력하는 펄스발생부를 포함하는 모터제어시스템의 펄스발생장치.
  8. 제7항에 있어서,
    상기 제1제어변수는 상기 펄스를 토글하기 위해 설정하는 펄스의 폭에 대응하는 기준클럭의 개수를 설정한 값이고,
    상기 제2제어변수는 상기 펄스의 토글을 지연하기 위해 지연 시간에 대응하는 기준클럭의 개수를 설정한 값인 모터제어시스템의 펄스발생장치.
KR1020060070007A 2006-07-25 2006-07-25 모터 제어시스템의 펄스 발생방법 및 그 장치 KR100760204B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060070007A KR100760204B1 (ko) 2006-07-25 2006-07-25 모터 제어시스템의 펄스 발생방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060070007A KR100760204B1 (ko) 2006-07-25 2006-07-25 모터 제어시스템의 펄스 발생방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR100760204B1 true KR100760204B1 (ko) 2007-09-20

Family

ID=38738310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060070007A KR100760204B1 (ko) 2006-07-25 2006-07-25 모터 제어시스템의 펄스 발생방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100760204B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101028212B1 (ko) * 2009-03-16 2011-04-11 엘에스산전 주식회사 위치결정 모듈의 펄스 발생기

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020014533A (ko) * 2000-08-18 2002-02-25 최영휴 모터의 가감속 구동제어장치
KR20040031851A (ko) * 2002-10-04 2004-04-14 주식회사 만도 스텝모터 제어장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020014533A (ko) * 2000-08-18 2002-02-25 최영휴 모터의 가감속 구동제어장치
KR20040031851A (ko) * 2002-10-04 2004-04-14 주식회사 만도 스텝모터 제어장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101028212B1 (ko) * 2009-03-16 2011-04-11 엘에스산전 주식회사 위치결정 모듈의 펄스 발생기

Similar Documents

Publication Publication Date Title
US11323052B2 (en) Automated speed ramp control of stepper motors
US5583410A (en) Method and apparatus for multiplex control of a plurality of stepper motors
US20170038755A1 (en) Method of controlling encoder principle axis speed synchronization
EP0116677B1 (en) Stepping motor drive circuit
KR100760204B1 (ko) 모터 제어시스템의 펄스 발생방법 및 그 장치
JP5345248B2 (ja) モータドライバ制御装置
JP4071776B2 (ja) パルス発生方法及びパルス発生装置、並びにこれを利用するモータ制御システム
US5040234A (en) Apparatus for and method of generating a timing signal
US4661754A (en) Control circuit for a stepping motor
US5086280A (en) Continuously variable pulsewidth waveform formation device employing two memories
JP3555726B2 (ja) パルス発生装置
KR20060025128A (ko) 스테핑 모터의 제어회로, 전자 카메라 및 스테핑 모터의제어방법
KR0170332B1 (ko) 프로그래머블 로직 컨트롤러의 출력 주파수 설정방법
KR100300131B1 (ko) 모터의 속도제어시스템 및 속도지령생성방법
JPH04250502A (ja) プログラマブルコントローラ
JP2548162B2 (ja) Xyプロツタの直線制御装置
JP2004227303A (ja) モータ制御用パルス発生ic
KR0122322Y1 (ko) 펄스폭 변조 발생장치
JP3829701B2 (ja) パルス信号の周波数制御方法及び周波数制御回路
SU1718221A1 (ru) Генератор тестов
JPS6237100A (ja) ステツピングモ−タ制御装置
SU924672A1 (ru) Имитатор технологического объекта
SU694832A2 (ru) Устройство дл программного управлени
SU1374182A1 (ru) Устройство дл разгона и торможени электропривода
SU1517130A1 (ru) Делитель частоты следовани импульсов с регулируемым коэффициентом делени

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120831

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150831

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 12