PID 알고리즘을 사용한 DC 모터의 속도 제어 (STM32F4)
» 블로그 » PID 알고리즘을 사용한 DC 모터의 속도 제어 (STM32F4)

PID 알고리즘을 사용한 DC 모터의 속도 제어 (STM32F4)

보기 : 0     저자 : 사이트 편집기 게시 시간 : 2020-09-02 원산지 : 대지

묻다

Facebook 공유 버튼
트위터 공유 버튼
라인 공유 버튼
WeChat 공유 버튼
LinkedIn 공유 버튼
Pinterest 공유 버튼
WhatsApp 공유 버튼
카카오 공유 버튼
Snapchat 공유 버튼
전보 공유 버튼
Sharethis 공유 버튼

안녕하세요 여러분, 저는 다른 프로젝트의 Tahir ul Haq입니다.
이번에는 2017-11-407 년에 사용 된 MC를 할 시간이었습니다.
이것은 중간 프로그램의 끝입니다.
당신이 그것을 좋아하기를 바랍니다.
많은 개념과 이론이 필요하므로 먼저 그것을 보자.
컴퓨터와 산업화 된 프로세스의 출현으로, 프로세스를 재정의하는 방법을 개발하는 인간의 역사에 대한 연구가 있었고, 더 중요한 것은 기계를 사용하여 프로세스를 자율적으로 제어하는 ​​것입니다.
목표는 이러한 프로세스에 대한 인간의 참여를 줄여서 이러한 과정에서 오류를 줄이는 것입니다.
따라서 \ '제어 시스템 엔지니어링 \'의 분야가 생겨났습니다.
제어 시스템 엔지니어링은 프로세스의 작업을 제어하기 위해 다양한 방법을 사용하거나 매뉴얼이든 자동이든 상수 및 선호하는 환경의 유지 보수로 정의 될 수 있습니다.
간단한 예는 방의 온도를 제어하는 ​​것입니다. 수동 제어는 현장 (센서)의 현재 조건을 확인
사람의 존재를 말합니다 .
하고 기대치 (처리)를 확인
하고 원하는 값 (액추에이터)을 얻기 위해 적절한 조치를 취하는
이 접근법의 문제점은 직장에서 오류 나 과실이 발생하기 쉽기 때문에 그다지 신뢰할 수 없다는 것입니다.
또한, 또 다른 문제는 액추에이터가 시작하는 프로세스의 속도가 항상 균일하지는 않다는 것입니다. 즉, 때로는 필요한 속도보다 빠를 수 있으며 때로는 느릴 수 있습니다.
이 문제에 대한 해결책은 마이크로 컨트롤러를 사용하여 시스템을 제어하는 ​​것입니다.
주어진 사양에 따르면, 마이크로 컨트롤러는 회로에서 연결 프로세스를 제어하도록 프로그램되어 (
나중에 논의)
원하는 값을 유지하기위한 프로세스를 제어합니다.
이 과정의 이점은이 과정에서 인간의 개입이 필요하지 않다는 것입니다.
또한이 프로세스의 속도는 일관됩니다.
진행하기 전에이 시점에서 다양한 용어를 결정하는 것이 중요합니다. 피드백 제어 :이 시스템에서 특정 시간에 입력은 시스템의 출력을 포함하여 하나 이상의 변수에 따라 다릅니다.
부정적인 피드백 :이 시스템에서 참조 (입력)
피드백으로 오류가 뺄 수 있고 입력 단계는 180도입니다.
긍정적 인 피드백 :이 시스템에서는
피드백과 입력이 위상에있을 때 참조 (입력) 오류가 추가됩니다.
오류 신호 : 원하는 출력과 실제 출력의 차이.
센서 : 회로에서 특정 수의 장치를 감지하는 데 사용되는 장치.
일반적으로 출력 또는 측정을 원하는 곳에 배치됩니다.
프로세서 : 프로그래밍 알고리즘을 기반으로 처리되는 제어 시스템의 일부.
약간의 입력이 필요하고 약간의 출력을 생성합니다.
액추에이터 : 제어 시스템에서 액추에이터는 마이크로 컨트롤러에 의해 생성 된 신호를 기반으로 출력에 영향을 미치기 위해 이벤트를 수행하는 데 사용됩니다.
폐 루프 시스템 : 하나 이상의 피드백 루프가있는 시스템.
오픈 루프 시스템 : 피드백 루프를위한 시스템이 없습니다.
상승 시간 : 출력이 신호 최대 진폭의 10%에서 90%로 상승하는 데 필요한 시간.
낙하 시간 : 출력이 90%에서 10%로 떨어지는 데 필요한 시간.
피크 오버 슈팅 : 피크 오버 슈트는 정상 상태 값을 초과하는 출력의 양입니다 (
시스템 과도 응답 중 정상).
안정된 시간 : 출력이 안정적인 상태에 도달하는 데 필요한 시간.
정상 상태 오류 : 시스템이 정상 상태에 도달하면 실제 출력과 예상 출력의 차이. 위의 그림은 제어 시스템의 매우 단순화 된 버전을 보여줍니다.
마이크로 컨트롤러는 모든 제어 시스템의 핵심입니다.
이것은 매우 중요한 구성 요소이므로 시스템의 요구 사항에 따라 신중하게 선택해야합니다.
마이크로 컨트롤러는 사용자로부터 입력을 수신합니다.
이 입력은 시스템에 필요한 조건을 정의합니다.
마이크로 컨트롤러는 또한 센서에서 입력을 수신합니다.
센서는 출력에 연결되어 있으며 정보는 입력에 대한 정보를 얻습니다.
이 입력을 부정적인 피드백이라고도합니다.
부정적인 피드백이 앞서 설명되었습니다.
프로그래밍을 기반으로 마이크로 프로세서는 액추에이터에 대한 다양한 계산 및 출력을 수행합니다.
출력 기반 액추에이터 제어 플랜트는 이러한 조건을 유지하려고 시도합니다.
모터 드라이버가 드라이버이고 모터가 공장 인 모터를 운전하는 모터 드라이버가 예를들 수 있습니다.
따라서 모터는 주어진 속도로 회전합니다.
연결된 센서는 현재 공장의 상태를 읽고 마이크로 컨트롤러로 다시 공급합니다.
마이크로 컨트롤러를 다시 비교하고 계산하여 루프를 반복합니다.
프로세스는 반복적이고 끝이 없으며 마이크로 컨트롤러는 원하는 조건을 유지할 수 있습니다.
다음은 DC 모터의 속도를 제어하는 ​​두 가지 주요 방법입니다.
수동 전압 제어 : 산업 응용 분야에서 DC 모터의 속도 제어 메커니즘이 중요합니다.
때로는 정상보다 높거나 낮은 속도가 필요할 수 있습니다.
따라서 효과적인 속도 제어 방법이 필요합니다.
공급 전압 제어는 가장 간단한 속도 제어 방법 중 하나입니다.
전압을 변경하여 속도를 변경할 수 있습니다. b)
PID를 사용한 PWM 제어 : 또 다른보다 효율적인 방법은 마이크로 컨트롤러를 사용하는 것입니다.
DC 모터는 모터 드라이버를 통해 마이크로 컨트롤러에 연결됩니다.
모터 드라이버는 마이크로 컨트롤러로부터 PWM (
펄스 폭 변조)
입력을 수신하고 입력에 따라 DC 모터에 출력하는 IC입니다. 그림 1.
2 : PWM 신호의 1 장.
서론 3 PWM 신호를 고려할 때, PWM의 작동을 먼저 설명 할 수 있습니다.
일정 시간 동안 연속 펄스로 구성됩니다.
기간은 파장과 동일한 거리에서 움직이는 지점에 의한 시간입니다.
이 펄스는 이진 값 (높거나 낮음)만을 가질 수 있습니다.
또한 펄스 폭과 듀티 사이클의 두 가지 수량이 있습니다.
펄스 폭은 PWM 출력이 높은 시간입니다.
듀티 사이클은 펄스 폭의 백분율입니다.
나머지 기간 동안 출력은 낮습니다.
듀티 사이클은 모터의 속도를 직접 제어합니다.
DC 모터가 일정 시간 내에 양의 전압을 제공하면 특정 속도로 움직입니다.
양의 전압이 장기간 제공되면 속도가 커집니다.
따라서 펄스 폭을 변경하여 PWM의 듀티 사이클을 변경할 수 있습니다.
DC 모터의 듀티 사이클을 변경하면 모터의 속도가 변경 될 수 있습니다.
DC 모터 문제에 대한 속도 제어 : 첫 번째 속도 제어 방법의 문제는 전압이 시간이 지남에 따라 변할 수 있다는 것입니다.
이러한 변화는 고르지 않은 속도를 의미합니다.
따라서 첫 번째 방법은 바람직하지 않습니다.
솔루션 : 두 번째 방법을 사용하여 속도를 제어합니다.
PID 알고리즘을 사용하여 두 번째 방법을 보완합니다.
PID는 비례 적분 유도체를 나타냅니다.
PID 알고리즘에서 모터의 현재 속도를 측정하고 원하는 속도와 비교합니다.
이 오류는 시간에 따라 모터의 듀티 사이클을 변경하기 위해 복잡한 계산에 사용됩니다.
각주기에는이 과정이 있습니다.
속도가 원하는 속도를 초과하면 듀티 사이클이 줄어들고 속도가 원하는 속도보다 낮은 경우 듀티 사이클이 증가합니다.
이 조정은 최상의 속도에 도달 할 때까지 이루어지지 않습니다.
이 속도를 지속적으로 확인하고 제어하십시오.
다음은이 프로젝트에 사용 된 시스템 구성 요소와 각 구성 요소의 세부 사항에 대한 간략한 소개입니다.
STM 32F407 : ST Micro-Section에서 설계 한 마이크로 컨트롤러.
팔 피질에서 작동합니다. M 아키텍처.
그것은 168MHz의 높은 시계 주파수로 가족을 이끌고 있습니다.
모터 드라이버 L298N :이 IC는 모터를 실행하는 데 사용됩니다.
두 개의 외부 입력이 있습니다.
마이크로 컨트롤러에서 하나.
마이크로 컨트롤러는 PWM 신호를 제공합니다.
펄스 폭을 조정하여 모터 속도를 조정할 수 있습니다.
두 번째 입력은 모터를 구동하는 데 필요한 전압 소스입니다.
DC 모터 : DC 모터는 DC 전원 공급 장치에서 실행됩니다.
이 실험에서 DC 모터는 모터 드라이버에 연결된 광전 커플 링을 사용하여 작동합니다.
적외선 센서 : 적외선 센서는 실제로 적외선 송수신기입니다.
다양한 작업을 수행하는 데 사용할 수있는 적외선 파를 보내고받습니다.
IR 인코더 광학 커플러 4N35 : 광학 커플러는 회로의 저전압 부분과 고전압 부품을 분리하는 데 사용되는 장치입니다.
이름에서 알 수 있듯이 빛에 기초하여 작동합니다.
저전압 부품이 신호를 가져 오면 전류는 고전압 부분에서 흐릅니다.
시스템은 속도 제어 시스템입니다.
앞에서 언급했듯이 시스템은 비례 적분 및 파생물의 PID를 사용하여 구현됩니다.
속도 제어 시스템에는 위의 구성 요소가 있습니다.
첫 번째 부분은 속도 센서입니다.
속도 센서는 적외선 송신기 및 수신기 회로입니다.
고체가 U 자형 슬릿을 통과하면 센서가 낮은 상태로 들어갑니다.
일반적으로 높은 상태에 있습니다.
센서 출력은 저역 통과 필터에 연결되어 센서의 상태가 변경 될 때 생성 된 과도로 인한 감쇠를 제거합니다.
저역 통과 필터는 저항 및 커패시터로 구성됩니다.
필요에 따라 값이 선택되었습니다.
사용 된 커패시터는 1100NF이고 사용 된 저항은 약 25 옴입니다.
저역 통과 필터는 불필요한 일시 조건을 제거하여 추가 판독 및 쓰레기 값을 초래할 수 있습니다.
그런 다음 저역 통과 필터는 커패시터를 통해 STM 마이크로 컨트롤러의 입력 디지털 핀으로 출력됩니다.
다른 부분은 STM Micro-Controller가 제공하는 PWM에 의해 제어되는 모터입니다.
이 설정에는 광학 커플러 IC를 사용하여 전기 분리가 제공되었습니다.
광학 커플러에는 IC 패키지 내에서 빛을 방출하는 LED가 포함되어 있으며 입력 터미널에서 높은 펄스가 제공되면 출력 단자가 단락시켰다.
입력 단자는 광학 커플러에 연결된 LED의 전류를 제한하는 저항을 통해 PWM을 제공합니다.
드롭 다운 저항은 출력에 연결되어 터미널이 단락 될 때 전압이 드롭 다운 저항에서 생성되고 저항의 터미널에 연결된 핀은 높은 상태를 수신하도록합니다.
광전자 커플러의 출력은 활성화 핀의 높이를 유지하는 모터 드라이버 IC의 IN1에 연결됩니다.
광학 커플러 입력에서 PWM 듀티 사이클이 변경되면 모터 드라이버 핀은 모터를 전환하고 모터의 속도를 제어합니다.
모터에 제공된 PWM 후, 모터 드라이버는 일반적으로 12V의 전압을 제공합니다.
그런 다음 모터 드라이버를 사용하면 모터가 작동 할 수 있습니다.
이 모터 속도 조절 프로젝트의 구현에 사용 된 알고리즘을 소개하자.
모터의 PWM은 단일 타이머로 제공됩니다.
타이머의 구성은 PWM을 제공하도록 설정되어 있습니다.
모터가 시작되면 모터 샤프트에 부착 된 슬릿을 회전시킵니다.
슬릿은 센서 캐비티를 통과하고 낮은 펄스를 생성합니다.
낮은 펄스에서는 코드가 시작되어 슬릿이 움직일 때까지 기다립니다.
슬릿이 사라지면 센서는 높은 상태를 제공하고 타이머가 계산을 시작합니다.
타이머는 우리에게 두 슬릿 사이의 시간을 제공합니다.
이제 또 다른 낮은 펄스가 나타나면 IF 문이 다시 실행되어 다음 상승 가장자리를 기다리고 카운터를 중지합니다.
속도를 계산 한 후 속도와 실제 기준 값의 차이를 계산하고 PID를 제공하십시오.
PID는 주어진 순간에 기준 값에 도달하는 듀티 사이클 값을 계산합니다. 이 값은 오류에 따라 CCR (
에 제공됩니다
비교 레지스터)
. 타이머 속도가 감소하거나 증가합니다.
Atollic Truestudio 코드가 구현되었습니다.
STM 스튜디오는 디버깅을 위해 설치해야 할 수도 있습니다.
STM Studio에서 프로젝트를 가져 와서보고 싶은 변수를 가져옵니다.
약간의 변화는 2017-11-4XX입니다.
168MHz의 H 파일로 클록 주파수를 정확하게 변경하십시오.
코드 스 니펫이 위에서 제공되었습니다.
결론은 모터의 속도가 PID를 사용하여 제어된다는 것입니다.
그러나 곡선은 정확히 부드러운 선이 아닙니다.
이에 대한 많은 이유가 있습니다. 저역 통과 필터에 연결된 센서는 여전히 특정 결함을 제공하지만, 이는 비선형 저항기 및 아날로그 전자 장치에 대한 피할 수없는 이유 때문에, 모터는 작은 전압 또는 PWM에서 부드럽게 회전 할 수 없습니다.
시스템이 잘못된 값을 입력 할 수있는 멍청이를 제공합니다.
지터로 인해 센서는 더 높은 값을 제공하는 일부 슬릿을 놓칠 수 있으며 다른 오류의 주된 이유는 STM의 핵심 클록 주파수 일 수 있습니다.
STM의 핵심 시계는 168MHz입니다.
이 프로젝트에서는이 문제가 해결되었지만이 모델의 전체적인 개념은 그러한 고주파를 제공하지 않습니다.
오픈 루프 속도는 예상치 못한 값이 몇 가지만있는 매우 매끄러운 라인을 제공합니다.
PID도 작동하고 있으며 매우 낮은 모터 안정성 시간을 제공합니다.
모터 PID는 기준 속도를 일정하게 유지하는 다양한 전압으로 테스트되었습니다.
전압 변화는 모터의 속도를 변경하지 않으므로 PID가 작동하고 있음을 나타냅니다.
다음은 PID의 최종 출력의 일부 부분입니다. a)
폐쇄 루프 @ 110 rpmb)
폐쇄 루프 @ 120 rpm이 프로젝트는 그룹 구성원의 도움 없이는 완료 할 수 없습니다.
감사하고 싶습니다.
이 프로젝트를 시청 해주셔서 감사합니다.
당신을 도울 수 있기를 바랍니다.
더 많은 것을 기대하십시오.
그 전에 축복을 계속하십시오 :)

Hoprio Group 컨트롤러 및 모터의 전문 제조업체는 2000 년에 설립되었습니다. Jiangsu Province의 Changzhou City에있는 그룹 본사.

빠른 링크

저희에게 연락하십시오

WhatsApp : +86 18921090987 
전화 : +86- 18921090987 
이메일: sales02@hoprio.com
추가 : No.19 No.19 Mahang South Road, Wujin High-Tech District, Changzhou City, Jiangsu Province, China 213167
메시지를 남겨주세요
저희에게 연락하십시오
Copyright © 2024 Changzhou Hoprio E-Commerce Co., Ltd. 모든 권리 보유. 사이트 맵 | 개인 정보 보호 정책