Комментарии 42
Если вдруг интересно:)
Картинки не увеличиваются.
Можете про модель объекта подробнее растолковать? Как она там вычисляется? Мне не охота файл качать.
Увеличим K и/или Kp — теперь «мощности» хватило, но без интегральной составляющей возникли высокочастотные колебания.
Чую если уменьшить шаг решения по времени — в/ч колебания уйдут.
Шаг решения, кстати, иногда нельзя так просто уменьшить. Недавно сталкивался с проблемой, когда минимальный шаг ограничивался самим датчиком. С какой частотой данные выдаёт, с такой и приходилось считать.
Шаг решения, кстати, иногда нельзя так просто уменьшить. Недавно сталкивался с проблемой, когда минимальный шаг ограничивался самим датчиком. С какой частотой данные выдаёт, с такой и приходилось считать.
Речь идет о шаге решения в данной математической модели. Тут он — 1 секунда, и получаемые в/ч колебания являются следствием того что за один шаг состояние объекта — температура получает слишком большое приращение, в итоге модель ведет себя не совсем корректно.
И я про то же. У нас в своё время был датчик GPS, к которому мы попробовали прикрутить ПИД-регулятор (тогда нам это казалось хорошей идеей) и у него частота выдачи данных по умолчанию была 1с (которую, правда, можно было уменьшить аж до 0.1).
Я к тому, что в некоторых случаях шаг в 1с для математической модели может действительно соответствовать правде и уменьшать его может быть некорректно.
Upd. А, кажется понял о чём вы. Ну, работа над корректностью модели — это всегда приключение, особенно если модель самопальная.
Под шагом решения я подразумеваю период с которым в мат. модели обсчитывается состояние объекта.
А вот частота дискретизации — то есть 1с опроса датчика — это уже ваша проблема, которую нужно решать вам. Мир она не заботит — температура за одну секунду уйдет на свои градусы независимо от того, насколько часто вы ее будете измерять.
Получение устройств на таком принципе тоже является целью моделирования. Как наиболее известный пример — управление асинхронными моторами без датчиков обратной связи.
а условная единица времени.
Тут важнее соотношение постоянной времени объекта*коэф. передачи к шагу интегрирования.
процессы нагрева весьма инерционные.
угу, постоянные времени в несколько сотен секунд для них обычное дело, но это не значит что шаг решения можно брать таким же.
Кстати о том что смутило в в/ч колебаниях.
У Вас линейная система, в том плане что ПИД регулятор + объект управления — образуют систему диффуров с постоянными коэффициентами, а решение этой системы всегда есть сумма экспонент, т.е. в лучшем случае на выходе будут гармонические колебания, а тут мягко говоря график на синус совсем не похож, из чего возникает подозрение на слишком большой шаг интегрирования.
1) Ограничение мощности нагревателя не отменяет линейность системы. Собственно при максимуме управляющего воздействия объект встанет на упор.
2) в/ч колебания с периодом в два шага решения это как то подозрительно.
Простой пример: в идеальном случае, при управлении нагревателем, ПИД-регулятор может выдавать как положительные сигналы (нагрев), там и отрицательные (охлаждение). Но в реальности опции «охлаждение» нет. Охлаждение происходит за счет того, что нагрев не производится какое-то время, и тело охлаждается по естественным причинам. Но простому ПИД-регулятору на это плевать, он формирует свои сигналы.
Простой пример: в идеальном случае, при управлении нагревателем, ПИД-регулятор может выдавать как положительные сигналы (нагрев), так и отрицательные (охлаждение).
Если ПИД регулятор начинает выдавать то + то — для заданных 100 как в примере с в/ч колебаниями это значит система пошла в разнос, чего вобщем то не видно.
Плюсом у Вас за 3 шага интегрирования система почти достигла заданное значение. Это говорит о том что шаг интегрирования примерно равен постоянной времени объекта -> шаг решения слишком большой.
Для ПИД регуляторов там есть соответствующий блок и куча примеров.
uk.mathworks.com/help/simulink/slref/inverted-pendulum-with-animation.html
uk.mathworks.com/help/simulink/slref/engine-timing-model-with-closed-loop-control.html
uk.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html
Вашу модель там можно построить и промоделировать за минуты. Даже на статью не тянет. При этом вы еще и бесплатным довеском получаете готовый Си код для микроконтроллеров.
Все-таки симулировать надо в для этого приспособленных средах. Например Matlab Simulink.
Эт почему? Если можешь сам составить адекватную модель и понимаешь как ее реализовать почему бы и не в екселе, си, и.т.д.
Не говоря уж о том что того же матлаба (кстати сколько он стоит?) под рукой может и не оказаться.
Эт почему? Если можешь сам составить адекватную модель и понимаешь как ее реализовать почему бы и не в екселе, си, и.т.д.
Потому, что можно и TCP/IP стек написать на ассемблере. Только нужно ли?
Есть вещи, для которых хорошо приспособлен Excel, а есть вещи, для которых он уже не очень подходит, и вопрос заключается в том, сколько времени будет потрачено на решение задачи. Вы говорите о модели, а Simulink подразумевает Model-based Design, следовательно вы можете ожидать, что там возможностей для создания и симулирования моделей гораздо больше, чем в Excele. Начав хотя бы с того, что там есть кнопочка Play.
Не говоря уж о том что того же матлаба (кстати сколько он стоит?) под рукой может и не оказаться.
И вообще Simulink — это стандартная вещь для решения такого рода задач. То есть он должен быть под рукой всегда и быть первым выбором, если вы решили, например изучать ПИД контроллеры. Потому, что в Екселе вы дальше своего решения из статьи не пойдете, так как упретесь в ограничения, а вы еще по сути даже и не начали изучать теорию регулирования. Вам выше показали прикол с шагом моделирования — в Симулинке это никак не приключение — а то, о чем вам вообще необязательно думать на данном этапе.
Насчет стоимости — если вы решаете задачу в рамках студенческого проекта — то обычно вы его получаете бесплатно в рамках институтской лицензии. Домашняя лицензия с Симулинком — от 154 евро — стоимость на уровне того же офиса.
Для студентов одна сосиска на 12 вилок: XCOS в SCILAB!
Так же понюхать тему можно и в VisSim v5. И многих других проектах.
SCILAB pid controller — 65 700
xcos pid controller — 13 300
Simulink pid controller — 949 000
Если уж нюхать, то лучше нюхать с теми, кто уже нанюхался.
Все-таки симулировать надо в для этого приспособленных средах. Например Matlab Simulink.Сколько на него стоит лицензия, интересно.
Плюс различных сред моделирования в том, что они наглядно позволяют составить модель системы «что-куда-после чего». То есть видно, где задание, где регулятор, где объект управления, где обратная связь. Это я к тому, что «кому интересно — поиграйтесь» имеет перед глазами таблицы, из которых мне лично непонятно, что куда и за чем идет, где стоит датчик, где регулятор и как это все задано. Это мне напомнило еще досовскую программу для моделирования, которая графики выводила в текстовый файл символами A, B, C и т.д.

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

Добавляем ПИД регулятор с параметрами Kp=1, Ki=0.1, Kd=1. Целевая температура 100 градусов.

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

Вот если убрать дифференциальный коэффициент и оставить Kp=Ki=1, то получаем проблемы с устойчивостью — долгие и медленно затухающие колебания.


И тогда мы можем изменять шаг моделирования как угодно и даже дать возможность симулятору самому определять шаг за вас, не опасаясь проблем сходимости. Модель при этом будет вести себя абсолютно одинаково:

И теперь можно не думать о ступеньках.
Но теперь задаем в ПИД контроллере Kp=10 и Ki=0.1 и получаем результат:

Результат — промоделировали ПИД регулятор и получили наш отклик: резкий, как понос. :-)
Попробуйте сделать так в Excel.
Помню, что было дико интересно))
Спасибо, но где файл?
Извиняюсь, ссылка на файл стала битой, новая ссылка:
Симуляция ПИД-регулятора температуры