PDA

Просмотр полной версии : -1.#qnan в пид регуляторе



Aplle
03.12.2010, 17:33
Контроллер ПЛК-110-60.L
Прошивка 2.12.7
Таргет 2.10

Контроллер - slave, СП270 - master.
Контроллер - master, МВА8 - slave.

Проблема с ПИД регулятором, в проекте (во вложении) pid1_pid.
Анаорговые значения берутся с МВА8.
INTEGRAL1 = -1.#QNAN и соответственно на выходе пид-регулятора тоже
самое -1.#QNAN
Как избавиться от этой ошибки?

Цифровой фильтр для аналоговых значений использую, DECODE_FLOAT
использую.

Проект во вложении.

Малышев Олег
04.12.2010, 09:09
на вход регулятора приходит Nan значение (после операций над Nan он таким и остается ) - я бы поставил проверку на диапазон всех входных значений.

Aplle
04.12.2010, 19:14
Вопрос такой: Правильно-ли я использую функциональные блоки ПИД-регулятора? Что значит проверка на диапазон? Что значит для ПИД-регулятора Nan значение?

Малышев Олег
04.12.2010, 21:13
Честно говоря не смотрел сильно вглубь программы но на первый взгляд вроде бы правильно. Проверка на диапазон - если измеряете температуру от +20 до +120 градусов - нет смысла вызывать регулятор при значении -1.0E31. Аналогично по коэффициентам пид. НАН получается при делении на 0 или извлечении корня из -1 и т.д.(переполнение плавающего) . Например, вы вызвали регулятор при к-те ti=0 в интеграле нан - и на выходе нан.

Aplle
04.12.2010, 23:03
а отрицательные значения на вход пид подавать можно?

ASo
05.12.2010, 11:04
какой из входов?
если входной величины - почему нет? пид работает с разностью.

Aplle
05.12.2010, 21:00
вход входной величины.

Aplle
13.12.2010, 22:47
решил проблему инициализацией входных параметров Pid_function значениями, отличными от нуля.