PID controller on FX1N in GX Works2

другие контроллеры
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

PID controller on FX1N in GX Works2

Post by Luksor »

Я тут искал искал и нашел библиотеку, вроде все должно было упроститься, но нет же. Там несколько видов пида для fx, мне не нужна авто настройка по этому я решил использовать симпл пид, но я с ним ни как не могу подружиться. Настроил те параметры которые мне нужны, но работает не совсем так как мне нужно. Печь должна нагреваться до 900 градусов и потом поддерживать данную температуру, а она нагревается до 1000(это максимальное верхнее ограничение). Колебания конечно должны быть как можно меньше потому что если будут большой диапазон то заготовки будут нагреваться по разному это плохо.
1) Нагревается не до SetpointValue=900, а до MVHighLimitValue=1000. Для чего тогда SetpointValue? И если я на деле буду греть что дальше будет? Он на 1000 что будет делать? Если он в нее уперся, сгорит?
2)При OperationDirection=0 должно работать на нагрев, а на 1 должен быть реверс, а работает на оборот. А иногда то так то так при том что не меняешь цифру, просто 1 стоит, а он то греет то охлаждает.
3)Параметр ProcessValueя так понял это показания с термопары, на которые он должен корректировать выходной сигнал, но результат вообще странный. Я меняю цифру или не меняю все одно точно так же быстро нагревает или иногда зависает и не греет. Его предел, до 12000 это как? Мне нужно что бы грелось до 900 значитесли значение ProcessValueя 900 он должен перестать греть? А я когда ставлю 100 он останавливается и не важно где то на 70 то на 300 на выходе.

Помогите пожалуйста разобрать с работой данного блока.
Image
Rex2701
Posts: 371
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: PID controller on FX1N in GX Works2

Post by Rex2701 »

Luksor wrote:Я тут искал искал и нашел библиотеку, вроде все должно было упроститься, но нет же. Там несколько видов пида для fx, мне не нужна авто настройка по этому я решил использовать симпл пид, но я с ним ни как не могу подружиться. Настроил те параметры которые мне нужны, но работает не совсем так как мне нужно. Печь должна нагреваться до 900 градусов и потом поддерживать данную температуру, а она нагревается до 1000(это максимальное верхнее ограничение). Колебания конечно должны быть как можно меньше потому что если будут большой диапазон то заготовки будут нагреваться по разному это плохо.
1) Нагревается не до SetpointValue=900, а до MVHighLimitValue=1000. Для чего тогда SetpointValue? И если я на деле буду греть что дальше будет? Он на 1000 что будет делать? Если он в нее уперся, сгорит?
2)При OperationDirection=0 должно работать на нагрев, а на 1 должен быть реверс, а работает на оборот. А иногда то так то так при том что не меняешь цифру, просто 1 стоит, а он то греет то охлаждает.
3)Параметр ProcessValueя так понял это показания с термопары, на которые он должен корректировать выходной сигнал, но результат вообще странный. Я меняю цифру или не меняю все одно точно так же быстро нагревает или иногда зависает и не греет. Его предел, до 12000 это как? Мне нужно что бы грелось до 900 значитесли значение ProcessValueя 900 он должен перестать греть? А я когда ставлю 100 он останавливается и не важно где то на 70 то на 300 на выходе.
Помогите пожалуйста разобрать с работой данного блока.
Мда....
Ты абсолютно не разобрался в том, как работают ПИД-регуляторы.
Setpoint - твоя уставка, желательное значение параметра ProcessValue.
ProcessValue - текущее значение технологического параметра, в твоём случае температуры в печи.
ManipulatedValue - это не температура, это управляющее воздействие. И его границы в 0-1000 ты сам задал. Какой должен быть диапазон MV? - Ответь на вопросы ниже.
А вот дальше многое непонятно:
  • Чем осуществляется нагрев? Что из себя представляет регулятор нагрева?
  • Какой входной сигнал принимает нагреватель?
  • Чему соответствует полное отключение нагрева? Чему соответствует нагрев на полной мощности?
  • На основании чего выбраны коэффициенты ПИД-регулятора? Перерегулирование очень даже возможно при неправильных коэффициентах. А иногда и вполне допустимо по техппроцессу.
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

Re: PID controller on FX1N in GX Works2

Post by Luksor »

Rex2701 wrote:
  • Чем осуществляется нагрев? Что из себя представляет регулятор нагрева?
  • Какой входной сигнал принимает нагреватель?
  • Чему соответствует полное отключение нагрева? Чему соответствует нагрев на полной мощности?
  • На основании чего выбраны коэффициенты ПИД-регулятора? Перерегулирование очень даже возможно при неправильных коэффициентах. А иногда и вполне допустимо по техппроцессу.
1)Нагревание осуществляется с помощью 2 х тэн (спиралей). Там все интересно сделано...симистор, оптопара ...ну вообщем суть в том что нам нужно нагревать печь от 0 до 900. 900 это температура которая должна постоянно держаться. Но так точно не нагреть по этому при стабилизации на 900 она скачет до 940 и потом стабилизируется.
2)Температура в градусах Цельсия.
3)Полное отключение 0. на полную 900. Конечно там есть поле где можно менять температуру на панели и какую температуру оператор установит, такая и будет. Но в нашем случае это чаще 900.
4)Коэффициенты были подобраны опытным путем. Другая печь с пид МЕТАКОН и методом экспериментов были подобраны оптимальные коэффициенты. По этим данным построены графики нагреф происходит плавно и перерегулирования почти нет. В нашем случае перерегулирование не желательно.
Rex2701
Posts: 371
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: PID controller on FX1N in GX Works2

Post by Rex2701 »

Ты опять не понял по п.2 и п.3.
У тебя ТЭНы нагреваются от температуры что-ли? Или всё-таки от протекающего через них тока? Ток как-то регулируется или просто реле вкл./выкл.?
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

Re: PID controller on FX1N in GX Works2

Post by Luksor »

Rex2701 wrote:Ты опять не понял по п.2 и п.3.
У тебя ТЭНы нагреваются от температуры что-ли? Или всё-таки от протекающего через них тока? Ток как-то регулируется или просто реле вкл./выкл.?
От протекающего тока нагреваются. Реле вкл/выкл.))
Dfcz
Posts: 878
Joined: Tue Dec 26, 2006 5:21 am
Location: Russia

Re: PID controller on FX1N in GX Works2

Post by Dfcz »

Общие слова, что бы помочь в понимании настройки регулятора вообще:
В любом регуляторе, ЕСЛИ ЕСТЬ ПРОБЛЕМЫ, то я сначала проверяю, а вообще работает система или нет. То есть задаю совсем маленькую величину (в данном случае температуру) и смотрю, что бы все срабатывало (т.е. система работоспособна).
После этого играюсь с параметрами. В первую очередь с коэффициентом усиления, потом с временными параметрами. Если объект совершенно незнакомый, то загоняю коэффициент в минимум и добавляю, пока не начнет срабатывать. После этого загоняю диф.время в максимум и постепенно уменьшаю. Когда более менее начнет регулятор работать, играюсь параметрами "вертикально, горизонтально и хаотично" (это из юмора).

Уточни параметр PID_PulseSignal. Может он определяет режим выхода, и для релейного регулирования нужно другое значение?
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

Re: PID controller on FX1N in GX Works2

Post by Luksor »

Dfcz wrote:Общие слова, что бы помочь в понимании настройки регулятора вообще:
В любом регуляторе, ЕСЛИ ЕСТЬ ПРОБЛЕМЫ, то я сначала проверяю, а вообще работает система или нет. То есть задаю совсем маленькую величину (в данном случае температуру) и смотрю, что бы все срабатывало (т.е. система работоспособна).
После этого играюсь с параметрами. В первую очередь с коэффициентом усиления, потом с временными параметрами. Если объект совершенно незнакомый, то загоняю коэффициент в минимум и добавляю, пока не начнет срабатывать. После этого загоняю диф.время в максимум и постепенно уменьшаю. Когда более менее начнет регулятор работать, играюсь параметрами "вертикально, горизонтально и хаотично" (это из юмора).

Уточни параметр PID_PulseSignal. Может он определяет режим выхода, и для релейного регулирования нужно другое значение?
Там кстати не совсем реле, а транзистор.
Для общих настроек и запуска понятно дело, что все так. Но дело то в том, что данная система точно работает. Имеется проект написанный в GX Developer, но проблема в том что его писали до меня, там написано все в перемешку, что то на паскале что то блоками, что то вообще не нужно потому что это все подразумевалось универсальным, но сейчас некоторые принципы поменялись и что то нужно изменить. Я что то переделал, что то не понял. Но вообщем я хотел переделать весь проект под конкретно свой нужды в одном стиле и одним языком. Там используется библиотека(для FX1n GX Developer) и тоже готовый блог ПИД. Но там используется блок который больше. В котором есть авто=pidfx , а не simplepidfx/ Но данная библиотека не работает в gx works2 и я нашел библиотеку для gx works2 только для 3g, другую не нашел. Да и fx1n не выпускается наверно такой и нету для works2. Я хотел собрать пид по формуле(в место блока) но тут как все не пошло.
Мануал к этой библиотеке есть но не открывается у меня. А в блоке про этот вход написано только это и все. Depended on a 100mS pulsetrain
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

Re: PID controller on FX1N in GX Works2

Post by Luksor »

Rex2701
Posts: 371
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: PID controller on FX1N in GX Works2

Post by Rex2701 »

Такой регулятор не подходит к твоему объекту.
Твой SimplePIDFX - это так называемый Continuous PID controller, работающий с аналоговым управлящим воздействием. А тебе нужен PID step controller - импульсный ПИД-регулятор, умеющий только включать/выключать исполнительное устройство для регулирования.

Можно, конечно, и этот адаптировать. Выход ManipulatedValue сравнивать с 2мя значениями. Если меньше 450 - выключить нагреватель. Если больше 550 - включить нагреватель. Мёртвую зону подобрать на месте.
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

Re: PID controller on FX1N in GX Works2

Post by Luksor »

Rex2701 wrote:Такой регулятор не подходит к твоему объекту.
Твой SimplePIDFX - это так называемый Continuous PID controller, работающий с аналоговым управлящим воздействием. А тебе нужен PID step controller - импульсный ПИД-регулятор, умеющий только включать/выключать исполнительное устройство для регулирования.

Можно, конечно, и этот адаптировать. Выход ManipulatedValue сравнивать с 2мя значениями. Если меньше 450 - выключить нагреватель. Если больше 550 - включить нагреватель. Мёртвую зону подобрать на месте.
А не подскажете где взять подходящий мне "PID step controller - импульсный ПИД-регулятор" а то я пока и этот то нашел только на каком то форуме. а так то не нашел библиотеки на сайте митсубиши. И конечно хорошо бы с инструкцией))
А тут у в примере используется pls по флагу m8012 он срабатывает каждые 100мс это подходит под импульсный? Или я опять что то не понимаю?

ManipulatedValue. У меня дальше такое сравнение и предполагалось. Только вот я не совсем понял как это работает там по программе идет реальной температуры и потом идет сравнение какая температура попадает она в рамки от 860 до 940 или нет, следовательно или нагрев или отключение. Для меня конечно было бы проще всего что бы этот блок работал как метакон я подаю три координаты Kp, Ti, Td и все жду когда нагреется, но тут все как то сложнее(((
Что касается этого блока получается так:
Setpoint = 900 - нужная мне температура.
ProcessValue - температура с датчика из печи.
OperationDirection = 0 - остывание = 1, нагрев =0.
Ts =(у чувака 3600мс)- время работы цикла.
Kp = 30, Ti = 500, Td = 300 - параметры.
MVHighLimitValue = 100% - максимальное воздействие. 100% пока печь нагревается до 900. Потом допустим падает до 870 тогда воздействие подаем 30%. Примерно так это работает?
MVLowLimitValue = 0% - мин возд.
ManualAutoControl = 0 - авто или нет.
ManualManipulatedValue - не знаю что это(
ManipulatedValue - это воздействие на выход в процентах, так?
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

Re: PID controller on FX1N in GX Works2

Post by Luksor »

Я еще попробовал использовать штатный ПИД, нашел пример и вот, но я что то не понимаю как он работает? Как проверить его работу?
Image
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

Re: PID controller on FX1N in GX Works2

Post by Luksor »

Там напутал, перед блоком PID один флаг PID_on и второй tmr1on.
1)А вот что такое predefind_value(предопределенное значение)? Итоговая температура? В моем случае 900?
2)Что такое H21?
3)Температура с датчика current_value?
4)Что такое Kdif?
5)Почему в Pid_parametr[2] записано 50?
6)То что в скобках это я так понял эту переменную Pid_parametr[22] нужно задать Word[Signed](0..24)?
Rex2701
Posts: 371
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: PID controller on FX1N in GX Works2

Post by Rex2701 »

MV чаще всего задают в процентах, 0-100. Но никто не запрещает использовать любой другой удобный диапазон - всё зависит от того, какой диапазон входного сигнала у исполнительного устройства.
Можно задать MVLowLimitValue = 4, MVHighLimitValue = 20, и ПИД-регулятор будет сразу тебе выдавать значение тока унифицированного сигнала.
По PID Pulse Signal: специфика алгоритма ПИД-регуляторов такова, что он должен выполняться через одинаковые промежутки времени. В твоём случае блок ПИД-регулятора вызывается импульсом каждые 100 мс. Для регулирования такого "вялого" процесса, как нагрев/охлаждение 100 мс несколько избыточны (слишком часто), но в принципе сойдёт, если процессор контроллера тащит.
По всему остальному я пас, с мицубиши никогда не работал, не могу подсказать. А ПИД-регуляторы везде одинаково устроены.
Luksor
Posts: 10
Joined: Fri Nov 10, 2017 8:08 am

Re: PID controller on FX1N in GX Works2

Post by Luksor »

Rex2701 wrote: с мицубиши никогда не работал, не могу подсказать. А ПИД-регуляторы везде одинаково устроены.
Я последнее время это очень часто слышу. Странно я думал что митсубиши один из популярных. Но ладно и на том спасибо)
Dfcz
Posts: 878
Joined: Tue Dec 26, 2006 5:21 am
Location: Russia

Re: PID controller on FX1N in GX Works2

Post by Dfcz »

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