Upload
levana
View
254
Download
4
Embed Size (px)
DESCRIPTION
단국대학교 MAZE 9 기 박선응. MicroMouse DC 모터 제어. 2008/4/25. 차례. 1. DC 모터 제어 원리 DC 모터 구동 원리 PWM 을 통한 DC 모터 구동 모터의 회전 수 측정 PID 제어 2. DC 모터 제어 구현 (TMS320F2808) Flowchart 초기화 모터 제어 구현. DC 모터 제어 원리. DC 모터 구동 원리. 자기장 속에 있는 도선에 전류가 흐를 때 전류가 받는 힘의 방향으로 모터가 회전한다. 플래밍의 왼손법칙. DC 모터 특성. - PowerPoint PPT Presentation
Citation preview
단국대학교 MAZE 9 기 박선응
2008/4/25
차례
1. DC 모터 제어 원리- DC 모터 구동 원리- PWM 을 통한 DC 모터 구동- 모터의 회전 수 측정- PID 제어
2. DC 모터 제어 구현 (TMS320F2808)
- Flowchart- 초기화- 모터 제어 구현
DC 모터 제어 원리
DC 모터 구동 원리
자기장 속에 있는 도선에 전류가 흐를 때 전류가 받는 힘의 방향으로 모터가 회전한다 .
플래밍의 왼손법칙
DC 모터 특성
T-I 특성 ( 토크 대 전류 ) 전류에 대해 선형적인
직선으로 토크가 비례
T-N 특성 ( 토크 대 회전수 ) 토크에 대하여 회전수는
선형적인 직선으로 반비례
H-Bridge 회로
단일 전원으로 모터에 가하는 전압의 방향을 바꿀 수 있는 회로
ON : Q1, Q4ON : Q1, Q4OFF : Q2, Q3OFF : Q2, Q3
-> > 정회전정회전
ON : Q2, Q3ON : Q2, Q3OFF : Q1, Q4OFF : Q1, Q4
-> > 역회전역회전
PWM 을 통한 DC 모터 구동
구동 전압을 일정 주기로 On/Off 하여 구동전압을 바꾸는 듯한 효과를 냄-> Pulse Width Modulation
모터 회전 수 측정
opto-electronic opto-electronic encoderencoder
Magnetic EncoderMagnetic Encoder
Encoder 종류
모터 회전 수 측정
Encoder Output Pulse
개루프 제어와 폐루프 제어
개루프 제어 (open-loop control) 구조가 단순하고 경제적이다 일반적으로 양호한 신뢰도 제어 정도가 다소 떨어짐 ( 오차 보정 없음 )
개루프 제어와 폐루프 제어
폐루프 제어 (close-loop control) 제어 정도가 우수 고신뢰도 시스템의 안정성 , 주파수 응답 특성 , 민감도
등의 제어 향상이 가능
PID 제어기 구조
Proportional( 비례 ), Integral( 적분 ), Differential( 미분 ) 을 통한 제어
PID 제어기 특징
구조적 간단하다 제어이득 조정이 쉽다
제어 조작량의 변화가 커서
목표치에서 진동을 함
비례 (P) 제어기
가장 기초적인 비례 제어기 목표값에 접근 할 수록 미세하게 제어 함 목표값에 정확히 도달할 수 없음
비례 - 적분 (PI) 제어기
누적 오차를 보상하는 제어기 목표값에 도달이 가능 시스템 응답이 느려 질 수 있음
비례 - 미분 (PD) 제어기
미분 제어와 PID 제어 미분 제어로 응답 속도를 향상 잘못 설정할 경우 외란이나 노이즈에 크게 영향을 받음
각 이득의 일반적인 영향
개인 (Gain) 값 튜닝 순서
P 제어를 통해
상승시간 향상
D 제어를첨가하여
Overshoot 향상
I 제어를 첨가하여 정상상태 오차를
없앰만족할 때까지 각 이득 값
조정
DC 모터 제어 구현
Flowchart
초기화
모터 제어에 필요한 PWM, QEP 를 초기화
일정 시간마다 모터 제어를 하기 위한 타이머 설정
PWM(Pulse Width Modulation) 초기화
Counter Clock 설정 (->SYSCLOCKOUT) PWM Period(->25us = 40KHz) ZRO(Zero), CAU(Compare A Up), CBU(Compare
B Up)CAD(Compare A Down), CBD(Compare B Down)
PWM Output Control(CMPA, CMPB)
QEP(Quadrature Encoder Pulse) 초기화 모터 엔코더 카운터 값을 받기 위함
Encoder Output SignalEncoder Output Signal
Forward/Reverse MovementForward/Reverse Movement
Quadrature DecoderQuadrature Decoder
512 Resolution Encoder512 Resolution Encoder -> 2048 Resolution-> 2048 Resolution
QEP(Quadrature Encoder Pulse) 초기화
QEP Register Setting
Position Counter Reset on the Maximum Position
Position Maximum is ‘~0’(2047)
타이머 초기화
일정 주기마다 속도 , 거리 등 각 종
정보를 갱신하고 , 목표 속도로 제어하기
위해 타이머를 구동
-> -> 현재 현재 500us500us 를 주기로 설정를 주기로 설정
모터 제어 Timer
일정 주기 마다 모터의 회전 정보를 얻어 속도 , 거리를 계산
목표 속도를 맞추기 위해 PID 제어값을 계산하여 PWM 카운터 값 적용
엔코더 펄스 구하기
엔코더 카운터를 통해 얻음
QEP.QPOSCNT 를 읽음
Software Init Position Counter
(QEP.QEPCTL 의 SWI 를 ‘ 1’로 설정 )
모터의 움직임 기본 데이터 구하기
거리 계산거리 계산 단위 거리 = 엔코더 카운터값 x 엔코더 펄스당 거리 엔코더 펄스당 거리 = 바퀴 지름 / ( 바퀴 한바퀴의 엔코더 펄스 x 기어 비율 )
속력 계산속력 계산 속력 = 거리 / 타이머 주기
-> 타이머의 역수를 곱셈으로 계산 ( 속도 향상 )
다음 목표 속력 설정다음 목표 속력 설정 가속 ( 최종 목표 속력 > 현재 목표 속력 )
다음 목표 속력 = 현재 속력 + ( 가속력 *타이머시간 ) 감속 ( 최종 목표 속력 < 현재 목표 속력 )
다음 목표 속력 = 현재 속력 - ( 가속력 *타이머시간 )
PID 제어값 구하기
PID PID 제어기 계산제어기 계산
비례 (P) 제어기P = KP( 비례상수 ) x 속력 오차
적분 (I) 제어기I = KI( 적분상수 ) x 속력 오차 누적 값 )
미분 (D) 제어기 D = KD( 미분상수 )
x ( 속력 오차 - 전전전 속력 오차 ))
최종 PID 값PID 값 = P + I + D
속력 오차 = 목표 속력 – 평균 속력
모터 구동 방향과 PWM 카운터 값 구하기
모터 제어 방향 얻기
PID 값을 PWM 값으로 변환 PWM Value = PID Value x Ratio
모터 구동 방향 설정
PWM 출력 포트 설정 Forward( 전방향 )
AQCTRLA.bit.ZRO = AQ_SET AQCTRLB.bit.ZRO = AQ_CLEAR
Backward( 역방향 ) AQCTRLA.bit.ZRO = AQ_CLEAR AQCTRLB.bit.ZRO = AQ_SET
PWM 카운터 값 적용
PWM 설정 CMPB Register 설정
Reference
http://www.ktechno.co.kr http://www.daehwagm.co.kr 단국대학교 MAZE 슝슝 ‘ DC 모터의 제어’