|
|
  |
Быстрый ПИД-регулятор, На отрезном станке. Новичёк просит помощи. |
|
|
|
Apr 12 2017, 09:25
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Daedal07 @ Apr 12 2017, 10:34)  Ограничения на ускорения наложены.
На первом месте у меня сейчас практика. Остальное после, но обязательно нужно будет это сделать. Решила тоже добавить своего тумана в эту вечнозеленую ветку. Ускорение ограничивается Вашим черным ящиком, что описано в описании. Однако неплохо его ограничить и программно, чтобы ящик работал более предсказуемо. На первом месте все-таки должна быть теория. Раз Вы ее так ненавидите, немного напишу про нее или него (ПИДа) в первом приближении. Начнем плясать от печки - это у меня любимая тема... Рассмотрим простейший случай - греем проволочку, которая является термометром. Известно, что ПИД хорошо работает (может и должен при правильной настройке) для печек. Как же он работает? Правильно сделанный регулятор выдает мощность на нагреватель-датчик. которая есть сумма трех членов - П, И и Д. При этом получается, что производная по времени от температуры пропорциональна мощности (туда входит и отдаваемая мощность с обратным знаком). Если продифференцировать полученное уравнение то получится - вторая производная от температуры, умноженная на теплоемкость равна П-коэффициент, умноженный на производную от температуры, плюс И-коэффициент, умноженный на разбаланс, плюс Д-коэффициент, умноженный на вторую производную от температуры. Что мы видим... Мы видим уравнение осциллятора (грузик на пружинке), где пружинкой является (Сюрприз!) интегральный член, а пропорциональный член играет роль трения - тоже сюрприз? Зато понятно становится, что чисто интегральный регулятор должен создавать колебания, поэтому добавлено трение. Фазовая траектория при этом из эллипса превращается в спираль и приводит систему в нулевую точку... А что же тогда делает дифференциальный член? Опять сюрприз - он увеличивает теплоемкость. Все это справедливо, если мы регулируем температуру. Если бы мы поддерживали скорость (хотели бы), смысл этих членов был бы уже другой. А каким боком тут печка? Нам же нужен моторчик. Так вот моторчик ничем (почти) от печки не отличается, если управлять его скоростью, задавая ток. Вместо теплоемкости - приведенный момент инерции, а вместо температуры - угловая скорость. Можно рассматривать вместо моторчика конденсатор с последовательным и параллельным резисторами. Напряжение конденсатора играет роль скорости. Что касается Вашей конкретной задачи, то тут мне видится уместным применить разгон по программе, корректируемой немного - получится некоторый вариант теории возмущений.
|
|
|
|
|
Apr 12 2017, 09:58
|
Местный
  
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913

|
Цитата(Tanya @ Apr 12 2017, 12:25)  Что касается Вашей конкретной задачи, то тут мне видится уместным применить разгон по программе, корректируемой немного - получится некоторый вариант теории возмущений. Сейчас разгон по программе есть, никаких ступенчатых подач напряжения на привод нет. Немного коррекции - это как раз то, что и нужно от регулятора. Ведь ошибка - это следствие инерции ножа и т.д, чего указывал ранее. По расчётам, в которых плавный разгон,всё вообще гладко. Пока тесты не провёл, добавить нечего. Спасибо за пример с аналогиями.
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Apr 12 2017, 12:02
|
Знающий
   
Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710

|
Цитата(somebody111 @ Apr 11 2017, 23:49)  ... в момент резкого останова там будет развиваться колебательный процесс, который люфт подхватит и позиционирования не будет хоть с ПИД, хоть с самым крутым нейронечетким ПИД-там нужно будет строить не модель двигателя в матлабе, а модель двухмассовой упруго-люфтовой системе, где еще жесткость передачи надо считать...ну она от 10^4 до 10^9. В данной конкретной задаче, опасность возникновения колебаний теоретически есть - после того, как нож встретиться с полотном. Это, по сути, ударное воздействие на систему. Если бы ТС резал металл, то с последствиями такого воздействия нужно было бы как-то бороться. Но, как выяснилось, он режет картон. Поэтому - вряд ли что-то будет... Если только сами не "раскачаете" систему неудачным управлением, случайно попав в один из ее собственных механических резонансов.
|
|
|
|
|
Apr 12 2017, 12:33
|
Местный
  
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913

|
Цитата(@Ark @ Apr 12 2017, 15:02)  В данной конкретной задаче, опасность возникновения колебаний теоретически есть - после того, как нож встретиться с полотном. Это, по сути, ударное воздействие на систему. Если бы ТС резал металл, то с последствиями такого воздействия нужно было бы как-то бороться. Но, как выяснилось, он режет картон. Поэтому - вряд ли что-то будет... Если только сами не "раскачаете" систему неудачным управлением, случайно попав в один из ее собственных механических резонансов. Если бы я резал метал по имеющемуся алгоритму, то не было бы, т.к после реза идёт этап замедления скорости до нуля или иного значения. А на этом этапе нет регулятора.
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Apr 12 2017, 12:40
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Daedal07 @ Apr 12 2017, 12:58)  Сейчас разгон по программе есть, никаких ступенчатых подач напряжения на привод нет. Смотрите, я сравнил управление по вашему сигналу и управление по чистой рампе. Управление по рампе дало в 3-и раза более точную конечную установку скорости. В обоих моделях PID контроллеры одинаковые. Модель системы я взял со своего объекта. У меня сейчас решается похожая задача подвода рычага в определенное место с определенной скоростью. Только редуктор зубчатый, но упругость все равно присутствует. Модель была идентифицирована в Matlab-е. Но что интересно, с вашим сигналом вы будете иметь постоянный недобор скорости на ноже т.е. координата ножа уйдет очень далеко. А с рампой благодаря осцилляции координата будет точнее отслеживаться.
Вычисления с типом single, обратите внимание. Это чтобы быть совместимыми с вашим микроконтроллером. У вас же надеюсь ARM Cortex
|
|
|
|
|
Apr 12 2017, 12:53
|
Местный
  
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913

|
Цитата(AlexandrY @ Apr 12 2017, 15:40)  Смотрите, я сравнил управление по вашему сигналу и управление по чистой рампе. Управление по рампе дало в 3-и раза более точную конечную установку скорости. В обоих моделях PID контроллеры одинаковые. Модель системы я взял со своего объекта. У меня сейчас решается похожая задача подвода рычага в определенное место с определенной скоростью. Только редуктор зубчатый, но упругость все равно присутствует. Модель была идентифицирована в Matlab-е. Но что интересно, с вашим сигналом вы будете иметь постоянный недобор скорости на ноже т.е. координата ножа уйдет очень далеко. А с рампой благодаря осцилляции координата будет точнее отслеживаться.
Я сигнал своего управления нигде не приводил. Я приводил реакцию на ступеньку. У меня такой же как у Вас сигнал - рампа.
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Apr 12 2017, 13:07
|
Местный
  
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913

|
Цитата(AlexandrY @ Apr 12 2017, 16:01)  Нет, рампа у вас перед этапом стабилизации скорости, а потом вы стабилизируете скорость которая остается у вас постоянной. Либо рисунок в вашем первом посте вводит в заблуждение. Да, верно, не то я сказал. Я поправил, чтобы регулировка была на разгоне, ограниченная ускорением рампы, но не проверил ещё.
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Apr 12 2017, 20:32
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 2-03-11
Пользователь №: 63 341

|
1.Как вы собрались регулировать 10 мс тиристорным выпрямителем, если частота сети 50Гц(20мс) и среднее напряжение на выходе он физически быстрее не сделает.Вы это учли?Ткнитесь осциллографом на выход тир.выпр.Видите бульки?Одна булька-это один тиристор.Когда 6 булек увидите,, тогда и будет минимальное время регулирования для тир. выпрямителя.Если реально(а я в это не верю) нужно быстродействие, то надо делать транзисторный, а не тиристорный преобразователь-ШИМ проще говоря.
Закрываю глаза на реакцию системы управления-там хорошие фильтра в обратной связи стоят.Или у вас там сеть не 50Гц 2.Не будет проблем с мягкой характеристикой с позиционированием, потому что нагрузки не будет 3.Моторчик и печка-не одно и тоже.Температура меняется медленно и производная для таких задач считается. В моторчика, как вы выразились, процессы протекают на несколько порядков быстрее и просто производную нормально не посчитать без крутого фильтра, который сводит идею с Д к нулю 4.Свое решение я предложил, больше ничего писать не буду.Захотите все же сделать -пишите в личку 5.Астатизм 2 порядка?Не хотите 3-в черном ящике ПИ-регулятор тока.Про устойчивость надо говорить?
Сообщение отредактировал somebody111 - Apr 12 2017, 20:57
|
|
|
|
|
Apr 12 2017, 21:05
|
Частый гость
 
Группа: Участник
Сообщений: 103
Регистрация: 6-04-17
Пользователь №: 96 386

|
Цитата(somebody111 @ Apr 12 2017, 20:32)  Как вы собрались регулировать 10 мс тиристорным выпрямителем, если частота сети 50Гц(20мс) У ТС трехфазный 6-ти пульсный выпрямитель (тир. регулятор) ПФ звена запаздывания: W(p) = e^(-p*T); Транспортное запаздывание T = (0.25/f)*(2/m+1); m - число пульсаций на период. Для 3-х фаз и 6-пульс T = 6.7 ms. ПФ может быть, в первом приближении, аппроксимирована апериодическим звеном. W(p) = 1/(T*p+1). P.S. В целом, я согласен, что для MCU timestep = 10 ms - это уже за гранью фола. Также согласен, что без установки валкодера на барабан с ножом - это размахивание дубиной в тумане.
Сообщение отредактировал Gruffly - Apr 12 2017, 21:06
|
|
|
|
|
Apr 13 2017, 05:04
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(somebody111 @ Apr 12 2017, 23:32)  1.Как вы собрались регулировать 10 мс тиристорным выпрямителем, если частота сети 50Гц(20мс) и среднее напряжение на выходе он физически быстрее не сделает.Вы это учли? Да не переживайте так. Такт регулирования там 3.3 мс Я как то раз сделал вот такую плату для тиристорного регулирования скорости 3-х фазных асинхронных движков.
И удалось же. Работают теперь по всему миру.
|
|
|
|
|
Apr 13 2017, 11:05
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Gruffly @ Apr 13 2017, 00:05)  ПФ может быть, в первом приближении, аппроксимирована апериодическим звеном. W(p) = 1/(T*p+1). Каким образом тиристорный цифровой регулятор может превратится в аналоговое апериодическое звено? Немного изучив литературу по цифровым регуляторам для двигателей можно даже придти к выводу что там используется не меньше 3-х PID-ов. Один на предкоррекции уставки, один на управлении скоростью и один в управлении током. Откуда это может стать апериодическим звеном? Лучше сконцентрироваться на структуре PID-а в контроллере. Я бы предложил PID не с 3-я параметрами а с 4-я как на рисунке:
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|