Подскажите пожалуйста, где можно почитать про ПИД-самонастройка с адаптацией, чтобы создать програмный код на Си для микроконтроллера.
Цитата(masterpc @ Apr 6 2007, 11:06 )
Подскажите пожалуйста, где можно почитать про ПИД-самонастройка с адаптацией, чтобы создать програмный код на Си для микроконтроллера.
Вот, хороший справочник
Взводатор
6.4.2007, 11:42
У меня есть статья "ОПТИМАЛЬНЫЕ АВТОМАТИЧЕСКИ НАСТРАИВАЮЩИЕСЯ РЕГУЛЯТОРЫ (РЕГУЛЯТОРЫ ОАНР)
http://www.greenco.orc.ru/St_01/stat_01.htm Не знаю, действующая ли сейчас ссылка.
Честно сказать - реализовать в программе такую систему не возникло желания. Может, не сильно надо.
Наверно проще с помощью фильтра определять возникновение автоколебаний и в зависимости от амплитуды снижать усиление.
С уважением Взводатор.
PS: ссылка нерабочая, прикрепляю сам
файл.
Цитата
меня есть статья
хорошая статья. просто и понятно. надо попробовать...
Спасибо большое, почитаю.
Прочитав статью ОПТИМАЛЬНЫЕ АВТОМАТИЧЕСКИ НАСТРАИВАЮЩИЕСЯ РЕГУЛЯТОРЫ
не могу понять следующее,
цитата: "Второй этап настройки - режим идентификации предназначен для оценивания параметров
модели динамического процесса и инициируется каждый раз, когда возникает необходимость в
повышении качества работы регулятора ОАНР, подачей на вход объекта ступенчатого
воздействия. Завершается второй этап после окончания переходного процесса, вызванного
ступенчатым воздействием, и фиксации характерных значений этого процесса. С помощью
найденных характерных значений вычисляются параметры n, Ти1, Tи2 и К модели объекта
управления, которая задается передаточной функцией вида W(p)=K((Tи1p+1)n(Tи2p+1))-1"
что за параметры n, Ти1, Tи2 и К? И как их вычислить?
Если есть эти параметры, то легко вычисляются коэф-ты ПИД регулятора и в дальнейшем используется стандартная формула самого регулятора. А параметры эти нужно вычислять, как я понимаю, с некоторой периодичностью которая зависит от конкретного объекта.
Помогите плиз, разобраться с этими коэффициентами, n, Ти1, Tи2 и К.
Взводатор
6.4.2007, 20:43
masterpc, посмотрите
http://home.uic.tula.ru/~sa241272/С уважением Взводатор.
Я думаю, что идея самонастраивающихся ПИДов с характерным постоянством возникает в головах тех, кто в них ничего не понимает. Для тех же, кто прекрасно понимает работу ПИД и сами процессы регулировки вплоть до технологии такие идеи даже в голову не приходят. Все дело в том, что в каждом конкретном случае понятие идеальной характеристики свое, причем далеко не всегда достижимо при тех технологических параметрах. Зачастую для достижения оптимальных характеристик регулировки приходится кое что менять в технологии или настраивать параметры системы. Например при настройке приточек важно правильно настроить байпас перед смесительным узлом. Иначе провалы и колебания неизбежны. А при отсутствии проблем с технологией опытный специалист настроит ПИД при пусконаладке минут за 10-30 в зависимости от процесса. Это творчество, и оно не подлежит автоматизации, как написание картин и стихов.
Я согласен с тем, что я особо не разбираюсь в ПИД регулировании, столкнулся только несколько месяцев назад. Здесь была моя тема "Помогите новичку разобраться с ПИДом", так вот помогли и я ОЧЕНЬ БЛАГОДАРЕН ВСЕМ КТО ПОМОГ!!! Прибор который я разработал отдали на тестирование и в результате заказчик был доволен его работой. Не нужно было ничего менять. Но то был просто ПИ-регулятор для привода заслонки или 3-х клапана.
Я программист, мне не нужно ничего настраивать, сидеть возле воздуховода часами. Это делают другие. Мне нужно прочитав теорию реализовать ее в коде для МК.
Насчет автоподстройки. Почему тогда во многих приборах реализован именно такой алгоритм? Я согласен, что идеального варианта нет, но если вы читали статью, то там написано, что первый этап ручная настройка и от того насколько точно ее произвести зависит и работа автоподстройки.
Пока зашел на сайт
http://home.uic.tula.ru/~sa241272/, скачал оттуда статьи, после выходных буду разбираться. Жаль, что нет тех о которых сказано в вышеупомянутой статье. ССылки есть, но не активные.
Цитата
Я думаю, что идея самонастраивающихся ПИДов с характерным постоянством возникает в головах тех, кто в них ничего не понимает. Для тех же, кто прекрасно понимает работу ПИД и сами процессы регулировки вплоть до технологии такие идеи даже в голову не приходят.
Ну если говорить о ТАУ, то ПИД-регулятор настраивается так сказать на управление системой, описываемой вполне конкретной передаточной функцией. Изменилась система - извольте изменить коэффициенты ПИД-регулятора. Да же в вентиляции это возможно, поэтому я бы не стал делать столь категоричных заявлений.
Взводатор
8.4.2007, 11:47
Даже настроенный регулятор иногда сваливается в атоколебания при редком стечении обстоятельств. Фиксация трехходового на некоторое время или снижение усиления подавляют колебания и дальше регулятор может работать при прежних настройках. В радиотехнике аналогом подобной системы является недовозбужденный генератор.
Я бы больше озадачивался не автонастройкой, хотя и она не помешала бы, а именно обнаружением паразитных автоколебаний и их подавлением.
С уавжением Взводатор.
из ТАУ следует, что оптимальные настройки (минимальное перерегулирование, макс.скорость установления и т.д. и т.п.), по сути, достигаются при критических парамерах регулятора.
а это означает, что шаг влево/вправо - и начинается самовозбуджение.
на мой, неискушенный в теориях, взгляд, автоподстройка здесь может оказаться весьма и весьма полезной. но дело осложняется тем, что сигналом для настройки служат колебания, а это не всегда допустимо.
вообще, тема ФАПЧ терзает умы очень давно. не всё тут просто.
чисто технически настройка регулятора - это по сути настройка режекторного фильтра, параллельного или последовательного, в цепи ООС регулятора. главная трудность для настройщика (будь-то программа или человек) в том, что физически приходится искать такие условия для собственной (читай - резонансной) частоты системы, при которой Ку регулятора = 0. причем все три (для ПИДа) параметра влияют и меняют и АЧХ и ФЧХ системы в целом.
что еще стоит сказать.
на этапе проектирования регулятора неплохо бы вводить функцию распознавания по краймере двух стадий работы регулятора:
1. разгон
2. работа на удержание
программными средствами это сделать не так и сложно, но требуется понимание технологии регулирования в каждом конкретном случае.
что это даёт. в моём случае удалось значительно минимизировать, а то и вовсе недопустить перерегулирования + сократить время установления при весьма отличных начальных условий для старта системы. другими словами - на этих двух стадиях используются два совершенно различных по структуре регулятора, это позволяет задать почти критические параметры для разгона и далеко не критические, позволяющие избежать самовозбуждения, параметры для работы на удержание.
мне кажется, что может быть очень интересным применение нечеткой логики именно для реализации алгоритма "постоянной" подстройки коэффициентов регулятора...
почитайте про пид-2 фирмы омрон и не изобретайте велосипед...
Цитата
про пид-2 фирмы омрон
а ссылку?
Цитата(Abysmo @ Apr 8 2007, 03:00 )
Ну если говорить о ТАУ, то ПИД-регулятор настраивается так сказать на управление системой, описываемой вполне конкретной передаточной функцией. Изменилась система - извольте изменить коэффициенты ПИД-регулятора. Да же в вентиляции это возможно, поэтому я бы не стал делать столь категоричных заявлений.
Чт означит изменилась система? Попробуйте описать конкретный пример, и разбирая причины, вы поймете, что проблемы изменения системы лежад за рамками ПИД. И в вентиляции особенно. Ответьте хотябы для себя, как вы настраиваете байпас с балансировочником в обвязке калорифера? Да скорее всего никак. Вот вам и изменение системы при изменении положения клапана. А какую интегральную составляющую вы закладываете, и что для вас оптимальные параметры, или какая кривая оптимальна? Ведь во всех литературах оптимальная кривая - это некий компромис между скоростью выхода на режим и точностью регулирования. В крайностях - идеальный выход на режим и идеальная точность регулирования. Т.е. в результате и не очень быстрый выход на режим, и низкая точность регулирования. Кому это надо? Не проще сделать переключение параметров, например в зависимости от величины рассогласования? При больших рассогласованиях мы делаем минимальным интегральную составляющую и больше К усиления, а при малых наоборот, Ку=1 и большую интегралку. И получаете идеальный ПИД без всяких настроек.
Но и при меняющейся системе ПИД легко сделать с переменными параметрами, но график изменения параметров задам я сам в алгоритме. Просто вместо переключения параметров я задам график изменения параметров от рассогласования. Все банально просто.
Спасибо всем, кто откликнулся помочь. Хочу напомнить, что здесь обсуждаются не методы настройки, а алгоритм ПИД-регулятора с самонастройкой. Возможно вопрос немного не для этого форума, но я не знаю програмистов микроконтроллеров, которые бы разбирались в этом вопросе. Здесь, с вашей помощью, я хочу создать оптимальный алгоритм, а на Си это все перевести - дело техники.
Методы - это и есть алгоритм. В контроллер помимо операционки загружается алгоритм. Если у вас сам ПИД уже написан, то ничего не стоит дописать то, о чем я говорил, а именно: изменение Ку и Ти в зависимости от рассогласования.
Цитата
Не проще сделать переключение параметров, например в зависимости от величины рассогласования? При больших рассогласованиях мы делаем минимальным интегральную составляющую и больше К усиления, а при малых наоборот, Ку=1 и большую интегралку.
Когда я занялся этим вопросом, у меня возник такой же вариант.
На мой взгляд, это достаточно "технолигичное" (в плане программирования) практическое приложение "витиеватых" теоретических рассуждений.
Цитата(Kass @ Apr 8 2007, 17:39 )
Цитата
Но и при меняющейся системе ПИД легко сделать с переменными параметрами, но график изменения параметров задам я сам в алгоритме. Просто вместо переключения параметров я задам график изменения параметров от рассогласования. Все банально просто.
Браво KASS! А я думал, я один такое придумал. А пробовали подобрать конкретную функцию с подходящим графиком? Что получается?
открою вам страшную тайну.

для приточки достаточно сделать следущее - хорошо и грамотно прописать зависимость температура подачи воды от температуры на улице.
при неизменных расходах по воде и воздуху никакой более регулировки не требуется.
там, где есть грамотно расчитаный ИТП и точно подобранная приточка, т.е. соотношение расход/теплообменник, привод клапана шевелится только при включении/отключении. во всех остальных случаях (если уставки, расходы и т.п. неизменны) он не шевелится вообще.
Взводатор
11.4.2007, 17:56
Так автоматика как раз и нужна тогда, когда вмешиваются посторонние силы, изменяя температуры и протоки. Если бы их не было, то и автотматизировать ничего не надо было бы

.
Kass, каким ПО Вы пользуетесь? Есть в нем возможность промоделировать процесс? Покажите, хотя бы в модели, преимущества Вашего алгоритма перед правильно настроенным регуляторм.
С уважением Взводатор.
Кузнецов Д А
11.4.2007, 21:49
2 капитан
я начинающий, знаю как это сделать но пока не пробовал, на приточке думаю не к чему это, а вот на ГВС актуально.
Самое главное, что можно отслеживать, настраивать и даже менять алгоритм лежа на диване дома.
Цитата(Взводатор @ Apr 11 2007, 18:56 )
Kass, каким ПО Вы пользуетесь? Есть в нем возможность промоделировать процесс? Покажите, хотя бы в модели, преимущества Вашего алгоритма перед правильно настроенным регуляторм.
Я как то давненько показывал пример изменения параметров ПИД-регулятора во времени на форуме "сок". Вот нашел этот пример. Рисовать сейчас новый пример в лом. С ног валюсь... Тут во времени, а в работе я частелько после разности ставлю компаратор на рассогласование. При большом рассогласовании ПИД быстрый, но не точный (но накой точность, если большое рассогласование?), а как рассогласование уменьшилось до минимума включаем медленные, но точные настройки. Работает - СУПЕР! Никакой адаптивный ПИД рядом не стоял.
Цитата
При большом рассогласовании ПИД быстрый, но не точный (но накой точность, если большое рассогласование?), а как рассогласование уменьшилось до минимума включаем медленные, но точные настройки. Работает - СУПЕР! Никакой адаптивный ПИД рядом не стоял.
угу, есть такой метод. работает, но его надо очень аккуратно настраивать, т.к. такой алгоритм очень легко может свалится в самовозбуд. вот так запросто я бы никогда не стал его рекомендовать как самое оно то что надо...
Взводатор
13.4.2007, 11:49
Как сделать переключаемые параметры я знаю. А вот как он будет работать хотя бы в модели - вот вопрос. Пример моделирования классического ПИД-а прилагаю. Покажите на этой же модели насколько лучше будет работать переключаемый ПИД. Насколько он будет устойчив при вариации параметров? Думаю, изменение уставки в 5°С - достаточно большое рассогласование?
С уважением Взводатор.
Mike Osokin
13.4.2007, 12:15
Цитата(Взводатор @ Apr 13 2007, 12:49 )
Пример моделирования классического ПИД-а прилагаю.
А в какой программе сделано моделирование?
Взводатор
13.4.2007, 12:22
Программа TAC Menta 5 пакета Vista 5. Но аналогично можно было сделать и в предыдущих версиях. Модель теплообменника взята из библиотек, которые поставляются с пакетом. Единственно, некоторые выражения преобразованы чисто математически для удобочитаемости.
С уважением Взводатор.
Цитата(LordN @ Apr 13 2007, 07:33 )
угу, есть такой метод. работает, но его надо очень аккуратно настраивать, т.к. такой алгоритм очень легко может свалится в самовозбуд.
В самовозбуд он свалиться не может, т.к. при переходе через полосу +- допустимое рассогласование от задания ПИД получает минимальный коэффициент линейной части и большое Ти как демфирующее фоздействие. Это примерно как маятник которому в нижней точке и +- 5 см от нее предстоит пройти через вязкую среду. Никаких колебаний маятника увидеть не получится.
На самом деле пример переключающегося ПИДа - это наипростейшая модель. На практике, когда имеешь дело со сложным процессом, имеющий на разных амплитудах разные характеристики и требуется довольно точное регулирование, то я использую вместо дискретных переключателей на коэффициентных входах ПИДа преобразовательные функции, которыми задаю плавное изменение коэффициентов в зависимости например от рассогласования. Преобразование может быть как по двум точкам (с ограничением и без), так и по многим точкам. Все определяется процессом. Но в результате вы получается ПИД, коэффициенты которого плавно меняются от амплитуды, или величины рассогласования. Вот тогда получается практически идеальный регулятор.
Взводатор
15.4.2007, 1:55
Держите, Kass, мое моделирование. Я не делал переключение, а к фиксированному усилению добавлял рассогласование уставки с измерением. "Это примерно как маятник которому в нижней точке и +- 5 см от нее предстоит пройти через вязкую среду." Если что не так - говорите.
Но я вижу не просто ухудшение регулятора, а те самые колебания, без которых можно и нужно обойтись.
С уважением Взводатор.
Вязкая среда - это не повышение К усиления, а наоборот его снижение к минимуму с резким увеличением Ти, и дифсоставляющая обязательно 0. Вы сделали наоборот. Скачайте бесплатно конграф, наберите с моего рисунка и запустите симуляцию. Все очевидно.
ох как не хочется спорить и объяснять грамотному человеку очевиднейшие вещи...
давайте с самого начала - что есть регулятор.
по сути - это способ решения диффуры энного порядка с запаздыванием.
из курса матана известно - дифуры бывают линейными и нелинейными.
из курса матмоделирования известно - для решения линейных дифур используются "мягкие" методы, для не линейных - "жесткие". вычислительная мощность, потребная для первых и вторых отличается на многие порядки. также известно, что "мягкий" метод примененный для "жесткой" дифуры однозначно, но непредсказуемо, ведет к самовозбуду решения, т.е. нельзя назвать точный момент времени когда это произойдёт. почему это происходит? потому что нелинейность в дифуре умеет не только нелинейно крутить фазу, но и рвать её. т.е. всё было прекрасно, опережения хватает, запас есть, но вот число приближает к некому значению - и бах, вроде бы ни с того ни с сего разворачивает фазу и система из усилителя с ООС превращается в генератор. и не всегда, но часто, такой генератор получается не просто осциллирующим, а релаксационным, т.е. на выходе не почти синус, а почти меандр.
теперь о сути темы.
любая САУ в климатике в первом приближении линейна. или покраймере её изовсех сил стараются таковой сделать.
вы же, Касс, внося ЛЮБУЮ зависимость от рассогласования умышленно делаете свою систему нелинейной. более того, вы это делаете с той же частотой и фазой с которой работает система. пока вам везет и вы ни разу не напоролись на самовозбуд. причины? могабыть софт либо сам программируемый девайс, что вы юзаете, достаточно дуракоустойчив в том смысле что способен сводить к нулю такие манипуляции за счет своей медлительности либо в нём есть встроенные функции контроля и по условию возбуда ОС тупо разрывается на какое-то время и т.п., либо вы вводя ту нелинейность настолько занижаете усиление системы в целом, что она почти не чувствует тех нелинейностей. и в первом и во втором случае, то что вы делаете - бессмысленно.
и еще раз, всем, кто пойдёт по тому же пути - это не правильно, так поступать опасно.
я понимаю, что получилось не очень убедительно, одни эмоции - но прошло уже довольно много времени...
Взводатор
15.4.2007, 11:10
"Скачайте бесплатно конграф" - не хочу: "Да, я не люблю пролетариат"(с) Ф.Ф.Преображенский.
Некогда и Ваша картинка не вдохновила на бОльшее с ним знакомство. Продемонстрируйте сами.
Вы то хоть посмотрели на блок реализации "адаптивности"? Все сделано по Вашим рекомендациям - при увеличении рассогласования между уставкой и измерением увеличивается усиление, а при снижении - снижается: SA_G = 2 + ABS(S-M). Это даже лучше, чем дискретное одномоментное переключение.
Аналогичная картина - длительный переходной процесс - наблюдается и при SA_G = 1 + ABS(S-M). При фиксированном усилении SA_G = 2 классический регулятор дает такой переходной процесс, как показано на рисунке, а при SA_G = 1 процесс без перерегулирования, апериодический.
С уважением Взводатор.
Еще раз все промоделировал. Все работает великолепно. Если не хотите установить Конграф и проверить, то дело ваше. Я никого убеждать не собираюсь. Я тоже не люблю пролетариат, но русская интелигенция для меня куда выше иностранцев.
Публикую схему и графики симуляции. На 26 секунде ступенчатое изменения задания. Реакцию ПИДа и изменение его коэффициентов видно. Правда скачок Ку мелковат из-за масштаба, но виден.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.