Простые ресурсы для управления обратной связью / примеры

StackOverflow https://stackoverflow.com/questions/673295

  •  21-08-2019
  •  | 
  •  

Вопрос

Я хочу реализовать, как мне кажется, довольно стандартный цикл обратной связи, однако прошло много лет с тех пор, как я изучал теорию управления, и у меня возникают проблемы с пониманием концепций и поиском примеров реализации.Я надеялся, что кто-нибудь сможет простыми словами объяснить, что происходит, и, возможно, указать на некоторые ресурсы, которые я мог бы использовать для реализации решения.Вся информация, которую я видел по этой теме, обычно тонет в математике.

Итак, вот чего я пытаюсь достичь:

  • Я хочу контролировать ток электронной схемы, скажем, я всегда хочу, чтобы она потребляла 0,75 А.
  • Ток, конечно, меняется со временем в зависимости от того, что делают другие части цепи.Но у меня есть кое-какое оборудование, которое потребляет больший или меньший ток в зависимости от уровня напряжения, который я передаю на ЦАП.
  • У меня также есть АЦП, который выдает мне напряжение, пропорциональное току, потребляемому системой.

Мне нужно обрабатывать нарастание, а также колебания в пределах некоторых пороговых значений.Кроме того, я работаю в C.

спасибо, Ричард

Это было полезно?

Решение

Итак, если я вас правильно понял, все аппаратное обеспечение уже готово?

Итак, ваша система имеет командный ввод, который представляет собой уровень тока в амперах (заданный, скажем, числом с плавающей запятой двойной точности в программном обеспечении), а выход контроллера - это напряжение, которое управляет оборудованием, потребляющим ток, ваша установка - это схема, а обратная связь, вероятно, представляет собой 8, 10 или 16-битное число - либо со знаком, либо без знака, в зависимости от вашего A / D.

Итак, ваша система выглядит следующим образом:

альтернативный текст http://steves-wiki .wikispaces.com/file/view/control_diagram.jpg/64043668

Вероятно, ваш самый быстрый и грязный подход - это ПИД-контроль.Вы можете освежить основы с помощью эта статья в Википедии и в этом есть несколько намеков на реализацию embedded.com статья.

В двух словах, вы хотите вычислить ошибку системы, которая в вашем примере является текущей командой - Текущей обратной связью.Убедитесь, что все в одинаковых единицах измерения, надеюсь, в Амперах.Затем, после того как ваша ошибка будет вычислена, вы должны исправить ее с помощью команды.В вашей системе это команда подачи напряжения на ваш источник тока с регулируемым напряжением.С помощью PID команда вычисляется путем умножения ошибки, интеграла от ошибки и производной от ошибки на коэффициенты усиления и суммирования результата.Выигрыш - это самая сложная часть.ДРУГИМИ сложными частями являются:убедитесь, что ваши единицы измерения согласованы, что время выбрано правильно, а также что произведено правильное интегрирование / производный расчет.

В вашей системе у вас есть много единиц измерения:ошибка - это амперы, команда - Вольты, которые преобразуются в амперы, затем текущее использование - это амперы, которые отображаются как вольты, которые преобразуются либо в целое число со знаком, либо без знака, которое должно быть уменьшено обратно в Амперы, чтобы исправить ошибку.У вас будет множество переменных, убедитесь, что вы можете отслеживать, какая физическая единица применяется к каждой из них.

Алгоритм управления работает в режиме реального времени и должен выполняться с определенной скоростью.Я бы рекомендовал частоту не менее 100 Гц (вычисления каждые 10 мс).Электронные схемы работают быстро - в отличие от электромеханических систем.Возможно, вам понадобится более высокая ставка, чтобы оставаться в курсе событий.Но это должно быть сложно в реальном времени - это значит быть последовательным.Возможно, вам даже не удастся обойтись без программных таймеров.

Вычисления интегрирования и производных - сложная задача, но способов ее выполнения не так уж много.Самый простой алгоритм - это правило прямоугольника - оно глупое, но, вероятно, сработает.Если вам нужно быть более точным, используйте трапециевидное правило.Ознакомьтесь с алгоритмами здесь.Скорее всего, вы не будете использовать производный контроль - он, как правило, делает работу нестабильной и не нужен в большинстве систем.Вас должно устраивать интегральное + пропорциональное управление.

Есть много подводных камней, но это должно помочь вам начать.Если у вас есть опыт работы в теории управления, то все это должно к вам вернуться.Как только система будет внедрена, вы потратите много времени на настройку пропорционального и интегрального коэффициента усиления - в этом суть работы.Если это все еще кажется вам чересчур математичным, что ж, извините - это примерно так же просто, как и для элементов управления.

Другие советы

Было бы трудно программно управлять вашей системой для получения постоянного тока.Это лучше делать с помощью специального оборудования, которое может немедленно реагировать на текущие изменения и фактически реализовывать цикл обратной связи, с пониманием которого у вас возникли проблемы.

Если вы хотите сделать это с помощью программного обеспечения, то вам, вероятно, необходимо реализовать какую-то форму "нечеткая логика- контролер.Ваша проблема аналогична вентилятору, используемому для контроля температуры.У вас есть одна входная переменная (напряжение, пропорциональное току) и одна выходная переменная (уровень напряжения, передаваемый на ЦАП).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top