콘테스트 프로젝트 진행 상황
각 Quest를 단계적으로 완성하는 프로젝트입니다.
Quest 1: [처음 모터 제어를 했던 경험]
2022.07.15
대학교때 동아리에서 처음으로 내 손으로 직접 로봇을 만들면서 처음으로 모터를 접했습니다.
stepping motor였는데 1994년 그 땐 옛날이라 지금처럼 인터넷이 많이 발달하지 않아서 자료도 많지 않았지만 아름아름 주변분들의
도움과 다른 선배가 만든 작품을 보면서 만들었던 기억이 납니다.
모터, cpu를 비롯한 회로부품들 모두를 직접 선택/구매했고 기구물도 가까스로 어렵게 만들었습니다.
납땜도 잘 못하는 저에게는 모터 제어는 정말 회로부터 기구까지 쉬운게 하나도 없었습니다. 심지어 프로그램도 어셈블러로 개발해야 했습니다.
지금 하는 일은 모터 제어와는 거리가 먼 일들이지만 그래도 그때 그렇게 고생하면서 터득했던 경험들이
아직도 많은 자양분이 되어 지금의 저를 키운것 같아 그 시절 경험들의 소중함을 이번에 다시 되새기며 이번 미션을 수행합니다.
이번 기회에 DC모터 제어나 3상 모터에 대한 지식을 더 쌓으면 좋겠다는 기대를 하면서 마무리 할까 합니다.
감사합니다.
Quest 2: [퀘스트2 작성: 제가 알고 있는 모터 회로 방식을 공유 드립니다 ]
2022.07.17
제가 사용해본 모터 회로가 너무 없지만 아는데로 적어 봅니다.
stepping모터를 제어할때 SLA702x칩을 사용했었습니다. 모터 하나당 SLA702x 하나씩 사용해서
모터 제어했던 기억이 납니다. 이 칩을 사용하기 전에 L297같은 칩도 써봤지만 열이 너무 나서
702x로 바꿨었죠.
최근 드론쪽 회로를 살펴보니 다음과 같은 형태로 많이 개발되고 있었습니다.
DC모터용 제어 회로로는 MOSFET이나 TR로 전류를 제어하는 회로가 많이 사용되는 것으로 알고 있습니다.
DC모터용 칩으로는 PWM으로 제어하는 LB1630 같은 칩도 있었습니다.
3상 BLDC 속도를 제어하는 ESC 회로로는 DC모터 회로에 사용되는 MOSFET을 사용하긴 하는데
120도 로 배치된 모터제어선에 MOSFET 2개씩 사용한 회로를 사용하는 것으로 알고 있습니다.
그리고 각 상의 전압을 mcu에서 측정하여 모터 제어를 합니다.
(센서가 없는 3상 제어 SW는 일반적으로 제어하기 까다롭기 때문에 보통 알고리즘을 SDK로 제공받아 개발하기도 합니다)
Quest 3: NoLoad_DcMotor시스템에 대한 동역학 선형 방정식 유도 및 simulink를 이용한 시뮬레이션 결과
2022.07.26
<NoLoad_DcMotor시스템에 대한 동역학 선형 방정식 유도 및 simulink를 이용한 시뮬레이션 결과>
|---R---L-----------| | Torque, theta
+ + V
V e Motor --- rotor
- - ^ b*theta_dot(inertia= J)
|____________________|
No loaded DC모터 구조에서 다음과 같은 기본 관계식을 유도한다.
모터 회로에 전류를 흘리면 모터 양단에 역기전력이 발생하면서 토크가 유발된다.
모터 토크는 모터에 흘리는 전류에 비례하기 때문에 T=Kt*i 로 표현한다.
T = K * Phi(flux)*ia (Phi 는 electro-magntic-field flux값이며 전선감은수에 비례하므로 상수)
= Kt * i
전류 성분에 의해 기계적인 토크가 나오게 되는 수식.
모터 양단에 걸리는 전압인 역기전력(BackEMP)는 토크 방향과 동일한 방향으로 움직이는 각속도(w(Omega) = dot_theta)에 비례하므로
E = K*n*Phi -> K(상수) * 속도 * 전기장(상수) -> flux Phi는 전기장을 만들기 위해 사용한 권선수이고 변하지 않으므로 고정 상수임. K와 Phi를 모두 상수이므로 다음처럼 표현가능함.
e = Ke * w = Ke * theta_dot
(where w = 2*pi*n(회전수)/60 -> 분당 회전수)
즉 기계적인 각속도 성분에 의해 전압이 유도되는 수식.
위 식에서 Kt = Ke 라는 관계가 성립하므로 Kt = Ke = K 로 표현하자.
위 두 관계 수식에 의해 전기성분<->기계적 동역학 성분이 표현되는 electromecanical equation이 유도된 셈이다.
이제부터는 주어진 DC모터 회로와 기계적인 구조에 대하여
뉴턴의 제2법칩과 키르히호프 전압 법칙을 이용하여 No_Load에서의 역학 수식을 유도한다
summation T = J*alpha
T - b*theta_dot = J*theta_ddot;
이렇게 되고 라스플라스 변환을 해서 다음과 같이 전달함수를 유도해야한다.
Laplace transformation에서 미분성분은 다음과 같이 변형된다.
theta_dot -> s*theta, theta_ddot -> s^2 * theta
첫번째로 위에서 적은 inertia와 Torque의 관계식의 Lapalce변환은 다음과 같다(1번식)
J*theta_ddot + b*theta_dot = K*i = T
-> s*(Js + b)*theta(s) = K*i(s) = T(s) ---(1)
회로이론 기초인 키르히호프 법칙에서 유도된 전압 방정식을 라플라스 변환하면
L*di/dt + R*i = V - e = V - K*theta_dot
-> (L*s + R)*i(s) = V(s) - K*s*theta(s) ---(2)
위 처럼 됨을 알 수 있다.(2번식)
위 1번식과 2번식 두 방정식에서 입력전압에 대한 각속도의 전달함수를 구하기 위해 공통인자 i(s)를 제거하면
theta(s)/V(s) = K/((J*s+b)*(L*s+R)+K^2) [(rad/sec) / V]
와 같은 전달함수가 유도할 수 있다.
우리가 원하는 입력전압에 대한 각속도의 출력을 확인해 볼 수 있게 되는 전달 함수 식을 구한 것이다.
이제 위 전달함수식을 simullink 전달함수 박스에 기록하여 시뮬레이션을 하면 다음과 같다.
초기화 값은 V_in=24V, b = 0.1, J=0.01, L=0.5, K=0.01, R=1로 설정하였고
위 No-Load DC-motor 시스템에 대한 회전각 응답 특성수식을 다음과 같이 적용하였다.

1(시뮬링크 전달함수 박스에서 전달함수 인자들을 기록하는 그림)

2(시뮬링크 전달함수를 모두 기입후 초기화 값을 넣고서 Run을 누르면 위처럼 값들이 표시된다)

3(변수에 대하여 초기화값으로 기입한 값들 사진)
시뮬레이션한 결과 그래프는 다음과 같다
.png)
4(시뮬링크 결과 그래프 사진)
위 그래프 결과를 보면 위에서 유도한 DC 모터 선형 방정식은 24V 인가했을 때 2.4 rad/sec의 속도로
회전할 것이라는 것을 알 수 있다. 단 무부하(No-Load) 조건에 대한 결과이다.
만약 부하조건이라면 시스템 방정식을 다시 구해서 시뮬레이션 해야 할 것이다
프로젝트 갤러리
프로젝트 제작 과정과 최종 결과물을 담은 이미지 갤러리입니다.
![[처음 모터 제어를 했던 경험]](https://cdn.e4ds.com/make/images/fo07v7ejig6qpw7xigni.png)
![[퀘스트2 작성: 제가 알고 있는 모터 회로 방식을 공유 드립니다 ]](https://cdn.e4ds.com/make/images/988yaojbnl6o30yd5ny0.png)




프로젝트 자료실
프로젝트를 재현하거나 학습하는데 필요한 모든 자료를 제공합니다.
등록된 자료가 없습니다.
프로젝트 소개
아직 등록된 프로젝트 소개가 없습니다.
코드 & 회로도
등록된 코드/회로 자료가 없습니다.
댓글 0개
아직 댓글이 없습니다. 첫 댓글을 남겨보세요!

.jpg)