Этюды для песочницы. Теория управления и Регуляторы

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

Коллеги, прошло два месяца как я обещал перевести  материалы одного испанского блоггера, посвященного теории управления и регуляторам в ардуино в стиле "для самых маленьких" Наконец дошли руки до перевода, ниже я буду выкладывать что получилось.

Цикл состоит из пяти или шести постов, начиная от введения и вплоть до подробного разбора ПИД регулятора, его настройки и параметров.

Перевод первой части показал, что в тексте довольно-таки "много букв" ,. Надеюсь, что такая многословность обьясняется тем, что это введение.

Приглашаю всех к свободному обсуждению как текста по сути, так и перевода. В дальнейшем, надеюсь, модераторы помогут мне исправить в тексте все найденные ошибки.

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

Содержание и ссылки на остальные части:

-- Введение в теорию управления (эта запись)
-- Регулятор "все или ничего" с гистерезисом (#3)
-- Пример кода для регулятора с гистерезисом (#4)
-- ПИД-регулятор - теория (#5)
-- Настройка коэффициентов ПИД (#6)
-- Пример реализации ПИД в коде (#7)

 

Ардуино: Введение в теорию управления
==============================

Начинаем серию статей, посвященную реализации механизмов автоматического управления на микроконтроллерах Ардуино. В этом посте мы познакомимся с тем, что такое управление, в следующем рассмотрим механизм «все или ничего» , а в последних сериях разберем работу ПИД регулятора.

Нет сомнений, что микроконтроллеры, такие как Ардуино ,  могут быть использованы в автоматических системах управления и регулирования. Но давайте для начала разберемся – Что такое регулятор? Какие бывают регуляторы? Как они устроены?

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

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

Зато мы попытаемся сделать то, что не так часто можно найти в литературе - дать интуитивное представление о теории управления в легкопонятной форме, без необходимости использовать преобразования Лапласа, Диаграммы Боде и теоремы Найквиста.

И наш первый вопрос:

Что такое управляемая система (или объект управления)
===========================================

Система - это упрощенное представление реальности, созданное нами потому, что реальность слишком сложна, чтобы работать с ней непосредственно. Обычно система представляет собой часть реальности, которую мы «мысленно изолируем» от остального мира (хотя система может быть и полностью выдуманной).

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

Система, которую мы также будем называть объектом, имеет один или несколько входов, представляющих действия, которыми мы можем воздействовать на объект. Она также имеет один или несколько выходов – параметров системы, которые можно наблюдать и измерить. В общем случае, система имеет много входов и выходов, но обычно мы упрощаем ее, оставляя лишь самые важные.

Наш объект также имеет определенное поведение. Это означает, что воздействие на входы вызывает изменение параметров на выходах. И это поведение может быть настолько сложным, насколько вы можете себе представить. Оно может быть нелинейным, иметь инерцию, даже  запаздывание (время между воздействием на входы и тем, как объект это «почувствует»), а также взаимное влияние входов друг на друга.

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

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

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

Вот как это можно представить:

Что такое регулятор?
================

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

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

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

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

Регулятор, установленный рядом с системой, будет выглядеть следующим образом.

 

Какие характеристики мы хотим на выходе?
================================

Первый и наиболее очевидный ответ состоит в том, чтобы выход имел определенное значение, которое мы будем называть целью. Например, я хочу, чтобы температура в комнате была 24ºC, машина разгонялась до 80 км / ч, или уровень воды в резервуаре был 175м.

Конечно, заданное значение не всегда должно быть фиксированным. Я могу хотеть, чтобы температура в доме составляла 17ºC ночью и 24ºC днем, чтобы автомобиль снижал скорость до 50 км / ч при проезде через переезд, или хочу спустить водохранилище до уровня 160 м, чтобы подать питьевую воду в сеть.

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

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

Например, вы можете отнестись спокойно к тому, что температура в здании иногда кратковременно поднимается до 24,5 ° C, если регулятор реагирует быстро. Но если повышение уровня воды до 180 м вызовет прорыв плотины, затопит город и погубит сотни людей и животных, вероятно вы сочтете это недопустимым и предпочтете более медленный, но безопасный регулятор.

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

Что такое замкнутый цикл?
====================

Тут самое время указать на одну очевидную вещь. Для работы регулятора он должен иметь обратную связь. Что это значит?  Если по простому, регулятор должен иметь возможность «видеть» те выходные данные, которыми он пытается управлять

Без обратной связи регулятор не является регулятором, это, скорее, «декларация благих намерений». Представьте себе, что вам нужно управлять неким  аппаратом, перемещая рычаг вправо и влево, но вы не знаете, как сказываются на его работе ваши действия. Выход один - была не была, закроем глаза, поставим рычаг посередине – и будь что будет!

Очевидно, что для контроля результата мы должны быть в состоянии его измерить. Поэтому мы берем значение регулируемого параметра и сравниваем его с заданным, чтобы увидеть насколько они отличаются . Эту разницу, называемую ошибкой, мы используем в качестве входных данных нашего регулятора. Это можно представить так:

 

Разница между измеренным и заданным значением может обьясняться тем, что нам еще не удалось довести выходное значение до заданного, или тем что мы недавно изменили нашу цель.

Эта схема кажется логичной и даже банальной. Так почему же обратной связи придается такое большое значение? Действительно ли эта линия от выхода ко входу на диаграмме так серьезно меняет поведение нашей систему? Да, это так, и в результате могут происходить многие интересные , а иногда даже ужасные вещи

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

И разница между первым результатом (триумф вашей системы регулирования) и вторым (поломка, увольнение и возможное разрушение вселенной) полностью зависит от того, какой регулятор вы разработали, разве не круто!?

Интуитивная версия регулятора
========================

Так что же такое регулятор, черт возьми? Регулятор – это вы (на самом деле наш мозг – отличный регулятор). Вы проснулись посреди пустой комнаты, перед вами стол с аналоговым рычагом, который допускает любое значение от 0 до 100, а на стене два огромных дисплея, один синий и один красный.

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

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

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

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

Не расстраивайтесь, все было бы намного хуже, если бы красный экран (измерение) был выключен. Тогда бы вы знали только о том , что от вас  хотят 24ºC, но ни о текущей температуре, ни о влиянии, которое оказывает ваш рычаг ... Но об этом мы уже говорили ранее, без обратной связи вы можете действовать только вслепую и рассчитывать на авось.

Все меняется, если включается красный экран. Теперь, по крайней мере, вы можете сравнить измеренное и заданное значение (то, что мы назвали ошибкой), и даже попытаться что-то сделать. Могли бы вы контролировать температуру с помощью этой информации? Конечно, да, и именно это называется регулятор.

В какую сторону вы собираетесь перемещать рычаг в зависимости от того, что вы видите на обоих экранах? Быстро или медленно? Это определяет программная часть регулятора, описывающая алгоритм управления рычагом при изменении значений на экранах

Какие возможные стратегии мы можем применить для разработки регулятора? Их несколько. В следующем посте мы рассмотрим один из самых простых и интуитивно понятных элементов управления – регулятор «все или ничего» с гистерезисом. Далее мы попытаемся разобрать на интуитивном уровне  ПИД-регулятор, один из наиболее часто используемых в промышленной сфере..

(с) Luis Llamas

оригинал https://www.luisllamas.es/introduccion-a-la-teoria-de-controladores-en-arduino/

 

Logik
Offline
Зарегистрирован: 05.08.2014

Букв действительно слишком много. Так к характеристическим полиномам читатель не дочитает. В конце не забудь рассказать почему кибернетика таки лженаука.

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

 Регулятор "все или ничего" с гистерезисом
==================================

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

В предыдущем посте мы рассмотрели некоторые общие понятия, узнали, что такое система автоматического управления. Мы увидели, что такое обьект и регулятор, что такое обратная связь и ее значение в поведении системы.

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

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

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

В этом посте мы рассмотрим самый простой и надежный способ управления системой - регулятором «все или ничего» и его гистерезисным вариантом.

Что такое регулятор «все или ничего»?
==============================

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

В нашем примере регулирование будет состоять из включения отопления на полную катушку, если температура опускается ниже 24º, и полного его выключения, если температура поднимется выше.

Разве что-то может быть проще? Но очевидно, эта простота имеет свою оборотную сторону. Как мы увидим ниже, регулятор «все или ничего» имеет важные ограничения, которые приводят к довольно плохому отклику.

Управление методом «все или ничего»
==============================

Представьте, что проснувшись -  вы обнаруживаете, что вместо заданных 24º температура упала до18º .  Естественно, вы включаете отопление на полную мощность. Температура повышается... 20º, 22º..., достигает 24ºC ... и вы тут же поворачиваете рычаг.

Если отклик вашей системы мгновенный,  температура немедленно начнет падать. В момент, когда она провалится до 23 999 ºC  - вы снова включите отопление полностью.  Едва температура достигнет 24.001 ºC  - вы опять дернете рычаг вниз.

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

К счастью для вас (и для вашего запястья), многие системы обладают определенной инерцией, поэтому у нас не будет бесконечно быстрых включений. Когда вы впервые достигнете 24ºC, вы отключите отопление . Но хоть вы его уже выключили, вы успели передать зданию столько энергии, что температура будет продолжать расти некоторое время.

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

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

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

Симуляция управления «все или ничего»
=============================

Проиллюстрируем вышеизложенное с помощью небольшой симуляции. На диаграмме мы можем видеть результат регулирования, примененный к системе с определенной инерцией. Заданное значение в начале установлено на 1,0, затем изменяется до 0,5 и, наконец, снова на 1,0.

Единственный параметр, который мы можем изменить, это K -  «мощность» действия, которое выполняет наш регулятор В элементе управления «все или ничего» это не параметр регулятора, а заданное свойство системы, например мощность нагревательного элемента, но в нашем симуляторе мы можем изменять его, чтобы проследить его влияние на поведение регулируемой величины.

Скриншот:


Интерактивный симулятор вы можете посмотреть на оригинальном сайте (испанский язык):
https://www.luisllamas.es/control-todo-o-nada-con-histeresis-en-arduino/(прим, переводчика)

Как мы видим, в тот момент, когда мы достигаем заданного значения, у нас происходит несколько кратковременных включений и выключений, и график контролируемой переменной становится «пилообразным». Если мощность привода (K) увеличивается относительно инерции системы, мы имеем меньшее количество переключений за счет большего отклонения от заданного значения.

Регулятор «все или ничего» с гистерезисом
===============================

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

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

Логично предположить, что, кроме плюсов, это также имеет и негативные последствия, главное из которых заключается в том, что в действительности мы больше не пытаемся в точности достичь заданной температуры, а скорее довольствуемся «более или менее» близкими к ней значениями.

Чем шире диапазон, который мы выбираем (например, мы включаем нагрев при 20 ° C и выключаем при 28 ° C), тем меньше у нас будет переключений, но тем больше размах колебаний системы (в данном примере разница температур достигнет 8 °, что довольно велико для системы кондиционирования!)

В общем случае, когда мы говорим о регуляторе «все или ничего», мы имеем в виду его вариант с гистерезисом. Регулятор  «все или ничего» без гистерезиса является его частным случаем с гистерезисом +/-0.

Симуляция регулятора «все или ничего» с гистерезисом
=======================================

Теперь мы проследим поведение регулятора «все или ничего» с гистерезисом, примененного к той же системе, как на предыдущей диаграмме. На этот раз у нас есть еще два параметра - верхний и нижний порог.

Скриншот:

Интерактивный симулятор вы можете посмотреть на оригинальном сайте (испанский язык):
https://www.luisllamas.es/control-todo-o-nada-con-histeresis-en-arduino/(прим, переводчика)

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

Когда использовать регулятор «все или ничего»?
==================================

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

Кроме того, если вы используете дискретный датчик - это единственный вариант, даже если у вас «аналоговый» (допускающий воздействие с разной интенсивностью) привод. Например, представьте, что ваш единственный измерительный инструмент - это светодиод, который включается, когда температура выше 24º, и выключается, если она ниже.

У вас нет выбора, кроме как применить «все или ничего», потому что, когда индикатор гаснет, вы не знаете, упала ли температура до 18º или до 4º И если вы ничего не знаете ни о управляемой системе, ни об окружающих условиях, любая другая стратегия будет безрассудной.

Точно так же «все или ничего» будет являться единственным методом, если у вас аналоговый датчик, но чисто цифровой привод, например кнопка вместо рычага.

Если привод позволяет, мы могли бы управлять короткими нажатиями на кнопку, чтобы отрегулировать степень воздействия (то есть применить ШИМ). Но этот случай можно считать аналоговым, а не цифровым. Однако не все цифровые приводы допускают импульсное управление.

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

Но, если у вас аналоговый датчик и аналоговый (или псевдоаналоговый)  привод, использование регулятора «все или ничего» будет означать, что вы поленились выбрать более оптимальный вариант. Хотя этот метод прост и он работает.

Реализация регулятора «все или ничего» в Arduino
====================================

Как мы уже говорили, простота - это одна из сильных сторон метода «все или ничего». Поэтому его легко реализовать программно, например на Arduino.

Фактически, выше мы уже сформулировали алгоритм управления «все или ничего». А если использовать библиотеку Arduino Threshold, сделать это еще проще.

Пример реализации регулятора «все или ничего» представлен отдельным постом

Недостатки регулятора
================

Регулятор «все или ничего» (или его вариант - регулятор «все или ничего» с гистерезисом) имеет важные недостатки и ограничения и, как правило, плохую реакцию.

Основная причина в том, что система лишена «аналогового» поведения, что выражается в отсутствии возможности модулировать выходной сигнал в зависимости от величины ошибки измеряемой величины. Например, наш регулятор применяет одно и то же действие, и когда температура отличается от заданной всего на 0,2 °, и при ошибке температуры в 12

Подведем итоги и еще раз сформулируем недостатки метода «все или ничего» с гистерезисом.

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

С другой стороны, пользуясь только этим методом управления, мы никогда не сможем точно достичь заданного значения - нам придется согласиться на то, что регулируемый параметр находится в «приемлемом диапазоне» вокруг него.

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

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

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

Представьте себе автомобиль, который стартует «в пол» до крейсерской скорости, а затем многократно снижает скорость и опять ускоряется до максимума, совершая постоянные рывки вокруг заданной скорости.

К счастью, у нас есть регуляторы лучше. Далее мы рассмотрим бесспорного короля среди них - регулятор PID.

(с) Luis Llamas

оригинал https://www.luisllamas.es/control-todo-o-nada-con-histeresis-en-arduino/

перевод с испанского b707

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

пример реализации регулятора "все или ничего" с гистерезисом для Ардуино.

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

Огромный массив в начале кода нужен для симуляции процесса измерения регулируемого параметра.

// Симуляция экспериментальных данных с датчика
int values[] = { 7729, 7330, 10075, 10998, 11502, 11781, 12413, 12530, 14070,
                13789, 18186, 14401, 16691, 16654, 17424, 21104, 17230, 20656,
                21584, 21297, 19986, 20808, 19455, 24029, 21455, 21350, 19854,
                23476, 19349, 16996, 20546, 17187, 15548, 9179, 8586, 7095, 9718,
                5148, 4047, 3873, 4398, 2989, 3848, 2916, 1142, 2427, 250, 2995,
                1918, 4297, 617, 2715, 1662, 1621, 960, 500, 2114, 2354, 2900,
                4878, 8972, 9460, 11283, 16147, 16617, 16778, 18711, 22036, 28432,
                29756, 24944, 27199, 27760, 30706, 31671, 32185, 32290, 30470, 32616,
                32075, 32210, 28822, 30823, 29632, 29157, 31585, 24133, 23245, 22516 };

size_t valuesLength = sizeof(values) / sizeof(values[0]);

// в реальном коде в эту процедуру вставить чтение значений с сенсора
int getMeasure()
{
   size_t static index = 0;
   index++;
   return values[index - 1];
}
 
bool state;
// верхняя уставка
int riseThreshold = 20000;
// нижняя уставка
int fallThreshold = 15000;

// регулятор
void calculateThreshold(int value)
{
   if (state == false && value > riseThreshold)
   {
      state = true;
      Cooling();
   }
   else if (state == true && value < fallThreshold)
   {
      state = false;
      Cooling_off();
   }
}
 
void Cooling()
{
   Serial.println("Cooling ON!");
   // включаем охлаждение
   
}
 
void Cooling_off()
{
   Serial.println("Cooling_OFF!");
   // выключаем охлаждение
}
 
 
void setup() 
{
   Serial.begin(9600);
 
   state = false;
   for (size_t index = 0; index < valuesLength; index++)
   {
      // симуляция измерения
      int rawMeasure = getMeasure();
 
      calculateThreshold(rawMeasure);
   }
}
 
void loop() { }

результат работы (для наглядности массив данных увеличен):

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

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

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

Мы лишь попытаемся дать интуитивное представление о регуляторе и общих принципах, объясняющих его работу, без использования формул и высшей математики. На самом деле, это одна из приятных особенностей ПИД - чтобы им пользоваться, вам не обязательно досконально разбираться, как он работает.

Что такое ПИД-регулятор?
==================

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

ПИД-регулятор известен давно. Он был разработан в 1911 году, а первый теоретический анализ ПИД выполнен в 1922 Николасом Минорским . В те времена ПИД-регулятор мог быть исключительно аналоговым. Несмотря на аналоговые «корни», цифровой ПИД легко реализовать программно, а требуемые вычисления просты и эффективны. Теория аналоговых ПИД так же относительно просто экстраполируется на их цифровой эквивалент.

Несмотря на его популярность, нужно отметить, что в настоящее время ПИД уже не является лучшим доступным регулятором, но в большинстве случаев его возможностей более чем достаточно. С другой стороны, многие из современных регуляторов являются улучшенными версиями классического ПИД, например, семейства регуляторов на основе ПИД с адаптивными параметрами.

Как работает ПИД?
============

Сокращение ПИД означает «пропорциональный, интегральный, дифференциальный» (производный) - по названию компонентов, составляющих алгоритм регулятора.  Математически ПИД-регулятор может быть выражен следующим уравнением:

Минуточку, минуточку! Вы же сказали без формул?! Ну да, но мы не можем обсуждать ПИД, не увидев хотя бы его базовой формулы. Я обещаю, что больше формул не будет, хорошо?

Каждый компонент ПИД «независим» от других, в том смысле, что каждый вычисляет свою часть воздействия, которое нужно приложить к обьекту, чтобы получить правильное значение регулируемого параметра.

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

Каждый компонент характеризуется своим параметром -  Kp, Ki и Kd соответственно. Эти параметры указывают вес компонента (или его силу влияния), которую он оказывает на конечный результат. Все результаты работы регулятора - стабильный отклик системы или же различные ужасы - аварии, смерть и разрушения, и даже хуже - вплоть вашего увольнения - определяются правильной настройкой этих трех параметров.

И тут появляется «забавная» часть ПИД. Если вы установите слишком низкое значение для параметра, соответствующий компонент ПИД перестанет влиять на выход. А если вы задерете его слишком высоко ... ну, это... смерть, разрушение, аварии и т. Д.

Кроме того, компоненты регулятора влияют друг на друга, поэтому недостаточно настроить каждый из параметров отдельно. У каждого параметра есть своя определенная «зона», в которой его поведение более или менее оптимально.

Очевидно, что трудность (которая, впрочем, не так велика) ПИД состоит в том, чтобы подобрать такие значения  Kp, Ki и Kd , чтобы поведение регулятора было заданным. Об этом мы расскажем в следующей части.

Объясняя ПИД
==========

 

Чтобы объяснить работу ПИД, снова используем наш пример из прошлых статей.. Вспомните, вы сидите за пультом и контролируете температуру в здании.. На стене перед вами два дисплея - один синий и один красный. А еще у вас есть рычаг:

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

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

Из плюсов - мы знаем, что у нас есть непрерывный (или полунепрерывный) вход и выход, что является обязательным условием для ПИД-регулирования. Если бы датчик или исполнительный механизм допускали бы только включение / выключение, нам пришлось бы использовать рассмотренные в предыдущей части регулятор «все или ничего» или регулятор с гистерезисом.

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

  • Пропорциональный компонент реагирует на настоящее
  • Интегральный компонент реагирует на прошлое, формируя «память» регулятора.
  • Дифференциальный компонент реагирует на будущее, давая регулятору возможность прогноза.

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

Моделирование ПИД
==============

В исходной статье по ссылке представлен симулятор ПИД-регулятора, где вы можете менять значения Kp, Ki и Kd и визуализировать влияние каждого параметра на поведение регулируемой величины.

Переместите ползунок Kp, Ki и Kd, чтобы увидеть изменения реакции регулятора.

Компоненты ПИД
============

 

Для рассмотрения отдельных компонентов мы будем использовать наш простой пример с пультом регуляции климата.. Если не указано иное, заданное значение температуры в здании (синий экран) всегда составляет 24 ° C.

Компонент П - Пропорциональный
========================

 

принцип действия

Принцип действия пропорциональной составляющей, безусловно, наиболее прост для объяснения. Если вы обнаружите, что текущая температура упала до 12ºC, кажется логичным, что вы должны переместить рычаг больше, чем если бы температура была 23ºC. Верно?

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

формулировка

Пропорциональный компонент рассчитывается как коэффициент Kp, умноженный на ошибку (разницу между заданным и фактическим значением).

поведение

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

Но если мы увеличим Kp слишком сильно, температура в здании «проскочит» заданную, начнет колебаться или даже «пойдет в разнос». Посмотрим, как это происходит.

Предположим, у нас большой Kp и вы резко реагируете на ошибку.. Поэтому, когда вы видите 18ºC, вы нажимаете на рычаг, и следующее значение - уже 25. ....«Перелет». Вы опускаете рычаг... 21, теперь «недолет». Вы поднимаете рычаг.... 23. Ну, неплохо... почти попали...

Но если сделать Kp еще больше, может случиться так, что после первого же рывка, когда вы среагировали на 18º, следующее, что вы увидите на табло, может оказаться 32ºC. Каррахо, слишком много, рычаг вниз! 14º ... ВВЕРХ!!!!!! 45º ... 8º... 56º ... «Связь с регулируемым объектом потеряна...» (смерть и разрушение ...).

Еще одна особенность заключается в том, что пропорциональная составляющая не в состоянии полностью устранить долговременную ошибку. В нашем примере предположим, что при 22ºC и заданном положении рычага энергия, которая поступает в здание, - это именно то, что нужно для поддержания температуры. Мы сделали температуру стабильной, но поскольку положение рычага определяется ошибкой (которая тоже стабилизировалась), мы никогда не сможем нагнать те 2ºC, которых нам не хватает.

Компонент И - Интегральный
====================

 

принцип действия

Принцип действия интегрального компонента, пожалуй, наиболее сложен для объяснения в рамках ПИД. Представьте, что у нас на табло 22ºC, как мы обсудили в предыдущем абзаце. Пропорциональный компонент говорит вам, куда переместить рычаг, и вы перемещаете его туда. Проходит минута, другая, третья ... температура остается 22ºC, на 2ºC ниже того, что мы хотим.

Интегральный компонент это тот, который говорит ... эй, ребята, вам как бы нужно еще немного поднять рычаг, верно? Потому что мы хорошо провели время при 22ºC, но не похоже на то, что температура собирается меняться. И этот голос с большим смыслом, который реагирует на накопление прошлой ошибки - и есть интегральный компонент.

формулировка

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

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

поведение

Интегральный компонент позволяет полностью исключить долговременную ошибку регулирования. Однако, если Ki очень мало, системе потребуется много времени для устранения ошибки.

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

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

Компонент Д - Производный
====================

 

принцип действия

Производный компонент также легко объяснить, как и пропорциональный Допустим, вы радуетесь температуре, установленной на уровне 24ºC. Все идеально! Но тут температура падает до 23ºC, затем до 22ºC, и вы немного поднимаете рычаг. Не о чем беспокоится..

Теперь давайте представим, что после 24ºC, температура внезапно снизилась до 18ºC. Каррахо, это неплохое такое падение Вы поднимаете рычаг. На табло 12ºC ... Я не знаю, открыли ли они окно или что вообще происходит, но это происходит очень быстро! Следующее значение 2ºC «Одно неосторожное движение и ты отец!»

 Производный компонент - это функция, реагирующая на изменение ошибки (причиной которого может быть как изменение фактического значения, так и уставки). Потому что внезапное падение на 20 градусов это не то же самое, как плавное снижение на 2ºC и оно требует разных действий. Таким образом, производный компонент реагирует на скорость изменения ошибки.

формулировка

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

В дискретном поле производная заменяется разностью между текущей ошибкой и предыдущей ошибкой, деленной на время выборки (это деление может включатся в коэффициент Kd, если время выборки является постоянным ).

поведение

Производный компонент улучшает общий отклик многих систем при умеренных значениях Kd. Однако, если мы выйдем за пределы оптимальных Kd, мы увидим, что в поведении регулятора появляется отсутствие «мягкости» и другие «странные» явления.

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

И, наконец, производный компонент в некоторых ситуациях «срывается» и требует очень больших действий. Представьте, например, мгновенное изменение заданного значения. Производная ошибки в такой момент равна бесконечности Производный компонент потребовал бы бесконечного действия, которое исполнительный механизм не смог бы выполнить. Результатом будут отклонения от расчетного поведения, или даже повреждение установки.

Заключение
========

 

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

Работа ПИД основывается на сумме трех его компонентов, соотношение которых управляется через константы Kp, Ki и Kd. Три константы должны быть подобраны для каждой системы, и от качества этой корректировки зависит, будет ли реакция системы хорошей, плохой или очень плохой.

Процесс подбора коэффициентов называется «настройкой» ПИД-регулятора, и в следующей серии мы обсудим различные стратегии этой настройки . До скорой встречи!

Оригинал :https://www.luisllamas.es/teoria-de-control-en-arduino-el-controlador-pid/

(с) Luis Llamas

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

Мы подошли к вопросу, который больше всего пугает многих - как подобрать коэффициенты ПИД или, иными словами. выполнить настройку регулятора.

В предыдущей части мы узнали, что отклик ПИД зависит от параметров Kp, Ki и Kd Выбор коэффициентов зависит от системы, которой мы управляем, и нет таких волшебных значений, которые подошли бы к любой ситуации.

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

Чтобы сделать ситуацию еще более сложной, коэффициенты ПИД еще и влияют друг на друга. Вклад каждого зависит от других и влияет на остальные. Поэтому мы не можем настроить параметры независимо, «один за другим».

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

Характеристика параметров PID

Вспомним, что мы установили в прошлой части

Компонент Пропорциональный

  • Небольшое значение Кp - медленная сходимость.
  • Большое значение Кp - выбросы, колебания и нестабильность
  • Не в состоянии устранить стационарную ошибку

Интегральный

  • Устраняет стационарную ошибку
  • Слишком большое Кi - колебания и нестабильность

Производный

  • Улучшает общее поведение
  • Слишком большое Kd - "странное" поведение системы, неплавный график на выходе
  • Очень чувствителен к шуму
  • Очень чувствителен к внезапным изменениям ошибки (помехи или изменение уставки)

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

  • Эффект, вызванный Кp, будет иметь ту же частоту
  • Эффект, вызванный Кi, имеет другую частоту

Настройка ПИД

Есть много способов настройки ПИД, одни эмпирические, другие теоретические. Рассмотрим некоторые.

Построение характеристики управляемой системы

Метод состоит из определения передаточной функции системы. Обычная практика заключается пошаговом изменении входных параметров и анализа изменения отклика системы..

К собранным данным далее применяются различные математические методы для аналитического расчета параметров регулятора.

Применение правил настройки

Точно так же состоит из изменения входного и измерения выходного сигнала. Далее, применяем одно из многих правил настройки (известный пример, метод Циглера-Николса)  для вычисления параметров PID.

Автотюнинг

Аналогичен предыдущему, но выполняется автоматически контроллером. ПИД-регуляторы прошли долгий путь, и на сегодняшний день у многих есть отличные алгоритмы самонастройки.

Именно эта способность к самонастройке является одной из причин коммерческого успеха ПИД-регуляторов.

Ручная настройка

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

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

Ручная регулировка ПИД

Чтобы настроить ПИД вручную, мы должны иметь возможность воздействовать на системный вход, параметры ПИД и просматривать выходной сигнал. И здесь «просмотр» не обязательно означает настройку на осциллографе. Например, в случае с двигателем мы можем «увидеть» реакцию системы, просто посмотрев, как вращается мотор (или как он звучит).

Если вы ищете примеры настройки ПИД  в Интернете, вы увидите в основном две «школы».

Порядок настройки - Пропорциональный / интегральный / производный коэффициент

  • Увеличивайте Kp до тех пор, пока в системе не возникнут автоколебания.
  • Отрегулируйте Ki, чтобы устранить постоянную ошибку
  • Увеличивайте Kd, пока график не начнет терять плавность

пример настройки - добавлено b707

Пропорциональная / производная / интегральная регулировка

  • Увеличивайте Kp до тех пор, пока в системе не возникнут автоколебания.
  • Увеличивайте Kd, пока график не начнет терять плавность
  • Отрегулируйте Ki, чтобы устранить постоянную ошибку

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

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

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

Переместите ползунок Kp, Ki и Kd, чтобы увидеть изменения реакции регулятора.

Вы можете поиграть разными способами, чтобы настроить ПИД, пока не получите адекватный ответ. (подсказка, значения Kp = 2,5, Ki = 0,02, Kd = 12 являются хорошей комбинацией)

Конечно, параметры зависят от характера отклика системы, который вам нужен. Допустимо ли превышение заданного значения в обмен на большую скорость регулирования? Или мы предпочитаем более медленную сходимость, но меньше расходов на регулировку? Это зависит от ваших критериев дизайна.

На этом мы закончили тему настройки ПИД. В следующем посте мы увидим, как реализовать ПИД-регулятор на Arduino.

Оригинал: https://www.luisllamas.es/como-ajustar-un-controlador-pid-en-arduino/

(c) Luis Llamas

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

Пришло время оставить теорию, стереть пыль с клавиатуры и попробовать реализовать ПИД-регулятор в виде кода для микроконтроллера, в нашем случае Arduino. К счастью, запрограммировать базовый ПИД довольно просто, а используя библиотеку, как мы увидим во второй части - еще проще.

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

Давайте сначала посмотрим, как реализовать ПИД-регулятор самостоятельно. На самом деле, код не слишком сложен. Предположим, что наш регулятор принимает вход контролируемой переменной на A0 и управляет системой, используя сигнал ШИМ на выводе 3.

Базовый код ПИД может быть следующим

// Определяем пины
const int PIN_INPUT = A0;
const int PIN_OUTPUT = 3;
 
// Параметры регулятора
double Kp=2, Ki=5, Kd=1;
 
//Внешние переменные регулятора
double Input, Output, Setpoint;
 
// Внутренние переменные регулятора
unsigned long currentTime, previousTime;
double elapsedTime;
double error, lastError, cumError, rateError;
 
void setup()
{
   Input = analogRead(PIN_INPUT);
   Setpoint = 100;
}    
 
void loop(){
   
   pidController.Compute();
   
   Input = analogRead(PIN_INPUT);         // читаем вход регулятора
   Output = computePID(Input);      // рассчитываем выход
   delay(100);
   analogWrite(PIN_OUTPUT, Output);         // выводим регулирующий сигнал
}
 
double computePID(double inp){     
        currentTime = millis();                               // запрашиваем текущее время
        elapsedTime = (double)(currentTime - previousTime);     // рассчитываем интервал, прошедший с прошлого шага
        
        error = Setpoint - Input;                               // определяем ошибку между входом и уставкой
        cumError += error * elapsedTime;                      // расчет интеграла ошибки
        rateError = (error - lastError) / elapsedTime;         // расчет производной ошибки
 
        double output = kp*error + ki*cumError + kd*rateError;     // расчет результата регулятора
 
        lastError = error;                                      // запоминаем текущую ошибку
        previousTime = currentTime;                             // и время для следующего шага
 
        return output;
}

Как видим, это не так уж сложно. У нас есть функция computePID (), которая выполняет всю работу. В этой функции мы вычисляем время, прошедшее между вызовами, которое нам нужно для вычисления производной и интеграла.

Затем мы сравниваем измеренную величину (вход) с заданным значением, рассчитываем ошибку и выполняем «псевдо» интегрирование и дифференцирование (их дискретный эквивалент). Собрав, наконец, все необходимые данные, мы рассчитываем ответ системы, используя формулу ПИД, и сохраняем значения для следующего цикла.

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

К счастью, у нас есть библиотека Arduino-PID, разработанная Бреттом Борегардом (Brett Beauregard). Это небольшое чудо, которое содержит много улучшений по сравнению с базовым PID, и они подробно описаны в приведенной ссылке.

Я рекомендую вам изучить документацию библиотеки, потому что она содержит обширный набор методов, связанных с ПИД.

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

#include <PID_v1.h>
 
// Определяем пины
const int PIN_INPUT = A0;
const int PIN_OUTPUT = 3;
 
// Параметры регулятора
double Kp=2, Ki=5, Kd=1;
 
// Внешние переменные регулятора
double Input, Output, Setpoint;
 
PID pidController(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
 
void setup()
{
   Input = analogRead(PIN_INPUT);
   Setpoint = 100;
   
   pidController.SetMode(AUTOMATIC);     // запускам регулятор
}
 
void loop()
{
   Input = analogRead(PIN_INPUT);
   pidController.Compute();         // расчет ПИД
   analogWrite(PIN_OUTPUT, Output);
}

Как мы увидели, добавить ПИД-регулятор в свою программу для Ардуино довольно просто. А используя такую «маленькую жемчужину», как библиотеку Arduino PID  еще проще. У нас больше нет причин отказываться от использования ПИД в своих проектах в силу его сложности или непонятности.

До скорого!

(c) Luis Llamas

Оригинал тут: https://www.luisllamas.es/como-implementar-un-controlador-pid-en-arduino/

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

bwn пишет:

Прямо сейчас, пока не разрослось, зарезервируйте 5 или сколько надо постов, вставить потом не получится и расползется по всей теме. ИМХО.

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

Но честно говоря, я не ожидал, что они окажутся такими длинными. Когда читаешь оригинал, это незаметно. Сейчас просмотрел еще, уже новым взглядом - следующая часть, про гистерезис - даже еще больше и излагает очевидные, даже банальные вещи. Поэтому что-то я думаю - а не перейти ли сразу к ПИД-регулятору, все-таки там поинтереснее. А тоя боюсь, что эту "воду" никто и читать не станет. А если оно пойдет нормально - гистерезис я потом переведу.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

b707 пишет:
... и излагает очевидные, даже банальные вещи. Поэтому что-то я думаю - а не перейти ли сразу к ПИД-регулятору, все-таки там поинтереснее. А тоя боюсь, что эту "воду" никто и читать не станет. А если оно пойдет нормально - гистерезис я потом переведу.

Дело не в том, что "букв много", а вещи банальные, а в том, что читателей мало и большинство не знает (а зачастую и не хочет знать) банальных вещей. В этой ситуации я за системность и структурность. Чтобы те, кто нашел в себе силы прочитать, пусть не учебник, а хотя бы тематический пост, смогли бы получить функционально-полную информацию.

b707 пишет:
у меня вообще была мысль в этой теме обсудить, что надо поправить, а потом сами статьи перенести в новую тему, а эту грохнуть.

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

bwn
Offline
Зарегистрирован: 25.08.2014

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

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Я тоже за изложение теории. Хотя бы на инженерном уровне. Кто не станет читать - не сможет нормально пользоваться - только копировать. Я не прошу излагать Теорию Управления, как у нас на МехМате - почти целый семестр ;)))) Но базу нужно изложить.

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

wdrakula пишет:

Я тоже за изложение теории. Хотя бы на инженерном уровне. Кто не станет читать - не сможет нормально пользоваться - только копировать. Я не прошу излагать Теорию Управления, как у нас на МехМате - почти целый семестр ;)))) Но базу нужно изложить.

Ок, Влад, тогда к тебе (и другим подготовленным читателям) нижайшая просьба :) - просмотреть первую часть на предмет явных косяков. Дело в том, что хоть я по образованию и инженер-технолог - теорию управления как отдельную дисциплину нам не читали и потому в некоторых моментах я плаваю. Отдельная просьба по терминам - хотелось бы все понятия называть в тексте терминами, принятыми для них в "русском научном" языке.

ВН
Offline
Зарегистрирован: 25.02.2016

А может таки посмотреть в суть и решить, имеет все это смысл или нет?

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

ВН пишет:

А может таки посмотреть в суть и решить, имеет все это смысл или нет?

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

А вот третья часть -"ПИД регулятор и его составляющие" - мне уже показалась довольно интересной.  А в четвертой автор обещает ни больше ни меньше  - "Методику подбора коэффициентов П, И и Д частей регулятора". Имхо, это уже может заинтересовать не только зеленых новичков.

 

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

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

На счёт терминов и общей теории предлагаю ознакомится с  http://kpolyakov.spb.ru/loadstat.php?f=/download/tau_dummy.pdf

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

nik182 пишет:

На счёт терминов и общей теории предлагаю ознакомится с  http://kpolyakov.spb.ru/loadstat.php?f=/download/tau_dummy.pdf

Посмотрел. Просто и понятно. Как раз для не математиков. Можно брать как "ликбез" - очень полезно. Одобряю.

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

nik182 пишет:

На счёт терминов и общей теории предлагаю ознакомится с  http://kpolyakov.spb.ru/loadstat.php?f=/download/tau_dummy.pdf

спасибо, полезная книжка. Но, прямо скажем, если это "для чайников" - чайникам автор явно льстит, сразу после введения в книжке просто глаза рябит от формул :)

ВН
Offline
Зарегистрирован: 25.02.2016

b707 пишет:

А вот третья часть -"ПИД регулятор и его составляющие" - мне уже показалась довольно интересной.  А в четвертой автор обещает ни больше ни меньше  - "Методику подбора коэффициентов П, И и Д частей регулятора". Имхо, это уже может заинтересовать не только зеленых новичков.

о ней и речь, и есть ли там что на счет устойчивости

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

ВН пишет:

 о ней и речь, и есть ли там что на счет устойчивости

есть, но вообще очень скромненько :(... по сравнению с болтовней в первых частях.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

nik182 пишет:

На счёт терминов и общей теории предлагаю ознакомится с  http://kpolyakov.spb.ru/loadstat.php?f=/download/tau_dummy.pdf

спасибо, полезная книжка. Но, прямо скажем, если это "для чайников" - чайникам автор явно льстит, сразу после введения в книжке просто глаза рябит от формул :)

Я видел книжки проще, но их было крайне мало, и они были выпуска начала 60-х годов. Просматривал я их в начале 80-х и по-хорошему удивлялся ясности изложения того, чем нам на лекциях просто выносили мозг. (спец. "Системы автоматического управления"). Кстати, за 5,5 лет обучения у нас слово "ПИД" не прозвучало ни разу. Только в полный рост, только хАрдКОР ("Аналитическое конструирование оптимальных регуляторов"). :))

"Беда" = "правда жизни" в том, что между общим пониманием идеи ПИД-регулирования и практическим осознанным применением ПИД-регулятора - бездна. ИМХО. Как только речь заходит об устойчивости, ЛАЧХ, ФЧХ, передаточной функции, не "в принципе", а "в кожухе", т.е. с расчетом и коррекцией по эксперименту, так всё, свистец. Фундаментальное, включая инженерное, системное образование нельзя заменить чтением "комикса". Бывают случаи, когда удаётся накрутить три ручки полуинтуитивно, не прибегая к "высоким материям", но это, скорее частный случай, исключение.

Ситуацию немного облегчают современные системы симуляции этого дела, где можно крутить ручки "по-живому" не убивая объект, но... Сделать адекватную модель, ещё того сложнее. Ну и как тут без "интегралов"?

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

Там вторая часть есть. Про случайные процессы и их влияние на моделирование регуляторов. Это уже сильно продвинутые знания, но очень полезные. Мне пришлось довольно много времени потратить на настройку ПИД регуляторов разных систем. Мой опыт в следующем. Ни разу разные автоматические процедуры не настроили ПИД близко к оптимальному состоянию. Пока не определишь постоянные времени системы, настроить ПИД не реально. Если постоянные времени системы меняются ( например количество воды в баке со стабилизацией температуры ) не плохо отслеживать эти изменения и подстраивать коэффициенты. Если постоянные времени разные для процесса набора и расхода энергии ( нагрев и остывание ) то не плохо бы следить за направлением изменения энергии и для каждого из направление применять свои коэффициенты. Можно конечно выставить что то среднее и даже будет работать, но если есть ограничения по колебаниям регулируемого параметра, то в них можно не уложиться.    

http://kpolyakov.spb.ru/download/tau2_dummy.pdf

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

nik182 пишет:

... Ни разу разные автоматические процедуры не настроили ПИД близко к оптимальному состоянию. Пока не определишь постоянные времени системы, настроить ПИД не реально. Если постоянные времени системы меняются ( например количество воды в баке со стабилизацией температуры ) не плохо отслеживать эти изменения и подстраивать коэффициенты. Если постоянные времени разные для процесса набора и расхода энергии ( нагрев и остывание ) то не плохо бы следить за направлением изменения энергии и для каждого из направление применять свои коэффициенты. Можно конечно выставить что то среднее и даже будет работать, но если есть ограничения по колебаниям регулируемого параметра, то в них можно не уложиться.    

200% А есть еще транспортное запаздывание и т.п., и т.д. И оказывается, что собственно ПИД-регулятор - это одна с гулькинносовая часть общего алгоритма регулирования, который ещё надо придумать.

sadman41
Offline
Зарегистрирован: 19.10.2016

Если мне будет позволено, то хотелось бы напомнить, что Ардуина - это тоже "не серьёзно", а "игрушечно". Однако через неё сколько народу может войти в мир микроконтроллеров (при желании)...

Так и тут - простые статьи с картинками вполне себе могут сподвигнуть кого-то начать изучать это дело на углублённом уровне. 

 

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

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

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

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:
Так и тут - простые статьи с картинками вполне себе могут сподвигнуть кого-то начать изучать это дело на углублённом уровне.

Да. Ради этого всё и затеялось. Хорошо, если так и будет. И исходный материал, и перевод нужны и вполне достойно смотрятся. Просто надо понимать, что после "комиксов" нужно переходить к изучению (образованию), а не к живому объекту. :))

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

И тут как раз основная засада. Попытка притянуть ПИД в "игрушечно" скорее всего окончится ничем. А простота алгоритма реализации подкупает. Восемь строк и ПИД в кармане! Вот только коэффициентов нет на все случаи жизни. 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

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

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

Нормальные картинки. Даже хорошие. Букварь он и должен быть букварём. Кстати, без него не получится обучиться грамоте. :))

b707 пишет:
По подбору коэффициентов там вообще, как я теперь вижу - одни общие слова, без какой-либо конкретики.

Я сначала раздражался, потом ухмылялся, потом умилялся, потом... бросил открывать главы описаний промышленных регуляторов, где давали рекомендации по настройке коэффициентов ПИД-регулирования. "Установите максимальное значение ... и снимите переходную функцию..." с парового котла. "Дебилы, ...дь!" Подбор коэффициентов - почти искусство. b707, не расстраиватесь. :))

 

sadman41
Offline
Зарегистрирован: 19.10.2016

nik182 пишет:

И тут как раз основная засада. Попытка притянуть ПИД в "игрушечно" скорее всего окончится ничем. А простота алгоритма реализации подкупает. Восемь строк и ПИД в кармане! Вот только коэффициентов нет на все случаи жизни. 

Не поверите - мне до сих пор приходится взрослым дядькам объяснять, как сделать, чтобы реле не флапало при управлении по температуре. На слово "гистерезис" они реагируют как на "сифилис".

Так что пусть уж в картинках будет.

sadman41
Offline
Зарегистрирован: 19.10.2016

b707 пишет:

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

Да я тоже уже хочу свои посты по PWM переписать. Потому что пожевал это всё и вижу, что кое-где был наивен. Но зато сам разобрался ))

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

nik182 пишет:
И тут как раз основная засада. Попытка притянуть ПИД в "игрушечно" скорее всего окончится ничем.

Да, скорее всего, что так и будет.

nik182 пишет:
А простота алгоритма реализации подкупает. Восемь строк и ПИД в кармане! Вот только коэффициентов нет на все случаи жизни.

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

nik182 пишет:
Вот только коэффициентов нет на все случаи жизни.

К сожалению, их и на один то случай приемлемо подобрать - пропотеешь, если вообще сможешь. ОЧЕНЬ сильно зависит от объекта управления.

Logik
Offline
Зарегистрирован: 05.08.2014

Duino A.R. пишет:

"Установите максимальное значение ... и снимите переходную функцию..." с парового котла. "Дебилы, ...дь!" Подбор коэффициентов - почти искусство. b707, не расстраиватесь. :))

Однозначно так! А с твердотопливного попробуйте - всю таблицу матюков вспомните ))))

Но это тока. "собственно ПИД-регулятор - это одна с гулькинносовая часть общего алгоритма регулирования"

"ИМХО. Как только речь заходит об устойчивости, ЛАЧХ, ФЧХ, передаточной функции, не "в принципе", а "в кожухе", т.е. с расчетом и коррекцией по эксперименту, так всё, свистец."

Можете без ИМХО писать. Моста между теорией и практикой нет. Профессура что мне это читала ( а специальность как быт так моя и значится "Автоматизация...") на вопрос а где взять все эти циферки для конкретной железяки начинало мяться и  тупить в стиле "Ну в НИИ нужно обратится они исследуют.."

 Именно по этому кибернетика - лженаука.

А для ПИД подобрать коэффициенты, как проявление искусства с учетом известных правил и оценок постоянной времени - единственный практически пригодный подход.

Pyotr
Offline
Зарегистрирован: 12.03.2014

Коллеги, а нет ли у кого литературки или примеров ПИД для систем с большим транспортным запаздыванием? Нужно для водяного отопления в теплице. Читал про предиктор Смитта, но как применить в коде не понял. 

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

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Pyotr пишет:

Коллеги, а нет ли у кого литературки или примеров ПИД для систем с большим транспортным запаздыванием? Нужно для водяного отопления в теплице.

Большое транспортное запаздывание - настоящий бич для ПИД-регуляторов. Мне приходилось это обходить изменением структуры системы регулирования. Пример. Проектировщик в проекте указал регулировать режим котла (теплообменника) по температуре обратки. Транспортное запаздывание минут эдак 6 ... 8. Всё, классический регулятор можно выкинуть. Теплообменник быстро регулируют по температуре воды на выходе, а вот уставку ему медленно корректируют по температуре обратки.

Теплица объемом кубометров эдак ...цать. Форточки для сброса тепла - в одном месте, нагреватели - в другом, дверь, как помеха - в третьем. Перепад температуры по высоте - ... градусов, перепад температуры из угла в угол - ... градусов. На всё это - один температурный датчик. :)) Я без иронии, не обижайтесь. Сделайте статические таблицы "положение задатчика температуры - температура". А когда расхождения задания и факта станут меньше некоторой величины, тогда можно подключить и ПИ с очень большой постоянной времени. За ночь потихоньку подтянет. :))

rkit
Offline
Зарегистрирован: 23.11.2016

Простеший вариант - установить мизерную I-составляющую. Ну и частоту работы PID уменьшить до чего-то близкого к задержке.
Регулятор медленно но верно найдет точку равновесия.

Pyotr
Offline
Зарегистрирован: 12.03.2014

Duino A.R. пишет:

Pyotr пишет:

Коллеги, а нет ли у кого литературки или примеров ПИД для систем с большим транспортным запаздыванием? Нужно для водяного отопления в теплице.

Большое транспортное запаздывание - настоящий бич для ПИД-регуляторов. Мне приходилось это обходить изменением структуры системы регулирования. Пример. Проектировщик в проекте указал регулировать режим котла (теплообменника) по температуре обратки. Транспортное запаздывание минут эдак 6 ... 8. Всё, классический регулятор можно выкинуть. Теплообменник быстро регулируют по температуре воды на выходе, а вот уставку ему медленно корректируют по температуре обратки.

Теплица объемом кубометров эдак ...цать. Форточки для сброса тепла - в одном месте, нагреватели - в другом, дверь, как помеха - в третьем. Перепад температуры по высоте - ... градусов, перепад температуры из угла в угол - ... градусов. На всё это - один температурный датчик. :)) Я без иронии, не обижайтесь. Сделайте статические таблицы "положение задатчика температуры - температура". А когда расхождения задания и факта станут меньше некоторой величины, тогда можно подключить и ПИ с очень большой постоянной времени. За ночь потихоньку подтянет. :))

Нисколько не обижаюсь. Я смотрю Вы в теме. Я тож немного в теме.(не как сделать, а что происходит с микроклиматом в теплице)

Вот прям сейчас начался мокрый снег с дождем и температура в теплице резко (менее чем за час) упала за счет охлаждения кровли с 20 до 18 С при постоянной температуре регистров. От момента вкл. котла до начала роста Т_воздуха проходит около 0.5-1 часа.

Датчик Т конечно один. Расположен в зоне растений от 40 до 170 см от пола не ближе метра от регистров, на него не дует уличный ветер и не попадает солнечный свет. Так что "среднюю по больнице" показывает.

Наверное эта тема В707 не подходит для моих обсуждений.
 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Pyotr пишет:

Наверное эта тема В707 не подходит для моих обсуждений.

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

bwn
Offline
Зарегистрирован: 25.08.2014

ВН пишет:

А может таки посмотреть в суть и решить, имеет все это смысл или нет?

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

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

bwn пишет:

А потому, лучше сделать и жалеть, чем жалеть, что не сделал. Особенно когда желание есть. 

Ок, я продолжу, только это будет получаться перерывами в 2-3 дня, потому как Гугль-то переводит быстро, а вот я за ним переписываю медленно :)

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

Добавил вторую часть

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

b707 пишет:
Добавил вторую часть

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

Выбранные Вами исходные тексты хороши тем, что автор пишет просто, но системно. ИМХО сделать одну простую СИСТЕМУ много тяжелее, чем несколько отдельных сложных объектов (написать несколько отдельных статей).

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

Duino A.R. пишет:

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

спасибо. Дальше пойдет поинтереснее :)

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Logik пишет:
Букв действительно слишком много. Так к характеристическим полиномам читатель не дочитает. В конце не забудь рассказать почему кибернетика таки лженаука.

Обсуждения в данной теме навели меня на мысль написать работу "Блеск и нищета ПИД-регуляторов". Там можно было бы показать, "откуда что есть пошло" и почему оно так часто на практике печально, и есть ли "куды бечь". Даже план прикинул. Получилось больше 2-х авторских листов = за 50 страниц машинописного текста плюс десятка полтора специально подготовленных примеров а к ним полсотни картинок. Формулы они только на лекциях хороши для создания у аудитории необходимого уровня почтения к лектору. Мне это на полгода трудов, не менее. И "чёта я очкую". Совершенно не могу оценить нужность такой работы. А "отработать" по коммерческим расценкам за свой счет и по пустым площадям... Тоже как-то не тянет. Может, лучше "пивка попить и на закат посмотреть", так и природе меньше ущерба будет?..

Хотел себя разогнать полуфилософским вступлением "Кибенематика как наука, или почём нынче продажная девка мирового империализма". Планировал начать с доказательного объяснения, "почему оно всё так тяжело идет", и что это так и должно быть. Выход, конечно, есть. Кибернетика - настоящая профессионалка. И, как любая настоящая профессионалка, стоит ну очень дорого. И фигурально, и жизненно - в дензнаках. Но опять же - букв много, трудов много, а выхлоп... "Учите существующую матчасть 5 лет и будете ощущать себя полными дураками..." Ни тебе скеча "козырного", ни коэффициентов "волшебных". И кому такое надо? Даже и не знаю...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Duino A.R. пишет:

"Кибениматика как наука ...

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

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

DetSimen пишет:
Так кинематику называют, а не кибернетику.

Кибене(и)матика = кибернетика + математика. Мне были известны целые профильные организации вполне серьёзно считавшие себя апологетами именно этой науки. :))

DetSimen пишет:
Кибернетика-то, она проста, ...

Предположу, что у Вас просто тариф в рамках "абонемента для ветеранов", с непрерывной скидкой. :)) А если затребован реальный результат "в кожухе", то мозгокрутства бывает не меряно, и стоит это не дёшево... :((

DetSimen пишет:
... а вот кинематика машин и механизмов...

Добавьте ещё и динамику этого дела, явным образом влияющую на целевую функцию управления...

"Да я вас!.. Да я вам!... Да вы у меня!... Да... ... - Ви-но-ва-ты-е мы-ы-ы... Исправимся..." :))

SLKH
Offline
Зарегистрирован: 17.08.2015

Duino A.R. пишет:

Я сначала раздражался, потом ухмылялся, потом умилялся, потом... бросил открывать главы описаний промышленных регуляторов, где давали рекомендации по настройке коэффициентов ПИД-регулирования. "Установите максимальное значение ... и снимите переходную функцию..." с парового котла. "Дебилы, ...дь!" Подбор коэффициентов - почти искусство. b707, не расстраиватесь. :))

Вот у мя примерно так и было: вот те котел (настоящий, на тонны пара со значительными сбросами/набросами нагрузки), вот те пломбированный управляющий блок с тремя классическими потенциометрами - крути, Гаврила, чтоб и пар держал, и не дымил и при этом часто сервопривод не дёргал...

А потом этот самый блок накрылся, за тысячи миль от ближайшего сервиса :-(

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

SLKH пишет:

Вот у мя примерно так и было: вот те котел (настоящий, на тонны пара со значительными сбросами/набросами нагрузки), вот те пломбированный управляющий блок с тремя классическими потенциометрами - крути, Гаврила, чтоб и пар держал, и не дымил и при этом часто сервопривод не дёргал...

Производители паровых котлов, в отличии от производителей паровых же, но турбин, ни мало не заботятся об описании своих изделий, как объектов регулирования. Серийные же изделия. Взяли бы один на заводе-изготовителе испытали и выдали рекомендуемую мат. модель своего изделия: по структуре и по параметрам. Не могут сами, и понятно, что это другие "компетенции", наняли бы специалистов на головной в серии. Или денег, или чего другого не хватает. Будет описание объекта, можно говорить об адекватной системе управления, моделировании в симуляторе, подборе параметров, анализе возможных отклонений и способах их парирования.

Ах, да, о чём это я? Вот тебе, родимый, отметка +8.100 и опломбированный ящик с тремя ручками. Дерзай!

SLKH
Offline
Зарегистрирован: 17.08.2015

Duino A.R. пишет:
Будет описание объекта, можно говорить об адекватной системе управления, моделировании в симуляторе, подборе параметров, анализе возможных отклонений и способах их парирования.

Не нужно это всё нормальному эксплуатационнику. Какие ещё симуляторы с моделированием?

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

=========

Занимательная схемотехника*: в том шкафу в логике была прикольная "поляризованная" релюшка  - при подаче напряжения на катушку геркон замыкался и оставался замкнутым после снятия напряжения. Размыкался после подачи напряжения на катушку в обратной полярности. Катушка одна, геркон один. Думал, свихнусь, пока не сообразил, в чем фокус.

 

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

SLKH пишет:

 Не нужно это всё нормальному эксплуатационнику. Какие ещё симуляторы с моделированием?

Это нужно разработчику систем управления, чтобы потом эксплуатации передавать изделие и шкаф управления с тремя кнопками: "Пуск", "Останов", "Аварийный останов". Вот чтоб никаких ПИД-(регулято)ров и прочей романтики в процессе эксплуатации. Такая романтика пусть вон в фильмах... на немецком языке. :))

 

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

Добавил части про ПИД - сообщения #5 и #6

arduino328
Offline
Зарегистрирован: 01.09.2016

А почему эта тема до сих пор не закреплена?