2009-03-23 11 views
-1

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

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

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

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

спасибо, Richard

ответ

6

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

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

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

alt text http://steves-wiki.wikispaces.com/file/view/control_diagram.jpg/64043668

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

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

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

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

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

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

+0

Хорошее резюме. Как вы сказали, хотя: сломайте термин D; вы почти никогда не используете его, кроме регуляторов температуры. –

+0

Отличный ответ !! Одна небольшая проблема, половина текста охвачена объявлениями в моем браузере. Но в противном случае большое спасибо, я смотрел на PID, но был немного потерян с терминологией, ваша диаграмма помогает много. Еще раз спасибо! – Richard

+0

О да, оборудование уже установлено. – Richard

0

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

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

+0

?! Нечеткая логика - это черное искусство с гораздо меньшей теорией, чем контуры управления. Я выполнял текущий контроль в программном обеспечении. Вы должны сделать это быстро, если хотите, чтобы полоса пропускания была приличной. но ты можешь сделать это. –

+0

Как быстро вам нужно быть? Предположим, вы берете образцы каждые 1 мс. Это означает, что вы можете правильно отображать сигналы до 1 кГц/2 = 500 Гц. Таким образом, вы не можете справиться с шипами 1 кГц, например. Программный контур управления может работать только для низкочастотных сигналов. Также Fuzzy Logic и AI поддерживаются большой теорией – kgiannakakis