1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

ПИД-регулятор

Ответить

Автор темы
Yana
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 31 янв 2017, 19:54
Имя: Овсянникова Яна
Страна: Россия
город/регион: Санкт-Петербург

ПИД-регулятор

Сообщение Yana »

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

Описываю проблему. В качестве уставки ( Set value SV) задается одна из написанных мной функций: единичная, синусоидальная, экспоненциальная или просто константа. В качестве обратной связи Present value PV и выхода регулятора Output value MV я взяла нулевой аналоговый выход (соответсвующий ему регистр D1116), имитируя замкнутую систему. Изменения уставки и значения на выходе регулятора выводятся на панели серии DVP-B на графике (на фотографиях синим - уставка, белым - выход регулятора ). Регулятор при подобранных коэффициентах отрабатывает эти функции хорошо, но при переключении с единичной функции на синусоидальную выход регулятора начинает очень сильно колебаться. Никакое изменение коэффициентов ПИДа или их обнуление не помогает. Есть только два варианта: перезапустить плк, либо снова выставить единичную функцию и дождаться, пока она не выставится в ноль, и тогда все нормализуется. Дело не в накапливаемой интегральной сумме, если обнулить интегральную и дифференциальную часть, все равно происходит все то же самое. Регулятор реализуется в прерывании по времени (2мс)
Прикрепила в документе скрины нетворков только с пропорциональной частью и результат ее работы на панели.

P.S: простите студентку)
программа.docx
3taYh10mgWE.jpg
lRVv6qPYfH4.jpg
r1KP94LSllo.jpg
SwyBJ6z5CGw.jpg [attachment=1]yX_RMBqDFJU.jpg
программа.docx
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5623
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

ПИД-регулятор

Сообщение Ryzhij »

Yana писал(а): Регулятор реализуется в прерывании по времени (2мс)
Так...
Скажите, Яна, а период периодической функции на Set value SV у Вас какой получается?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5623
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

ПИД-регулятор

Сообщение Ryzhij »

И потом...
Конечно, для Вашего случая, может и не важно, что Вы прогоняете через масштабирование дважды одно и то же число, туда и обратно...
И всякий раз переопределяете массив параметров операции масштабирования, НО откуда у нас может быть уверенность, что массив параметров непрерывен?
Т.е. насколько мы можем быть уверены, что компилятор оттранслировал переменные
minsourse => D1 (D0+1)
maxdest => D2 (D0+2)
mindest => D3 (D0+3)

раз уж для обеих API-203 SCLP начало массива параметров указано как D0 ?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

Автор темы
Yana
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 31 янв 2017, 19:54
Имя: Овсянникова Яна
Страна: Россия
город/регион: Санкт-Петербург

ПИД-регулятор

Сообщение Yana »

Ryzhij писал(а):
Yana писал(а): Регулятор реализуется в прерывании по времени (2мс)
Так...
Скажите, Яна, а период периодической функции на Set value SV у Вас какой получается?
у step 2,5 секунды, у Sin 3,6 с

Автор темы
Yana
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 31 янв 2017, 19:54
Имя: Овсянникова Яна
Страна: Россия
город/регион: Санкт-Петербург

ПИД-регулятор

Сообщение Yana »

Ryzhij писал(а):
НО откуда у нас может быть уверенность, что массив параметров непрерывен?
на графике показаны изменения этих переменных (уставки и выхода регулятора), они как раз и масштабируются. Но, да, вы правы, лучше не переопределять параметры масштабирования.. теперь указала другую область памяти для этого

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5623
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

ПИД-регулятор

Сообщение Ryzhij »

Яна, а не могли бы выложить исходник *.isp (наверное, в архиве будет лучше)и указать версию Вашего пакета ISPSoft?
Не очень-то удобно разбираться по картинкам в Word-е.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

Автор темы
Yana
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 31 янв 2017, 19:54
Имя: Овсянникова Яна
Страна: Россия
город/регион: Санкт-Петербург

ПИД-регулятор

Сообщение Yana »

Ryzhij писал(а):Яна, а не могли бы выложить исходник *.isp
Версия 3.02, в архиве еще .dps файл для панели
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5623
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

ПИД-регулятор

Сообщение Ryzhij »

Яна, при входе в программу обработки прерываний сохраняйте значение флага M1081 (указатель режима преобразования для FLT), а по окончании подпрограммы восстанавливайте его.
Возможно, что проблема в этом.
Вообще-то, кошерным считается сохранять и восстанавливать все математические флаги. :ext_secret:

По-пробуйте.
Удачи!
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

Автор темы
Yana
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 31 янв 2017, 19:54
Имя: Овсянникова Яна
Страна: Россия
город/регион: Санкт-Петербург

ПИД-регулятор

Сообщение Yana »

Ryzhij писал(а):
Вообще-то, кошерным считается сохранять и восстанавливать все математические флаги
логично :ges_up: спасибо) но, к сожалению, описанный мной баг на своем месте
Ответить

Вернуться в «Вопросы от студентов»