KR101752564B1 - 스텝모터 제어장치 및 제어방법 - Google Patents
스텝모터 제어장치 및 제어방법 Download PDFInfo
- Publication number
- KR101752564B1 KR101752564B1 KR1020150132394A KR20150132394A KR101752564B1 KR 101752564 B1 KR101752564 B1 KR 101752564B1 KR 1020150132394 A KR1020150132394 A KR 1020150132394A KR 20150132394 A KR20150132394 A KR 20150132394A KR 101752564 B1 KR101752564 B1 KR 101752564B1
- Authority
- KR
- South Korea
- Prior art keywords
- pulse
- profile
- value
- section
- acceleration
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000001133 acceleration Effects 0.000 claims description 66
- 230000014509 gene expression Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/14—Arrangements for controlling speed or speed and torque
- H02P8/18—Shaping of pulses, e.g. to reduce torque ripple
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/12—Control or stabilisation of current
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Control Of Stepping Motors (AREA)
Abstract
본 발명에 따르면, 사용자조작에 따라 입력된 목적위치(Target Position) 명령에 기초하여 스텝모터(10)의 현재위치로부터 목적위치까지 도달하기 위한 사다리꼴 형상의 속도프로파일을 생성하며, 생성된 속도프로파일로부터 시간의 증가에 따른 속도값(Velocity) 및 위치값(Position)을 산출하는 프로파일 생성부(110); 상기 프로파일 생성부(110)로부터 산출된 속도값을 입력받아 해당 속도값에 해당하는 폭을 가진 펄스를 생성하는 펄스생성부(120); 상기 펄스생성부(120)로부터 출력되는 펄스를 측정하는 펄스카운터부(130); 및 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 측정된 카운트를 비교하여 산출된 오차를 보상하는 PI컨트롤러부(140);를 포함하는 스텝모터 제어장치를 개시한다.
Description
본 발명은 스텝모터 제어장치 및 제어방법에 관한 것으로, 보다 상세하게는 가속구간, 정속구간 및 감속구간으로 구분되는 사다리꼴 형상의 속도프로파일을 이용하여 스텝모터를 구동제어하는 스텝모터 제어장치 및 제어방법에 관한 것이다.
스텝모터를 제어할 때 속도프로파일을 사용한다는 것은 모터의 가감속 제어에 일정한 형상의 가속도 그래프를 사용하는 것과 같다고 볼 수 있다. 가속도는 모터의 출력토크와 비례하기 때문에 모터의 부하를 통제할 수 있으며, 이에 따라 기계시스템을 일정한 힘으로 제어할 수 있고 수명을 연장시키는 효과를 얻을 수 있다.
일반적으로 스텝모터의 구동제어시 사다리꼴 형상의 속도프로파일을 사용하게 되는데, 속도의 가감속 구간에서 가속도 그래프는 구형파(Squre Wave) 형상을 갖는다. 그러나, 구형파에는 기본 주파수의 정수 배(예를 들어, 1, 3, 5, 7...)에 해당하는 고조파(Harmonic)가 존재하며, 만일 이러한 고조파 중 한 성분이 기계시스템의 고유진동수와 일치하게 되면 공진을 발생시켜 시스템의 안정성을 저해하는 요인으로 작용하는 문제점이 있었다.
본 발명은 상술한 문제점을 해결하기 위하여 창출된 것으로, 본 발명의 목적은 가속구간, 정속구간 및 감속구간으로 구분되는 사다리꼴 형상의 속도프로파일을 이용하여 스텝모터를 구동제어하되, 정확하게 측정된 각 구간의 펄스폭을 이용하여 구동제어함으로써 구동상의 안정성을 극대화한 스텝모터 제어장치 및 제어방법을 제공하는 것에 있다.
상기의 목적을 달성하기 위한 스텝모터 제어장치는, 사용자조작에 따라 입력된 목적위치(Target Position) 명령에 기초하여 스텝모터(10)의 현재위치로부터 목적위치까지 도달하기 위한 사다리꼴 형상의 속도프로파일을 생성하며, 생성된 속도프로파일로부터 시간의 증가에 따른 속도값(Velocity) 및 위치값(Position)을 산출하는 프로파일 생성부(110); 상기 프로파일 생성부(110)로부터 산출된 속도값을 입력받아 해당 속도값에 해당하는 폭을 가진 펄스를 생성하는 펄스생성부(120); 상기 펄스생성부(120)로부터 출력되는 펄스를 측정하는 펄스카운터부(130); 및 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 측정된 카운트를 비교하여 산출된 오차를 보상하는 PI컨트롤러부(140);를 포함한다.
여기서, 상기 프로파일 생성부(110)와 PI컨트롤러부(140) 사이의 신호라인 상에 배치되어 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 입력된 카운트를 비교하여 오차값을 산출하여 상기 PI컨트롤러부(140)에 입력하는 제1비교기(150); 및 상기 PI컨트롤러부(140)와 펄스생성부(120) 사이의 신호라인 상에 배치되어 상기 프로파일 생성부(110)로부터 입력된 속도값과 상기 PI컨트롤러부(140)로부터 입력된 오차보상값을 합산하여 상기 펄스생성부(120)에 입력하는 제2비교기(160);를 더 포함할 수 있다.
또한, 상기 프로파일 생성부(110)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되되, 상기 프로파일 생성부(110)는, 하기의 [수학식 1] 및 상기 목적위치 명령에 기초하여 산출된 가속도값(Acceleration, α)을 이용하여 상기 가속구간(①)의 펄스폭을 산출할 수 있다.
[수학식 1]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
또한, 상기 프로파일 생성부(110)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되되, 상기 프로파일 생성부(110)는, 하기의 [수학식 2]에 의해 상기 정속구간(②)의 펄스폭을 산출할 수 있다.
[수학식 2]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
또한, 상기 프로파일 생성부(110)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되되, 상기 프로파일 생성부(110)는, 하기의 [수학식 3]에 의해 상기 감속구간(③)의 펄스폭을 산출할 수 있다.
[수학식 3]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
한편, 상기의 목적을 달성하기 위한 스텝모터 제어방법은, 프로파일 생성부(110)를 통해 사용자조작에 따라 입력된 목적위치(Target Position) 명령에 기초하여 스텝모터(10)의 현재위치로부터 목적위치까지 도달하기 위한 사다리꼴 형상의 속도프로파일을 생성하며, 생성된 속도프로파일로부터 시간의 증가에 따른 속도값 및 위치값(Position)을 산출하는 프로파일 생성 단계(S210); 펄스생성부(120)를 이용하여 상기 프로파일 생성부(110)로부터 산출된 속도값을 입력받아 해당 속도값에 해당하는 폭을 가진 펄스를 생성하는 펄스 생성 단계(S220); 펄스카운터부(130)를 이용하여 상기 펄스생성부(120)로부터 출력되는 펄스를 측정하는 펄스 카운터 단계(S230); 및 PI컨트롤러부(140)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 측정된 카운트를 비교하여 산출된 오차를 보상하는 오차 보상 단계(S250);를 포함한다.
여기서, 상기 프로파일 생성부(110)와 PI컨트롤러부(140) 사이의 신호라인 상에 배치된 제1비교기(150)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 입력된 카운트를 비교하여 오차값을 산출하는 오차값 산출 단계(S240); 및 상기 PI컨트롤러부(140)와 펄스생성부(120) 사이의 신호라인 상에 배치된 제2비교기(160)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 속도값과 상기 PI컨트롤러부(140)로부터 입력된 오차보상값을 합산하여 상기 펄스생성부(120)에 입력하는 펄스데이터 입력 단계(S260);를 포함할 수 있다.
또한, 상기 프로파일 생성 단계(S210)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되되, 상기 프로파일 생성 단계(S210)는, 하기의 [수학식 1] 및 상기 목적위치 명령에 기초하여 산출된 가속도값(Acceleration, α)을 이용하여 상기 가속구간(①)의 펄스폭을 산출할 수 있다.
[수학식 1]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
또한, 상기 프로파일 생성 단계(S210)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되되, 상기 프로파일 생성 단계(S210)는, 하기의 [수학식 2]에 의해 상기 정속구간(②)의 펄스폭을 산출할 수 있다.
[수학식 2]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
또한, 상기 프로파일 생성 단계(S210)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되되, 상기 프로파일 생성 단계(S210)는, 하기의 [수학식 3]에 의해 상기 감속구간(③)의 펄스폭을 산출할 수 있다.
[수학식 3]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
본 발명에 따른 스텝모터 제어방법에 의하면, 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되는 사다리꼴 형상의 속도프로파일을 이용하여 스텝모터(10)를 구동제어하되, 정확하게 측정된 각 구간의 펄스폭을 이용하여 구동제어함으로써 구동상의 안정성을 극대화할 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 스텝모터 제어장치의 기능적 구성을 나타낸 블럭도,
도 2는 본 발명의 바람직한 실시예에 따른 속도프로파일의 각 구간을 나타낸 그래프,
도 3은 본 발명의 바람직한 실시예에 따른 속도프로파일의 가속구간을 나타낸 그래프,
도 4는 본 발명의 바람직한 실시예에 따른 속도프로파일의 감속구간을 나타낸 그래프,
도 5는 본 발명의 바람직한 실시예에 따른 스텝모터 제어방법의 각 단계를 나타낸 순서도이다.
도 2는 본 발명의 바람직한 실시예에 따른 속도프로파일의 각 구간을 나타낸 그래프,
도 3은 본 발명의 바람직한 실시예에 따른 속도프로파일의 가속구간을 나타낸 그래프,
도 4는 본 발명의 바람직한 실시예에 따른 속도프로파일의 감속구간을 나타낸 그래프,
도 5는 본 발명의 바람직한 실시예에 따른 스텝모터 제어방법의 각 단계를 나타낸 순서도이다.
이하 첨부된 도면을 참조하면서 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
먼저, 본 발명의 바람직한 실시예에 따른 스텝모터 제어장치(100)의 구성 및 기능을 설명하기로 한다.
도 1에 도시된 바와 같이, 본 발명의 바람직한 실시예에 따른 스텝모터 제어장치(100)는 프로파일 생성부(110), 펄스생성부(120), 펄스카운터부(130) 및 PI컨트롤러부(140)를 포함하여 구비된다.
상기 프로파일 생성부(110)는 사용자조작에 따라 입력된 목적위치(Target Position) 명령에 기초하여 스텝모터(10)의 현재위치로부터 목적위치까지 도달하기 위한 사다리꼴 형상의 속도프로파일을 생성하며, 생성된 속도프로파일로부터 시간의 증가에 따른 속도값(Velocity) 및 위치값(Position)을 계산하여 생성하고 이를 후단의 PI컨트롤러부(140)로 출력한다.
여기서, 상기 목적위치 명령은 스텝모터(10)의 이동량, 속도, 가속시간 및 감속시간을 포함하며, 상기 가속시간 및 감속시간을 대신하여 가속도와 감속도를 포함할 수도 있다.
따라서, 상기 프로파일 생성부(110)는 입력된 이동량, 속도, 가속시간 및 감속시간 등으로부터 속도프로파일을 생성하며, 속도프로파일은 스텝모터(10)를 구동하기 위하여 매 제어주기마다 이동해야 하는 스텝모터(10)의 이동량을 나타내는 것이므로 스텝모터(10)는 이 값을 적분하여 매 제어주기마다 자신의 이동 위치를 지령받아 구동된다. 즉, 상기 속도프로파일은 스텝모터(10)의 회전자가 일위치(시작위치)에서 목표위치까지 이동하기 위한 스텝모터(10)의 일련 시간별 속도값을 나타낸다.
상기 펄스생성부(120)는 프로파일 생성부(110)의 후단에 배치되어 계산된 속도값을 입력받으며 이를 이용하여 해당 속도값에 해당하는 폭을 가진 펄스를 생성하며 바람직하게는 타이머를 이용할 수 있다.
보다 구체적으로 설명하면, 상기 펄스생성부(120)의 타이머에서는 PWM(Pulse Width Modulation) 방법으로 펄스를 생성하게 되는데, 이러한 방식은 모터의 제어나 전압의 제어에 주로 사용된다.
또한, 펄스는 해당 속도에 대한 듀티 비(Duty Ratio)가 50%인 펄스가 만들어지며, 펄스 폭의 정밀도를 높이기 위하여 타이머의 프리스케일러 값을 조절하게 되는데 다음의 규칙(Sudo code)을 따르게 된다. 이렇게 구성하는 이유는 16bit 타이머를 사용하여 좀 더 정밀한 폭의 펄스를 생성하기 위함이다.
[Sudo code]
if (pulse_width < 60000) {
Set_prescaler(1);
Set_pulsewidth (pulse_width);
else if (width < 600000) {
Set_prescaler(16);
Set_pulsewidth (pulse_width/16);
}
else if (width < 6000000) {
Set_prescaler(128);
Set_pulsewidth (pulse_width/128);
}
else if (width < 60000000) {
Set_prescaler(1024);
Set_pulsewidth (pulse_width/1024);
}
else {
Set_prescaler(16384);
Set_pulsewidth (pulse_width/16384);
}
상기 펄스카운터부(130)는 펄스생성부(120)로부터 출력되는 펄스를 측정하며 바람직하게는 타이머를 이용할 수 있다. 여기서, 도 2에 도시된 바와 같이 측정된 펄스값은 위치 피드백(Position Feedback)으로 회귀시켜 PI컨트롤러부(140)의 입력단 즉, 후술되는 제1비교기(150)에 입력된다.
상기 PI컨트롤러부(140)는 펄스생성부(120)로부터 출력되는 펄스값이 목표값과 일치할 때까지 오차보상하는 조작수단으로서, 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 측정된 카운트를 비교하여 산출된 오차를 보상한다.
여기서, 상기 PI(비례 적분)컨트롤러부(140)는 지령 값과 실제 값과의 오차에 비례하여 출력을 생성하는 항과 오차의 적분으로부터 출력을 생성하는 항으로 다음 식과 같이 구성된다.
(여기서, Kp는 비례이득, Ki는 적분이득, s는 이동한 거리를 각각 의미함)
또한, 본 발명의 바람직한 실시예에 따른 스텝모터 제어장치(100)는, 펄스 카운트의 오차를 방지할 수 있도록 제1비교기(150) 및 제2비교기(160)를 더 포함하여 구비될 수 있다.
여기서, 상기 제1비교기(150)는 프로파일 생성부(110)와 PI컨트롤러부(140) 사이의 신호라인 상에 배치되어 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 입력된 카운트값을 비교하여 오차값을 산출하여 상기 PI컨트롤러부(140)에 입력한다.
더불어, 상기 제2비교기(160)는 PI컨트롤러부(140)와 펄스생성부(120) 사이의 신호라인 상에 배치되어 상기 프로파일 생성부(110)로부터 입력된 속도값과 상기 PI컨트롤러부(140)로부터 입력된 오차보상값을 합산하여 상기 펄스생성부(120)에 입력한다.
한편, 본 발명의 바람직한 실시예에 따른 스텝모터 제어장치(100)는 사다리꼴 형상의 속도프로파일의 각 구간이 갖는 펄스폭을 정교하게 계산하고 이를 이용함으로써 모터구동의 안정성을 도모할 수 있다.
이를 위해, 도 2에 도시된 바와 같이, 상기 프로파일 생성부(110)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분된다.
또한, 상기 프로파일 생성부(110)는 하기의 [수학식 1]에 의해 상기 가속구간(①)의 펄스폭을 산출한다.
보다 구체적으로 설명하면, 속도 υ2는 속도 υ1으로부터 T시간 동안 α의 가속도로 가속하였을 때 도달하는 속도가 된다. 속도가 υ2가 되었을 때까지 이동거리를 s라 하면 [수학식 1]의 상부 두 개의 수학식과 같으며, 이 수학식을 T에 대해 적분하면 [수학식 1]의 하부 두 개의 수학식과 같이 계산할 수 있다.
[수학식 1]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
상기 [수학식 1] 및 도 3을 참고하면, 한 펄스만큼 이동하려면 s = 1이 되어야 하며, 이 때의 시간간격 T를 계산하여 가속구간(①)의 펄스폭을 계산할 수 있다.(2차 방정식의 근의 공식 이용)
여기서, 정확한 펄스폭을 계산하려면 상기 [수학식1]에 포함된 가속도값(a)을 알아야 하는데, 이를 위해 상기 프로파일 생성부(110)는 입력된 목적위치 명령에 기초하여 가속도값(Acceleration, α)을 생성하여 펄스생성부(120)에 입력한다.
다음으로, 상기 프로파일 생성부(110)는, 하기의 [수학식 2]에 의해 상기 정속구간(②)의 펄스폭을 산출할 수 있다. 여기서, 정속구간에서는 속도가 동일하기 때문에, υ1은 υ2가 되어야 하며, 속도가 변하지 않기 때문에 이동거리 s는 간단하게 시간간격 T에 비례하게 된다.
[수학식 2]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
상기 [수학식 2]를 참고하면 한 펄스만큼 이동하려면 s = 1이 되어야 하며, 이때의 시간간격 T를 계산하여 정속구간(②)의 펄스폭을 계산할 수 있다.
다음으로, 상기 프로파일 생성부(110)는, 하기의 [수학식 3]에 의해 상기 감속구간(③)의 펄스폭을 산출할 수 있다.
[수학식 3]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
보다 구체적으로 설명하면, 속도 υ2는 속도 υ1으로부터 T시간 동안 α의 가속도로 감속하였을 때 도달하는 속도가 된다. 속도가 υ2가 되었을 때까지 이동거리를 s라 하면 하기 식과 같다 (처음 식을 T에 대해 적분하면 두 번째 식이 된다)
또한, 상기 식의 제곱근 안의 수식이 음수가 될 때 T를 계산하는 방법이다. 제곱근 안의 수식이 음수가 된다는 것은, 시간간격 T 이후의 속도가 0보다 작은 음수가 되는 것이기 때문에 생성된 프로파일이 목표점을 지나게 되며, 계속해서 0으로 수렴하기 위해 진동함을 의미한다.
이 때는 가속도 α로 감속하여 정지하는 최저 속도를 가지고 T를 계산한다. 그러기 위해 하기의 두 수식으로부터 υ1을 소거하는 절차를 거친다. (두 수식이 유도된 관계는 도4 참조) 결국 s에 대한 수식으로 정리한 후 s=1로 두면 T에 대한 수식을 얻을 수 있다.
상기 [수학식 3] 및 도 4를 참고하면, 감속구간(③)에서 펄스 폭을 계산하는 경우, 상기 [수학식 1]의 일부 항목을 한 번 더 이용한다. 또한, 한 펄스 이동하려면 s = 1이 되어야 하고 이때 T를 계산하면 하기의 수학식과 같다.
여기서, 일반적인 경우 위 수학식에 표시된 Squar Root 안의 숫자는 음수가 될 수 없는데, 만일 음수가 될 때에는 다른 방법의 계산이 필요하다.
다음으로는, 도 5를 참고하여 본 발명의 바람직한 실시예에 따른 스텝모터 제어방법을 설명하기로 한다.
도 5를 참고하면, 본 발명의 바람직한 실시예에 따른 스텝모터 제어방법은 프로파일 생성 단계(S210), 펄스 생성 단계(S220), 펄스 카운터 단계(S230) 및 오차 보상 단계(S250)를 포함하여 이루어진다.
먼저, 상기 프로파일 생성 단계(S210)는, 스텝모터 제어장치(100)의 프로파일 생성부(110)를 통해 사용자조작에 따라 입력된 목적위치 명령에 기초하여 스텝모터(10)의 현재위치로부터 목적위치까지 도달하기 위한 사다리꼴 형상의 속도프로파일을 생성하며, 생성된 속도프로파일로부터 시간의 증가에 따른 속도값 및 위치값을 계산하는 단계이다.
여기서, 계산되어 생성된 속도값은 상기 제2비교기(160)로 입력되며 생성된 위치값은 제1비교기(150)로 입력되어 스텝모터(10)의 구동제어를 위한 기초데이터로 이용된다.
상기 펄스 생성 단계(S220)는, 펄스생성부(120)를 이용하여 상기 프로파일 생성부(110)로부터 산출된 속도값을 입력받아 해당 속도값에 해당하는 폭을 가진 펄스를 생성하는 단계이다.
상기 펄스 카운터 단계(S230)는, 펄스카운터부(130)를 이용하여 상기 펄스생성부(120)로부터 출력되는 펄스를 측정하는 단계이다. 여기서, 측정된 펄스값은 위치피드백으로 회귀되어 제1비교기(150)에 입력된다.
상기 오차 보상 단계(S250)는, PI컨트롤러부(140)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 측정된 카운트를 비교하여 산출된 오차를 보상하는 단계이다.
또한, 본 발명의 바람직한 실시예에 따른 스텝모터 제어방법은 펄스 카운트의 오차를 방지할 수 있도록 오차값 산출 단계(S240) 및 펄스데이터 입력 단계(S260)를 더 포함하여 이루어질 수 있다.
여기서, 상기 오차값 산출 단계(S240)는, 상기 프로파일 생성부(110)와 PI컨트롤러부(140) 사이의 신호라인 상에 배치된 제1비교기(150)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 입력된 카운트를 비교하여 오차값을 산출하는 단계이다.
또한, 상기 펄스데이터 입력 단계(S260)는, 상기 PI컨트롤러부(140)와 펄스생성부(120) 사이의 신호라인 상에 배치된 제2비교기(160)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 속도값과 상기 PI컨트롤러부(140)로부터 입력된 오차보상값을 합산하여 상기 펄스생성부(120)에 입력하는 단계이다.
한편, 한편, 본 발명의 바람직한 실시예에 따른 스텝모터 제어방법은 사다리꼴 형상의 속도프로파일의 각 구간이 갖는 펄스폭을 정교하게 계산하고 이를 이용함으로써 모터구동의 안정성을 도모할 수 있다.
이를 위해, 도 2에 도시된 바와 같이 상기 프로파일 생성 단계(S210)에서 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분된다.
또한, 상기 프로파일 생성부(110)는 하기의 [수학식 1] 및 목적위치 명령에 기초하여 산출된 가속도값(α)을 이용하여 상기 가속구간(①)의 펄스폭을 산출한다.
[수학식 1]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
상기 [수학식 1] 및 도 3을 참고하면, 한 펄스만큼 이동하려면 s = 1이 되어야 하며, 이 때의 시간간격 T를 계산하여 가속구간(①)의 펄스폭을 계산할 수 있다.
여기서, 정확한 펄스폭을 계산하려면 상기 [수학식1]에 포함된 가속도값(a)을 알아야 하는데, 이를 위해 상기 프로파일 생성부(110)는 입력된 목적위치 명령에 기초하여 가속도값(Acceleration, α)을 생성하여 펄스생성부(120)에 입력한다.
다음으로, 상기 프로파일 생성 단계(S210)는 하기의 [수학식 2]에 의해 상기 정속구간(②)의 펄스폭을 산출할 수 있다.
[수학식 2]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
상기 [수학식 2]를 참고하면 한 펄스만큼 이동하려면 s = 1이 되어야 하며, 이때의 시간간격 T를 계산하여 정속구간(②)의 펄스폭을 계산할 수 있다.
다음으로, 상기 프로파일 생성 단계(S210)는 하기의 [수학식 3]에 의해 상기 감속구간(③)의 펄스폭을 산출할 수 있다.
[수학식 3]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
상기 [수학식 3] 및 도 4를 참고하면, 감속구간(③)에서 펄스 폭을 계산하는 경우, 상기 [수학식 1]의 일부 항목을 한 번 더 이용하며, 한 펄스 이동하려면 s = 1이 되어야 하며, 이 때 T를 계산하면 하기의 수학식과 같다.
여기서, 일반적인 경우 위 수학식에 표시된 Squar Root 안의 숫자는 음수가 될 수 없는데, 만일 음수가 될 때에는 다른 방법의 계산이 필요하다.
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술 사상과 아래에 기재될 청구범위의 균등 범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
100...스텝모터 제어장치 110...프로파일 생성부
120...펄스생성부 130...펄스카운터부
140...PI컨트롤러부 150...제1비교기
160...제2비교기
S210...프로파일 생성 단계 S220...펄스 생성 단계
S230...펄스 카운터 단계 S240...오차값 산출 단계
S250...오차 보상 단계 S260...펄스데이터 입력 단계
120...펄스생성부 130...펄스카운터부
140...PI컨트롤러부 150...제1비교기
160...제2비교기
S210...프로파일 생성 단계 S220...펄스 생성 단계
S230...펄스 카운터 단계 S240...오차값 산출 단계
S250...오차 보상 단계 S260...펄스데이터 입력 단계
Claims (10)
- 사용자조작에 따라 입력된 목적위치(Target Position) 명령에 기초하여 스텝모터(10)의 현재위치로부터 목적위치까지 도달하기 위한 사다리꼴 형상의 속도프로파일을 생성하며, 생성된 속도프로파일로부터 시간의 증가에 따른 속도값(Velocity) 및 위치값(Position)을 산출하는 프로파일 생성부(110);
상기 프로파일 생성부(110)로부터 산출된 속도값을 입력받아 해당 속도값에 해당하는 폭을 가진 펄스를 생성하는 펄스생성부(120);
상기 펄스생성부(120)로부터 출력되는 펄스를 측정하는 펄스카운터부(130); 및
상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 측정된 카운트를 비교하여 산출된 오차를 보상하는 PI컨트롤러부(140);를 포함하고,
상기 프로파일 생성부(110)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되되,
상기 프로파일 생성부(110)는, 하기의 [수학식 1] 및 상기 목적위치 명령에 기초하여 산출된 가속도값(Acceleration, α)을 이용하여 상기 가속구간(①)의 펄스폭을 산출하는 스텝모터 제어장치.
[수학식 1]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
- 제 1항에 있어서,
상기 프로파일 생성부(110)와 PI컨트롤러부(140) 사이의 신호라인 상에 배치되어 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 입력된 카운트를 비교하여 오차값을 산출하여 상기 PI컨트롤러부(140)에 입력하는 제1비교기(150); 및
상기 PI컨트롤러부(140)와 펄스생성부(120) 사이의 신호라인 상에 배치되어 상기 프로파일 생성부(110)로부터 입력된 속도값과 상기 PI컨트롤러부(140)로부터 입력된 오차보상값을 합산하여 상기 펄스생성부(120)에 입력하는 제2비교기(160);를 더 포함하는 스텝모터 제어장치.
- 삭제
- 프로파일 생성부(110)를 통해 사용자조작에 따라 입력된 목적위치(Target Position) 명령에 기초하여 스텝모터(10)의 현재위치로부터 목적위치까지 도달하기 위한 사다리꼴 형상의 속도프로파일을 생성하며, 생성된 속도프로파일로부터 시간의 증가에 따른 속도값 및 위치값(Position)을 산출하는 프로파일 생성 단계(S210);
펄스생성부(120)를 이용하여 상기 프로파일 생성부(110)로부터 산출된 속도값을 입력받아 해당 속도값에 해당하는 폭을 가진 펄스를 생성하는 펄스 생성 단계(S220);
펄스카운터부(130)를 이용하여 상기 펄스생성부(120)로부터 출력되는 펄스를 측정하는 펄스 카운터 단계(S230); 및
PI컨트롤러부(140)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 측정된 카운트를 비교하여 산출된 오차를 보상하는 오차 보상 단계(S250);를 포함하고,
상기 프로파일 생성 단계(S210)에 의해 생성된 사다리꼴 형상의 속도프로파일은 가속구간(①), 정속구간(②) 및 감속구간(③)으로 구분되되,
상기 프로파일 생성 단계(S210)는, 하기의 [수학식 1] 및 상기 목적위치 명령에 기초하여 산출된 가속도값(Acceleration, α)을 이용하여 상기 가속구간(①)의 펄스폭을 산출하는 스텝모터 제어방법.
[수학식 1]
(여기서, υ1은 한 펄스간격에서 시작속도, υ2는 한 펄스 간격에서 끝속도, α는 가속도값, T는 펄스폭(시간간격), s는 이동거리를 각각 의미함)
- 제 6항에 있어서,
상기 프로파일 생성부(110)와 PI컨트롤러부(140) 사이의 신호라인 상에 배치된 제1비교기(150)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 위치값과 상기 펄스카운터부(130)로부터 입력된 카운트를 비교하여 오차값을 산출하는 오차값 산출 단계(S240); 및
상기 PI컨트롤러부(140)와 펄스생성부(120) 사이의 신호라인 상에 배치된 제2비교기(160)를 이용하여 상기 프로파일 생성부(110)로부터 입력된 속도값과 상기 PI컨트롤러부(140)로부터 입력된 오차보상값을 합산하여 상기 펄스생성부(120)에 입력하는 펄스데이터 입력 단계(S260);를 포함하는 스텝모터 제어방법.
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150132394A KR101752564B1 (ko) | 2015-09-18 | 2015-09-18 | 스텝모터 제어장치 및 제어방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150132394A KR101752564B1 (ko) | 2015-09-18 | 2015-09-18 | 스텝모터 제어장치 및 제어방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170034117A KR20170034117A (ko) | 2017-03-28 |
KR101752564B1 true KR101752564B1 (ko) | 2017-06-29 |
Family
ID=58495800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150132394A KR101752564B1 (ko) | 2015-09-18 | 2015-09-18 | 스텝모터 제어장치 및 제어방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101752564B1 (ko) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104160617B (zh) | 2012-03-01 | 2016-12-14 | 三菱电机株式会社 | 电动机控制装置 |
-
2015
- 2015-09-18 KR KR1020150132394A patent/KR101752564B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20170034117A (ko) | 2017-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9768716B2 (en) | Motor control apparatus provided with magnetic flux control unit, and machine learning apparatus and method thereof | |
CN108249238B (zh) | 一种电梯无称重启动转矩补偿方法、装置及系统 | |
KR20150139519A (ko) | 모터 구동 장치 | |
KR101994382B1 (ko) | 모터 제어 장치, 이를 포함하는 화상형성장치 및 모터 제어 방법 | |
CN106688181B (zh) | 用于产生具有可调节的占空比的信号的设备和方法 | |
CN114884408A (zh) | 步进电机运转的控制方法、装置、设备和介质 | |
EP3086468A1 (en) | Linear motor thrust constant deriving method and movement control method, and linear motor thrust constant deriving device and movement control device | |
KR102615048B1 (ko) | 레이저가공기 및 그 전원장치 | |
KR101752564B1 (ko) | 스텝모터 제어장치 및 제어방법 | |
US20180262153A1 (en) | Motor control system | |
KR101725770B1 (ko) | Bldc모터 제어장치 및 제어방법 | |
TWI586094B (zh) | 運用於伺服馬達系統之控制裝置與相關方法 | |
CN103684194A (zh) | 异步感应直线电机及异步感应直线电机的驱动方法 | |
JP2014135851A (ja) | 共振周波数探索装置、共振周波数探索方法及びプログラム | |
JP6776203B2 (ja) | Dc/dcコンバータの制御装置 | |
EP3136583A1 (en) | Brushless motor drive device | |
JP2018074878A (ja) | 電動機制御装置 | |
KR20190114688A (ko) | 모터 구동 장치 및 방법 | |
CN106301116B (zh) | 脉冲步进电机的控制系统 | |
US10627835B2 (en) | Positioning controller | |
CN106301120B (zh) | 脉冲步进电机的控制方法 | |
JP2020010433A (ja) | モータ制御装置 | |
RU143608U1 (ru) | Стабилизированный электропривод | |
RU132282U1 (ru) | Устройство для управления асинхронным двигателем с фазным ротором | |
JPH02146009A (ja) | 自動焦点調節装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |