Skip to content
Home » 엔코더 모터 속도 제어 | 모터 바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10 20224 명이 이 답변을 좋아했습니다

엔코더 모터 속도 제어 | 모터 바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10 20224 명이 이 답변을 좋아했습니다

당신은 주제를 찾고 있습니까 “엔코더 모터 속도 제어 – 모터 바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10“? 다음 카테고리의 웹사이트 kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 프로세서 파크 이(가) 작성한 기사에는 조회수 4,000회 및 좋아요 50개 개의 좋아요가 있습니다.

엔코더 모터는 위에서 말했던 것처럼 위치제어와 속도제어가 요구되는 곳에 사용됩니다. 엔코더에서 나오는 펄스의 개수로 위치제어를 할 수 있으며, 펄스 사이의 시간 간격을 이용하여 속도제어를 할 수 있습니다.

엔코더 모터 속도 제어 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 모터 바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10 – 엔코더 모터 속도 제어 주제에 대한 세부정보를 참조하세요

동국대학교 전자전기공학부 마이크로 프로세서 실습 20년도 10번째 실습 영상입니다.
로터리엔코더를 이용하여 모터의 바퀴수를 세는 실습을 합니다.

엔코더 모터 속도 제어 주제에 대한 자세한 내용은 여기를 참조하세요.

엔코더 모터 제어 (2. 속도 계산) – 잡동사니 세상 – 티스토리

엔코더 모터를 사용하는 이유 중 하나는 속도 측정을 하기 위함일 것입니다. 회전 속도를 제어하는 것은 로봇의 이동 방향, 행동을 정확하게 한다는 …

+ 자세한 내용은 여기를 클릭하십시오

Source: pkr7098.tistory.com

Date Published: 1/4/2021

View: 6156

[기초] 엔코더 제어방식 및 구조 – 봉로그

엔코더 서보모터의 회전방향을 포함한 회전속도 및 회전각도를 정확하게 알기 위한 검출기로서는, 광학식 엔코더, 자기식 엔코더, 리졸버 등이 일반적 …

+ 자세한 내용은 여기를 클릭하십시오

Source: bitbong.tistory.com

Date Published: 1/14/2021

View: 6619

모터에서 엔코더를 이용한 속도검출 장치 및 그 방법

본 발명은 동기식 엠티(M/T)법을 이용하여 회전속도를 계산하는 장치 및 방법에 관한 것이다. 이를 위하여 본 발명의 장치는 속도제어주기를 발생하기 위한 속도샘플링 …

+ 여기에 더 보기

Source: patents.google.com

Date Published: 11/12/2022

View: 1051

엔코더: 사용 이유와 선택 방법 – Portescap

엔코더는 속도 및 위치지정과 관련하여 정확한 모터 제어를 위한 피드백을 제공합니다. Portescap은 관련 기술을 살펴보고 귀하의 응용 프로그램에 맞는 엔코더를 선택 …

+ 여기를 클릭

Source: www.portescap.com

Date Published: 4/8/2022

View: 1668

주제와 관련된 이미지 엔코더 모터 속도 제어

주제와 관련된 더 많은 사진을 참조하십시오 모터 바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

모터  바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10
모터 바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10

주제에 대한 기사 평가 엔코더 모터 속도 제어

  • Author: 프로세서 파크
  • Views: 조회수 4,000회
  • Likes: 좋아요 50개
  • Date Published: 2020. 6. 11.
  • Video Url link: https://www.youtube.com/watch?v=QyNCeKN0SuQ

엔코더 모터 제어 (0. 소개)

반응형

서론

세상에는 여러 종류의 모터가 있습니다. 그 종류는 크게 서보모터, DC모터, BLDC, AC모터 그리고 이번에 다뤄 볼 엔코더 모터가 있습니다. 엔코더 모터는 DC모터에 엔코더가 부착되어 있는 모터로 속도 제어, 위치 제어에 용이합니다. 이번 시리즈는 위치제어보다는 속도제어에 초점을 맞춰 글을 풀어 나갈 예정입니다.

엔코더 모터 (Encoder motor)

엔코더 모터 (Encoder motor)

엔코더 모터는 위에서 말했던 것처럼 위치제어와 속도제어가 요구되는 곳에 사용됩니다. 엔코더에서 나오는 펄스의 개수로 위치제어를 할 수 있으며, 펄스 사이의 시간 간격을 이용하여 속도제어를 할 수 있습니다.

Pulse Per Revolution 즉, PPR이라는 것은 엔코더를 한 바퀴 회전시켰을 때 한 채널에서 발생되는 펄스의 개수 입니다. PPR이 11이면 한 바퀴당 11개의 펄스가 나온다는 뜻이고, 400이면 400개의 펄스가 나온다는 의미이죠. 엔코더 모터는 이 PPR을 기준으로 몇 바퀴 돌았는지, 회전속도는 어느 정도인지 등을 알려주는 모터입니다.

그림 01

위의 사진은 제가 이번에 사용할 엔코더 모터입니다. 11 PPR이며 2개의 채널이 있기 때문에 총 22 PPR입니다. 3.3v ~ 5v의 전압은 엔코더 용으로 사용되며, 12v로 동작하는 모터입니다.

다음은 엔코더 모터에서 펄스 개수와 회전 속도를 출력하는 영상입니다.

영상 01

방향성

이번 시리즈는 엔코더 모터에서 각도를 계산하는 방법에서부터, 속도 측정 그리고 PID제어를 통한 위치와 속도 제어를 할 예정입니다.

stm32f103zet6를 사용할 예정이지만, 범용적으로 설명하는 부분과 stm32f103zet6만의 특별한 기능 둘 모두 설명할 것이기 때문에 아두이노 등 다른 MCU를 사용하시는 분들께도 도움이 되기를 기원합니다.

진행 과정

1. 펄스및 위치 측정

2. 속도 계산

3. PID 제어로 속도 제어

준비물

반응형

엔코더 모터 제어 (2. 속도 계산)

반응형

관련글

엔코더 모터 제어 (0. 소개) (tistory.com)

엔코더 모터 제어 (1. 펄스및 위치 측정) (tistory.com)

엔코더 모터 제어 (3. PID 제어로 속도 제어 [PID 함수들 만들기 Part 01]) (tistory.com)

서론

엔코더 모터를 사용하는 이유 중 하나는 속도 측정을 하기 위함일 것입니다. 회전 속도를 제어하는 것은 로봇의 이동 방향, 행동을 정확하게 한다는 의미와도 같죠.

엔코더 모터의 회전 속도를 측정하는 방식은 크게 2가지 방식이 있습니다. M 방식과 T 방식이 있는데, 두 방식은 각각의 장단점이 일치하여 서로 같이 쓴다고도 합니다.

이번 포스트에서는 두 방식에 대한 간단한 설명과 속도 측정 공식, 그리고 M 방식을 사용했을 경우의 코드를 알아볼 예정입니다.

M 방식

T 방식

M 방식 속도 측정

initEXTI0, 1

initTIM2

initRCC

main

EXTI0_IRQHandler

EXTI1_IRQHandler

TIM2_IRQHandler

최종 코드

시연 영상

참고 자료

STM32F103ZET6 Reference Manual

STM32F10xxx/20xxx/21xxx/L1xxxx Cortex®-M3 programming manual

RPM 계산 방법 M/T 방법(M/T Method) (tistory.com)

M 방식

M 방식은 쉽게 말하면 1초동안 몇 바퀴를 회전했는가로 RPM을 계산하는 방식입니다. 좀 더 일반적으로 말하자면 일정 시간(t) 동안 얼만큼의 신호가 들어 왔는가입니다.

M 방식의 장점은 고속에서 유리하다는 점입니다. 반대로 저속에서는 불리하죠.

더보기 만약에 속도가 너무 느려서 2초마다 신호가 하나씩 들어온다고 가정합니다. 하지만 stm32에게 2초는 너무 느려서 1초마다씩만 속도 계산을 할 수 있다고 한다면, 처음 1초에는 신호가 들어 와서 RPM을 계산할 수 있지만, 두 번째 1초에는 신호가 들어 오지 않아 RPM이 0으로 나올 것입니다. 실제로는 2초마다 하나씩 들어와서 RPM이 0이 아니지만요. 따라서 M 방식은 MCU 타이머의 한계로 저속에서는 불리한 방식이라고 할 수 있습니다.

PPR이라는 개념 기억 하시나요? Pulse Per Revolution의 약자로 엔코더를 한 바퀴 돌렸을 때 한 채널에서 발생시키는 신호(펄스)의 개수를 의미합니다. 제가 사용하고 있는 엔코더의 경우 11 PPR호 엔코더를 한 바퀴 돌렸을 때 한 채널에서 11개의 펄스가 발생하죠. A, B 두 채널이 있으니까 총 22개의 펄스가 발생하겠네요.

또한 전 포스트에서 언급한 체배의 개념도 알고 계셔야합니다.

M 방식으로 RPM을 구하는 공식은 다음과 같습니다.

RPM = (60 * edge) / (t * PPR * 체배)

여기서 60은 RPM은 minute 즉, 분 단위를 쓰고 시간 t는 second 초 단위를 사용하기 때문에 이를 변환하는 값입니다.

edge는 단위 시간 동안 들어온 신호의 개수 (rising / falling)입니다.

t는 단위 시간입니다.

PPR은 아실 거예요.

체배는 1체배 방식이면 1, 2체배 방식이면 2, 4면 4를 의미합니다.

저 공식을 일정 주기 t마다 실행시켜 RPM을 계산하면 되는 거죠.

T 방식

T 방식은 M 방식과는 다르게 신호가 들어온 시간 간격을 기준으로 RPM을 계산합니다.

쉽게 말하자면 첫 번째 신호가 들어 오고, 다음 신호가 몇 초 뒤에 들어 오는가를 기준으로 계산하는 거죠.

T 방식은 저속에서 유리합니다. (설명은 참고 자료 사이트에 자세히 나와 있습니다.)

공식은 다음과 같습니다.

RPM = 60 / (PPR * 신호 사이의 시간 간격 * 체배)

M 방식 속도 측정

처음에 저는 T 방식으로 속도를 측정하려 했습니다. 어느정도 잘 측정 되다가 가끔씩 값이 튕기는 현상이 있어서 어쩔 수 없이 M 방식으로 방향을 바꾸게 되었습니다.

순서는 다음과 같습니다.

1. PG0와 PG1에 엔코더 A, B 채널을 연결합니다.

2. PG0와 PG1에 EXTI0, EXTI1을 연결한 후, 인터럽트를 활성화합니다.

3. TIM2를 10 Hz로 맞춰 0.1s 마다 속도 값을 계산합니다.

4. EXTI0, 1 Interrupt handler는 M 방식에서 사용할 pulse값을 카운트 합니다.

5. TIM2 interrupt handler는 pulse 값과 위의 공식을 이용하여 RPM을 계산합니다. 그후 pulse값을 다시 0으로 초기화 합니다.

initEXTI0, 1

M 방식에서는 들어오는 신호의 개수가 많을 수록 정확해지기 때문에 4체배 방식을 이용했습니다.

void initEXTI0(void) { RCC -> APB2ENR |= ((1 << IOPGEN) | (1 << AFIOEN)); GPIOG -> CRL |= (4 << MODE0); AFIO -> EXTICR1 |= (6 << 0); EXTI -> RTSR |= (1 << 0); EXTI -> FTSR |= (1 << 0); EXTI -> IMR |= (1 << 0); NVIC_ISER0 |= (1 << 6); } void initEXTI1(void) { RCC -> APB2ENR |= ((1 << IOPGEN) | (1 << AFIOEN)); GPIOG -> CRL |= (4 << MODE1); AFIO -> EXTICR1 |= (6 << 4); EXTI -> RTSR |= (1 << 1); EXTI -> FTSR |= (1 << 1); EXTI -> IMR |= (1 << 1); NVIC_ISER0 |= (1 << 7); } RTSR, FTSR 둘 모두를 설정하여 Rising, Falling에서 Handler가 동작되도록 설정했습니다. initTIM2 void initTIM2(void) { RCC -> APB1ENR |= (1 << 0); TIM2 -> PSC = 30000 – 1; // 4500 8,000Hz TIM2 -> ARR = 120; // 1 1.25us, 8,000Hz TIM2 -> CNT = 0; TIM2 -> SR = 0; TIM2 -> DIER = (1 << 0); NVIC_ISER0 |= (1 << 28); TIM2 -> EGR |= (1 << 0); TIM2 -> CR1 |= (1 << 0); } TIM2에서는 PSC와 ARR 값을 적절히 조절하여 10 Hz마다 Interrupt가 발생되도록 설정했습니다. initRCC void initRCC(void) { RCC -> CFGR &= ~(7 << MCO); // PLL clock / 2 is selected as MCO RCC -> CFGR |= (1 << USBPRE); // set USB prescaler to 1 RCC -> CFGR |= (7 << PLLMUL); // PLL x9 RCC -> CFGR |= (1 << PLLXTPRE); // HSE divided RCC -> CFGR |= (1 << PLLSRC); //HSE seleted as PLL input clock RCC -> CFGR |= (1 << ADCPRE); // prescaler to 4 RCC -> CFGR &= ~(7 << PPRE1); // no prescaler RCC -> CFGR &= ~(7 << PPRE2); // no prescaler RCC -> CR |= (1 << HSEON); // enable HSE while(!(RCC -> CR & (1 << HSERDY))); // waiting for HSE ready RCC -> CR |= (1 << PLLON); while(!(RCC -> CR & (1 << PLLRDY))); // waiting for PLL ready RCC -> CFGR |= (2 << SW); while(((RCC -> CFGR >> SWS) & 0x03) != (2 << SW)); } CFGR에 적절한 값들을 넣어 TIM2가 연결된 APB1 라인에 36 MHz가 공급하게 하여 TIM2에 36 MHz를 공급했습니다. 그 다음으로 CR을 설정하고, 기다리고를 반복하여 안전하게 RCC가 동작되도록 했습니다. main int main(void) { initRCC(); initEXTI0(); initEXTI1(); initTIM2(); while(1) { // RPM을 출력할 수 있는 적절한 함수 } } EXTI0_IRQHandler void EXTI0_IRQHandler(void) { EXTI -> PR |= (1 << 0); encPulseRPMCnt++; // 엔코더 펄스가 얼만큼 들어 왔는지는 측정하기 위한 변수 /* 회전 방향을 볼려고 한 것이 아니기 때문에 다른 계산은 없습니다. */ }; EXTI1_IRQHandler void EXTI1_IRQHandler(void) { EXTI -> PR |= (1 << 1); encPulseRPMCnt++; // 엔코더 펄스가 얼만큼 들어 왔는지는 측정하기 위한 변수 /* 회전 방향을 볼려고 한 것이 아니기 때문에 다른 계산은 없습니다. */ }; TIM2_IRQHandler void TIM2_IRQHandler(void) { TIM2 -> SR = 0; encRPM = 10 * encPulseRPMCnt / 22; // 위의 공식에 기반한 식 encPulseRPMCnt = 0; };

위의 공식에 따르면 M 방식을 이용할 경우

RPM = (60 * edge) / (t * PPR * 체배) 입니다.

여기서 edge는 encPulseRPMCnt라는 변수로 넣었습니다.

t는 TIM2 자체가 0.1s 주기로 동작하기 때문에 0.1을 넣었습니다.

PPR은 30 * 11이죠

11은 엔코더 자체의 PPR이고

30은 모터가 한 바퀴 돌 때 엔코더가 30 바퀴 돌기 때문입니다. (흔히 엔코더 모터의 ratio라고 하죠)

즉 모터가 한 바퀴 돌 때 엔코더 펄스는 330개가 발생하기 때문에 PPR에 30 * 11을 넣습니다.

저는 4체배 방식을 이용하기 때문에 체배에는 4를 넣고요.

따라서 식은 다음과 같이 쓸 수 있습니다.

RPM = (60 * encPulseRPMCnt) / (0.1 * (11 * 30) * 4)

이를 정리하면 10 * encPulseRPMCnt / 22가 나옵니다.

최종 코드

#include “gpio.h” #include “exti.h” #include “rcc.h” #include “afio.h” #include “tim.h” #include “nvic.h” // =============================================================== volatile unsigned int encPulseRPMCnt = 0; // =============================================================== void EXTI0_IRQHandler(void) { EXTI -> PR |= (1 << 0); encPulseRPMCnt++; }; void EXTI1_IRQHandler(void) { EXTI -> PR |= (1 << 1); encPulseRPMCnt++; }; void TIM2_IRQHandler(void) { TIM2 -> SR = 0; encRPM = 10 * encPulseRPMCnt / 22; encPulseRPMCnt = 0; }; // =============================================================== int main(void) { initRCC(); initEXTI0(); initEXTI1(); initTIM2(); while(1) { // RPM을 출력할 수 있는 적절한 함수 } } // =============================================================== void initEXTI0(void) { RCC -> APB2ENR |= ((1 << IOPGEN) | (1 << AFIOEN)); GPIOG -> CRL |= (4 << MODE0); AFIO -> EXTICR1 |= (6 << 0); EXTI -> RTSR |= (1 << 0); EXTI -> FTSR |= (1 << 0); EXTI -> IMR |= (1 << 0); NVIC_ISER0 |= (1 << 6); } void initEXTI1(void) { RCC -> APB2ENR |= ((1 << IOPGEN) | (1 << AFIOEN)); GPIOG -> CRL |= (4 << MODE1); AFIO -> EXTICR1 |= (6 << 4); EXTI -> RTSR |= (1 << 1); EXTI -> FTSR |= (1 << 1); EXTI -> IMR |= (1 << 1); NVIC_ISER0 |= (1 << 7); } void initTIM2(void) { RCC -> APB1ENR |= (1 << 0); TIM2 -> PSC = 30000 – 1; // 4500 8,000Hz TIM2 -> ARR = 120; // 1 1.25us, 8,000Hz TIM2 -> CNT = 0; TIM2 -> SR = 0; TIM2 -> DIER = (1 << 0); NVIC_ISER0 |= (1 << 28); TIM2 -> EGR |= (1 << 0); TIM2 -> CR1 |= (1 << 0); } void initRCC(void) { RCC -> CFGR &= ~(7 << MCO); // PLL clock / 2 is selected as MCO RCC -> CFGR |= (1 << USBPRE); // set USB prescaler to 1 RCC -> CFGR |= (7 << PLLMUL); // PLL x9 RCC -> CFGR |= (1 << PLLXTPRE); // HSE divided RCC -> CFGR |= (1 << PLLSRC); //HSE seleted as PLL input clock RCC -> CFGR |= (1 << ADCPRE); // prescaler to 4 RCC -> CFGR &= ~(7 << PPRE1); // no prescaler RCC -> CFGR &= ~(7 << PPRE2); // no prescaler RCC -> CR |= (1 << HSEON); // enable HSE while(!(RCC -> CR & (1 << HSERDY))); // waiting for HSE ready RCC -> CR |= (1 << PLLON); while(!(RCC -> CR & (1 << PLLRDY))); // waiting for PLL ready RCC -> CFGR |= (2 << SW); while(((RCC -> CFGR >> SWS) & 0x03) != (2 << SW)); } 시연 영상 저는 USART1을 이용하여 RPM 값을 컴퓨터 화면에 띄웠습니다. 홍보 여자친구를 위한 우리의 특별한 잠옷! (tistory.com) 반응형

[기초] 엔코더 제어방식 및 구조

엔코더

서보모터의 회전방향을 포함한 회전속도 및 회전각도를 정확하게 알기 위한 검출기로서는,

광학식 엔코더, 자기식 엔코더, 리졸버 등이 일반적으로 사용되고 있습니다.

최근에는 광학식 엔코더가 주류로 제일 많이 사용되고 있습니다.

서보모터용 엔코더의 종류

엔코더의 검출 방식

인크리멘트 방식과 앱솔루트 방식

서보모터에는 엔코더가 장착되어 있습니다 이 엔코더는 모터 위치의 검출,

모터 회전속도의 검출을 실시합니다.

엔코더에는, 인크리멘트 방식과 앱솔루트 방식의 2종류가 있어, 다음과 같은 특징이 있습니다.

엔코더의 구조

아래 그림에, 검출기로서 제일 많이 사용되고 있는 엔코더의 구조를 나타냅니다.

제어 방식

인버터, AC서보 제어 방식에는, 주로 아날로그 전압 등으로 모터의 회전속도를 제어하는

속도제어, 간단한 리미트 스위치나 고정밀의 엔코더 등을 사용해 모터의 회전량을 제어하는

위치제어, 서보모터에 흐르는 전류를 제어해 토크가 항상 어느 일정한값을 유지하도록

제어하는 토크제어의 3방식이 있습니다.

-속도제어-

① 오픈루프 제어

범용 인버터 등과 같이, 속도의 피드백

이 없는 제어 방식입니다.

지령 방식은 아날로그 전압 지령으로

컨베이어 반송 속도의 제어나 팬,

펌프의 풍량, 유량제어 등 많은 용도에

사용됩니다.

정격 토크에서의 슬립은 모터의 특성에 의하는데 약 3~5%정도의 속도 변동이 있습니다.

최근의 인버터는, 디지털 제어에 의해 내부에서 속도 데이터를 설정하거나 디지털 지령

(펄스열, 패러넬 데이터, 통신)에 의해 지령을 설정하고 온도 드리프트의 영향을 받지 않게

되었습니다. 또한, 어드밴스드 자속 벡터제어의 인버터 등 속도 변동율이 1%이하의 것도

있습니다. 인버터의 경우, 대부분이 이 속도제어 방식에서 사용됩니다

② 클로즈드루프 제어

모터의 속도의 변동을 보상하기 위해서는,검출기를 설치 실제의 속도를 검출해 제어회로에

피드백을걸어둡니다, 이 방식을 클로즈드 루프 제어라고 합니다.

검출기로서는, TG(타코제네레이터), 엔코더 등이 있는데 최근에는, 엔코더가 많이 사용

인버터나 서보 어느 쪽을 사용할지는 시스템의 요구에 대해 필요한 토크를 낼 수 있는지,

또 속도제어 범위를 커버할 수 있을지 아닐지 여부로 기종을 선정합니다.

속도제어 범위의 표현에서는, 175r/min~1750r/min(1 : 10~1 : 1000)등과 같이 표현합니다.

또 클로즈드 루프 속도 지령을 아날로그

(전압 또는, 전류)를 이용하는데 이 외 ,펄스열을 입력하는 방식이나

디지털 입력의 방식도 있습니다,

드로우 운전이나 전속 운전 등 정밀도가 높은 속도제어도 할 수 있습니다.

-위치제어-

모터 회전속도를 제어하면서, 거기다가 정지 위치를 목표로 하는 위치에 세우는 제어를

위치제어라고 합니다. 정지 신호에 외부 센서 신호를 받아 들여 목표 위치에 세우는 간단한

방식에서부터, 모터에 엔코더를 붙이고 고정밀의 위치결정을 실시하는 방식,

또 항상 변동하는 정지 목표 위치에 추종이나 동기 하면서 위치결정을 실시하는

고기능이 갖춘 것까지 많은 제어 방식이 있습니다.

① 오픈루프 제어

너무 높은 정지 정밀도를

필요로 하지 않는

용도에서는, 정지 목표

위치의 앞에 감속

지령용의 리미트 스위치를

마련하여, 이 신호에 의해

모터가 감속 정지하는 방법입니다. 감속 포인트의 불균형이 정지 위치 정밀도를 좌우합니다.

그리고 제일 간단한 염가의 방법입니다.

② 세미 클로즈드루프 제어

모터에 설치된 엔코더에서

피드백을 실시합니다.

예를 들어 서보앰프에 입력된

지령분만큼 서보모터가

움직여 피드백이 귀환됩니다.

이 때 입력된 지령량과 피드백

량의 차이는, 반드시“0”이 되도록 제어됩니다. 구성이 간단하고 응답도 거론되기 때문에

서보의 경우에는 이 방식이 일반적입니다.

③ 풀-클로즈드루프 제어

기계 측에 설치된 검출기(리니어 스케일, 엔코더 등)로부터 피드백하여 제어합니다.

검출기가 최종 기계단에 설치했기 때문에, 백래시나 기계계의 오차의 영향을 받지 않고

고정밀의 위치결정 을 할 수가 있습니다. 하지만 반면, 기계 강성을 높여 둘 필요가 있습니다.

일부의 공작기계 등 고정밀의 제어의 경우에 사용되는 일이 있습니다.

-토크제어-

토크제어란, 모터가 내는 토크(전류)를 제어하는 것이어 토크제한과는 다릅니다.

그러나 용도에 따라서는, 어디라도 사용 가능한 경우도 있기 때문에 시스템에 최적인

방법을 선택합니다. 토크제어는, 토크 지령값에 대한 토크(전류)를 제어하므로,

부하 토크가 작으면 자동적으로 속도는 상승하고, 크면 속도는 하강, 동일하면 토크는 어울려,

속도는 0, 즉 모터는 정지합니다. 요컨데 줄다리기와 같은 원리입니다.

이것에 대해 토크제한이란, 위치나 속도제어시에 필요 이상의 토크를 내면 기계 파손의 가능성

이 있는 경우나 기계를 눌러서 정지시키는 경우, 메카 록을 실시하고자 할 때에

토크 제한을 걸칩니다. 토크제어는, 모터에 흐르는 전류를 검출하여 제어할 필요가 있기 때문에

전류 검출을 실시하고 있는 벡터 인버터, 서보로 대응할 수가 있습니다.

① 오픈루프 제어

토크 정밀도를 그다지 필요로 하지 않는 권출(풀기), 권취(감기)축 등의 용도에 사용됩니다.

토크의 지령으로서는 아날로그 지령이 일반적입니다.

이러한 제어의 경우에는, 온도에 의해 토크의 정밀도가 변화하는(온도 드리프트) 일이나

기계의 로스 등도 고려해 둘 필요가 있습니다.

② 클로즈드루프 제어

장력의 정밀도가 요구되는 용도(종이, 필름 등)의 권출(감기), 권취(감기)축 등의 용도에

사용됩니다. 실제의 제품에 걸리는 장력을 검출해 장력제어 장치에 피드백하는 방식입니다.

엔코더: 사용 이유와 선택 방법

엔코더는 속도 및 위치지정과 관련하여 정확한 모터 제어를 위한 피드백을 제공합니다. Portescap은 관련 기술을 살펴보고 귀하의 응용 프로그램에 맞는 엔코더를 선택하는 방법을 설명합니다.

의료용 주입 장치에서 펌프가 이루어질 때마다 정확한 양의 인슐린이 전달되도록 하거나 제조 조립에 사용되는 로봇 팔이 적시에 정확한 지점으로 이동하도록 하려면 전기 모터를 엔코더와 결합해야 합니다. 회전식 또는 샤프트 엔코더는 모터의 위치, 개수, 속도 및 방향에 대한 정보를 제공하는 전기 기계 장치이며 프로그램 가능 로직 제어기(PLC)와 같은 컨트롤러가 있는 응용 프로그램에 연결됩니다 PLC는 일반적으로 ‘피드백’으로 알려진 엔코더의 정보를 사용하여 모터 제어의 높은 정확도를 보장합니다.

엔코더 기술

엔코더의 두 가지 주요 유형은 증분형 및 절대형으로 알려져 있습니다. 증분형 엔코더는 실시간 피드백을 식별하며, 특정 지점을 참조하기보다는 위치 및 방향 변경과 관련된 정확한 동작을 추적합니다. 지속적으로 높고 낮은 피드백 펄스를 사용하여 위치 간의 상대적 이동에 대한 피드백을 제공하여 이를 달성합니다. 절대형 엔코더는 정확한 위치를 보여주지만 복잡성이 증가하여 더 많은 비용이 듭니다. 즉, 증분형 엔코더가 대부분의 응용 프로그램에서 더욱 비용 효율적이라는 것을 의미합니다. 응용 프로그램별 통합 회로(ASIC)와 같은 증분형 엔코더 인터페이스를 추가하면 정확한 위치 참조 기능을 추가할 수도 있습니다.

한편, 자기 엔코더는 둘레를 둘러싼 다수의 극을 가진 자화된 디스크로 구성됩니다. 디스크가 회전할 때 센서는 전압 변화를 감시하는 홀 효과 장치로 측정한 것과 같은 자기장의 변화를 감지합니다. Portescap MR2와 같은 자기 엔코더는 충격이나 침투 가능성을 갖고 있는 까다로운 응용 프로그램에 사용하기에 이상적입니다. 예를 들어 MR2 자기 엔코더는 온도에 민감하지 않으며 원치 않는 외부 필드에 대한 민감도가 낮습니다.

엔코더 작동 원리

엔코더는 회전하면서 일반적으로 90도 역상인 A와 B라는 두 개의 사각파 출력을 생성합니다. A및 B 출력의 위상 시프트를 측정하여 엔코더의 방향을 결정할 수 있습니다. 이동 거리 또는 속도를 측정하려면 엔코더의 해상도도 고려해야 합니다. 해상도는 듀티 사이클 또는 주기라고도 하는 샤프트의 360도 회전 내 측정 지점의 수입니다. 일반적으로 회전당 라인(LPR) 또는 회전당 펄스(PPR)라고 하는 포인트 수가 많을수록 측정 정확도가 높아집니다. 예를 들어 Portescap의 M-Sense 자기 엔코더는 콤팩트한 디자인으로 회전당 최대 1,024개의 라인을 제공합니다.

각각의 출력 A와 B는 높거나 낮게 전환됩니다. 따라서 2비트의 정보는 각 라인 또는 펄스에 대해 4배의 카운트를 생성하며 이를 직교 위상 디코딩이라고 합니다. 따라서 직교 위상 디코딩은 해상도를 최대 4배까지 높일 수 있습니다. 예를 들어 Portescap MR2 엔코더의 512개 라인을 2048 카운트 또는 각 단계로 바꿀 수 있습니다. 두 개의 A 및 B 출력 채널 외에도 기준 위치를 결정하는데 사용할 수 있는 세 번째 채널 Z가 포함되는 경우가 있습니다.

엔코더가 사용되는 곳

엔코더가 모터 제어를 위한 피드백을 제공하는 방법을 이해하면 엔코더의 사용이 다양한 응용 프로그램에서 얼마나 중요한 지 알 수 있습니다. 기존 방식대로의 인슐린 투여를 예시로 들어보겠습니다. 약물 전달 시스템에서는 지정된 비율로 정확한 양의 약물을 분사해야 하며 엔코더를 사용하여 정확한 용량이 전달되는지 확인합니다. 이 예시에서는 또한 엔코더 해상도를 높이기 위한 라인 수가 많을수록 가장 정확한 흐름 속도를 보장하는 데 어떻게 도움이 되는지 보여줍니다.

예를 들어, 로봇 그리퍼를 제조에 사용하여 상대적으로 섬세한 부품을 처리할 수 있습니다. 구성 요소의 손상을 방지하기 위해 올바른 압력과 속도를 사용하여 구성 요소를 올바르게 처리하는 것이 핵심입니다.엔코더 덕분에 로봇 그리퍼의 기능은 모터가 처리하는 각 구성 요소에 따라 모터의 속도와 위치를 모션 제어하여 최적화됩니다. 마찬가지로 전자 장비 조립에 사용되는 장착 응용 프로그램에도 PCB 구성 요소의 크기와 무게를 빠르고 반복적으로 감지하여 정밀하게 배치하기 위해 고속 모션 제어가 필요합니다. 엔코더는 이와 같이 속도가 빠르면서도, 높은 정확도의 제어를 가능하게 하여 생산성과 제조 품질을 보장합니다.

엔지니어에게 문의

키워드에 대한 정보 엔코더 모터 속도 제어

다음은 Bing에서 엔코더 모터 속도 제어 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

See also  대한 검정회 기출 문제 | 94회 1급기출문제 대한검정회 모든 답변
See also  갤럭시 S9 카톡 알림 | 문자알림이나 카톡알림이 안들어올때 1분안에 해결법 공개 최근 답변 101개

See also  대전 토닥 이 | 훈남이 배달오는 여자 전용 안마방 토닥이 빠른 답변

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 모터 바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10

  • 마이크로프로세서
  • MSP430
  • msp430f5529
  • 로터리 엔코더
  • 엔코더

모터 # #바퀴 #수를 #엔코더로 #세어보자! #/ #마이크로 #프로세서 #실습 #20-10


YouTube에서 엔코더 모터 속도 제어 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 모터 바퀴 수를 엔코더로 세어보자! / 마이크로 프로세서 실습 20-10 | 엔코더 모터 속도 제어, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *