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

 
 
18 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Быстрый ПИД-регулятор, На отрезном станке. Новичёк просит помощи.
Daedal07
сообщение Mar 27 2017, 09:07
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 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.
Для другого метода, по которому измеряются собственные колебания объекта, находящегося на границе устойчивости, у меня нет понимания, как эти колебания измерить, потому что нож находится в режиме ПИД-регулирования не всё время вращения, а только ближе к концу каждого оборота.
Я смогу ввести нож в режим, когда он вращается с постоянной скоростью и всегда находится в режиме ПИД-регулирования. Далее, я переведу ПИД-регулятор в П-регулятор и получу колебания, измерю их период.
Но у меня сомнения следующего рода:
В реальности нож будет работать в другом режиме, т.е. на других скоростях и время на регулирование – это не время полного оборота, а половина, в лучшем случае. Подойдут ли полученные таким способом коэффициенты для реальной работы?
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Сжимаются ужи насмешкой лжи
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 27 2017, 12:34
Сообщение #2


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 в свою программу.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Mar 27 2017, 14:22
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(AlexandrY @ Mar 27 2017, 15:34) *
каком-нибудь Kinetis ARM Cortex-M4
Так сказать на совершенно случайно оказавшемся и первым попавшемся Кинетисе)))
Это мне уже напоминает анекдот про собаку и блох: "А если бы у рыбы была шерсть, то у неё наверняка были бы блохи (кинетисы)..."


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Daedal07
сообщение Mar 27 2017, 15:17
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913



Цитата(AlexandrY @ Mar 27 2017, 15:34) *
Это делается немного не так. Лезть в теорию не надо.
...
Вводите туда запись воздействия и отклика вашей системы. Воздействие может быть любой формы, не обязательно ступенчатое.
Выбираете порядок модели и получаете оценку ее параметров.

Как я уже писал, у меня в плане теории тяжёлый случай. wacko.gif
Я не знаю какого порядка модель и как вообще её составить.
По каким исходным данным мне ориентироваться, чтобы узнать, какая модель у меня?
Возможно, я не всё указал в вопросе, что важного нужно знать о станке, чтобы получить порядок модели?
Цитата(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) - это разница средних скоростей ножа?

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


--------------------
Сжимаются ужи насмешкой лжи
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 27 2017, 15:51
Сообщение #5





Guests






Это диплом? sm.gif
Go to the top of the page
 
+Quote Post
Daedal07
сообщение Mar 27 2017, 15:57
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913



Цитата(TSerg @ Mar 27 2017, 18:51) *
Это диплом? sm.gif

Нет.
ТАУ был 1 семестр 7 лет назад.
Это не повод не браться на интересный проект.

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

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

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


--------------------
Сжимаются ужи насмешкой лжи
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 27 2017, 16:09
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Daedal07 @ Mar 27 2017, 18:17) *
Следовательно, я знаю, какое напряжение подать, чтобы получить нужную в данный момент текущую скорость ножа.

Вам нужно освежить курс механики и дифференциальных уравнений.
Что Вы режете? Дорогое? С какой точностью?

Цитата(Daedal07 @ Mar 27 2017, 18:57) *
Контроллер сделан, написана прошивка, тестовое ПО на матлаб с графиками и GUI тоже.
Но вот самое важное на закуску оставил.

Самое важное нужно делать сначала. Мне так кажется.
Go to the top of the page
 
+Quote Post
Daedal07
сообщение Mar 27 2017, 16:20
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 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.
Для другого метода, по которому измеряются собственные колебания объекта, находящегося на границе устойчивости, у меня нет понимания, как эти колебания измерить, потому что нож находится в режиме ПИД-регулирования не всё время вращения, а только ближе к концу каждого оборота.
Я смогу ввести нож в режим, когда он вращается с постоянной скоростью и всегда находится в режиме ПИД-регулирования. Далее, я переведу ПИД-регулятор в П-регулятор и получу колебания, измерю их период.
Но у меня сомнения следующего рода:
В реальности нож будет работать в другом режиме, т.е. на других скоростях и время на регулирование – это не время полного оборота, а половина, в лучшем случае. Подойдут ли полученные таким способом коэффициенты для реальной работы?


--------------------
Сжимаются ужи насмешкой лжи
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 27 2017, 16:43
Сообщение #9





Guests






Цитата(Daedal07 @ Mar 27 2017, 18:57) *
Если это был бы диплом, то что бы это изменило?

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

Цитата(Tanya @ Mar 27 2017, 19:09) *
Самое важное нужно делать сначала. Мне так кажется.

+1

Проектирование обычно начинается с изучения объекта управления.
А, уж прошивки чего-то - это дело десятое.
Go to the top of the page
 
+Quote Post
Daedal07
сообщение Mar 27 2017, 16:47
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913



Цитата(TSerg @ Mar 27 2017, 19:41) *
Безответственность за результат, в т.ч. безопасность за жизни людей, операторов.

С этим всё в порядке.
Я имел ввиду, как Ваша помощь отличалась бы в части настройки ПИД-регулятора?
Ну да ладно, это сейчас не важно.
Цитата(TSerg @ Mar 27 2017, 19:43) *
Проектирование обычно начинается с изучения объекта управления.

Спрошу ещё раз. Как его изучить?
Про вариант настройки методом Циглера-Николса я два раза уже написал. Если чушь написал, то скажите хотя бы.
Цитата(TSerg @ Mar 27 2017, 19:43) *
А, уж прошивки чего-то - это дело десятое.

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


--------------------
Сжимаются ужи насмешкой лжи
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 27 2017, 18:12
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Daedal07 @ Mar 27 2017, 19:20) *
Дайте намёк, о чём речь-то?

Ваша фраза, после которой я Вам посоветовала освежить механику свидетельствует о том, что Вы не понимаете, как управлять мотором. Намекну - механический момент пропорционален току.
Вы так и не ответили, что и чем Вы режете, зачем, с какой точностью и другие (лучше все) подробности.
Я вот подобное делала - кусочки с точностью десятая миллиметра... Мне вот не очень понятно, как можно неподвижным лезвием ровно отрезать нечто движущееся.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 27 2017, 18:25
Сообщение #12





Guests






Цитата(Tanya @ Mar 27 2017, 21:12) *
Мне вот не очень понятно, как можно неподвижным лезвием ровно отрезать нечто движущееся.

Очень просто.
Эльфийский клинок или меч Дарта Вейдера мгновенно режут двигающийся звездолет на мелкие части.
Go to the top of the page
 
+Quote Post
Daedal07
сообщение Mar 27 2017, 18:26
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 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) *
Я вот подобное делала - кусочки с точностью десятая миллиметра... Мне вот не очень понятно, как можно неподвижным лезвием ровно отрезать нечто движущееся.

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

Куда мне копать, чтобы тоже смочь?
Я массу вопросов задал, я ведь не прошу готового решения.
А в ответ: зачем ты сделал железо раньше?

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


--------------------
Сжимаются ужи насмешкой лжи
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 27 2017, 18:31
Сообщение #14





Guests






Цитата(Daedal07 @ Mar 27 2017, 19:47) *
Спрошу ещё раз. Как его изучить?

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

Цитата(Daedal07 @ Mar 27 2017, 21:26) *
Лезвие подвижно, я же написал,что управляю вращением ножа. Я не управляю движением полотна, которое нужно резать.

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

Цитата(Daedal07 @ Mar 27 2017, 21:26) *
Я Вас не понимаю, вроде бы ничего плохого никому не сделал.

От Вас требуется более-менее точная постановка технической задачи.
О плохом никто тут не говорит.
Go to the top of the page
 
+Quote Post
Daedal07
сообщение Mar 27 2017, 18:48
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913



Цитата(TSerg @ Mar 27 2017, 21:31) *
Таня Вам ответила - используя механику, динамику и пр. физику с использованием пыльных учебников.

Какие учебники нужны?
Цитата(TSerg @ Mar 27 2017, 21:31) *
Резать точно можно если деталь и режущий инструмент неподвижны друг от друга. Вращение - при чем здесь.
Нарисуйте кинематическую схему вашего изделия, а то у же полное непонимание началось.

И по какому принципу будет осуществляться рез, простите? Все неподвижны, а рез идёт. "Солдат спит, а служба идёт" (с).
Шутки в сторону, вращающиеся ножи - это типовое оборудование. Схему прикрепил.
Цитата(TSerg @ Mar 27 2017, 21:31) *
От Вас требуется более-менее точная постановка технической задачи.
О плохом никто тут не говорит.

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


--------------------
Сжимаются ужи насмешкой лжи
Go to the top of the page
 
+Quote Post

18 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th April 2024 - 15:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01538 секунд с 7
ELECTRONIX ©2004-2016