Pull to refresh

Comments 71

  • Графики нечитаемые.
  • Так где ПИД на нечеткой логике? Я вроде как только обыкновенный в статье вижу.
  • В качестве среды моделирования желательно применять что-то более распространенное — например Матлаб/Симулинк. Так хоть повторить что-то можно. А что у вас используется?
  • Архив моделей загрузить не могу.
Форматирование поправил. Загрузку моделей проверил. И на маке и на винде работает. Е

Ого! Статья в пять раз больше стала. Но текст на графиках все равно нечитаем

Поправлю позде но пока пояснение:
Красное — воздествие, зеленое — расхождение!
Ошибка форматирования прошу прощения.
Да. Покрупней бы.
А можно немного статей по основам ТАУ? Ну позязя!

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

Хочется ТАУ для погроммистов.
Из конкретных задач — управление отоплением:
Задана: желаемая температура в помещении.
Могу измерять: температура в помещении, температура на входе и выходе батареи.
Могу управлять: клапаном на батарее.

Сейчас реализовано на 2 ПИД-регуляторах по температуре в помещении и выходе батареи, но очень медленная реакция на например заход солнца. Так ещё и котёл зараза умный, с ПЗА.
В закладки положил, но с реализацией используемых алгоритм наверное тоже будет беда.
На самом деле есть генерация кода Си готового к укладке в контроллер. Если Расбери Пи то все сложится из коробки, по одной кнопке. Если другой, то нужно руками доработать.
Ставить Малину на каждое исполнительное устройство — это всё-же перебор. Будь там что-что вроде ESP32.
Мы привыкли что все алгоритмы на процессоре (одна плата малины) на исполнительные механизмы отправляем только результат работы алгоритма. Поверни свой регулятор на столько-то градусов.

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


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

А у вас какой бэкграунд в ТАУ?

Где-то такое слово слышал. (;

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

А можно по шагам? Лучше в варианте с чёрным ящиком.

Вообще работ по управлению температурой в одной комнате достаточно много.

Там если и доходит до примеров, то вида берём библиотеку на питоне…
А что за алгоритмы в библиотеке и как их запихнуть в микроконтроллер с килобайтом оперативки — тишина.

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

Это наверное для котлов, включил горелку, потом выключил. У клапанов аналоговое управление и включать на всю черевато, вода шумит.

Аналоговое управление как раз и может повернуть клапан на необходимую величину, если брать в расчет токовую петлю. Если брать в понимания аналога, как не цифрового сигнала, то эти же сигналы по току или напряжению позволят приоткрыть клапан на нужную величину. Если Вы хотите сделать отопление от сезонного восприятия — то тогда в управляющей модели Вам нужна будет нечеткая логика. Основы ТАУ в любом случае приходят к математическому пониманию процесса и его прикладной задачи.

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

Мне кажется, что это достаточно категоричное утверждение. Почему "нужна будет"?

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

Посмотрите, например, сюда и другие статьи этого автора. Там про идентификацию.

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

У Вас ШИМ, как я понимаю?

нет, аналог. Операционник + полевик или биполярник. Линейный регулятор, только управляемый и с требованием максимального быстродействия.
Для таких вещей вместо цепочек фильтров применяют транзисторную схему организации обратной связи. Она позволяет произвести более точные преобразования не нарушая фазировку сигнала при преобразованиях.
В указанной частности посмотрите в сторону оптронных транзисторов Toshiba (готовые решения) или их аналогов.
опторазвязка в данной задаче не нужна. А любой, даже самый быстрый транзистор ухудшает запас фазы. Входной каскад правда буферизовать/усиливать не пробовали, но на выходе операционника буфер на комплиментарной паре, самый быстрый что нашли не дал плюсов

Я, к сожалению, полный профан в аналоговой и цифровой электронике. Чтобы я мог сказать что-то содержательное, задачу надо перевести в поле ТАУ, то есть в переписать в виде какой-то пригодной модели. Но вам, как я вижу, уже ответили ниже. Надеюсь, что поможет.

С картинками беда-беда, я даже на 27" ничего толком не вижу…
Было бы здорово, если примерно расписали, как получили передаточную функцию. Хотя, может это и не тема статьи.
Кстати, это где такие курсовики задают — тема достаточно интересная.

Не очень хорошо называть это передаточной функцией. Аппарат ПФ используется для стационарных систем и, как правило, не используется для time-varying. То, что написано в статье, это некоторый жаргонизм.

На сколько мне известно, это не курсовик, а продвижение программы SimInTech — российского аналога mathlab. И соответственно показ возможностей программы.
На счет передаточной функции, кроме того, что написал Arastas, если система дискретная, то передаточной функцией это тоже не корректно называть. Необходимо использовать не передаточную функцию, а ее дискретный аналог…
И еще одна ошибочка в начале статьи: написано, что Т — коэффициент демпфирования, а дзета — постоянная времени. =(
Я не слильно разбираюсь в терминологии поэтому использовал термины из книги В.В. Гостева, там он так и пишет передаточная функция ракеты, у которой (функции) во времени меняются параметры.
Дискретный здесь только регулятор, если его убрать, то функция непрерывная.

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

Спасибо! Теперь понятно, сформулирую и добавлю в начале пояснения…
продвижение программы SimInTech

Так это ж здорово!
Я в свою бытность дипломный проект на студенческой VisSim делал.
после блока правил на логических элементах мы имеем дискретную величину ( увеличиваем, норма, уменьшаем) как дальше эта величина преобразуется в числовое управляющиее воздействие?
Нет после блоков логических мы получаем не дискретную величину, а набор действительных чисел, для каждого терма от 0 до 1 (уменьшать, норма, увеличивать). Пример в тексте «уменьшаем — 0.3; норма — 0.6; увеличиваем — 0.8». Далее у нас есть заданный диапазон регулирующего воздействия (тексте -30, 30), мы задаем:
Если результа (уменьшать — 1, норма — 0, увеличивать -0) значит воздействие — 30.
Если результат (уменьшать — 0, норма — 1, увеличивать -0) занчит воздействие 0.
Если результат (уменьшать — 0, норма — 0, увеличивать -1) занчит воздействие 30.
Во время расчета эти результатв болтаются от 0 до 1 на каждом шаге расчета.
Диапазоне регулирующего воздействия -30..30 результирующие воздействие = 4.1.

Тут правильнее уточнить — входной сигнал непрерывный по времени (состояние реле, токовой петли, напряжения) в тау является аналоговым, сигнал продискретизированный по определенной частоте (пропущенный через АЦП с преобразованием Лапласа) считается дискретным, далее после всех логических преобразований выходной дискретный сигнал через ЦАП преобразовывается в аналог.

А пробовали скорректировать параметры ПИД регулятора? Судя по графику установлен слишком низкий множитель дифференциальной компоненты.
Можно, но итерес был в том, что бы сравнить автоматических подбор коэфициентов для ПИД, методом параметрической оптимизации, с таким же методом оптимизации для контроллера на базе нечеткой логики.
Чем вызвано непостоянство во времени параметров объекта?
Это ракета, во время полета, она сжигает топливо. И одно и тоже отклоенние руля, на начальном и конечном участки пути вызывает разное изменение угла атаки.
Получается, система нелинейна. И обычный регулятор не сможет обеспечить необходимое качество управления на всем протяжении полета. Можно попробовать применить адаптивное управление и подстраивать параметры регулятора в процессе.
Еще интересно было бы посмотреть на результаты, полученные для рассчитанного классическим методом регулятора. По средним значениям параметров объекта.
Именно в этом и смысл, поэтому я проверял потом на ступенькой. Методы оптимизации по процессу, подгоняют коэфициенты для минимзации срденеквадратичного отклоения, но только в заданном процессе. Кстати матлабовские методы дают другие коэфиценты настройки: Kp = 1.587, Ki = 37.0798, Kd = 6.791. Но максимальное отклонение ПИД с такими коэфициента больше — 0.025.
Да что-то результаты ПИД-регулятора на ступенчатое воздействие уж очень подкачали. Интересно, это действительно из-за непостоянства самого объекта или из-за не оптимальной настройки… А если принять объект с постоянными параметрами (считаем что ракета не сжигает топливо) и выполнить настройку регулятора и моделирование. Можно такой эксперимент провести?
Получается, система нелинейна.

Почему? Судя по формулам, линейна, просто с переменными параметрами. LTV, Linear Time-Varying system.

Насколько я помню, непостоянство параметров системы и определяет ее нелинейность.
А, точно. Вы правы, эта линейная система с переменными параметрами.
При значения ПИД Kp = 1.587, Ki = 37.0798, Kd = 6.791. Результат управления такой: <img src="" alt=«image»/>
Это с постоянными параметрами?
Можно взглянуть на реакцию на ступенчатое задание?
со ступенькой тоже хуже для переменных параметров с коэфициентами из матлаба получается так:
Нет, я имел ввиду задать параметры постоянными и провести синтез регулятора для такой системы. И потом посмотреть на ступеньку.
еДелаю коэфициенты постоянными и оптимизирую регулятор:[Информация]: «Оптимизированные параметры = [1, 5.7140452, 10.42809], критерии оптимизации = [0.0062045026]» в объекте Macro3.OptimizeBlock4. Результат процесса такой:
Супенька для ПИД оптимизированного на процесс с постоянной передаточной функцией:
Судя по результатам, изначальная настройка регулятора неоптимальна. Дело в том, что сравнить два разных регулятора и сделать выводы из этого сравнения можно, если выжать из регуляторов максимум. Здесь же ПИД-регулятор, можно сказать, не работает. Какие критерии качества задавали?
Как это не работает? Как раз он отлично работает и ведет ракету по процессу с постоянно уменьшающимися отклонениями от 0.015 до 0.005 в конце процесса. Сравнение такое берем процесс и настриваем два регулятора, одинаковой математикой, методом оптимизацией, на данный процесс — они работают практически идентично. Потом с этим же настройками даем даем дургой процесс.
Судя по рис. 13а и рис. 13б настройка ПИД-регулятора выполнена неоптимально. Я потому и спросил, какие критерии качества переходного процесса задавались?
У меня недавно была похожая задача, только там не ракета, а просто эл. двигатель с нагрузкой. Но тип объекта такой же, как и у вас — колебательное звено второго порядка. Только другие параметры и нет рулевого механизма. Сначала моделирую реакцию системы на ступеньку вообще без настройки. Получаю такие результаты:
image
Потом делаю замкнутую систему и рассчитываю ПИД-регулятор. Повторяю моделирование:
image
Или укрупненно:
image

У автора объект — звено второго порядка (с преременными параметрами) плюс интегратор. А у Вас, судя по граифкам, без интегратора (вы скоростью управляете?).
Кстати, а что значит subject на графиках?

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

Для русского "объект" стандартным переводом будет "plant".

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

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

Кажется, что для полноты картины стоит задать следующие вопросы:
1) Разве у нечёткой логики будет астатизм по возмущению? У ПИД будет, там для этого И составляющая.
2) ПИД использует только дискретную оценку скорости, а для фази нужна еще и оценка ускорения. Пытаться оценивать ускорение по первым разностям на практике так себе удовольствие, квантование, сэмплинг и шумы измерений существенно портят оценку.
3) Если уж мы предполагаем, что есть измерения скорости и ускорения, то стоит сравнивать не с ПИД, а с ЛКР по полному состоянию.
В целом, это слегка похоже на сравнение с заведомо заданным желаемым результатом.


PS: Я не против фази, это достойный инструмент ТАУ.

Регулятор ПДД, который использует вторую производную дает такую картину после настройки:
Сравнение с ПИД выбрано потому что было в оригинальном тексте. Мне просто интересно было можно ли подбирать параметры одинаковыми методами, для ПИД и Нечеткой логики, оказалось можно.
Но для чистоты эксперемента, там разобран вариант когда Фаззи знает только про положение и скорость (без ускорения) на рисунке 18 приведен, получается похоже на ПИД.
Благодарю за статью. Я точно знал, что так делать можно, но не понимал как. Теперь принцип стал понятнее.
Sign up to leave a comment.

Articles