문제

저는 want를 구현하고 싶습니다. 상당히 표준적인 피드백 루프라고 생각합니다. 그러나 제어 이론을 살펴본 지 수년이 지났고 개념을 이해하고 구현 예제를 찾는 데 어려움을 겪고 있습니다.나는 누군가가 무슨 일이 일어나고 있는지 간단한 용어로 설명하고 솔루션을 구현하는 데 사용할 수 있는 몇 가지 리소스를 알려줄 수 있기를 바랐습니다.이 주제에 관해 내가 본 모든 정보는 대개 수학에 빠져 있습니다.

그래서 제가 달성하려는 것은 다음과 같습니다.

  • 나는 전자 회로의 전류를 제어하고 싶습니다. 예를 들어 항상 0.75A를 소비하길 원합니다.
  • 물론 전류는 회로의 다른 부분이 수행하는 작업에 따라 시간이 지남에 따라 달라집니다.하지만 DAC에 전달하는 전압 레벨에 따라 제어되는 전류의 양을 늘리거나 줄이는 하드웨어가 있습니다.
  • 또한 시스템에서 끌어오는 전류에 비례하는 전압을 제공하는 ADC도 있습니다.

일부 임계값 내에서 램핑 및 진동을 처리해야 합니다.또한 저는 C에서 일하고 있습니다.

감사 리처드

도움이 되었습니까?

해결책

알겠습니다. 이해한다면 모든 하드웨어가 이미 완료되었습니까?

따라서 시스템에는 암페어 단위의 전류 레벨(소프트웨어에서 배정밀도 부동 소수점 수로 지정됨)인 명령 입력이 있고 컨트롤러의 출력은 전류를 끌어오는 하드웨어를 제어하는 ​​전압입니다. 플랜트는 회로이며 피드백은 A/D에 따라 부호가 있거나 없는 8, 10 또는 16비트 숫자일 수 있습니다.

따라서 시스템은 다음과 같습니다.

대체 텍스트 http://steves-wiki.wikispaces.com/file/view/control_diagram.jpg/64043668

가장 빠르고 더러운 접근 방식은 아마도 PID 제어일 것입니다.다음과 같이 기본 사항을 정리할 수 있습니다. 이 위키피디아 기사 여기에는 구현에 대한 몇 가지 힌트가 있습니다. Embedded.com 기사.

간단히 말해서 귀하의 예에서는 Current 명령 - Current Feedback인 시스템의 오류를 계산하려고 합니다.모든 것이 동일한 단위(암페어 단위)인지 확인하세요.그런 다음 오류가 계산된 후 명령을 사용하여 오류를 수정해야 합니다.시스템에서 이는 전압 제어 전류 소스에 대한 전압 명령입니다.PID를 사용하면 오류, 오류의 적분, 오류의 미분에 게인을 곱하고 결과를 합산하여 명령이 계산됩니다.이익은 까다로운 부분입니다.기타 까다로운 부분은 다음과 같습니다.단위가 일관되게 유지되고, 타이밍이 적절한지 확인하고, 적분/미분 계산이 올바른지 확인하세요.

시스템에는 다음과 같은 많은 장치가 있습니다.오류는 Amps이고, 명령은 Volts이며 이는 Amps로 변하며, 현재 사용은 Amps로 보고되며 Volts로 보고되며 이는 오류를 적절하게 만들기 위해 다시 암페어로 축소되어야 하는 부호 있는 또는 부호 없는 정수로 변환됩니다.많은 변수가 있으므로 각 변수에 어떤 물리적 단위가 적용되는지 추적할 수 있는지 확인하세요.

제어 알고리즘은 실시간이며 전용 속도로 실행되어야 합니다.최소한 100Hz(10ms마다 계산)를 권장합니다.전자 회로는 전자 기계 시스템과 달리 빠르게 움직입니다.최신 정보를 얻으려면 더 높은 요금이 필요할 수 있습니다.하지만 실시간으로 진행되어야 하기 때문에 일관성이 있어야 합니다.소프트웨어 타이머로는 벗어날 수 없을 수도 있습니다.

적분과 미분 계산은 까다롭지만 이를 수행할 수 있는 방법은 너무 많습니다.가장 기본적인 알고리즘은 직사각형 규칙입니다. 바보 같지만 아마도 작동할 것입니다.더 정확해야 하면 사다리꼴 규칙을 사용하세요.알고리즘을 확인해 보세요 여기.대부분의 경우 미분 제어를 사용하지 않을 것입니다. 이는 상황을 불안정하게 만드는 경향이 있으며 대부분의 시스템에서는 필요하지 않습니다.적분+비례제어로 하면 괜찮을 것 같습니다.

많은 함정이 있지만 이것이 시작되어야 합니다.제어 이론에 대한 배경 지식이 있다면 모든 것이 다시 돌아올 것입니다.프레임워크가 마련되면 비례 및 적분 이득을 조정하는 데 많은 시간을 소비하게 됩니다. 이것이 바로 작업의 핵심입니다.이것이 여전히 수학적인 내용이 너무 많은 것처럼 보인다면 죄송합니다. 이는 컨트롤만큼 간단합니다.

다른 팁

일정한 전류를 끌어오기 위해 시스템을 소프트웨어로 제어하는 ​​것은 어려울 수 있습니다.이는 현재 변경 사항에 즉각적으로 반응하고 이해하는 데 문제가 있는 피드백 루프를 실제로 구현할 수 있는 전용 하드웨어를 사용하는 것이 더 좋습니다.

소프트웨어로 이를 수행하려면 아마도 "퍼지 논리" 컨트롤러.문제는 온도를 제어하는 ​​데 사용되는 팬과 유사합니다.하나의 입력 변수(전류에 비례하는 전압)와 하나의 출력 변수(DAC에 전달되는 전압 레벨)가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top