IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Загадка ПИД-а при использовании контроллера FX2N-32MR Mitsubishi Electric и Девелопера 4.0, Может быть кто поможет.
Rogvolod
сообщение 31.01.2007 - 02:11
Сообщение #1





Гости






Приветствую, господа.

Юзаю старенький Девелопер 4.0, контроллер FX2N-32MR.

Давно скачал откуда-то архив PidFX, пытался поэкспериментиворать с ним сегодня и что-то ничего не получается.

Ни блок PidFX, ни Simple_Pid не оживают, хотя, я их, вроде бы, правильно пообзязал переменными-то... Как я их не крутил - на выходе бублик.

Да и вообще, есть ли типовые решения, так сказать?

Может кто подскажет, как по человечески организовать контур регулирования. Городушки-то городить неохота.


Заранее благодарен.

Мой маил: obliteration@mail.ru
ICQ: 107778902
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rogvolod
сообщение 31.01.2007 - 21:43
Сообщение #2





Гости









Прошу прощенья.

Разобрался сам. Проблема была не в ПИДах, а в невнимательности. )))

Желающим могу чего-нить прислать из собственного опыта, так сказать.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Muhomor
сообщение 8.02.2007 - 17:36
Сообщение #3


Читатель
*

Группа: Пользователи
Сообщений: 7
Регистрация: 24.01.2007
Пользователь №: 1782



Цитата(Rogvolod @ 31.01.2007 - 21:43) *

Прошу прощенья.

Разобрался сам. Проблема была не в ПИДах, а в невнимательности. )))

Желающим могу чего-нить прислать из собственного опыта, так сказать.


Доброго Здоровья!
Прошу вас выслать на mail Muhomor74@mail.ru пример программы с регулятором и какие считаете нужным соображения.
Проблема возникла в следующем: Только начали изучение этой функции и опять очередной
"подарок" - регулятор при рассогласовании считает ошибку, но стоит рассогласование сделать равным нулю, регулятор перестаёт считать но значение на выходе остаётся как при рассогласовании т.е. не сбрасывается в ноль.

Большое спасибо!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Vad
сообщение 21.02.2007 - 13:23
Сообщение #4


Читатель
*

Группа: Пользователи
Сообщений: 18
Регистрация: 2.07.2006
Пользователь №: 304



Цитата

Доброго Здоровья!
Прошу вас выслать на mail Muhomor74@mail.ru пример программы с регулятором и какие считаете нужным соображения.
Проблема возникла в следующем: Только начали изучение этой функции и опять очередной
"подарок" - регулятор при рассогласовании считает ошибку, но стоит рассогласование сделать равным нулю, регулятор перестаёт считать но значение на выходе остаётся как при рассогласовании т.е. не сбрасывается в ноль.

Большое спасибо!


Может у вас не равна 0 интегральная константа регулирования ? ПИ-регулятор так и должен работать, как вы описали
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Muhomor
сообщение 23.02.2007 - 10:24
Сообщение #5


Читатель
*

Группа: Пользователи
Сообщений: 7
Регистрация: 24.01.2007
Пользователь №: 1782



Цитата(Vad @ 21.02.2007 - 13:23) *

Цитата

Доброго Здоровья!
Прошу вас выслать на mail Muhomor74@mail.ru пример программы с регулятором и какие считаете нужным соображения.
Проблема возникла в следующем: Только начали изучение этой функции и опять очередной
"подарок" - регулятор при рассогласовании считает ошибку, но стоит рассогласование сделать равным нулю, регулятор перестаёт считать но значение на выходе остаётся как при рассогласовании т.е. не сбрасывается в ноль.

Большое спасибо!


Может у вас не равна 0 интегральная константа регулирования ? ПИ-регулятор так и должен работать, как вы описали



Да Вы правы интегралка не равна нулю.... вообще не понятно как это всё проверить как работает без конкретного контура в железе. Ещё один момент не даёт покоя: при установке Кп=10 имитируем изменение рассогласования - вроде всё работает, затем изменяем Кп=100 (к примеру) - так же имитируем, нормально соответственно значение на выходе ПИД увеличилось в 10 раз - понятно, далее при большом рассогласовании мнеяем Кп=10 (т.е. возвращаем назад) и всё максимального изменения рассогласования уже не хватает чтоб вывести ПИД к нулю (т.е. размаха велечины входа не хватает чтоб изменить знак на выходе (при мин и макс на выходе установленном скажем от -10000 до +10000)) ?????
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Vad
сообщение 23.02.2007 - 16:20
Сообщение #6


Читатель
*

Группа: Пользователи
Сообщений: 18
Регистрация: 2.07.2006
Пользователь №: 304



Цитата
Ещё один момент не даёт покоя: при установке Кп=10 имитируем изменение рассогласования - вроде всё работает, затем изменяем Кп=100 (к примеру) - так же имитируем, нормально соответственно значение на выходе ПИД увеличилось в 10 раз - понятно, далее при большом рассогласовании мнеяем Кп=10 (т.е. возвращаем назад) и всё максимального изменения рассогласования уже не хватает чтоб вывести ПИД к нулю (т.е. размаха велечины входа не хватает чтоб изменить знак на выходе (при мин и макс на выходе установленном скажем от -10000 до +10000)) ?????

Ну правильно, вы ведь уменьшили коэффициент, поэтому выход до 0 и не доходит. В свое время тоже бился над этой функцией пид регулирования. В ее работе есть некоторые особенности, может вы и так все поняли, но на всякий случай вот они:

1) Когда вы изменяете коэффиценты регулирования, это сказывается лишь на появляющемся после этого рассогласовании, то есть при изменении коэффициентов пересчет выхода регулятора не происходит.
Если вы хотите чтобы при изменении например Кп сразу менялся выход регулятора, тогда отключите и заного включите условие выполнения PID инструкции после того как изменили коэффициенты.

2) Когда все условия работы PID инструкции становятся истинными, выход регулятора складывается с тем значением, которое находилось в регистре выхода регулятора до включения PID инструкции. Т.е. если выход регулятора должен записывается в какой-то регистр, а до включения PID инструкции в этом регистре содержалось какое-то число, то после включения PID инструкции в регистре будет содержаться сумма этого числа и реального значения выхода регулятора.
Говоря о включении PID инструкции я имею ввиду момент когда условия выполнения инструкции становятся истинными.
Не знаю зависит ли инструкция PID регулирования от программы которую вы используете, у меня GX Developer 8, может для других программ есть какие то отличия.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rogvolod
сообщение 23.02.2007 - 16:57
Сообщение #7





Гости






"Когда вы изменяете коэффиценты регулирования, это сказывается лишь на появляющемся после этого рассогласовании, то есть при изменении коэффициентов пересчет выхода регулятора не происходит."

Из моего опыта песечета не происходит вообще, если не сделать инструкции STOP\RUN.

"Когда все условия работы PID инструкции становятся истинными, выход регулятора складывается с тем значением, которое находилось в регистре выхода регулятора до включения PID инструкции."


Только что попробовал проверить данное утверждение. У меня не получилось ничего в тот регистр поместить при выключенной ПИД-инструкции. У меня обычно так - выключаю ПИД - его выход падает на ноль.

А вообще-то я толком не понимаю о чем разговор. У меня все вроде бы работает как надо.

На сколько я понимаю, то выходом ПИД-инструкции является число, которое показывает, в какую сторону (знак) и скакой скоростью (абс величина) должен передвигаться клапан. И даже, если есть И-составляющая, то при отсутствии рассогласования на входе инстуркции ее выход постепенно придет к нулю.

А для того, чтобы получилось то, что вы имели в виду говоря, что "именно так и работает ПИ-регулятор", необходимо, на мой взгляд, городить еще звено, которое будет интегрировать выход ПИД-а, получая из него таким образом абсолютное значение положения регулирующего органа. Такая схема, на сколько я знаю, применяется с некоторыми исполнительными механизмами. Например с пневматическими, или еще у Сименса есть привода положение которым задается сигналом 4-20 мА.

Есть такой еще вопрос. Кто-нибудь понимает ту математику, что написана в англоязычном описании ПИД-инструкции? Я что-то читал-читал, так и не вкурил, почему он так странно обсчитывает производные.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Vad
сообщение 24.02.2007 - 11:05
Сообщение #8


Читатель
*

Группа: Пользователи
Сообщений: 18
Регистрация: 2.07.2006
Пользователь №: 304



Цитата
И даже, если есть И-составляющая, то при отсутствии рассогласования на входе инстуркции ее выход постепенно придет к нулю.

Не придет к нулю. Если есть интегральная составляющая то выход регулятора зависит от интеграла ошибки. Т.е. с некоторым интервалом времени происходит суммирование значений ошибки с учетом коэффициента интегрирования, эта накполенная сумма и есть интегральная составляющая, которая всегда плюсуется к выходу регулятора, то есть если даже нет ошибки, выход регулятора будет содержать эту накопленную сумму.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Rogvolod
сообщение 24.02.2007 - 17:35
Сообщение #9





Гости






Цитата(Vad @ 24.02.2007 - 10:05) *

Цитата
И даже, если есть И-составляющая, то при отсутствии рассогласования на входе инстуркции ее выход постепенно придет к нулю.

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



Да, действительно, все так. Только что проверил, так что, снимаю шляпу.

Я думал, что интеграл накапливается за какой-то определенный отрезок времениа не за все время работы инструкции, а поэтому он в моих рассуждениях и должен был рано или поздно "сесть на ноль"... Что-то типа медианного фильтра, только без усреднения...

Однако, что касается того, что ПИД суммирует свое выходное значение с числом находящимся в том регистре к которому собственно его выход привязан, тут я сомневаюсь.

Ведь тогда получается, что при неизменном выходе ПИДа он на каждом скане контроллера (или частоте сканирования ПИД-инструкции) он прибавлял бы в тот регистр свое значение (даже если бы он был просто П-регулятором). Там бы моментально переполнение было.

Разве нет?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Vad
сообщение 25.02.2007 - 11:32
Сообщение #10


Читатель
*

Группа: Пользователи
Сообщений: 18
Регистрация: 2.07.2006
Пользователь №: 304



Цитата

Однако, что касается того, что ПИД суммирует свое выходное значение с числом находящимся в том регистре к которому собственно его выход привязан, тут я сомневаюсь.

Ведь тогда получается, что при неизменном выходе ПИДа он на каждом скане контроллера (или частоте сканирования ПИД-инструкции) он прибавлял бы в тот регистр свое значение (даже если бы он был просто П-регулятором). Там бы моментально переполнение было.
Разве нет?

Cуммируется только при включении пид инструкции
Цитата
Когда все условия работы PID инструкции становятся истинными, выход регулятора складывается с тем значением, которое находилось в регистре выхода регулятора до включения PID инструкции

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
pupil
сообщение 10.05.2007 - 12:18
Сообщение #11


Читатель
*

Группа: Пользователи
Сообщений: 10
Регистрация: 2.02.2007
Пользователь №: 1916



Помогите разобраться с PID инструкцией. Делаю всё по мануалу, а ничего не получается. Выход как был 0, так и остается, чтобы я не делал. И коэффициенты менял, и сто раз перезапускал эту инструкцию. И какие только SP не устанавливал. Ничего не помогает. В чем может быть проблема? Хотел прикрепить файл, но форум не дает.

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

Сообщение отредактировал pupil - 10.05.2007 - 12:32
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 28.03.2024 - 13:09