Перейти к содержанию
    

Быстрый ПИД-регулятор

Добрый день!

 

С ПИД-регуляторами ранее дела не имел, прошу помощи по теории и практике ПИД- регулирования.

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

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

ПИД-регулятор управляет вращением ножей отрезного станка.

По линии бежит полотно, его надо резать на листы определённой длины. На линии стоит энкодер, которым измеряется скорость линии.

У ножа тоже стоит энкодер, по которому измеряется текущее положение ножа и скорость.

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

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

Работа ножей состоит из четырёх этапов:

торможение, пауза, разгон, коррекции средней скорости.

На этапе коррекции должен работать ПИД-регулятор.

Этап коррекции занимает, в среднем, от 0,5с до 1,5с.

Я не знаю, много это или мало, но эту величину можно менять за счёт изменения времени паузы ножа.

 

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

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

У меня есть возможность проводить измерения на реальном объекте и смотреть результаты регулировки на ПК в режиме реального времени, сохранять их и анализировать.

Для реализации была выбрана следующую формулу дискретного регулятора:

 U(n)= Kp*e(n)+Ki*∑e(n) + Kd*[e(n)-e(n-1)]

Ознакомился с двумя методами Циглера-Николса, но для них у меня не хватает знаний.

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

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

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

Но у меня сомнения следующего рода:

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

post-32913-1490605685_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С ПИД-регуляторами ранее дела не имел, прошу помощи по теории и практике ПИД- регулирования.

 

Это делается немного не так. Лезть в теорию не надо.

 

Открываете такой тулз в Matlab, называется System Identification.

post-2050-1490617271_thumb.png

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

Выбираете порядок модели и получаете оценку ее параметров.

Можете повторить для других порядков модели или для нелинейных моделей.

 

Потом выбранную модель помещаете в такую диаграмму как внизу.

post-2050-1490616788_thumb.png

 

Щелкаете PID_controller и там в диалоге увидите кнопку Tune.

Перед этим проверьте какую архитектуру PID хотите видеть.

 

После Tune вы будете иметь идеально настроенный на модель PID.

 

Потом щелкает в меню Simulink пункт Embedded Coder и получаете чистый код на C готовый к исполнению на каком-нибудь Kinetis ARM Cortex-M4

А можете просто переписать коэффициенты из блока PID_controller в свою программу.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

каком-нибудь Kinetis ARM Cortex-M4
Так сказать на совершенно случайно оказавшемся и первым попавшемся Кинетисе)))

Это мне уже напоминает анекдот про собаку и блох: "А если бы у рыбы была шерсть, то у неё наверняка были бы блохи (кинетисы)..."

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это делается немного не так. Лезть в теорию не надо.

...

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

Выбираете порядок модели и получаете оценку ее параметров.

Как я уже писал, у меня в плане теории тяжёлый случай. :wacko:

Я не знаю какого порядка модель и как вообще её составить.

По каким исходным данным мне ориентироваться, чтобы узнать, какая модель у меня?

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

Можете повторить для других порядков модели или для нелинейных моделей.

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

Перед этим проверьте какую архитектуру PID хотите видеть.

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

Потом щелкает в меню Simulink пункт Embedded Coder и получаете чистый код на C готовый к исполнению на каком-нибудь Kinetis ARM Cortex-M4

А можете просто переписать коэффициенты из блока PID_controller в свою программу.

В этом нет необходимости.

 

...Вводите туда запись воздействия и отклика вашей системы.

 

Чтобы отрезать нужную мне длину, я должен выдержать среднюю скорость ножа на обороте.

Разница текущей и требуемой средней скорости - это e(n).

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

Я знаю зависимость напряжение/скорость, знаю максимальное ускорение, с которым привод постоянного тока, на входе которого аналоговый сигнал(напряжение) с выхода контроллера с ПИД, ещё отрабатывает воздействие, а выше которого отрубает выход в "0".

 

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

 

В таком режиме и идёт работа и могла бы идти и до момента реза, но понятно, что так не бывает..

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

 

Что в моём случае будет воздействием, а что откликом, учитывая, что ПИД у меня в конце оборота и что e(n) - это разница средних скоростей ножа?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это диплом? :)

Нет.

ТАУ был 1 семестр 7 лет назад.

Это не повод не браться на интересный проект.

 

Контроллер сделан, написана прошивка, тестовое ПО на матлаб с графиками и GUI тоже.

Но вот самое важное на закуску оставил.

 

Делать всё равно буду, но лучше помочь.

 

Если это был бы диплом, то что бы это изменило?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вам нужно освежить курс механики и дифференциальных уравнений.

Что Вы режете? Дорогое? С какой точностью?

 

Контроллер сделан, написана прошивка, тестовое ПО на матлаб с графиками и GUI тоже.

Но вот самое важное на закуску оставил.

Самое важное нужно делать сначала. Мне так кажется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам нужно освежить курс механики и дифференциальных уравнений.

Дайте намёк, о чём речь-то?

 

В прошивке Всё реализовано, до момента ПИД-регулирования.

Формулы движения по прямой с ускорением я не забыл, они были применены.

Сам регулятор в той простой форме, которую я указал в первом посте, тоже в коде есть.

Написанный интерфейс позволяет ручками вбивать коэффициенты Kp, Ki, Ni( количество суммируемых отсчётов ошибки скорости), Kd.

Но, понятное дело, наугад такое не решается.

Что Вы режете? Дорогое?

Нет, очень недорогое.

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

Самое важное нужно делать сначала. Мне так кажется.

Так я заложил место в прошивке, места точно хватит.

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

 

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

Это не так, железо на рынок не выйдет, в таком составе уж точно.

 

Помогите, пожалуйста.

 

Вот по этому поводу советами не богаты:

Ознакомился с двумя методами Циглера-Николса, но для них у меня не хватает знаний.

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

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

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

Но у меня сомнения следующего рода:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg
Если это был бы диплом, то что бы это изменило?

Безответственность за результат, в т.ч. безопасность за жизни людей, операторов.

 

Самое важное нужно делать сначала. Мне так кажется.

+1

 

Проектирование обычно начинается с изучения объекта управления.

А, уж прошивки чего-то - это дело десятое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Безответственность за результат, в т.ч. безопасность за жизни людей, операторов.

С этим всё в порядке.

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

Ну да ладно, это сейчас не важно.

Проектирование обычно начинается с изучения объекта управления.

Спрошу ещё раз. Как его изучить?

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

А, уж прошивки чего-то - это дело десятое.

Десятое дело сделано и никак не помешает сделать основные девять, я повторюсь.

Я готов слушать любые нотации, но прошу между делом по сабжу тоже чего-нибудь написать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дайте намёк, о чём речь-то?

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Очень просто.

Эльфийский клинок или меч Дарта Вейдера мгновенно режут двигающийся звездолет на мелкие части.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Я им уже управляю, но неточно.

 

Повторюсь, на выходе контроллера с ПИД-регулятором стоит привод постоянного тока. У него вход -10В - + 10В.

Я снимал характеристики с работающего оборудования. Управление напряжением. 1В - это скорость 20 м/мин. Проверял это, результаты совпали.

 

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

Режу я полотно, которое идёт по линии. Точность нужна не хуже 1мм.

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

Лезвие подвижно, я же написал,что управляю вращением ножа. Я не управляю движением полотна, которое нужно резать.

То, что Вы способны такое делать и сомнений не было.

 

Куда мне копать, чтобы тоже смочь?

Я массу вопросов задал, я ведь не прошу готового решения.

А в ответ: зачем ты сделал железо раньше?

 

Я Вас не понимаю, вроде бы ничего плохого никому не сделал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg
Спрошу ещё раз. Как его изучить?

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

 

Лезвие подвижно, я же написал,что управляю вращением ножа. Я не управляю движением полотна, которое нужно резать.

Резать точно можно если деталь и режущий инструмент неподвижны друг от друга. Вращение - при чем здесь.

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

 

Я Вас не понимаю, вроде бы ничего плохого никому не сделал.

От Вас требуется более-менее точная постановка технической задачи.

О плохом никто тут не говорит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Какие учебники нужны?

Резать точно можно если деталь и режущий инструмент неподвижны друг от друга. Вращение - при чем здесь.

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

И по какому принципу будет осуществляться рез, простите? Все неподвижны, а рез идёт. "Солдат спит, а служба идёт" (с).

Шутки в сторону, вращающиеся ножи - это типовое оборудование. Схему прикрепил.

От Вас требуется более-менее точная постановка технической задачи.

О плохом никто тут не говорит.

Думаю, схема всё объяснит. Я пока не понимаю, что именно Вам не понятно, раз уж постановка даже не более-менее точная.

post-32913-1490640437_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...