Оцените модель в пространстве состояний, использующую данные о частотном диапазоне или время
sys = ssest(data,nx)sys = ssest(data,nx,Name,Value)sys = ssest(___,opt)sys = ssest(data,init_sys)sys = ssest(data,init_sys,opt)[sys,x0] = ssest(___) оценивает модель в пространстве состояний, sys = ssest(data,nx)sys, с помощью времени - или данные частотного диапазона, data. sys является моделью в пространстве состояний порядка nx и представляет:
A, B, C, D и K являются матрицами пространства состояний. u (t) является входом, y (t) является вывод, e (t) является воздействием, и x (t) является вектором состояний nx.
Все записи A, B, C и K являются свободными допускающими оценку параметрами по умолчанию. D фиксируется, чтобы обнулить по умолчанию, означая, что нет никакого сквозного соединения, за исключением статических систем (nx=0).
оценивает модель с помощью дополнительных опций, заданных одним или несколькими аргументами пары sys = ssest(data,nx,Name,Value)Name,Value. Используйте Form, аргументы пары "имя-значение" Feedthrough и DisturbanceModel, чтобы изменить поведение по умолчанию A, B, C, D и матриц K.
оценивает модель с помощью набора опции, sys = ssest(___,opt)opt, который задает опции, такие как цель оценки, обработка начальных условий и числового метода поиска, используемого для оценки.
|
Идентифицированная модель в пространстве состояний, возвращенная как модель Информация о результатах оценки и используемых опциях хранится в свойстве
Для получения дополнительной информации об использовании | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Начальные состояния вычисляются во время оценки. Если Это значение также хранится в поле |
Получите измеренные данные ввода - вывода.
load icEngine.mat;
data = iddata(y,u,0.04);data является объектом iddata, содержащим 1 500 выборок данных ввода - вывода. Шаг расчета данных составляет 0,04 секунды.
Оцените модель в пространстве состояний для измеренных данных ввода - вывода. Определите оптимальный порядок модели в данной образцовой области значений порядка.
nx = 1:10; sys = ssest(data,nx);
Появляется график, который показывает сингулярные значения Ганкеля (SVD) для моделей порядков, заданных nx.

Состояния с относительно маленькими сингулярными значениями Ганкеля могут быть безопасно отброшены. Предложенным выбором порядка по умолчанию является 3.
Выберите порядок модели в Model Order выпадающий список и нажмите Apply.
Загрузите данные об отклике системы временного интервала.
load iddata7 z7;
Идентифицируйте модель в пространстве состояний четвертого порядка данных. Задайте известную задержку секунд 2 для первого входа и секунды 0 для второго входа.
nx = 4;
sys = ssest(z7(1:300),nx,'InputDelay',[2;0]);Получите упорядоченную 5-ю модель в пространстве состояний порядка для 2-й системы порядка от узкого сигнала пропускной способности.
Загрузите данные об оценке.
load regularizationExampleData eData;
Создайте модель передаточной функции, используемую для генерации данных об оценке (истинная система).
trueSys = idtf([0.02008 0.04017 0.02008],[1 -1.561 0.6414],1);
Оцените неупорядоченную модель в пространстве состояний.
opt = ssestOptions('SearchMethod','lm'); m = ssest(eData,5,'form','modal','DisturbanceModel','none','Ts',eData.Ts,opt);
Оцените упорядоченную модель в пространстве состояний.
opt.Regularization.Lambda = 10; mr = ssest(eData,5,'form','modal','DisturbanceModel','none','Ts',eData.Ts,opt);
Сравните образцовые выходные параметры с данными об оценке.
compare(eData,m,mr);

Сравните образцовые импульсные ответы.
impulse(trueSys,m,mr,50); legend('trueSys','m','mr');

Оцените модель в пространстве состояний измеренных данных ввода - вывода. Сконфигурируйте ограничения параметра и начальные значения для оценки с помощью модели в пространстве состояний.
Создайте модель idss, чтобы задать начальную параметризацию для оценки.
A = blkdiag([-0.1 0.4; -0.4 -0.1],[-1 5; -5 -1]); B = [1; zeros(3,1)]; C = [1 1 1 1]; D = 0; K = zeros(4,1); x0 = [0.1 0.1 0.1 0.1]; Ts = 0; init_sys = idss(A,B,C,D,K,x0,Ts);
Установка всех записей K к 0 создает модель idss без элемента воздействия состояния.
Используйте свойство Structure зафиксировать значения некоторых параметров модели. Сконфигурируйте модель так, чтобы B и K были зафиксированы, и только ненулевые записи A являются допускающими оценку.
init_sys.Structure.A.Free = (A~=0); init_sys.Structure.B.Free = false; init_sys.Structure.K.Free = false;
Записи в init_sys.Structure.A.Free определяют, свободны ли соответствующие записи в init_sys.A (true) или зафиксировали (false).
Загрузите результаты измерений и оцените модель в пространстве состояний с помощью ограничений параметра и начальных значений, заданных init_sys.
load iddata2 z2; sys = ssest(z2,init_sys);
Предполагаемые параметры sys удовлетворяют ограничения, заданные init_sys.
Считайте модель Simulink idF14Model. Линеаризация этой модели дает модель девятого порядка. Однако динамика модели может быть получена, не ставя под угрозу подходящее качество слишком много, с помощью модели более низкоуровневой.
Получите линеаризовавшую модель.
load_system('idF14Model'); io = getlinio('idF14Model'); sys_lin = linearize('idF14Model',io);
sys_lin является моделью в пространстве состояний девятого порядка с двумя выходными параметрами и одним входом.
Моделируйте переходной процесс линеаризовавшей модели и используйте данные, чтобы создать объект iddata.
Ts = 0.0444; t = (0:Ts:4.44)'; y = step(sys_lin,t); data = iddata([zeros(20,2);y],[zeros(20,1); ones(101,1)],Ts);
data является объектом iddata, который инкапсулирует переходной процесс sys_lin.
Сравните данные с линеаризацией модели.
compare(data,sys_lin);

Поскольку данные были получены путем симуляции линеаризовавшей модели, существует 100%-е соответствие между данными и образцовым ответом линеаризации.
Идентифицируйте модель в пространстве состояний с уменьшаемым порядком, который соответственно соответствует данным.
Определите оптимальный порядок модели.
nx = 1:9; sys1 = ssest(data,nx,'DisturbanceModel','none');
Появляется график, показывающий сингулярные значения Ганкеля (SVD) для моделей порядков, заданных nx.

Состояния с относительно маленькими сингулярными значениями Ганкеля могут быть безопасно отброшены. График предлагает использовать модель пятого порядка.
В подсказке команды MATLAB выберите порядок модели для предполагаемой модели в пространстве состояний. Задайте порядок модели как 5 или нажмите Enter, чтобы использовать стоимость заказа по умолчанию.
Сравните данные с предполагаемой моделью.
compare(data,sys1);

sys1 обеспечивает 98,4%, подходящие для первого вывода и 97,7%, подходящие для второго вывода.
Исследуйте останавливающееся условие на алгоритм поиска.
sys1.Report.Termination.WhyStop
ans = 'Maximum number of iterations reached.'
Создайте набор опций оценки, который задает метод поиска 'lm' и позволяет максимум 50 поисковых итераций.
opt = ssestOptions('SearchMethod','lm'); opt.SearchOptions.MaxIterations = 50; opt.Display = 'on';
Идентифицируйте модель в пространстве состояний с помощью набора опции оценки и sys1 как модель инициализации оценки.
sys2 = ssest(data,sys1,opt);
Сравните ответ линеаризовавшего и предполагаемых моделей.
compare(data,sys_lin,sys2);

sys2 обеспечивает 99%, подходящих для первого вывода и 98%, подходящих для второго вывода при использовании 4 меньше состояний, чем sys_lin.
ssest инициализирует оценки параметра с помощью или неитеративного подхода подпространства или итеративного подхода оценки рациональной функции. Это затем совершенствовало значения параметров с помощью ошибочного подхода минимизации прогноза. Смотрите pem и ssestOptions для получения дополнительной информации.
[1] Ljung, L. System Identification: теория для пользователя, второго выпуска, верхнего Сэддл-Ривер, Нью-Джерси: Prentice Hall, 1999.
canon | iddata | idfrd | idgrey | idss | n4sid | pem | polyest | procest | ssestOptions | ssregest | tfest