Оценочные модели передаточной функции с предшествующими знаниями структуры модели и ограничениями

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

Загрузка данных во временной области.

load iddata1 z1;
z1.y = cumsum(z1.y);

cumsum интегрирует выходные данные z1. Поэтому предполагаемая передаточная функция должна содержать интегратора.

Создайте модель передаточной функции с ожидаемой структурой.

init_sys = idtf([100 1500],[1 10 10 0]);

int_sys является idtf модель с тремя полюсами и одним нулями. Коэффициент знаменателя для s^0 термин равен нулю, что указывает на то, что int_sys содержит интегратор.

Задайте ограничения на коэффициенты числителя и знаменателя модели передаточной функции. Для этого сконфигурируйте поля в Structure свойство:

init_sys.Structure.Numerator.Minimum = eps;
init_sys.Structure.Denominator.Minimum = eps;
init_sys.Structure.Denominator.Free(end) = false;

Ограничения определяют, что коэффициенты числителя и знаменателя неотрицательны. Кроме того, последний элемент коэффициентов знаменателя (сопоставлен с s^0 term) не является оценочным параметром. Это ограничение заставляет один из предполагаемых полюсов находиться на s = 0.

Создайте набор опций оценки, который задает с помощью метода поиска Левенберга-Марквардта.

opt = tfestOptions('SearchMethod','lm');

Оцените передаточную функцию для z1 использование init_sys и набор опций оценки.

sys = tfest(z1,init_sys,opt);

tfest использует коэффициенты init_sys для инициализации оценки sys. Кроме того, оценка ограничена ограничениями, которые вы задаете в Structure свойство init_sys. Результат idtf модели sys содержит значения параметров, которые являются результатом оценки.