Для определения параметров линейного динамического звена измерениям, поступающих в темпе реального времени, в продукте Acsocad применяется связка программируемой функции с общими переменными, соответствующими коэффициентам полинома числителя и знаменателя оцениваемой передаточной функции.
Пример оценки параметров динамического звена 1 порядка представлен на рисунке. На схеме задаются общие переменные B0 и A0, начальные значения которых принимаются нулевыми. Известный входной и выходной сигналы, полученные либо в ходе снятия экспериментальных данных с реального объекта, либо получаемые в процессе моделирования, подаются на вход программируемой функции #ID.
Код в программируемой функции #ID имеет вид:
UNKNOWN_P[0] = A0;
UNKNOWN_P[1] = B0;
R=ID("K:0",2,up,"");
__A0 = UNKNOWN_P[0];
__B0 = UNKNOWN_P[1];
Пояснение к коду. На каждом шаге моделирования функция выполняет процедуру оценки вектора состояния с использованием фильтра Калмана. Начальные значения оцениваемых коэффициентов принимаются равными предыдущим значениям. После вызова функции ID, в которой передается модель "K:0" (фильтр Калмана, порядок числителя равен 0), общее количество неизвестных параметров (2 параметра B0 и A0), вектор, содержащий значения входного и выходного сигнала (up) и дополнительные параметры (""), в переменную R записывается оценочное значение выходного сигнала в текущий момент времени. Кроме того, в переменные UNKNOWN_P[] записываются новые значения оцениваемых параметров, которые необходимо передать в переменные A0 и B0.