|
Быстрый ПИД-регулятор, На отрезном станке. Новичёк просит помощи. |
|
|
|
Mar 27 2017, 09:07
|
Местный
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913
|
Добрый день! С ПИД-регуляторами ранее дела не имел, прошу помощи по теории и практике ПИД- регулирования. Во-первых, пожалуйста, подскажите хорошую книгу по дискретным ПИД-регуляторам, по тому, как составить модель объекта регулирования, как настроить коэффициенты регулятор. Во-вторых, подскажите по глупым вопросам конкретной системы с дискретным ПИД-регулятором. ПИД-регулятор управляет вращением ножей отрезного станка. По линии бежит полотно, его надо резать на листы определённой длины. На линии стоит энкодер, которым измеряется скорость линии. У ножа тоже стоит энкодер, по которому измеряется текущее положение ножа и скорость. Точка реза ножа определена, алгоритм повторяется после каждого реза с этой точки. Алгоритм работы контроллера, в состав которого входит ПИД-регулятор, показан на рисунке. Работа ножей состоит из четырёх этапов: торможение, пауза, разгон, коррекции средней скорости. На этапе коррекции должен работать ПИД-регулятор. Этап коррекции занимает, в среднем, от 0,5с до 1,5с. Я не знаю, много это или мало, но эту величину можно менять за счёт изменения времени паузы ножа. С теорией ПИД-регулирования у меня пока очень плохо. Пока знаю, что для того, чтобы рассчитать коэффициенты ПИД-регулятора, нужно составить модель объекта управления, т.е. ножа в моём случае. Как это сделать я не знаю. У меня есть возможность проводить измерения на реальном объекте и смотреть результаты регулировки на ПК в режиме реального времени, сохранять их и анализировать. Для реализации была выбрана следующую формулу дискретного регулятора: Код U(n)= Kp*e(n)+Ki*∑e(n) + Kd*[e(n)-e(n-1)] Ознакомился с двумя методами Циглера-Николса, но для них у меня не хватает знаний. Для одного метода я не знаю, как получить реакцию объекта управления на ступенчатое воздействие, по которому определяется параметры, участвующие в расчёте Kp, Ki, Kd. Для другого метода, по которому измеряются собственные колебания объекта, находящегося на границе устойчивости, у меня нет понимания, как эти колебания измерить, потому что нож находится в режиме ПИД-регулирования не всё время вращения, а только ближе к концу каждого оборота. Я смогу ввести нож в режим, когда он вращается с постоянной скоростью и всегда находится в режиме ПИД-регулирования. Далее, я переведу ПИД-регулятор в П-регулятор и получу колебания, измерю их период. Но у меня сомнения следующего рода: В реальности нож будет работать в другом режиме, т.е. на других скоростях и время на регулирование – это не время полного оборота, а половина, в лучшем случае. Подойдут ли полученные таким способом коэффициенты для реальной работы?
Эскизы прикрепленных изображений
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Mar 27 2017, 12:34
|
Ally
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050
|
Цитата(Daedal07 @ Mar 27 2017, 12:07) С ПИД-регуляторами ранее дела не имел, прошу помощи по теории и практике ПИД- регулирования. Это делается немного не так. Лезть в теорию не надо. Открываете такой тулз в Matlab, называется System Identification.
Вводите туда запись воздействия и отклика вашей системы. Воздействие может быть любой формы, не обязательно ступенчатое. Выбираете порядок модели и получаете оценку ее параметров. Можете повторить для других порядков модели или для нелинейных моделей. Потом выбранную модель помещаете в такую диаграмму как внизу.
Щелкаете PID_controller и там в диалоге увидите кнопку Tune. Перед этим проверьте какую архитектуру PID хотите видеть. После Tune вы будете иметь идеально настроенный на модель PID. Потом щелкает в меню Simulink пункт Embedded Coder и получаете чистый код на C готовый к исполнению на каком-нибудь Kinetis ARM Cortex-M4 А можете просто переписать коэффициенты из блока PID_controller в свою программу.
|
|
|
|
|
Mar 27 2017, 15:17
|
Местный
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913
|
Цитата(AlexandrY @ Mar 27 2017, 15:34) Это делается немного не так. Лезть в теорию не надо. ... Вводите туда запись воздействия и отклика вашей системы. Воздействие может быть любой формы, не обязательно ступенчатое. Выбираете порядок модели и получаете оценку ее параметров. Как я уже писал, у меня в плане теории тяжёлый случай. Я не знаю какого порядка модель и как вообще её составить. По каким исходным данным мне ориентироваться, чтобы узнать, какая модель у меня? Возможно, я не всё указал в вопросе, что важного нужно знать о станке, чтобы получить порядок модели? Цитата(AlexandrY @ Mar 27 2017, 15:34) Можете повторить для других порядков модели или для нелинейных моделей. Если со временем не будет ясности, то, да, я буду перебирать модели, но, мне кажется, что это не подход. Хотелось и знаний получить по ходу работы. Цитата(AlexandrY @ Mar 27 2017, 15:34) Перед этим проверьте какую архитектуру PID хотите видеть. И этого я тоже не знаю. Пока без разницы, мне ведь всё равно в дискретную форму переводить архитектуру, ресурсы железа есть, можно любую сделать. Как дилетант, я так вижу сейчас, по крайней мере, этот вопрос. Цитата(AlexandrY @ Mar 27 2017, 15:34) Потом щелкает в меню Simulink пункт Embedded Coder и получаете чистый код на C готовый к исполнению на каком-нибудь Kinetis ARM Cortex-M4 А можете просто переписать коэффициенты из блока PID_controller в свою программу. В этом нет необходимости. Цитата(AlexandrY @ Mar 27 2017, 15:34) ...Вводите туда запись воздействия и отклика вашей системы. Чтобы отрезать нужную мне длину, я должен выдержать среднюю скорость ножа на обороте. Разница текущей и требуемой средней скорости - это e(n). Но я не представляю, как физическая величина "средняя скорость" увязывается с "откликом" системы. Я знаю зависимость напряжение/скорость, знаю максимальное ускорение, с которым привод постоянного тока, на входе которого аналоговый сигнал(напряжение) с выхода контроллера с ПИД, ещё отрабатывает воздействие, а выше которого отрубает выход в "0". Следовательно, я знаю, какое напряжение подать, чтобы получить нужную в данный момент текущую скорость ножа. В таком режиме и идёт работа и могла бы идти и до момента реза, но понятно, что так не бывает.. Из-за инерции вала ножа в точку реза нож приходит с запаздыванием и нестабильно, поэтому на конечном интервале нужен ПИД. Что в моём случае будет воздействием, а что откликом, учитывая, что ПИД у меня в конце оборота и что e(n) - это разница средних скоростей ножа? Я пока не понял, как по уму ПИД настраивается, но после определения воздействия и отклика, думаю, тулза матлаба мне поможет. С Вашей помощью, конечно.)
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
Guest_TSerg_*
|
Mar 27 2017, 15:51
|
Guests
|
Это диплом?
|
|
|
|
|
Mar 27 2017, 15:57
|
Местный
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913
|
Цитата(TSerg @ Mar 27 2017, 18:51) Это диплом? Нет. ТАУ был 1 семестр 7 лет назад. Это не повод не браться на интересный проект. Контроллер сделан, написана прошивка, тестовое ПО на матлаб с графиками и GUI тоже. Но вот самое важное на закуску оставил. Делать всё равно буду, но лучше помочь. Если это был бы диплом, то что бы это изменило?
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Mar 27 2017, 16:09
|
Гуру
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883
|
Цитата(Daedal07 @ Mar 27 2017, 18:17) Следовательно, я знаю, какое напряжение подать, чтобы получить нужную в данный момент текущую скорость ножа. Вам нужно освежить курс механики и дифференциальных уравнений. Что Вы режете? Дорогое? С какой точностью? Цитата(Daedal07 @ Mar 27 2017, 18:57) Контроллер сделан, написана прошивка, тестовое ПО на матлаб с графиками и GUI тоже. Но вот самое важное на закуску оставил. Самое важное нужно делать сначала. Мне так кажется.
|
|
|
|
|
Mar 27 2017, 16:20
|
Местный
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913
|
Цитата(Tanya @ Mar 27 2017, 19:09) Вам нужно освежить курс механики и дифференциальных уравнений. Дайте намёк, о чём речь-то? В прошивке Всё реализовано, до момента ПИД-регулирования. Формулы движения по прямой с ускорением я не забыл, они были применены. Сам регулятор в той простой форме, которую я указал в первом посте, тоже в коде есть. Написанный интерфейс позволяет ручками вбивать коэффициенты Kp, Ki, Ni( количество суммируемых отсчётов ошибки скорости), Kd. Но, понятное дело, наугад такое не решается. Цитата(Tanya @ Mar 27 2017, 19:09) Что Вы режете? Дорогое? Нет, очень недорогое. На этапе отладки вообще режу воздух, т.к. оценить погрешность реза можно и по энкодеру линии, по которой бежит полотно. Энкодер крутится, опираясь на вал, который протягивает полуфабрикат по линии. Вал вращается, а самого полуфабриката нет, он не нужен для тестов. Цитата(Tanya @ Mar 27 2017, 19:09) Самое важное нужно делать сначала. Мне так кажется. Так я заложил место в прошивке, места точно хватит. Я ничего не упустил в таком подходе, наоборот создана платформа, на которой я могу отлаживаться. Я рискну предположить, что витает ощущение, что я жар чужими руками собрался загребать.. Это не так, железо на рынок не выйдет, в таком составе уж точно. Помогите, пожалуйста. Вот по этому поводу советами не богаты: Цитата Ознакомился с двумя методами Циглера-Николса, но для них у меня не хватает знаний. Для одного метода я не знаю, как получить реакцию объекта управления на ступенчатое воздействие, по которому определяется параметры, участвующие в расчёте Kp, Ki, Kd. Для другого метода, по которому измеряются собственные колебания объекта, находящегося на границе устойчивости, у меня нет понимания, как эти колебания измерить, потому что нож находится в режиме ПИД-регулирования не всё время вращения, а только ближе к концу каждого оборота. Я смогу ввести нож в режим, когда он вращается с постоянной скоростью и всегда находится в режиме ПИД-регулирования. Далее, я переведу ПИД-регулятор в П-регулятор и получу колебания, измерю их период. Но у меня сомнения следующего рода: В реальности нож будет работать в другом режиме, т.е. на других скоростях и время на регулирование – это не время полного оборота, а половина, в лучшем случае. Подойдут ли полученные таким способом коэффициенты для реальной работы?
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
Guest_TSerg_*
|
Mar 27 2017, 16:43
|
Guests
|
Цитата(Daedal07 @ Mar 27 2017, 18:57) Если это был бы диплом, то что бы это изменило? Безответственность за результат, в т.ч. безопасность за жизни людей, операторов. Цитата(Tanya @ Mar 27 2017, 19:09) Самое важное нужно делать сначала. Мне так кажется. +1 Проектирование обычно начинается с изучения объекта управления. А, уж прошивки чего-то - это дело десятое.
|
|
|
|
|
Mar 27 2017, 16:47
|
Местный
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913
|
Цитата(TSerg @ Mar 27 2017, 19:41) Безответственность за результат, в т.ч. безопасность за жизни людей, операторов. С этим всё в порядке. Я имел ввиду, как Ваша помощь отличалась бы в части настройки ПИД-регулятора? Ну да ладно, это сейчас не важно. Цитата(TSerg @ Mar 27 2017, 19:43) Проектирование обычно начинается с изучения объекта управления. Спрошу ещё раз. Как его изучить? Про вариант настройки методом Циглера-Николса я два раза уже написал. Если чушь написал, то скажите хотя бы. Цитата(TSerg @ Mar 27 2017, 19:43) А, уж прошивки чего-то - это дело десятое. Десятое дело сделано и никак не помешает сделать основные девять, я повторюсь. Я готов слушать любые нотации, но прошу между делом по сабжу тоже чего-нибудь написать.
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Mar 27 2017, 18:12
|
Гуру
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883
|
Цитата(Daedal07 @ Mar 27 2017, 19:20) Дайте намёк, о чём речь-то? Ваша фраза, после которой я Вам посоветовала освежить механику свидетельствует о том, что Вы не понимаете, как управлять мотором. Намекну - механический момент пропорционален току. Вы так и не ответили, что и чем Вы режете, зачем, с какой точностью и другие (лучше все) подробности. Я вот подобное делала - кусочки с точностью десятая миллиметра... Мне вот не очень понятно, как можно неподвижным лезвием ровно отрезать нечто движущееся.
|
|
|
|
Guest_TSerg_*
|
Mar 27 2017, 18:25
|
Guests
|
Цитата(Tanya @ Mar 27 2017, 21:12) Мне вот не очень понятно, как можно неподвижным лезвием ровно отрезать нечто движущееся. Очень просто. Эльфийский клинок или меч Дарта Вейдера мгновенно режут двигающийся звездолет на мелкие части.
|
|
|
|
|
Mar 27 2017, 18:26
|
Местный
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913
|
Цитата(Tanya @ Mar 27 2017, 21:12) Ваша фраза, после которой я Вам посоветовала освежить механику свидетельствует о том, что Вы не понимаете, как управлять мотором. Намекну - механический момент пропорционален току. Я им уже управляю, но неточно. Повторюсь, на выходе контроллера с ПИД-регулятором стоит привод постоянного тока. У него вход -10В - + 10В. Я снимал характеристики с работающего оборудования. Управление напряжением. 1В - это скорость 20 м/мин. Проверял это, результаты совпали. Цитата(Tanya @ Mar 27 2017, 21:12) Вы так и не ответили, что и чем Вы режете, зачем, с какой точностью и другие (лучше все) подробности. Режу я полотно, которое идёт по линии. Точность нужна не хуже 1мм. Цитата(Tanya @ Mar 27 2017, 21:12) Я вот подобное делала - кусочки с точностью десятая миллиметра... Мне вот не очень понятно, как можно неподвижным лезвием ровно отрезать нечто движущееся. Лезвие подвижно, я же написал,что управляю вращением ножа. Я не управляю движением полотна, которое нужно резать. То, что Вы способны такое делать и сомнений не было. Куда мне копать, чтобы тоже смочь? Я массу вопросов задал, я ведь не прошу готового решения. А в ответ: зачем ты сделал железо раньше? Я Вас не понимаю, вроде бы ничего плохого никому не сделал.
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
Guest_TSerg_*
|
Mar 27 2017, 18:31
|
Guests
|
Цитата(Daedal07 @ Mar 27 2017, 19:47) Спрошу ещё раз. Как его изучить? Таня Вам ответила - используя механику, динамику и пр. физику с использованием пыльных учебников. Цитата(Daedal07 @ Mar 27 2017, 21:26) Лезвие подвижно, я же написал,что управляю вращением ножа. Я не управляю движением полотна, которое нужно резать. Резать точно можно если деталь и режущий инструмент неподвижны друг от друга. Вращение - при чем здесь. Нарисуйте кинематическую схему вашего изделия, а то у же полное непонимание началось. Цитата(Daedal07 @ Mar 27 2017, 21:26) Я Вас не понимаю, вроде бы ничего плохого никому не сделал. От Вас требуется более-менее точная постановка технической задачи. О плохом никто тут не говорит.
|
|
|
|
|
Mar 27 2017, 18:48
|
Местный
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913
|
Цитата(TSerg @ Mar 27 2017, 21:31) Таня Вам ответила - используя механику, динамику и пр. физику с использованием пыльных учебников. Какие учебники нужны? Цитата(TSerg @ Mar 27 2017, 21:31) Резать точно можно если деталь и режущий инструмент неподвижны друг от друга. Вращение - при чем здесь. Нарисуйте кинематическую схему вашего изделия, а то у же полное непонимание началось. И по какому принципу будет осуществляться рез, простите? Все неподвижны, а рез идёт. "Солдат спит, а служба идёт" (с). Шутки в сторону, вращающиеся ножи - это типовое оборудование. Схему прикрепил. Цитата(TSerg @ Mar 27 2017, 21:31) От Вас требуется более-менее точная постановка технической задачи. О плохом никто тут не говорит. Думаю, схема всё объяснит. Я пока не понимаю, что именно Вам не понятно, раз уж постановка даже не более-менее точная.
Эскизы прикрепленных изображений
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|