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

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

Видимо, нужно объяснять, не только как сделать, но и почему так надо делать.

И почему не надо как Вы предлагаете.

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

Трактовка Tp правильная. Неправильно то, что Вы собираетесь его "задавать". Не надо этого делать. Нужно измерить фактическое значение, непосредственно, в процессе очередного цикла резки, и запомнить его для использования на следующем цикле. И так делать постоянно. От регулятора привода требуется только обеспечить стабильность значения этого времени, а не "компенсацию" или "подгонку" и к какому-либо эначению. Этим задача резко упрощается. От регулятора теперь требуется стабилизация скорости и стабилизация процесса разгона. Это уже конкретные требования и конкретные задачи, которые можно (и нужно) решить. А параметр Tp - какой получится по факту, тот и будете использовать.

Так я так и делаю. У меня в расчётах меняется только время паузы. А время с момента, когда я начинаю разгон и до линии реза у меня не меняется в расчёте.

Оно на практике плавает.

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

Теоретически - все правильно. А практически - Вы не сможете заранее вычислить эту паузу с нужной точностью. Поскольку нет уверенности, что привод ленты поддерживает стабильную скорость с необходимой точностью. Вы вычислили паузу, а лента чуть притормозила или пошла быстрее - это для Вас непредсказуемо. Вы этим процессом не управляете.

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

Поэтому - не нужно вычислять паузу заранее.

Всё равно не понял. Сколько тогда мне стоять? И стоять ли вообще?

От очередного реза отсчитываете нужное расстояние по энкодеру полотна. Когда останется небольшое расстояние - начинаете рассчитывать оставшееся время, используя текущую скорость полотна, а не среднюю.

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

Всё равно не понял. Сколько тогда мне стоять? И стоять ли вообще?

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

А может и изменится. Оператор возьмёт и изменит скорость. В общем, надо регулировать до самой лини реза. А расчёты паузы нужны, чтобы прийти к интервалу регулировки с как можно меньшей ошибкой, чтобы легче было регулировать.

Далее чтобы "свести" процесс движения ножа и ленты - нужно ориентироваться по времени. По другому не получится...

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

С одной стороны:

Треза_требуемое = Lполотна/Vср_линии, где Lполотна - требуемая длина реза,Vср_линии - средняя скорость линии.

С другой стороны:

Vср_ножа = Lножа/Треза_требуемое, где Vср_ножа - требуемая средняя скорость ножа, Lножа - длина оборота ножа.

 

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

Но оценка, естественно, по времени.

Разница требуемой средней скорости и измеренной средней скорости на n-дискрете регулировки и есть e(n) для регулятора.

 

Что тут не так?

Вы пока этот режим отложите. Решите хотя бы задачу с паузой.

Это нельзя назвать отдельным режимом, это тоже самое. Просто в расчётах скорость до которой нужно притормозить получается на 0, а >0 и, следовательно, паузы нет.

И это нужно знать заранее. Т.е. будет ли пауза > 0 или будет = 0 нужно знатьзаранее, считать время паузы заранее.

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


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

У меня в расчётах меняется только время паузы. А время с момента, когда я начинаю разгон и до линии реза у меня не меняется в расчёте.

Оно на практике плавает.

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

Зачем вам рассчитывать то, что можно измерить непосредственно? Смысл?

Не от ваших расчетов нужно отталкиваться, а от реального значения Tp, измеренного в предыдущем цикле. На практике оно может (должно) плавать только в строго определенных пределах. Иначе точности не будет. Собственно, в этом ключевая часть задачи - застабилизировать этот параметр Tp при помощи регулятора. Тогда Ваша система станет предсказуемой. Можно будет точно рассчитать момент времени, когда нужно стартовать ножу из положения "пауза".

 

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

То есть Вы хотите после старта, в процессе, корректировать время Tp, ориентируясь на возможное изменение скорости ленты. Представляете уровень сложности этой задачи?

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

Такими вещами можно заниматься только в ситуации полной безысходности. Постарайтесь обойтись без этого.

Всё равно не понял. Сколько тогда мне стоять? И стоять ли вообще?

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

Что такое небольшое расстояние Вы сами должны определить (рассчитать предварительно, оценочно), так чтобы времени хватило

на запуск ножа.

 

Оператор возьмёт и изменит скорость. В общем, надо регулировать до самой лини реза.

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

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

Не создавайте себе лишних сложностей.

 

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

Опять Вы за свое. Нужен расчет точного времени старта ножа, а не паузы. Поэтому и начало цикла лучше от него отсчитывать.

А пауза - какая будет по факту. Лишь бы она была. Пока этот вариант рассматриваем.

 

Мне изначально нужно знать требуемый период реза.

Период рассчитывается по скорости линии и отрезаемой длине полотна. В чем сложность? Для Вас критичен только участок времени на интервале Tp и плюс еще сам рез.

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

Зачем Вам вообще понятие "средняя скорость" в модели. Какая польза от него? У Вас все времена и скорости должны быть предопределены и без этого.

 

Это нельзя назвать отдельным режимом, это тоже самое. Просто в расчётах скорость до которой нужно притормозить получается на 0, а >0 и, следовательно, паузы нет.

И это нужно знать заранее. Т.е. будет ли пауза > 0 или будет = 0 нужно знатьзаранее, считать время паузы заранее.

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

 

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


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

То есть Вы хотите после старта, в процессе, корректировать время Tp, ориентируясь на возможное изменение скорости ленты. Представляете уровень сложности этой задачи?

Причем, нужно будет все в реальном времени пересчитывать, очень быстро... Оставьте эту затею.

Сейчас так и сделано. Допустим, темп регулировки 100 Гц, я успеваю за 10мс всё обсчитать без проблем.

Считайте скорость ленты на интервале Tp условно постоянной.

Такими вещами можно заниматься только в ситуации полной безысходности. Постарайтесь обойтись без этого.

...

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

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

Не создавайте себе лишних сложностей.

Сам склонялся к такому допущению. Как раз правлю прошивку и ПО, чтобы ввести режим фиксации скорости на интервале регулировки. Завтра проверю это.

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

Что такое небольшое расстояние Вы сами должны определить (рассчитать предварительно, оценочно), так чтобы времени хватило

на запуск ножа.

Сейчас так и сделано. Только, чтобы стоять до расчётного времени старта, надо всё-таки вычислить время паузы. Т.к. на разных скоростях линии(даже без учёта плавания, а просто решили изменить с пульта скорость) и для разной длины картона эта пауза будет разной. делаю так:

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

Опять Вы за свое. Нужен расчет точного времени старта ножа, а не паузы. Поэтому и начало цикла лучше от него отсчитывать.

А пауза - какая будет по факту. Лишь бы она была. Пока этот вариант рассматриваем.

Да, опять, т.к. этот момент принципиален. Или я не понимаю, но у меня всё это работает.

Период рассчитывается по скорости линии и отрезаемой длине полотна. В чем сложность?

Ни в чём. Это сейчас так и делается.

Для Вас критичен только участок времени на интервале Tp и плюс еще сам рез.

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

Зачем Вам вообще понятие "средняя скорость" в модели. Какая польза от него? У Вас все времена и скорости должны быть предопределены и без этого.

Скорость линии не может быть предопределена, её оператор может изменить.

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

Но не готов так упрощать на всём периоде реза. Это гарантировано даст неверную длину реза.

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

А потом окажется, что это частный случай и переделывать?

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

Это как раз не вариант. Подход должен быть один.

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

 

Мы с Вами говорим почти об одном и том же.

Ключевое, что я вынес - это пренебрежение изменение скорости линии на интервале регулировки. Это я проверю.

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


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

>и для разной длины картона

Так это картон?

Так это совсем другое дело :)

И в чём же разница?

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


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

Какое отношение имеет к топику-то?

Прямое.

Данная задача хорошо ложится на принцип "Терминальное управление" - синтез САУ, использующих принцип обратной связи, управления в которой являются функцией текущего фазового состояния объекта (объектов).

Основоположники: Красовский, Летов.

Хорошее описание с примерами у А.П. Батов "Управление конечным состоянием движущихся объектов, 1977 и его же книга "Терминальное управление".

У Вас два объекта - нож и материал, у каждого есть наблюдаемые фазовые состояния.

Задача - синтез управлений (достаточно только ножом), приводящих нож и материал к требуемым фазовым состояниям в момент встречи.

Изменено пользователем Gruffly

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


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

Прямое.

Красиво ответили, спору нет.

Т.е. если бы я резал, например, пластик/резину/металл, то книга 1977 года мне бы уже не подошла?

 

Ближайшими тестами для меня являются:

 

1. Фиксация скорости линии на момент перехода в режим регулировки. Использование П/ПИ или даже, всё-таки, ПИД, т.к. уставка(требуемая средняя скорость ножа) не будет меняться.

2. Не использовать фиксацию. Использование П-регулятора с достижением осцилляций в пределах 1мм.

 

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

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


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

Красиво ответили, спору нет.

Т.е. если бы я резал, например, пластик/резину/металл, то книга 1977 года мне бы уже не подошла?

Как смог.

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

Я изначально понял, что металл режется. Это опять камешек в сторону ТС-ов, которые не в состоянии изначально грамотно описать задачу и проблемы.

P.S.

Вам в первых же постах сказали - сначала теория, модели, расчеты.

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


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

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

Сейчас так и сделано. Допустим, темп регулировки 100 Гц, я успеваю за 10мс всё обсчитать без проблем.

Сделано-то, сделано. Да результат Вас не устраивает. Так что - не "без проблем".

И теперь вообще не понятно, в чем причина: то ли считаете плохо (недостаточно точно), то ли алгоритмы не совершенны, то ли другие факторы.

А может и все вместе... ;)

 

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


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

Сейчас так и сделано. Допустим, темп регулировки 100 Гц, я успеваю за 10мс всё обсчитать без проблем.

 

Сделано-то, сделано. Да результат Вас не устраивает. Так что - не "без проблем".

И теперь вообще не понятно, в чем причина: то ли считаете плохо (недостаточно точно), то ли алгоритмы не совершенны, то ли другие факторы.

А может и все вместе... ;)

 

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

Завтра будут графики для режимов:

1. С отключенным регулятором, чисто на расчётах поедем.

2. С фиксацией скорости линии на интервале регулировки.

3. При работе в режиме П-регулятора.

 

Статистика наглядно покажет, что и как влияет. Ваше предложение не учитывать изменение скорости линии подоспело во время . Я об этом думал, но не дошёл до этого. Но чую, что надо скорее проверять.

Графики покажу.

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


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

С Вашего позволения, еще несколько вопросов:

1. Двигатель и привод:

- судя по всему - двигатель постоянного тока? Не читается отношение пускового момента к номинальному;

- управление только по якорной цепи?

- оценка приведенных маховых масс к цилиндру с ножом;

- радиус окружности резания ножа.

 

2. Выбег:

- 13 град, это понятно;

- 35 мм - непонятно;

- T=0.4 сек от снятия напряжение до остановки?

 

3. Разбег:

Очень полезно снятие кривой разбега без резания на нескольких значениях Uупр = 1, 2, 3 В и предельном напряжении для ваших ограничений по скорости.

 

4. Штатная САУ:

- 1 B == 20 м/мин - это что? Линейная (окружная) скорость ножа? Какая максимальная скорость? Какое необходимо соотношение скорости материала и линейной скорости ножа?

- минимальное напряжение трогания и ток при этом;

- как задается напряжение управления сейчас? Скачком, нарастанием...

Изменено пользователем Gruffly

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


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

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

Выскажу только одно наблюдение.

Система двигатель-нож будет не меньше чем 2-го порядка, как минимум из-за упругости ремня. Это к вопросу бесполезности ПИ.

А упругость ремня еще зависит от износа, нагрева, и проч.

Без энкодера на ноже, добиться миллиметровой точности нереально.

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


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

С Вашего позволения, еще несколько вопросов:

1. Двигатель и привод:

- судя по всему - двигатель постоянного тока? Не читается отношение пускового момента к номинальному;

- управление только по якорной цепи?

- оценка приведенных маховых масс к цилиндру с ножом;

- радиус окружности резания ножа.

Двигатель постоянного тока.

Радиус окружности ~900мм.

Остальное не знаю.

2. Выбег:

- 13 град, это понятно;

- 35 мм - непонятно;

- T=0.4 сек от снятия напряжение до остановки?

900*13/360 = 32,5 мм. Или 35мм грубо. Длина немного меньше 900мм.

Т = 0.4с - от подачи 0В на вход привода постоянного тока до остановки ножа.

3. Разбег:

Очень полезно снятие кривой разбега без резания на нескольких значениях Uупр = 1, 2, 3 В и предельном напряжении для ваших ограничений по скорости.

Это как нож набирает скорость при подаче ступеньки от 0В до 1,2,3 В или как держит скорость на этих напряжениях?

Если первое, то картинка во вложении.

По оси х - номера дискрет регулирования, 1 дискрета - 10 мс. Ось Y - скорость ножа мм/с.

Перед началом разгона есть детерминированная задержка привода постоянного тока.

4. Штатная САУ:

- 1 B == 20 м/мин - это что? Линейная (окружная) скорость ножа?

Это при приращении управляющего напряжения на приводе в 1В я получаю увеличение скорости ножа на 20 м/мин.

Какая максимальная скорость? Какое необходимо соотношение скорости материала и линейной скорости ножа?

Максимальная скорость линии 60 м/мин. У ножа точно не скажу сейчас, нет под рукой цифр. Где-то 80-90 м/мин, в зависимости от длины реза.

- минимальное напряжение трогания и ток при этом;

- как задается напряжение управления сейчас? Скачком, нарастанием...

- Не замерял.

- Задаётся нарастанием. Я ввожу как параметр ускорения на интервале торможения и разгона. И в соответствии с темпом регулирования, делаю приращение скорости.

post-32913-1491761437_thumb.jpg

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


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

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

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

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

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

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

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

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

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

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