Всем привет, проделал следующую работу:
1. Нашел у себя пару багов в ПИД-регуляторе (множитель для коэффициентов - Kp, Ki, Kd применялся не для всех коэффициентов), убрал всё-таки вход квантования, теперь блинк внутри. Параметр мощность - это делитель для коэффициентов, удобно пользоваться когда процесс остается тем же, а меняется только мощность нагревателя например.
2. Протестил и переделал преобразование выхода регулятора в сигнал ШИМ, действительно были постоянные импльсы. Там есть параметр минимального времени переключения, что бы реле не очень часто перещелкивалось и раньше времени не вышло из строя.
Результаты прикладываю
По идее время такта в ПИД-регуляторах влияет на вычисление дифференциальной составляющей (обычно), а это изменение величины за отрезок времени, поэтому целесообразнее привязывать его к процессу, а не к циклам контроллера.
Последний раз редактировалось stesel; 11.03.2016 в 23:58.
Разговор о конкретной реализации ПИД в среде ОЛ. Попробуйте в своём регуляторе выставить блинк так, чтобы он отрабатывал импульс и паузу за 2 цикла ПР. Работа дифференциальной составляющей сразу "сядет", потеряет эффективность. На другие составляющие не влияет, только на D. Это и к вашему регулятору относится, одна платформа и принцип реализации.
Можно конечно поставить ячейку памяти сразу после вычислителя дельтыТ, но зачем? мы здесь не квадрокоптером рулим, а тепловым процессом/давлением, и дискретность менее чем 50мс не нужна даже на имитаторе из лампочки с датчиком.
Эффективность применения D состоавляющей при отношении время блинка/такт ПР:
2:1 =50%
5:1=80%
10:1=90%
Согласен, как показывает практика, число дискретных отсчётов за время свободного колебания процесса от 1000 до 4000.поэтому целесообразнее привязывать его к процессу
Меньше получается грубо, больше- не нужно.
P.S.
stesel По АНР для ПИД у вас идеи есть? Процессы со временем свободного колебания десятки минут - часы настраивать в ручном режиме ещё та задачка...
Пока доделываю вычислитель времени колебания и его размаха.
Последний раз редактировалось Алексей Геннадьевич; 12.03.2016 в 12:22.
По поводу АНР думаю это не для ПР-ки, или это должно быть реализовано разработчиками на уровне ОС. Я не уверен, что когда-нибудь я буду использовать ПР-ку для проектов, где потребуется автонастройка ПИД.
PS: Хотя, если на днях достанется проект на 9 однотипных шкафчиков, которые разъедутся по РФ, то думаю будет смысл заморочиться, что бы не гоняться. Но опять же, не факт, что выпуск ПР200 будет налажен (а там именно ПР200 подошел бы), говорят есть проблемы с поставкой комплектующих.
Молодцы ,ребята ,полезным и конкретным делом занимаетесь .Может что пригодится - http://albalex.narod.ru/3conf09.pdf
http://cyberleninka.ru/article/n/ana...d-regulyatorov
http://www.uran.donetsk.ua/~masters/...y/article4.htm
http://yandex.ru/clck/jsredir?from=y...94026444086811
электронщик до мозга костей и не только
http://www.owen.ru/forum/showthread....l=1#post200940
Выложил блок детектора максимума/минимума/периода. Вместе с отредактированным ПИД-регулятором.
7 Ваших ПИДов в одном проекте работают нормально,+-0,1.Настраивал с 1 ПИДом в проекте, потом добавил еще 6.Связь больше не отваливается.
В моем ПР200 1 порт,ПР мастер, опрашивает МВ 110 8А. Пытался читать овен ОПС сервером с МВ - "BAD"(ну оно и логично), с ПР мастером тоже ни как.
Без второго порта ни как?
Изменяя глубину интегратора можно достичь безударного выхода на уставку.
IMG0434A.jpg
Вы свой проект выложите. И нужно уточнить детали: на форуме было сказано что ПР200 нормально работает с 12 сетевых переменных.В моем ПР200 1 порт,ПР мастер, опрашивает МВ 110 8А. Пытался читать овен ОПС сервером с МВ - "BAD"(ну оно и логично), с ПР мастером тоже ни как.
Без второго порта ни как?
Вот и нужно выяснить:
1) 12 INT и 12FLOAT - разные по размеру переменные. Так привязка к чему: к кол-ву переменных, или к количеству передаваемых байт?
2) 12 сетевых переменных на порт или 12 сетевых переменных вообще?