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

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

Загрузите данные временного интервала.

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) не является допускающим оценку параметром. Это ограничение обеспечивает один из предполагаемых полюсов, чтобы быть в s = 0.

Создайте набор опции оценки, который задает использование метода поиска Levenberg–Marquardt.

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

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

sys = tfest(z1,init_sys,opt);

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