엔코더와 PID 제어를 이용한 모터 각도 제어
- 최초 등록일
- 2010.09.25
- 최종 저작일
- 2010.06
- 15페이지/ 한컴오피스
- 가격 5,000원
소개글
ATMega128과 로터리 엔코더를 이용해 모터 회전각을 제어하는 최종 프로젝트 입니다.
실제 모터의 스펙을 이용해 모터 식을 모델링 하고 그 값을 이용해 P,I,D에 대한 Gain값을 찾습니다.식을 이용해 구한 값과 실험으로 얻어낸 값을 각각 모터에 적용해 성능을 테스트 했습니다. 시리얼 통신으로 모터 회전각 입력 받아 모터를 회전시키게 되고 전체 소스까지 포함되어 있습니다.
목차
1. 개요
2. PID 이론
3. DC Motor의 Modeling
4. PID 계수를 통한 Transfer Function 도출 및 안정도 판별
5. 적용과정
6. 소스코드
7. 결론
8. 참고문헌
본문내용
Armature-Controlled DC Motor는 Armature current 로 인해 동작하게 된다. 회전축은 코일에 흐르는 전류로 인해 생긴 전기장과 영구자석에 의해 회전한다. 코일에 흐르는 전류가 일정하게 유지되면 Motor의 Torque 은 다음과 같다.
은 전기장에 의한 Torque Constant 이다. Motor의 Torque는 축에 연결된 부하에 전달된다. 따라서 Motor의 Torque는 다음과 같다.
는 부하의 Torque이며 는 거의 무시가 가능한 외란에 의한 Torque이다.
부하의 Torque는 회전 관성에 의해 생기므로 위의 그림으로부터 다음 식을 유도해낼 수 있다.
는 Rotor Inertia 이며 는 회전축의 Viscous Friction Coefficient(점성마찰계수)이다. Armature Current가 Input Voltage에 의해 변하므로 다음과 같이 쓸 수 있다.
는 회전에 속도에 따른 역기전력이다. 따라서 다음과 같이 쓸 수 있다.
는 각속도 이므로 라 할 수 있으며 Armature Current는 다음과 같다.
식을 모두 종합하면 아래와 같은 Block Diagram을 얻는다.
1.1. 회전각 제어를 위한 Encoder의 이용
Motor의 회전에 따라 Motor에 연결되어있는 Encoder에서는 펄스를 발생하게 된다. 펄스 출력 포트에 연결된 MAX7000-EPM7064S 칩에 의해 입력 펄스를 카운트 해준다(MAX7000-EPM7064S칩에는 카운터 로직이 프로그램 되어있다).
이 값을 ATMega128 Processor로 입력받아 Motor의 회전방향 및 회전속도를 결정짓고 그에 따라 Motor를 제어하게 된다. Motor가 한 바퀴 회전할 때 Encoder 값은 0~4985만큼 변한다. 1°가 회전함에 따라 증가하는 Encoder 값은 약 이므로 11에서 12사이의 값이 변하게 된다.
참고 자료
Richard C. Dorf, Robert H. Bishop, (2008). Modern Control Systems, California:Pearson Education