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

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

조회수: 0     작성자: 사이트 편집자 게시 시간: 2020-09-02 출처: 대지

묻다

페이스북 공유 버튼
트위터 공유 버튼
회선 공유 버튼
위챗 공유 버튼
링크드인 공유 버튼
핀터레스트 공유 버튼
WhatsApp 공유 버튼
카카오 공유 버튼
스냅챗 공유 버튼
텔레그램 공유 버튼
공유이 공유 버튼

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

컨트롤러 및 모터 전문 제조업체인 HOPRIO 그룹은 2000년제� 본사는 장쑤성 창저우시에 있습니다.

빠른 링크

문의하기

WhatsApp: +86 18921090987 
전화: +86- 18921090987 
이메일: sales02@hoprio.com
주소: 중국 장쑤성 창저우시 우진첨단기술구 마항남로 19호 (우) 213167
메시지를 남겨주세요
문의하기
저작권 © 2024 ChangZhou Hoprio 전자상거래 유한회사 All Rights Reserved. 사이트맵 | 개인 정보 보호 정책