Wolfram 언어

DC 모터의 폐쇠형 루프 속도 제어

폐쇠형 루프 제어에서 컨트롤러는 기본적으로 관심 있는 변수의 원하는 값과 실제 값을 비교하여 실제 값이 원하는 값과 일치하도록 제어 노력을 조정합니다.

전체 Wolfram 언어 입력 표시하기

이 예는 Arduino Uno 마이크로 컨트롤러 보드에 속도 컨트롤러를 배포합니다. 모터의 실제 속도는 인코더로 측정합니다. 원하는 속도는 전위차계로 설정합니다. motor의 전력원은 motor shield입니다. 마지막으로, 기준 속도와 실제 속도는 장치의 프레임워크를 사용하여 읽어낼 수 있는 직렬 RS-232 버스로 전송됩니다.

DC 모터의 모델을 살펴봅니다.

샘플링 주기가 0.25초인 PID 컨트롤러를 디자인합니다.

인코더는 1회전 당 12카운트를 내고, 모터의 기어 박스는 9.86의 기어비를 가집니다. 인코더의 판독값을 rpm으로 취득하는 모델을 만들 수 있습니다.

기준은 0V부터 5V까지의 전위차계에서 설정됩니다. 0rpm부터 500rpm까지를 읽을 수 있도록 다시 스케일합니다.

기준 속도와 실제 인코더의 속도를 비교하는 비교기를 봅니다.

모터에 대한 마이크로 컨트롤러의 출력은 PWM 신호의 듀티 사이클을 바탕으로 합니다. 모터의 실제 전압은 모터 쉴드에서 나옵니다. 다음은 측정된 데이터의 조각 단위 적합에 기초한 전압과 듀티 사이클의 관계입니다.

전압을 듀티 사이클에 매핑하는 실드의 역 모델입니다.

Arduino, 쉴드, 모터, 입출력의 블록도입니다.

Arduino에 배치될 컨트롤러는 2개의 입력과 3개의 출력이 있습니다.

첫 번째 입력은 전위차계의 값에 의해 설정된 기준 속도입니다. 두 번째 입력은 인코더에 의해 측정된 실제 속도입니다.

첫 번째 출력은 모터를 구동하는 PWM 신호의 듀티 사이클입니다. 다른 두 개의 출력은 직렬 RS-232 접속에 의해 전송된 기준 속도와 실제 속도입니다.

코드를 배포합니다.

대상에 대한 직렬 연결을 엽니다.

0.25초마다 값을 읽을 수 있도록 예약된 작업을 설정합니다.

전체 Wolfram 언어 입력 표시하기

설정 기준값과 교란을 설정하기 위한 응답을 나타내는 결과를 플롯합니다.

작업을 삭제하고 장치의 연결을 닫습니다.

관련 예제

de en es fr ja pt-br zh