exponenta event banner

Оценка моделей с использованием данных частотной области

Программное обеспечение System Identification Toolbox™ позволяет использовать данные частотной области для идентификации линейных моделей в командной строке и в приложении System Identification. Линейные модели непрерывного и дискретного времени можно оценить с помощью данных частотной области. В этом разделе представлен обзор оценки модели на панели инструментов с использованием данных частотной области. Пример оценки модели с использованием данных частотной области см. в разделе Идентификация частотной области: оценка моделей с использованием данных частотной области.

Данные частотной области могут быть двух типов:

  • Входные-выходные данные частотной области - данные получают путем вычисления преобразований Фурье входных, u (t) и выходных, y (t), сигналов временной области. Данные представляют собой набор входных, U (λ) и выходных, Y (λ), сигналов в частотной области. На панели инструментов входные-выходные данные частотной области представлены с помощьюiddata объекты. Дополнительные сведения см. в разделе Представление данных частотной области на панели инструментов.

  • Частотно-ответная информация - также называемая частотной функцией или частотно-ответной функцией (FRF), данные состоят из измерений передаточной функции, G (iλ), системы на дискретном наборе частот λ. Данные частотно-ответной реакции на частоте λ показывают, как линейная система реагирует на синусоидальный вход той же частоты. На панели инструментов данные частотного отклика представлены с помощьюidfrd объекты. Дополнительные сведения см. в разделе Представление данных частотной области на панели инструментов. Получить данные частотного отклика можно следующими способами:

    • Измерьте значения частотной характеристики непосредственно, например, с помощью анализатора спектра.

    • Выполнить спектральный анализ входных-выходных данных временной или частотной областей (iddata объекты) с помощью таких команд, как spa и spafdr.

    • Вычисление частотной характеристики идентифицированной линейной модели с помощью таких команд, как freqresp, bode, и idfrd.

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

Преимущества использования данных частотной области

Использование данных частотной области имеет следующие преимущества:

  • Сжатие данных - при преобразовании данных временной области в частотную можно сжимать длинные записи данных. Например, можно использовать логарифмически разнесенные частоты.

  • Неравномерность - данные частотной области не должны быть равномерно разнесены. Ваши данные могут иметь частотно-зависимое разрешение, так что в интересующих частотных областях используется больше точек данных. Например, представляющими интерес частотами могут быть диапазон полосы пропускания системы или вблизи резонансов системы.

  • Предварительная фильтрация - предварительная фильтрация данных в частотной области становится простой. Это соответствует назначению различных весов различным частотам данных.

  • Сигнал непрерывного времени - можно представлять сигналы непрерывного времени с использованием данных частотной области и использовать данные для оценки.

Представление данных частотной области на панели инструментов

Перед выполнением оценки модели необходимо указать данные частотной области в качестве объектов на панели инструментов. Можно указать как непрерывные, так и дискретные данные частотной области.

  • Входные-выходные данные частотной области - укажите как iddata объект. В объекте хранятся U (λ), Y (λ) и частотный вектор λ. Domain свойство объекта имеет значение 'Frequency', чтобы указать, что объект содержит сигналы частотной области. Если U (λ), Y (λ) - дискретно-временные преобразования Фурье дискретно-временных сигналов, дискретизируемые с интервалом дискретизацииTs, обозначить интервал выборки в iddata объект. Если U (λ), Y (λ) являются преобразованиями Фурье сигналов непрерывного времени, укажитеTs как 0 в iddata объект.

    Для печати данных в командной строке используйте plot команда.

    Например, можно построить график фазы и величины входных-выходных данных частотной области.

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

    load iddata1 z1

    Входные данные временной области u и результаты y хранятся в z1один iddata объект, чей Domain свойство имеет значение 'Time'.

    Преобразование Фурье данных для получения входных-выходных данных частотной области.

    zf = fft(z1);

    Domain имущество zf имеет значение 'Frequency', указывая, что это данные частотной области.

    Постройте график величины и фазы входных-выходных данных частотной области.

    plot(zf)

    Figure contains 4 axes. Axes 1 with title y1 contains an object of type line. This object represents zf. Axes 2 contains an object of type line. This object represents zf. Axes 3 with title u1 contains an object of type line. This object represents zf. Axes 4 contains an object of type line. This object represents zf.

  • Данные частотного отклика - укажите как idfrd объект. При наличии программного обеспечения Control System Toolbox™ можно также указать данные как frd(Панель инструментов системы управления).

    Для печати данных в командной строке используйте bode команда.

    Например, можно построить график частотной характеристики модели передаточной функции.

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

    sys = tf([1 0.2],[1 2 1 1]);

    Вычислите частоту-отклик модели передаточной функции, sys, в 100 частотных точках. Укажите диапазон частот от 0,1 рад/с до 10 рад/с.

    freq = logspace(-1,1,100);
    frdModel = idfrd(sys,freq);

    Постройте график частоты-отклика модели.

    bode(frdModel)

    Figure contains 2 axes. Axes 1 contains an object of type line. This object represents frdModel. Axes 2 contains an object of type line. This object represents frdModel.

Дополнительные сведения о типах данных частотной области и их определении см. в разделе Представление данных частотной области.

Можно также выполнять преобразование между типами данных частотной и временной областей с помощью следующих команд.

Исходный формат данныхК данным временной области
(iddata объект)
К данным частотной области
(iddata объект)
К данным частотного отклика
(idfrd объект)
Данные временной области
(iddata объект)
Н/ДИспользовать fft
  • Использовать etfe, spa, или spafdr.

  • Оценка линейной параметрической модели по iddata объект и использование idfrd вычисляют частотно-характеристические данные.

Данные частотной области
(iddata объект)
Использовать ifft (работает только для равномерно разнесенных данных частотной области).Н/Д
  • Использовать etfe, spa, или spafdr.

  • Оценка линейной параметрической модели по iddata объект и использование idfrd вычисляют частотно-характеристические данные.

Данные частотного отклика
(idfrd объект)
Не поддерживаетсяИспользовать iddata. Программа создает частотную область iddata объект, имеющий такое же отношение между выходом и входом, что и исходный idfrd данные частоты-отклика объекта.
  • Использовать spafdr. Программа вычисляет частотно-ответные данные с другим разрешением (числом и интервалом частот), чем исходные данные.

Дополнительные сведения о преобразовании между типами данных в приложении или в командной строке см. на странице Преобразовать категорию данных.

Непрерывные и дискретные данные частотной области

В отличие от данных временной области, время выборки Ts данных частотной области могут быть равны нулю. Данные частотной области с нулем Ts называется данными непрерывного времени. Данные частотной области с Ts больше нуля называется дискретно-временными данными.

Можно получить данные частотной области непрерывного времени (Ts = 0) следующими способами:

  • Создание данных из известных аналитических выражений непрерывного времени.

    Например, предположим, что частотно-отклик вашей системы равен G (λ) = 1/( b + jλ), где b - константа. Также предположим, что входы временной области в вашу систему равны, u (t) = e atsinw0t, где a - константа больше нуля, а u (t) - ноль для всех времен t меньше нуля. Можно вычислить преобразование Фурье u (t) для получения

    U (λ) = λ 0/[ (a + ) 2 + w02]

    Используя U (λ) и G (λ), можно получить выражение частотной области для выходов:

    Y (λ) = G (λ) U (λ)

    Теперь можно вычислить аналитические выражения для Y (λ) и U (λ) по сетке частотных значений (startgrid = start1, start2,..., startn) и получить вектор значений частотно-доменных входных-выходных данных (Ygrid, Ugrid). Данные ввода-вывода можно упаковывать в непрерывное время.iddata объект путем указания нулевого времени выборки, Ts.

    Ts = 0;
    zf = iddata(Ygrid,Ugrid,Ts,'Frequency',wgrid)
  • Вычислить частотную характеристику линейной системы непрерывного времени на сетке частот.

    Например, в следующем коде генерируются данные частотного отклика с непрерывным временем, FRDc, из модели функции непрерывной передачи времени, sys для сетки частот, freq.

    sys = idtf(1,[1 2 2]);
    freq = logspace(-2,2,100);
    FRDc = idfrd(sys,freq);
  • Измерьте амплитуды и фазы в синусоидальном эксперименте, в котором измерительная система использует сглаживающие фильтры. Вы измеряете отклик системы на синусоидальные входы на различных частотах и упаковываете данные как idfrd объект. Например, данные частотного отклика, измеренные анализатором спектра, являются непрерывными по времени.

    Можно также провести эксперимент, используя периодические сигналы непрерывного времени (множественные синусоидальные волны) в качестве входных сигналов системы и измеряя отклик системы. Затем можно упаковывать входные и выходные данные как iddata объект.

  • Можно получить данные дискретно-временной частотной области (Ts > 0) следующими способами:

    • Преобразование измеренных значений временной области с помощью дискретного преобразования Фурье.

      Например, в следующем коде вычисляется дискретное преобразование Фурье данных временной области, y, которая измеряется в дискретных временных точках с временем выборки 0,01 секунды.

      t = 0:0.01:10;
      y = iddata(sin(2*pi*10*t),[],0.01);
      Y = fft(y);
    • Вычислите частотную характеристику дискретно-временной линейной системы.

      Например, в следующем коде генерируются дискретно-временные данные частотного отклика, FRDd, из модели дискретно-временной передаточной функции, sys. Задается ненулевое время выборки для создания модели дискретного времени.

      Ts = 1;
      sys = idtf(1,[1 0.2 2.1],Ts);
      FRDd = idfrd(sys,logspace(-2,2,100));

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

    Примечание

    Для дискретных временных данных программное обеспечение игнорирует данные частотной области выше частоты Найквиста во время оценки.

    Предварительная обработка данных частотной области для оценки модели

    После представления данных в частотной области с помощью iddata или idfrd можно подготовить данные для оценки путем удаления ложных данных и фильтрации данных.

    Чтобы просмотреть ложные данные, постройте график данных в приложении или используйте plot (для iddata объекты) или bode (для idfrd объекты) команды. После идентификации ложных данных на графике их можно удалить. Например, если требуется удалить точки данных 20-30 из zf, частотная область iddata используйте следующий синтаксис:

    zf(20:30) = [];

    Поскольку данные частотной области не должны указываться с равномерным интервалом, нет необходимости заменять отклонения.

    В данных также можно предварительно фильтровать высокочастотный шум. Можно предварительно фильтровать данные частотной области в приложении или использовать idfilt в командной строке. Предварительная фильтрация данных также может помочь устранить дрейфы, которые являются низкочастотными возмущениями. В дополнение к минимизации шума предварительная фильтрация позволяет сфокусировать модель на определенных диапазонах частот. Интересующий диапазон частот часто соответствует полосе пропускания над точками останова на графике Боде. Например, при моделировании установки для приложений, предназначенных для проектирования систем управления, можно предварительно фильтровать данные для увеличения частот вокруг требуемой полосы пропускания замкнутого цикла.

    Дополнительные сведения см. в разделе Фильтрация данных.

    Оценка линейных параметрических моделей

    После предварительной обработки данных в частотной области их можно использовать для оценки моделей непрерывного и дискретного времени.

    Поддерживаемые типы моделей

    С помощью данных частотной области можно оценить следующие линейные параметрические модели. Шумовая составляющая моделей не оценивается, за исключением моделей ARX.

    Тип моделиДополнительная информацияКоманды оценкиОценка в приложении
    Модели передаточных функций См. раздел Оценка моделей передаточных функций в приложении для идентификации системы.
    Модели пространства состоянияПредполагаемый K матрица модели state-space равна нулю.См. раздел Оценка моделей состояния пространства в приложении для идентификации системы.
    Модели процессовМодель возмущения не оценивается.См. раздел Оценка моделей процессов с помощью приложения.
    Полиномиальные модели ввода-выводаМожно оценить только модели ошибок вывода и ARX.
    • oe

    • arx

    • iv4

    • ivx

    • polyest с na, nc, и nd порядки многочлена, заданные как ноль

    См. раздел Оценка полиномиальных моделей в приложении.
    Линейные серые моделиПараметры модели, относящиеся только к матрице шума K не оцениваются.Оценка модели серого ящика недоступна в приложении.
    Корреляционные модели
    (Модели импульсной характеристики)
     См. раздел Оценка моделей импульсного отклика с использованием приложения для идентификации системы.
    Модели частотного отклика
    (Оценено как idfrd объекты)
     См. раздел Оценка моделей частотного отклика в приложении.

    Перед выполнением оценки можно задать опции оценки, например, как программное обеспечение обрабатывает начальные условия данных оценки. Для этого в командной строке используйте набор опций оценки, соответствующий команде оценки. Например, предположим, что требуется оценить модель передаточной функции из данных частотной области, zf, а также требуется оценить начальные условия данных. Используйте tfestOptions задайте параметры оценки, а затем оцените модель.

    opt = tfestOptions('InitialCondition','estimate');
    sys = tfest(zf,opt);

    sys - расчетная модель передаточной функции. Сведения о извлечении оценочных значений параметров из модели см. в разделе Извлечение числовых данных модели. После выполнения оценки можно проверить расчетную модель.

    Примечание

    Нулевое начальное условие для данных временной области не подразумевает нулевое начальное условие для соответствующих данных частотной области. Для данных временной области нулевые начальные условия означают, что система находится в состоянии покоя до начала сбора данных. В частотной области исходные условия могут игнорироваться только в том случае, если собираемые данные носят периодический характер. Таким образом, если данные временной области собраны с нулевыми начальными условиями и они преобразуются в данные частотной области для оценки модели, необходимо также оценить исходные условия. Их нельзя указать как ноль.

    С помощью данных частотной области невозможно выполнить следующие оценки:

    Оценка моделей непрерывного и дискретного времени

    Можно оценить все поддерживаемые линейные модели как модели дискретного времени, за исключением моделей процессов. Модели процессов определяются только в непрерывном режиме. Для оценки моделей дискретного времени необходимо использовать данные дискретного времени.

    Можно оценить все поддерживаемые линейные модели как модели непрерывного времени, за исключением корреляционных моделей (см. impulseest). Модели непрерывного времени можно оценить, используя данные непрерывного и дискретного времени. Сведения о непрерывных и дискретных данных см. в разделе Непрерывные и дискретные данные частотной области.

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

    • Дискретно-временные данные на входе-выходе частотной области (iddata object) - укажите интерсамплярное поведение входного сигнала временной области u (t), который был преобразован Фурье для получения входного сигнала частотной области U (λ).

    • Дискретно-временные частотно-ответные данные (idfrd object) - данные генерируются путем вычисления частотно-отклика дискретно-временной модели. Укажите поведение между образцами как метод дискретизации, предполагаемый для вычисления дискретной модели времени из базовой модели непрерывного времени. Пример см. в разделе Указание межсамплерного поведения для дискретных частотно-ответных данных.

    Можно задать поведение между образцами, которое должно быть кусочно постоянным (удержание нулевого порядка), линейно интерполированным между выборками (удержание первого порядка) или ограниченным диапазоном. При указании дискретных временных данных из системы как ограниченных по полосе (то есть без мощности выше частоты Найквиста), программа рассматривает данные как непрерывное время, устанавливая время выборки равным нулю. Затем программное обеспечение оценивает модель непрерывного времени на основе данных. Дополнительные сведения см. в разделе Влияние поведения входных интерсампл на модели непрерывного времени.

    Задание поведения между образцами для дискретных временных частотно-ответных данных

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

    Формирование дискретно-временных частотно-ответных данных. Для этого сначала создайте модель функции переноса непрерывного времени, sys. Затем преобразуйте его в дискретно-временную модель, sysd, с использованием c2d команда и метод удержания первого порядка (FOH). Использовать модель дискретного времени sysd для формирования частотно-ответных данных на заданных частотах, freq.

    sys = idtf([1 0.2],[1 2 1 1]);
    sysd = c2d(sys,1,c2dOptions('Method','foh'));
    freq = logspace(-1,0,10);
    FRdata = idfrd(sysd,freq);

    FRdata - дискретно-временные данные. Программное обеспечение устанавливает InterSample имущество FRdata кому 'foh', который является методом дискретизации, который использовался для получения sysd от sys.

    Оцените функцию непрерывной передачи данных третьего порядка на основе данных дискретного времени.

    model1 = tfest(FRdata,3,1)
    model1 =
     
            s + 0.2
      -------------------
      s^3 + 2 s^2 + s + 1
     
    Continuous-time identified transfer function.
    
    Parameterization:
       Number of poles: 3   Number of zeros: 1
       Number of free coefficients: 5
       Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.
    
    Status:                                                   
    Estimated using TFEST on frequency response data "FRdata".
    Fit to estimation data: 100%                              
    FPE: 2.372e-31, MSE: 8.029e-32                            
    

    model1 - модель непрерывного времени, оцениваемая с использованием дискретно-временных данных частотного отклика. Базовая динамика непрерывного времени исходной модели третьего порядка sys получены в model1 потому что правильное поведение между образцами указано в FRdata.

    Теперь укажите интерсамплярное поведение как удержание нулевого порядка (ZOH) и оцените модель функции переноса третьего порядка.

    FRdata.InterSample = 'zoh';
    model2 = tfest(FRdata,3,1)
    model2 =
     
              -15.49 s - 3.309
      ---------------------------------
      s^3 - 30.03 s^2 - 6.825 s - 17.04
     
    Continuous-time identified transfer function.
    
    Parameterization:
       Number of poles: 3   Number of zeros: 1
       Number of free coefficients: 5
       Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.
    
    Status:                                                   
    Estimated using TFEST on frequency response data "FRdata".
    Fit to estimation data: 94.72%                            
    FPE: 0.00485, MSE: 0.001615                               
    

    model2 не фиксирует динамику исходной модели sys. Таким образом, ошибки, связанные с выборкой, вводятся в оценку модели, когда поведение между выборками указано неправильно.

    Преобразование модели данных частотного отклика в передаточную функцию

    В этом примере показано, как преобразовать модель данных частотного отклика (FRD) в модель передаточной функции. Модель FRD рассматривается как данные оценки, а затем оценивается передаточная функция.

    Получение модели FRD.

    Например, использовать bode для получения данных о величине и фазовой характеристике для следующей системы пятого порядка:

    G (s) = s + 0 .2s5 + s4 + 0 .8s3 + 0 .4s2 + 0 12s + 0,04

    Используйте 100 точек частоты от 0,1 рад/с до 10 рад/с для получения модели FRD. Использовать frd для создания объекта модели частотного отклика.

    freq = logspace(-1,1,100);
    sys0 = tf([1 0.2],[1 1  0.8  0.4  0.12  0.04]);
    [mag,phase] = bode(sys0,freq);
    frdModel = frd(mag.*exp(1j*phase*pi/180),freq);

    Получите наилучшее приближение третьего порядка к динамике системы, оценив передаточную функцию с 3 нулями и 3 полюсами.

    np = 3;
    nz = 3;
    sys = tfest(frdModel,np,nz);

    sys - расчетная передаточная функция.

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

    bode(frdModel,sys,freq(1:50));

    Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent frdModel, sys. Axes 2 contains 2 objects of type line. These objects represent frdModel, sys.

    Модель FRD создается из системы пятого порядка. sys0. В то время как sys, приближение третьего порядка, не захватывает весь ответ sys0, он хорошо фиксирует реакцию до приблизительно 0,6 рад/с.

    Проверка расчетной модели

    После оценки модели для системы можно проверить, воспроизводит ли она поведение системы в допустимых пределах. Рекомендуется использовать отдельные наборы данных для оценки и проверки модели. Данные временной или частотной области можно использовать для проверки модели, оцененной с использованием данных частотной области. При использовании данных проверки ввода-вывода для проверки расчетной модели можно сравнить отклик смоделированной модели с выводом измеренных данных проверки. Если данные проверки являются данными частотного отклика, их можно сравнить с частотным откликом модели. Например, для сравнения выходных данных расчетной модели sys к измеренным данным проверки zv, используйте следующий синтаксис:

    compare(zv,sys);

    Можно также выполнить остаточный анализ. Дополнительные сведения см. в разделе Проверка моделей после оценки.

    Устранение неполадок при идентификации частотной области

    При оценке модели с использованием данных частотной области алгоритм оценки минимизирует функцию потерь (затрат). Например, если оценить линейную модель SISO по данным частотного отклика fалгоритм оценки минимизирует следующую функцию потерь наименьших квадратов:

    minimizeG (ω) ∑k=1Nf'W (ωk) (G (ωk) −f (ωk)) |2

    Здесь W - определяемый частотно-зависимый вес, G - линейная модель, которая должна быть оценена, λ - частота, а Nf - число частот, на которых доступны данные. Величина (G (startk) f (startk)) является погрешностью частоты-отклика. Для данных ввода-вывода в частотной области алгоритм минимизирует взвешенную норму выходной ошибки вместо ошибки частотного отклика. Дополнительные сведения см. в разделах Функция потери и Показатели качества модели. Во время оценки ложная или неусвоенная динамика в данных может повлиять на функцию потерь и привести к неудовлетворительной оценке модели.

    • Неожиданная, ложная динамика - обычно наблюдается, когда области данных с высокой величиной имеют низкое отношение сигнал/шум. Ошибка подгонки вокруг этих частей данных имеет большой вклад в функцию потерь. В результате алгоритм оценки может переопределить и назначить неожиданную динамику шуму в этих областях. Чтобы устранить эту проблему:

      • Улучшение отношения сигнал/шум - можно собрать несколько наборов данных и усреднить их. При наличии данных ввода-вывода в частотной области можно объединить несколько наборов данных с помощью merge команда. Используйте эти данные для оценки, чтобы получить улучшенный результат. Кроме того, можно отфильтровать набор данных и использовать его для оценки. Например, используйте фильтр скользящего среднего по данным для сглаживания измеренного отклика. Фильтр сглаживания применяется только в тех областях данных, где вы уверены в том, что беспорядок обусловлен шумом, а не динамикой системы.

      • Уменьшите влияние определенных частей данных на функцию потери - можно указать частотно-зависимый вес. Например, при оценке модели передаточной функции укажите вес в WeightingFilter опции набора опций оценки tfestOptions. Укажите небольшой вес в частотных областях, где существует паразитная динамика. Либо используйте меньше точек данных вокруг этой частотной области.

    • Ненапряженная динамика - обычно наблюдается, когда динамика, которую вы хотите захватить, имеет низкую величину по сравнению с остальными данными. Поскольку плохая подгонка к данным низкой величины вносит меньший вклад в функцию потерь, алгоритм может игнорировать эту динамику, чтобы уменьшить ошибки на других частотах. Чтобы устранить эту проблему:

      • Указать частотно-зависимый вес (Specify a frequency-dependent weight) - укажите большой вес для частотной области, в которой требуется фиксировать динамику.

      • Используйте дополнительные точки данных вокруг этой области.

    Пример этих методов поиска и устранения неисправностей см. в разделе Устранение неполадок при идентификации частотной области моделей передаточных функций.

    Если с помощью этих методов поиска и устранения неисправностей не удается получить удовлетворительную модель, попробуйте использовать другую структуру модели или алгоритм оценки.

    Следующие шаги после идентификации модели

    После оценки модели можно выполнить преобразования модели, извлечь параметры модели, а также смоделировать и спрогнозировать отклик модели. Можно выполнить следующие задачи:

    Связанные темы