Простые ресурсы / примеры управления обратной связью - PullRequest
0 голосов
/ 23 марта 2009

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

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 23 марта 2009

Хорошо, так что, если я вас понимаю, все оборудование уже сделано?

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

Итак, ваша система выглядит так:

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

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

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

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

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

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

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

0 голосов
/ 23 марта 2009

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

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

...