Вопрос чайника о PID регуляторе

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

В общих чертах разобрался с ПИД-регулированием. Но в тех статьях речь идёт о бинарном управлении нагрузкой (включение/отключение ТЭНа, включение-выключение двигателя постоянного тока и т.д.).

Самостоятельно написать библиотеку ума не хватает, но в сети множество готовых решений, например, GyverPID

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

Укажите направление, как управлять нагрузкой единицей и нулём, а числом от 0 до 100. Готовое решение не обязательно.

Благодарю.

b707
Offline
Зарегистрирован: 26.05.2017

andreykrasnodar пишет:

В общих чертах разобрался с ПИД-регулированием. Но в тех статьях речь идёт о бинарном управлении нагрузкой (включение/отключение ТЭНа, включение-выключение двигателя постоянного тока и т.д.).

что-то вы не те статьи читали. В теории как раз  говорится, что если у вас нет плавного управления ("бинарное регулирование") - то ПИД вообще не применим.

То есть в любой статье и любом примере ПИД должно быть плавное управление

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

 например, GyverPID

готовьтесь с библой от Гайвера получить кучу непоняток никакой поддержки - у него много ошибок и глюков

andreykrasnodar пишет:

У меня же задача стоит регулировать нагрузку диммером.

диммер - это Фазо Импульсная Модуляция ФИМ

обратная связь есть? Задача не простая но и не супер сложная,

andreykrasnodar пишет:

Укажите направление, как управлять нагрузкой единицей и нулём, а числом от 0 до 100.

разделите период на 100 частей и пропорционально изменяйте ФИМ, но там готовьтесь нарваться на нелинейность зависимости оборотов от этих частей фазы периода.

 

поищите что-нибудь про тиристорное  управление двигателем от стиральной машины.

b707
Offline
Зарегистрирован: 26.05.2017

Посоветую переводную статью с нашего форума

http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/etyudy-dlya-pesochnitsy-teoriya-upravleniya-i-regulyatory#comment-512054

не все гладко написано, но на мой взгляд полезно. Там и примеры есть.

 

И оттуда же - "Обязательным условием применимости ПИД-регулирования является непрерывный (аналоговый) характер входных и выходных сигналов"

А где вы в своих статьях увидали, что ПИД применяют к системам. управляемым в режиме "ВКЛ- ВЫКЛ" - я не знаю. Похоже, это были не очень правильные статьи

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

b707 пишет:

что-то вы не те статьи читали. В теории как раз  говорится, что если у вас нет плавного управления ("бинарное регулирование") - то ПИД вообще не применим.

То есть в любой статье и любом примере ПИД должно быть плавное управление

Ох, запутался. Надо будет завтра на свежую голову перечитать о PID-регуляторах, а то у меня, наверное, каша в голове. Да и существующие PID регулируют температуру бойлера через твердотельное реле - никакой плавности там нет (у реле всего 2 состояния)

b707
Offline
Зарегистрирован: 26.05.2017

andreykrasnodar пишет:

Ох, запутался. Надо будет завтра на свежую голову перечитать о PID-регуляторах, а то у меня, наверное, каша в голове. Да и существующие PID регулируют температуру бойлера через твердотельное реле - никакой плавности там нет (у реле всего 2 состояния)

если регулировать через ШИМ или ФИМ - можно и через реле получить условно-непрерывный выходной сигнал

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну какие нахрен гуверы !? Вам гитхаб забанили что ли? Чего вы всякую чепуху по помойкам собираете ?

https://github.com/br3ttb/Arduino-PID-Library

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

Попробуйте ответить на вопрос 1сек включено + 1 сек выключено это бинарное управление или шим ? А 0.000001 секунду включено + 0.000001 секунду выключено это бинарное или шим ? Все конечно условно и этот ваш термин "бинарное управление" нужно писать в кавычках ибо в разных условиях это бцдет иметь совершенно разный смысл.

Не с проста существует термин "медленный шим" , он для вас :)

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

andreykrasnodar пишет:

Укажите направление, как управлять нагрузкой единицей и нулём, а числом от 0 до 100.

разделите период на 100 частей и пропорционально изменяйте ФИМ, но там готовьтесь нарваться на нелинейность зависимости оборотов от этих частей фазы периода.

 

поищите что-нибудь про тиристорное  управление двигателем от стиральной машины.

[/quote]

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

b707 пишет:

Посоветую переводную статью с нашего форума

http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/etyudy-dlya-pesochnitsy-teoriya-upravleniya-i-regulyatory#comment-512054

не все гладко написано, но на мой взгляд полезно. Там и примеры есть.

 

И оттуда же - "Обязательным условием применимости ПИД-регулирования является непрерывный (аналоговый) характер входных и выходных сигналов"

А где вы в своих статьях увидали, что ПИД применяют к системам. управляемым в режиме "ВКЛ- ВЫКЛ" - я не знаю. Похоже, это были не очень правильные статьи

Спасибо.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

b707 пишет:

если регулировать через ШИМ или ФИМ - можно и через реле получить условно-непрерывный выходной сигнал

Это мысль. Но как это отразится на сроке жизни двигателя (двигатель с пусковым конденсатором)?

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

b707 пишет:

если регулировать через ШИМ или ФИМ - можно и через реле получить условно-непрерывный выходной сигнал

Это мысль. Но как это отразится на сроке жизни двигателя (двигатель с пусковым конденсатором)?

слыша ли про частотные преобразователи???? вот на пример веспер 

есть и китайские вполне рабочие.

перевяжите обмотки двигателя на треугольник 220В + частотник и будет вам и двигателю счастье.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

brokly пишет:

Попробуйте ответить на вопрос 1сек включено + 1 сек выключено это бинарное управление или шим ? А 0.000001 секунду включено + 0.000001 секунду выключено это бинарное или шим ? 

И там и там "условно-бинарное управление". А модулю нужно значение в процентах, т.е., "условно-аналоговое", т.е., подаём ему значение 50, он срезает 50% синусоиды, двигатель крутится медленно, что даёт возможность поддерживать низкие обороты, что в свою очередь поддерживает постоянное давление.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Гриша пишет:

 

перевяжите обмотки двигателя на треугольник 220В + частотник и будет вам и двигателю счастье.

Этот совет точно не для меня и не для других новичков.

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

 что в свою очередь поддерживает постоянное давление.

так вам насосом воды управлять? поди автономку делаете?

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

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Ребята, всем спасибо, за полчаса обсуждения накидали мне дельных советов. Всем всех благ, буду разбираться, ставить эксперименты, надеюсь, если остановлюсь на ШИМ-управлении, это не спалит двигатель, а твердотельное реле включает-отключает нагрузку в момент пересечения синусоидой нуля.

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

Гриша пишет:

перевяжите обмотки двигателя на треугольник 220В + частотник и будет вам и двигателю счастье.

Этот совет точно не для меня и не для других новичков.

двигатель вам перевяжут в любой моточной ремонтной организации (ну почти, не все мотают мелочь) - я сдавал и мне перематывали.

это решение как раз для новичков - то, что вы хотите на порядки сложнее, т.к. вы вообще не в теме.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Гриша пишет:

andreykrasnodar пишет:

 что в свою очередь поддерживает постоянное давление.

так вам насосом воды управлять? поди автономку делаете?

Поставил сам себе задачу: мне надо своими мозгами (пусть и с подсказками) дойти, а не готовое решение покупать. Нужно очень быстро регулировать давление без смены обмоток.

Я уже сделал это иным способом: двигатель включён постоянно, а сервопривод чуть приоткрывает вентиль, сбрасывая давление обратно в бак с водой, но это решение не считаю элегантным. Другое дело - регулировка оборотов.

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

Поставил сам себе задачу: мне надо своими мозгами (пусть и с подсказками) дойти, а не готовое решение покупать. Нужно очень быстро регулировать давление без смены обмоток.

 

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

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

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

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Буквально на той неделе мне в голову пришла мысль пропорционального управления ТЭНом, при котором коммутация отключается вблизи целевого значения (за 50%, за 25%, за 12.5%, за 6.25% и т.д.), а дальше инерция делает своё дело, думаю применить этот же метод, только не отключать коммутацию, а подавать на модуль диммера уменьшенное значение.

nik182
Offline
Зарегистрирован: 04.05.2015

brokly пишет:
... То что медленно для человека быстро для улитки, а то что для человека быстро для мухи медленно. ...

Есть такой параметр - постоянная времени системы тау. Всё что в е раз быстрее - для системы быстро. Соответственно с медленно. То сюда и надо брать минимальный период ШИМ, что бы иметь теоретическую возможность применить ПИД. Реальность как всегда грубее. Что бы нормально настроить, минимальный период ШИМ должен быть раз в 10 меньше тау. Поэтому для нагрева воды и нагрева воздуха минимальна частота ШИМ будет разная. 

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

Буквально на той неделе мне в голову пришла мысль

на форуме есть очень интересная тема - найдите время ее прочитать "не по диагонали" а вдумчиво. 

ну хотя бы  100 первых постов - для общего развития, там ооочень много полезной информации среди мусора - вам будет полезно, ну и улыбнетесь :))))

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Гриша пишет:

andreykrasnodar пишет:

Буквально на той неделе мне в голову пришла мысль

на форуме есть очень интересная тема - найдите время ее прочитать "не по диагонали" а вдумчиво. 

ну хотя бы  100 первых постов - для общего развития, там ооочень много полезной информации среди мусора - вам будет полезно, ну и улыбнетесь :))))

А к чему это? Моя система нагрева как минимум на порядок менее точная, чем запросы автора.

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

А к чему это? Моя система нагрева как минимум на порядок менее точная, чем запросы автора.

я и говорю, вникнуть и посмеяться, но там есть замечательная строчка у автора, одна из:

Aleksandr1968 пишет:

 В режиме ПИД греть неэффективно, долго. Поэтому сначала грею на полную.

Гриша
Offline
Зарегистрирован: 27.04.2014

и вопрос

andreykrasnodar пишет:

 Но как это отразится на сроке жизни двигателя (двигатель с пусковым конденсатором)?

вы уверены, что там пусковой конденсатор, а не рабочий? или там 2 конденсатора пускавой и рабочий? или там 2 обмотки пусковая и рабочая (как в холодильнике)

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Гриша пишет:

и вопрос

andreykrasnodar пишет:

 Но как это отразится на сроке жизни двигателя (двигатель с пусковым конденсатором)?

вы уверены, что там пусковой конденсатор, а не рабочий? или там 2 конденсатора пускавой и рабочий? или там 2 обмотки пусковая и рабочая (как в холодильнике)

Не уверен, конечно, но в среде использующих этот мотор конденсатор на нём принято называть пусковым.

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

Не уверен, конечно, но в среде использующих этот мотор конденсатор на нём принято называть пусковым.

1) вариантов управления 2 ФИМ и ШИМ

2) рекомендую использовать ШИМ с детектором 0 т.к. в системе есть конденсатор - это уменьшит реактивку

по данной теме была аналогичная задача недавно, прочитайте эту тему

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

а пусковым его ошибочно называют, так как он без него не запускается :)))))))))

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

UPD

если бы все было так просто, не появились бы ни частотные преобразователи, ни коллекторные двигатели как на стиральных машинах.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Гриша пишет:

andreykrasnodar пишет:

Не уверен, конечно, но в среде использующих этот мотор конденсатор на нём принято называть пусковым.

1) вариантов управления 2 ФИМ и ШИМ

2) рекомендую использовать ШИМ с детектором 0 т.к. в системе есть конденсатор - это уменьшит реактивку

по данной теме была аналогичная задача недавно, прочитайте эту тему

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

а пусковым его ошибочно называют, так как он без него не запускается :)))))))))

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

UPD

если бы все было так просто, не появились бы ни частотные преобразователи, ни коллекторные двигатели как на стиральных машинах.

Моя тема. В итоге стал управлять вибронасосом обычным включением/отключением на короткий промежуток (как на картинке ниже).

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

PID регулирование, как впрочем и любое регулирование, требует ОДНОЗНАЧНОЙ обратной связи и одинаковых временных промежутков измерений. На Вашем месте я бы сосредоточился на выполнении этих задач. И выбрал бы пока только P (пропорциональное) управление из всего PID. Оно проще программируется и отслеживается. Если процессы будут не очень быстрые - этого хватит, нет - добавите интегральную и дифференциальную составляющие. Но выполнение первых двух требований необходимо для управления.  

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

mykaida пишет:

PID регулирование, как впрочем и любое регулирование, требует ОДНОЗНАЧНОЙ обратной связи и одинаковых временных промежутков измерений. На Вашем месте я бы сосредоточился на выполнении этих задач. И выбрал бы пока только P (пропорциональное) управление из всего PID. Оно проще программируется и отслеживается. Если процессы будут не очень быстрые - этого хватит, нет - добавите интегральную и дифференциальную составляющие. Но выполнение первых двух требований необходимо для управления.  

Обратная связь, конечно, есть - это манометр (иначе - тензодатчик давления).

Да, надо собрать П-регулятор и посмотреть, а может, оно и так будет нормально работать, тем более, с гидросистемой отклик почти мгновенный.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Гриша пишет:

andreykrasnodar пишет:

Не уверен, конечно, но в среде использующих этот мотор конденсатор на нём принято называть пусковым.

1) вариантов управления 2 ФИМ и ШИМ

2) рекомендую использовать ШИМ с детектором 0 т.к. в системе есть конденсатор - это уменьшит реактивку

по данной теме была аналогичная задача недавно, прочитайте эту тему

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

а пусковым его ошибочно называют, так как он без него не запускается :)))))))))

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

UPD

если бы все было так просто, не появились бы ни частотные преобразователи, ни коллекторные двигатели как на стиральных машинах.

Наступили выходные, и я решил вернуться к своему проекту. Как всегда теория и практика диаметрально противоположны и обрыв синусоиды менее чем на 0.5 сек, скажем, на 100мс, приводит к дёрганью двигателя и работе при низкой нагрузке, когда нагрузка возрастает, обрыв синусоиды на 0.1с и новый пуск приводит к заклиниванию двигателя.

То есть, этот вариант применим к упомянутой вами теме http://arduino.ru/forum/programmirovanie/dimmer-peremennogo-toka-ac-dimmer-rbddimmer , к вентилятору или электрическому точилу с большим маховиком, но никак не применим к вопросу регулирования оборотов, когда двигатель останавливается как только выключаешь питание.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

с PID всегда так, как только слышишь это слово чувствуется какая-то недосказанность )))

Morroc
Offline
Зарегистрирован: 24.10.2016

Ну с двигателями так, обычно их таки ШИМят относительно высокой частотой. Не знаю как правильно "обрывать синусоиду" в данном случае, но 0.1 и 0.5с грубовато выглядит.

Гриша
Offline
Зарегистрирован: 27.04.2014

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

 

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Зато получил опыт. И он показал, что моя система имеет право на жизнь с другим двигателем и только с P-регулятором, I и D составляющие не нужны (время отклика - мгновенное), а диммировать моим способом однофазный асинхронный двигатель можно только без нагрузки.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Гриша пишет:

andreykrasnodar пишет:

 что в свою очередь поддерживает постоянное давление.

так вам насосом воды управлять? поди автономку делаете?

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

Вы пишете про готовое решение. Ок, перемотать двигатель под 3 фазы - это не проблема, а лишь затраты, сделаю.

А как быть с частотником? Есть ли что-то готовое, генерирующее 3 фазы и частоту от 10 до 50 Гц?

Morroc
Offline
Зарегистрирован: 24.10.2016

Под готовым вы имеете в виду на ардуино ? Что то попадается "arduino variable frequency inverter three phase"

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Morroc пишет:

Под готовым вы имеете в виду на ардуино ? Что то попадается "arduino variable frequency inverter three phase"

Код - это другое. Я сейчас об электронике.

Гриша
Offline
Зарегистрирован: 27.04.2014

andreykrasnodar пишет:

А как быть с частотником? Есть ли что-то готовое, генерирующее 3 фазы и частоту от 10 до 50 Гц?

 я себе покупал в китае - это если подешевле. ВЕСПЕР - E5-8200, ставил другую линейку, впечатления самые хорошие.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Спасибо.