LM3S8962의 QEI기능을 이용한 PID DC모터제어

Slides:



Advertisements
Similar presentations
적외선으로 감지하는 추적 카메라 조원 : 최승호, 백진영, 이현지.
Advertisements

임피던스(Impedance) 측정 일반물리 B실험실 일반물리실험 (General Physics Experiment)
myCortex-LM8962 #1 LM3S8962의 특징과 강의 계획 BARAM 2010–1-27 바람 16기 이우석
03 전자 접촉기 제어 학습목표 ▶ 전자 접촉기의 동작 원리와 기능을 설명할 수 있다.
                                  8장 A/D 변환기 A/D Converter? A/D Converter 원리 Bit 수와 최대범위 및 해상도와의 관계.
RLC 회로 R L C 이 때 전류 i 는 R, L, C 에 공통이다.
정전유도 커패시턴스와 콘덴서 콘덴서의 접속 정전 에너지 정전기의 흡인력
AVR 마이크로 프로세서.
아날로그 입력과 출력.
DC Motor Control Robotics_LAB 유 홍 선.
1-1 일과 일률.
컴퓨터 프로그래밍 기초 [Final] 기말고사
실험 8. 연산증폭기 특성 목적 연산증폭기의 개관, 특성 및 사용법 이해 입력저항, 개루프 이득, 출력저항, 슬루레이트 등
I/O JIG 1. 외형도 (판매제품) 1) PCB Ass’y만 제공 2) 전원공급장치(SMPS)는 사용자 별도 구입
Windows Server 장. 사고를 대비한 데이터 백업.
전기공학실험 함수발생기 설계.
실험 11. 트랜지스터 증폭기의 부하선 해석 방 기 영.
컴퓨터 계측 및 실습 D/A-converter
전자기적인 Impedance, 유전율, 유전 손실
제 5장 전계효과 트랜지스터 (Field Effect Transistor)
전기에 대해 알아보자 영화초등학교 조원석.
실험 3 - 비선형 연산 증폭기 회로와 능동 필터 전자전기컴퓨터공학부 방 기 영.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
RS 및 D 플립플롭 RS Flip Flop 래치는 어떤 입력 레벨에 의해서 제어되는 데 플립플롭은 클록 입력이라고
컴퓨터 계측 및 실습 D/A Converter DC 모터 구동
실험1. 연산 증폭기 특성 전자전기컴퓨터공학부 방기영.
컴퓨터 계측 및 실습 D/A-converter
제 10 장 다이오드(Diodes) 10.1 다이오드의 선형 모델 10.2 전원장치 10.3 기타 다이오드
컴퓨터 응용과 3학년 1반 조장 김영조 조원 구본건 , 임선택
Error Detection and Correction
Stepping Motor.
“DC POWER SUPPLY의 소개”.
AM, FM.
상관함수 correlation function
리니어 엔코더 제작결과 보고서 조은상.
Electronic Engineering 2
임피던스 측정 B실험실 일반물리실험 (General Physics Experiment).
센서 12. 자기장 센서 안동대학교 물리학과 윤석수.
제4장 제어 시스템의 성능.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
파워 서플라이 (Short 방지 기능 추가) 11조 박양준 최성열.
실험 12. Op Amp 응용회로.
Ⅰ. 전기와 자기 전압.
뇌를 자극하는 Windows Server 2012 R2
Chapter 5 트랜지스터 바이어스 회로.
작품 제목 3. Operation of Studio Type 2014 Capstone Design (지도 교수: 정대원) .
8장. spss statistics 20의 데이터 변환
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
Thevenin & Norton 등가회로 1등 : 임승훈 - Report 05 - 완소 3조 2등 : 박서연
Electric Vehicle.
제20강 유도전압과 인덕턴스 20.1 유도 기전력과 자기 선속 • 유도 기전력
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
Common Emitter Amp. 참고 문헌 : 전자회로 5판, Sedra/Smith - 5장의 내용을 중심으로 구성.
제 5장 제어 시스템의 성능 피드백 제어 시스템 과도 성능 (Transient Performance)
Slide wire형 Wheatstone Bridge에 의한 저항 측정
제 8 장 발전기와 전동기 8.1 교류발전기 8.2 3상 교류 발전기 8.3 직류발전기 8.4 직류전동기 8.5 교류전동기
5.1-1 전하의 흐름과 전류 학습목표 1. 도선에서 전류의 흐름을 설명할 수 있다.
목차 PMAC Tuning 2축 구동.
자기유도와 인덕턴스 (Inductance)
OP-AMP를 이용한 함수발생기 제작 안정훈 박선진 변규현
직선 전류가 만드는 자기장 진주중학교 3학년 주동욱.
5-8. 전기 제품에 열이 발생하는 이유는? 학습 주제 < 생각열기 >
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
PID 제어 알아보기 자동제어의 절대 강자 하늘소 19기 한승욱.
회로 전하 “펌핑”; 일, 에너지, 그리고 기전력 1. 기전력(electro-motive force: emf)과 기전력장치
전류의 세기와 거리에 따른 도선 주변 자기장 세기 변화에 대한 실험적 고찰
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
Ohm의 법칙, 에너지, 전력 전자 교육론 발 표 자 유 지 헌 발 표 일 2009년 09월 11일 E- mail
Presentation transcript:

LM3S8962의 QEI기능을 이용한 PID DC모터제어 myCortex-LM8962 #4 LM3S8962의 QEI기능을 이용한 PID DC모터제어 바람 16기 이우석 dldntjr407@gmail.com BARAM SOCIETY FOR THE STUDY ROBOTICS 2010–3-6

강사 소개 이우석 광운대 제어계측과 석사 2학기 재학중 관심 분야 : 임베디드 토탈 솔루션 개발 바람 편집부장 역임(2008년) 메일 : dldntjr407@gmail.com 블로그 : http://frys.tistory.com 1/20

목차 DC모터 속도 측정 PID제어 회로 Source Code 결과 Q&A 2/20

DC MOTOR DC 모터란? 고정자로 영구자석을 사용 회전자(전기자)로 코일을 사용하여 구성한 것 전기자에 흐르는 전류의 방향을 전환함으로써 자력의 반발 흡인력으로 회전력을 생성시키는 모터 모형 자동차, 무선조정용 장난감 등을 비롯하여 여러 방면에서 가장 널리 사용되고 있는 모터

DC MOTOR DC MOTOR의 종류 DC 모터의 특성 박형 원판형 PULLEY부착용 ENCODER 부착용 기동 토크가 크다 인가전압에 대하여 회전특성이 직선적으로 비례한다 입력전류에 대하여 출력 토크가 직선적으로 비례하며, 또한 출력 효율이 양호하다 가격이 저렴하다

DC모터 DC 전원을 흘려주면 부하가 없을 때 일정한 속도로 회전 전류가 많이 흐를 수록 높은 회전력이 발생 회전수가 빨라질 수록 토크가 약해짐 가격이 저렴 광운대학교 바람

DC MOTOR 제어성의 장점을 실제 특성 T-I 특성(토크 대 전류) 흘린 전류에 대해 깨끗하게 직선적으로 토크가 비례한다. 큰 힘이 필요한 때는 전류를 많이 흘리면 되는 것이다. T-N 특성(토크 대 회전수) 토크에 대하여 회전수는 직선적으로 반비례한다. 이것에 의하면 무거운 것을 돌릴 때는 천천히 회전시키게 되고, 이것을 빨리 회전시키기 위해서는 전류를 많이 흘리게 된다. 인가전압에 대해서도 비례한다.

DC MOTOR DC 모터의 결점 DC 모터의 가장 큰 결점으로는 그 구조상 브러시(brush)와 정류자(commutator)에 의한 기계식 접점이 있다는 점이다. 이것에 의한 영향은 전류(轉流)시의 전기불꽃(spark), 회전 소음, 수명이라는 형태로 나타난다. 마이크로컴퓨터 제어를 하려는 경우는 "노이즈"가 발생하게 된다. 따라서 이 노이즈 대책이 유일한 과제가 될 수 있다. 이 노이즈 대책을 위해서는 아랫 그림과 같이 각 단자와 케이스 사이에 0.01μF∼0.1μF 정도의 세라믹 콘덴서를 직접 부착한다. 이것으로 정류자에서 발생하는 전기불꽃을 흡수하여 노이즈를 억제할 수 있다. DC 모터의 노이즈 대책에는 콘덴서를 케이스와 단자간에 직접 부착한다. 콘덴서의 리드는 가급적 짧게 한다

DC MOTOR DC 모터의 속도 제어법 펄스폭 변조(PWM) 방식 아날로그 방식의 가변속 제어 직접 구동전압 그 자체를 변화시키는 것으로, 트랜지스터로 전압 Dropper를 구성하고 컬렉터 이미터간의 드롭 전압을 바꿈으로써 모터에 가해지는 구동전압을 가변으로 한다. 기본원리에 의해 드롭퍼 전압이 그대로 열로 되어 손실로 되며, 특히 저속으로 할 때 전력 사용 효율이 나빠지고 만다. 손실로 인해 발생하는 열대책을 위해, 큰 방 열판을 필요로 하기 때문에 전체가 대형으로 되고 만다. 소형 모터이고 게다가 속도의 가변폭이 작아도 좋은 경우에는 손실을 작게 할 수 있다는 점과 제어회로가 간단하기 때문에 흔히 사용되고 있다. 펄스폭 변조(PWM) 방식 PWM 방식은 결과적으로는 구동전압을 바꾸고 있는 것과 같은 효과를 내고 있지만, 그 방법이 펄스폭에 따르고 있으므로 펄스폭 변조(PWM:Puls-e Width Modulation)라 부르고 있다. 구체적으로는 모터 구동전원을 일정 주기로 On/Off 하는 펄스 형상으로 하고, 그 펄스의 Duty비(On 시간과 Off 시간의 비)를 바꿈으로써 실현하고 있다. DC 모터가 빠른 주파수의 변화에는 기계 반응을 하지 않는다는 것을 이용하고 있다. 트랜지스터를 일정시간 간격으로 On/Off 하면 구동전원이 On/Off 되는 것이다. 전압을 생각하면 외관상 구동전압이 변화하고 있는 것이다. 여기서 중요한 기능을 담당하고 있는 것이 위의 회로도에 있는 다이오드이며, 일반적인 전원용 다이오드를 사용하지만 그 동작 기능에 의해 flywheel diode라 부르고 있다. 즉, 트랜지스터가 Off로 되어 있는 동안 모터의 코일에 축적된 에너지를 전류로 흘리는 작용을 한다(회생전류라 부른다).

DC MOTOR DC 모터의 방향 제어법 H-Bridge (링크) MCU의 허용 전류가 작아 보텅 H-Bridge 모터용 드라이브(L298, LMD18200) 등을 주로 사용 High Side Left High Side Right Lower Left Lower Right Quadrant Description On Off Motor goes Clockwise Motor goes Counter-clockwise Motor "brakes" and decelerates

DC MOTOR DC 모터의 방향 제어법 H-Bridge (링크) MCU의 허용 전류가 작아 보텅 H-Bridge 모터용 드라이브(L298, LMD18200) 등을 주로 사용 High Side Left High Side Right Lower Left Lower Right Quadrant Description On Off Motor goes Clockwise Motor goes Counter-clockwise Motor "brakes" and decelerates

DC MOTOR DC 모터의 방향 제어법 방향1 방향2 PWM

속도 측정 엔코더 엔코더는 회전 위치 및 속도를 검출하는 목적으로 서보모터를 사용한 고속회전 위치 제어에 사용된다. 엔코더는 수십khz 정도까지 응답하는 고속성과 비접촉 동작에 의한 높은 신뢰성을 가지고 있다. 로터리 엔코더에는 절대값형(Absoulte)과 중분형(Incremental)이 있다. 보통 중분형 엔코더 사용 : 자세한 내용 (링크) 레졸버 홀센서 등등등.. 찾아보세요..

속도 측정 증분 엔코더 A상과 B상의 위상차는 90도, 위상차를 이용해서 방향을 알 수 있음 Z는 한바퀴당 1개의 펄스 3000펄스 엔코더라 함은 1바퀴를 돌았을 때 나오는 펄스의 개수가 3000개

속도 측정 증분 엔코더 속도 측정 방법 펄스 카운트 방식(M Method) : 일정 클럭의 개수를 세는 데 걸리는 시간 측정 주기 측정방식(T Method) : 일정 시간안에 클럭의 개수를 카운트 혼합방식 (M/T Method) : 펄스 카운트 방식과 주기 측정방식을 동시에 사용하여 단점을 보완

속도 측정

속도 측정

모터 돌리기 복잡하죠!!!!! 속도 측정 그래서 우린 LM3S8962등과 같은 엔코더 내장형 MCU를 사용합니다.. 예제 소스도 있고 정말 아름답네요…. 그래도 알건 알아야죠? ㅎㅎㅎ 우리는 이번 제어에서 T메소드를 사용한다고 해도 되겠네요.. 일정 시간마다 얼만큼 돌아 갔나 확인하니까요.. 그리고 위치 제어를 한다면 카운터의 개수도 계속 세고 있으니.. !#$@!#$@# 모터 돌리기 복잡하죠!!!!!

PID제어 PID?? 초간단히 말해서 원하는 목표값(Ref)과 현재값(Fdb)을 입력하면 알맞은 출력(out)이 나오는 로직 Kp: Proportional Gain - Larger Kp typically means faster response since the larger the error, the larger the Proportional term compensation. An excessively large proportional gain will lead to process instability and oscillation. Ki: Integral Gain - Larger Ki implies steady state errors are eliminated quicker. The trade-off is larger overshoot: any negative error integrated during transient response must be integrated away by positive error before we reach steady state. Kd: Derivative Gain - Larger Kd decreases overshoot, but slows down transient response and may lead to instability due to signal noise amplification in the differentiation of the error. 광운대학교 바람

PID제어 PWM -> Motor Drive Ki*[ (e)dt] A e=error term Kpe sum Required speed= Wsl_speed_input (u) Motor Ki*[ (e)dt] A IR wheel Speed encoder PWM -> Motor Drive e=error term Kpe sum + - speed (w) Kd*[d(e)/dt] speed (w) 광운대학교 바람

PID제어 구현할 PID 제어기 출처 : TI DMC 라이브러리(링크) 듀티비 또는 전류등 이론과는 다르게 모든 물리 현상에는 한계가 있으므로 값을 제한(Upresat) 제한을 하게 되면 원래 계산했던 결과와 실제로 출력되는 값에 차이가 있습니다. 즉 I게인에 누적되는 오차가 발생하는데요 그러한 현상을 와인드 업(Wind-up) 현상이라고 합니다.. 와인드업의 결과로 Ref값이 바뀌었을 때 결과값이 크게 흔들리게 됩니다. 이러한 현상을 방지하기 위하여 KC변수가 추가 됩니다. 출처 : TI DMC 라이브러리(링크) 광운대학교 바람

PID제어 소스코드로 출처 : TI DMC 라이브러리(링크) 광운대학교 바람

PID제어 소스코드로 출처 : TI DMC 라이브러리(링크) 광운대학교 바람

PID제어 자세히… http://en.wikipedia.org/wiki/PID_controller 따라서 잘 이해가 안갈 수 있다는 점 잘 알고 있습니다. 복잡하게 생각하지 마시고, 간단히 생각하세요. 듀티비는 0~128로 결정되는 8비트 타이머를 사용하여 제어한 다고 생각해봅시다. 그럼 현재값과 오차값 그리고 여러가지 PID 게인에 의한 출력값이 나오게 될겁니다. 여기에서 Upresat의 값은 +_128로 설정하면 됩니다. 그럼 결과값(Out)은 -128~+128이 나오게 될겁니다. 그럼 모터드라이버에 전달할 때는 Out 값이 0보다 크면 방향은 정방향 속도는 Out값을 입력하면됩니다. 만약 Out값이 0보다 작으면 방향은 역방향 속도는 –Out을 입력하면 됩니다. If (out > 0) { MOTOR_DIR(FORWARD); MOTOR_DUTY(out); } if (out < 0) { MOTOR_DIR(BACKWARD); MOTOR_DUTY(-out); } 여기서 MOTOR_DIR은 방향을 설정하는 함수고, MOTOR_DUTY는 듀티비를 설정하는 함수를 의미합니다. http://en.wikipedia.org/wiki/PID_controller 광운대학교 바람

PID제어 PID 제어 결과 Steady state error overshoot Target value Typically Depends on application undershoot time Settling time Rise time 광운대학교 바람

PID제어 PID 게인의 효과 http://en.wikipedia.org/wiki/PID_controller 광운대학교 바람

회로 시간이 없어서 회로도는 못그렸네요.. 죄송.. 광운대학교 바람 L298 : 15 PIN ENCODER : B ENCODER : A L298 : IN1 L298 : IN2 L298 : ENABLE 광운대학교 바람

Source Code 광운대학교 바람

결과 광운대학교 바람

요약! 모터제어 참 쉽죠이잉~! 18/20

물어보세요~? 19/20