본문 바로가기

Theory/ControlTheory

[DC 모터 제어] DC 모터 동역학 및 전류제어기의 MATLAB을 이용한 시뮬레이션

아주 예전에는 DC 모터 자체를 제어하는 것보다는 시스템에 구동원인 DC 모터를 전체 동역학에 포함시켜서 시스템을 제어하는 것[바로가기]을 했었습니다. 그 대표적인 것이 밸런싱로봇[바로가기]이었는데요. 그리고 나서 모터 자체에 대한 제어기에도 당연하지만 관심을 가졌었는데요[바로가기] 아무튼 최근 다시 좀 올드한 스타일, 그러면서 교과서적인 스타일의 DC 모터 제어 기법을 블로그에 소개해야겠다는 생각을 하게 되었네요^^. 일단 본 글은 제어기법자체는 설승기 교수의 전기기기제어론이라는 책 아~~~주 초반에 소개된 내용을 바탕으로 합니다.^^



일단 DC 모터를 위와 같이 표현할 수 있다면



각 심볼을 위와 같이 정의하구요.(단위에 조심하세요^^)



DC 모터의 전압방정식을 저렇게 만들 수 있습니다. 일단 기본적으로 옴의 법칙이 들어가 주죠... 그러나 모터는 인덕터의 덩어리(^^)이므로 인덕터 영향을 무시할 수는 없죠. 그리고 기본적으로 역기전력... 음.. 그러니까 모터의 회전 속도에 비례해서 전압을 까먹는 놈이 하나 있죠^^



그리고 모터가 내놓는 토크식이 있습니다. 모터축의 이너셔와 모터 축의 회전 각가속도로 만들어지는 토크는 전류에 의해 발생하는 모터 고유의 토크에 회전속도에 비례해서 그 토크를 까먹는 마찰력이 또한 존재합니다.



이 두 방정식으로 MATLAB/Simulink 블럭을 완성하면 위 그림과 같습니다.^^.



그리고 앞서 이야기한 설승기 교수의 전기기기제어론에 나타난 올드한... Cascade한 방식의 전류 제어기를 구성하면 위와 같습니다. 일단 기본적으로 전류 제어기는 PI 제어기를 사용하며 그건 위에서 표현된 PI 제어기이구요. 

또 별도로 PI 제어기에서 사용하는 적분기는 에러가 계속 누적되면 부호의 변경이 잘 되지 않는 windup 현상이 있는데 이를 해소하기 위한 안티와인드업 Anti-windup 제어기가 또한 추가되어 있습니다. 안티와인드업 제어기는 한번 설명을 했었습니다.[바로가기] 아무튼...^^. 

그리고 모터의 역기전력을 보상하기 위해 역기전력 상수와 모터의 회전 속도를 곱해서 보상하는 역기전력 보상기도 설계되어 있습니다.



그걸 저렇게 블럭으로 보기좋게 구성했네요^^. 제어 게인을 잘 잡으면 뭐 잘 됩니다.^^.


            


Maxonmotor의 222053모터를 대상으로 해서 위와 같이 파라미터와 제어기를 구성했네요... 나머지는 뭐 그냥 잘 시뮬레이션 됩니다.^^


반응형