Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "LM3S8962의 QEI기능을 이용한 PID DC모터제어"— Presentation transcript:

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

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

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

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

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

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

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

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

9 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로 되어 있는 동안 모터의 코일에 축적된 에너지를 전류로 흘리는 작용을 한다(회생전류라 부른다).

10 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

11 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

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

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

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

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

16 속도 측정

17 속도 측정

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

19 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. 광운대학교 바람

20 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) 광운대학교 바람

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

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

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

24 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는 듀티비를 설정하는 함수를 의미합니다. 광운대학교 바람

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

26 PID제어 PID 게인의 효과 광운대학교 바람

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

28 Source Code 광운대학교 바람

29 결과 광운대학교 바람

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

31 물어보세요~? 19/20

32


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

Similar presentations


Ads by Google