В этом примере показано, как оценить модель передаточной функции, когда структура ожидаемой модели известна, и применить ограничения к коэффициентам числителя и знаменателя.
Загрузка данных временной области.
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.
Создайте набор опций оценки, который определяет с помощью метода поиска Левенберга-Марквардта.
opt = tfestOptions('SearchMethod','lm');
Оценка передаточной функции для z1 использование init_sys и набор опций оценки.
sys = tfest(z1,init_sys,opt);
tfest использует коэффициенты init_sys для инициализации оценки sys. Кроме того, оценка ограничена ограничениями, указанными в Structure имущество init_sys. Получающееся idtf модель sys содержит значения параметров, которые являются результатом оценки.