exponenta event banner

idfrd

Данные или модель частотной характеристики

Описание

Один idfrd объект сохраняет данные частотной характеристики в диапазоне значений частоты. Вы можете использовать idfrd объект двумя способами. Объект можно использовать в качестве оценочных данных для оценки модели временной или частотной области аналогично iddata объект. Или можно использовать объект в качестве линейной модели аналогично использованию idss модель пространства состояний или любая другая идентифицированная линейная модель. Используйте idfrd команда для инкапсуляции данных частотной характеристики или преобразования линейной динамической модели временной области или частотной области в модель частотной характеристики.

Команды, принимающие iddata объекты, такие как команда оценки модели ssest, как правило, также принимать idfrd объекты. Тем не менее, idfrd объект может содержать данные только из одного эксперимента. Он не имеет возможности мультиэксперимента, которая iddata объект имеет.

Команды, которые принимают идентифицированные линейные модели, такие как команды анализа и проверки compare, sim, и bode, как правило, также принимать idfrd модели.

Для модели формы

y (t) = G (q) u (t) + H (q) e (t)

оценка передаточной функции равна G (eiλ), а спектр аддитивного шума Фv на выходе равен

Фv (λ) = λ T 'H (eiü T) | 2

Здесь λ - оценочная дисперсия e (t), а T - время выборки.

Для системы непрерывного времени спектр шума равен

Γ v (λ) = λ 'H (eiλ) | 2

Один idfrd объектные хранилища G (eiλ) и Фv.

Создание

Вы можете получить idfrd моделировать одним из трех способов.

  • Создайте модель на основе данных частотной характеристики с помощью idfrd команда. Например, создайте idfrd модель, которая инкапсулирует данные частотной характеристики, взятые на определенных частотах, с использованием времени выборки Ts.

    sysfr = idfrd(ResponseData,Freq,Ts)
    Пример см. в разделе Создание объекта idfrd из данных частотного отклика.

  • Оценка модели с помощью команды оценки частотного отклика, например spa, используя данные временной области, частотной области или частотного отклика.

    sysfr = spa(data)

    Дополнительные сведения о командах оценки частотного отклика см. в разделе spa, spafdr, и etfe.

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

    sysfr = idfrd(sys)
    Пример преобразования линейной модели см. в разделе Преобразование модели временной области в модель частотного отклика.

Сведения о функциях, которые можно использовать для извлечения информации из или преобразования idfrd объекты модели см. в разделе Функции объектов.

Описание

Создать объект частотного отклика

пример

sysfr = idfrd(ResponseData,Frequency,Ts) создает дискретное время idfrd объект, хранящий частотную характеристику ResponseData линейной системы на частотных значениях Frequency. Ts - время выборки. Для системы непрерывного времени установите Ts кому 0.

sysfr = idfrd(___,Name,Value) задает дополнительные свойства, используя один или несколько аргументов «имя-значение». Укажите аргументы «имя-значение» после первых трех аргументов. Например, чтобы указать единицы частоты как МГц, используйте sysfr = idfrd(ResponseData,Frequency,Ts,'FrequencyUnits','MHz').

Преобразование линейной идентифицированной модели в модель частотного отклика

пример

sysfr = idfrd(sys) преобразует линейную модель Toolbox™ идентификации системы или системы управления Toolbox™ в данные частотного отклика на частотах по умолчанию, включая выходные спектры шума и ковариацию спектров.

sysfr = idfrd(sys,Frequency) вычисляет частотную характеристику на частотах Frequency, где Frequency выражается в радианах/TimeUnit.

sysfr = idfrd(sys,Frequency,FrequencyUnits) интерпретирует частоты в Frequency вектор в единицах, указанных FrequencyUnit.

Входные аргументы

развернуть все

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

Свойства

развернуть все

Данные частотной характеристики, заданные как 3-D массив комплексных чисел.

  • Для систем SISO ResponseData - вектор значений частотной характеристики в частотных точках, указанных в Frequency собственность.

  • Для систем MIMO с входами Nu и выходами Ny, ResponseData - массив Ny-by-Nu-by-Nf, где Nf - количество частотных точек.

    ResponseData(ky,ku,kf) представляет частотную характеристику от входа ku в выходные данные ky на частоте Frequency(kf).

Частотные точки, соответствующие ResponseData, указанный как вектор столбца, который содержит Nf точек в единицах, указанных FrequencyUnit.

Единицы частотного вектора в Frequency свойство, указанное как одно из следующих значений:

  • 'rad/TimeUnit'

  • 'cycles/TimeUnit'

  • 'rad/s'

  • 'Hz'

  • 'kHz'

  • 'MHz'

  • 'GHz'

  • 'rpm'

Единицы 'rad/TimeUnit' и 'cycles/TimeUnit' относительно единиц времени, указанных в TimeUnit собственность.

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

Спектры мощности и перекрестные спектры выходных возмущений (шума) системы, определяемые как вектор (система с одним выходом) или 3-D массив комплексных чисел (система с несколькими выходами). Для ответных данных с выходами Ny и частотными точками Nf указать SpectrumData как массив Ny-by-Ny-by-Nw.

SpectrumData(ky1,ky2,kf) - перекрестный спектр между шумами на выходе ky1 и шум на выходе ky2 на частоте Frequency(kf). Спектр мощности является подмножеством перекрестного спектра, где ky1 и ky2 равны.

Ковариация SpectrumData, заданный как 5-D массив с размерами Ny-by-Nu-by-Nf-by-2-by-2, где Ny - количество выходов, Nu - количество входов, а Nf - количество частотных точек.

CovarianceData(ky,ku,kf,:,:) - ковариационная матрица 2 на 2 SpectrumData(ky,ku,kf). Элемент (1,1) является дисперсией действительной части, элемент (2,2) является дисперсией мнимой части, а элементы (1,2) и (2,1) являются ковариацией между действительной и мнимой частями. squeeze(CovarianceData(ky,ku,kf,:,:)) таким образом, дает ковариационную матрицу соответствующего ответа.

При получении sysfr путем преобразования модели sys, значение CovarianceData зависит от того, как вы получили sys.

  • Если вы получили sys путем идентификации программное обеспечение вычисляет оценочную ковариацию для sysfr из информации о неопределенности в sys. Программа использует формулу приближения Гаусса для этого расчета для всех типов моделей, за исключением серых моделей. Для серых моделей (idgrey), программное обеспечение применяет численное дифференцирование.

  • При создании sys с помощью таких команд, как idss, idtf, idproc, idgrey, или idpolyзатем комплекты программного обеспечения CovarianceData для sysfr кому [].

Дисперсия спектров мощности, заданная как вектор (система с одним выходом) или 3-D массив (система с несколькими выходами). Для ответных данных с выходами Ny и частотными точками Nw укажите NoiseCovariance как массив Ny-by-Ny-by-Nw. NoiseCovariance(ky1,ky2,kw) - дисперсия соответствующего спектра мощности.

Для исключения влияния шумовой составляющей из модели укажите NoiseCovariance как 0. При нулевой ковариации прогнозируемый выходной сигнал совпадает с моделируемым выходным сигналом.

Интерсамплярное поведение входного сигнала для преобразований между дискретным временем и непрерывным временем, задаваемое как символьный вектор или как массив Nu-by-1 ячеек символьных векторов, где Nu - количество входных каналов. Это свойство имеет значение только при оценке моделей непрерывного времени (время выборки Ts > 0) из дискретных временных данных.

Для каждого входного канала возможные значения InterSample являются:

  • 'zoh' - Удержание нулевого порядка поддерживает кусочно-постоянный входной сигнал между выборками.

  • 'foh' - Удержание первого порядка поддерживает кусочно-линейный входной сигнал между выборками.

  • 'bl' - Поведение с ограниченной полосой указывает, что входной сигнал непрерывного времени имеет нулевую мощность выше частоты Найквиста (pi/sys.Ts рад/с). Такое поведение обычно имеет место, когда входной сигнал измеряется экспериментально с использованием сглаживающего фильтра и дискретизатора. В идеале, рассматривайте данные как непрерывное время. То есть, если сигналы, используемые для оценки частотной характеристики, подвергались сглаживанию фильтров, установите sys.Ts до нуля.

При получении sysfr путем преобразования модели sys, то InterSample равно Intersample имущества iddata объект, который использовался для оценки sys.

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

Задержки передачи, определенные как числовой массив, содержащий отдельную задержку передачи для каждой пары «вход-выход».

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

Для системы MIMO с выходами Ny и входами Nu установите IODelay как массив Ny-by-Nu. Каждая запись этого массива является числовым значением, представляющим задержку передачи для соответствующей пары «вход-выход». Можно задать IODelay к скалярному значению для применения одной и той же задержки ко всем парам «вход-выход».

Входная задержка для каждого входного канала, заданная как скалярное значение или числовой вектор. Для систем непрерывного времени укажите задержки ввода в единице времени, сохраненной в TimeUnit собственность. Для дискретно-временных систем укажите входные задержки в целых кратных времени выборки Ts. Например, настройка InputDelay кому 3 задает задержку в три раза.

Для системы с входами Nu установите InputDelay к вектору Nu-by-1. Каждая запись этого вектора является числовым значением, которое представляет входную задержку для соответствующего входного канала.

Также можно задать InputDelay к скалярному значению, чтобы применить одинаковую задержку ко всем каналам.

Для определенных систем, таких как idfrd, OutputDelay фиксируется как ноль.

Время выборки, указанное как одно из следующих значений.

  • Дискретно-временная модель с заданным временем выборки - положительный скаляр, представляющий период выборки, выраженный в единице, заданной TimeUnit свойство модели

  • Модель непрерывного времени - 0

  • Дискретно-временная модель с неопределенным временем выборки - -1

Изменение этого свойства не дискретизирует и не выполняет повторную выборку модели. Использовать c2d и d2c для преобразования между непрерывными и дискретными представлениями времени. Использовать d2d для изменения времени выборки системы дискретного времени.

Единицы измерения для переменной времени, времени выборки Tsи любые временные задержки в модели, указанные как одно из следующих значений.

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

При изменении этого свойства повторная выборка или преобразование данных не выполняется. Изменение свойства изменяет только интерпретацию существующих данных. Использовать chgTimeUnit(Панель инструментов системы управления) для преобразования данных в различные единицы времени

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

  • Модель с одним входом - символьный вектор. Например, 'controls'.

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

Можно также использовать автоматическое векторное расширение для назначения входных имен для моделей с несколькими входами. Например, если sys является моделью с двумя входами, введите:

sys.InputName = 'controls';

Имена вводимых данных автоматически расширяются до {'controls(1)';'controls(2)'}.

При оценке модели с использованием iddata объект data, программное обеспечение устанавливается автоматически InputName кому data.InputName.

Можно использовать сокращенную нотацию u см. InputName собственность. Например, sys.u эквивалентно sys.InputName.

Имена входных каналов можно использовать несколькими способами, включая:

  • Определение каналов при отображении модели и графиков

  • Извлечение подсистем систем MIMO

  • Указание точек соединения при соединении моделей

Единицы входного канала, заданные как символьный вектор или массив ячеек:

  • Модель с одним входом - символьный вектор

  • Модель с несколькими входами - массив ячеек символьных векторов

Использовать InputUnit отслеживание блоков входных сигналов. InputUnit не влияет на поведение системы.

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

Например, создайте входные группы с именем controls и noise которые включают в себя входные каналы 1 и 2 и каналы 3 и 5 соответственно.

sys.InputGroup.controls = [1 2];
sys.InputGroup.noise = [3 5];

Затем можно извлечь подсистему из controls входы на все выходы с использованием следующего синтаксиса:

sys(:,'controls')

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

  • Модель с одним входом - символьный вектор. Например, 'measurements'

  • Модель с несколькими входами - массив ячеек символьных векторов

Можно также использовать автоматическое векторное расширение для назначения выходных имен для моделей с несколькими выходами. Например, если sys является моделью с двумя выходами, введите:

sys.OutputName = 'measurements';

Имена вывода автоматически расширяются до {'measurements(1)';'measurements(2)'}.

При оценке модели с использованием iddata объект data, программное обеспечение устанавливается автоматически OutputName кому data.OutputName.

Можно использовать сокращенную нотацию y см. OutputName собственность. Например, sys.y эквивалентно sys.OutputName.

Имена выходных каналов можно использовать несколькими способами, включая:

  • Определение каналов при отображении модели и графиков

  • Извлечение подсистем систем MIMO

  • Указание точек соединения при соединении моделей

Единицы выходного канала, заданные как символьный вектор или массив ячеек.

  • Модель с одним входом - символьный вектор. Например, 'seconds'.

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

Использовать OutputUnit отслеживание блоков выходного сигнала. OutputUnit не влияет на поведение системы.

Группы выходных каналов, заданные как структура. OutputGroup свойство позволяет разделить выходные каналы систем MIMO на группы и ссылаться на каждую группу по имени. В OutputGroup структура, установка имен полей для имен групп и значений полей для выходных каналов, принадлежащих каждой группе.

Например, создайте выходные группы с именем temperature и measurement которые включают в себя выходной канал 1 и каналы 3 и 5 соответственно.

sys.OutputGroup.temperature = [1];
sys.OutputGroup.measurement = [3 5];

Затем можно извлечь подсистему из всех входов в measurement вывод с использованием следующего синтаксиса.

sys('measurement',:)

Имя системы, указанное как символьный вектор. Например, 'system_1'.

Любой текст, который требуется связать с системой, указанный как строка или массив ячеек символьных векторов. Свойство хранит данные любого типа. Например, если sys1 и sys2 являются динамическими моделями систем, можно задать их Notes свойства следующим образом.

sys1.Notes = "sys1 has a string.";
sys2.Notes = 'sys2 has a character vector.';
sys1.Notes
sys2.Notes
ans = 

    "sys1 has a string."


ans =

    'sys2 has a character vector.'

Данные для связывания с системой, указанные как любой тип данных MATLAB.

Сетка выборки для массивов модели, заданная как структура.

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

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

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

nominal_engine_rpm = [1000 5000 10000];
sys.SamplingGrid = struct('rpm', nominal_engine_rpm)

Здесь, sys - массив, содержащий три идентифицированные модели, полученные при 1000, 5000 и 10000 об/мин соответственно.

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

Это свойство доступно только для чтения.

Сводный отчет, содержащий информацию о вариантах оценки и результатах при получении модели частотно-ответной реакции с использованием команд оценки, таких как spa, spafdr, и etfe. Использовать Report запросить модель, как она была оценена, включая ее:

  • Метод оценки

  • Варианты оценки

Содержание Report не имеют значения, если модель была создана конструкцией.

f = logspace(-1,1,100);
[mag,phase] = bode(idtf([1 .2],[1 2 1 1]),f);
response = mag.*exp(1j*phase*pi/180);
sysfr = idfrd(response,f,0.08);
sysfr.Report.Method
ans =

     ''

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

load iddata3;
sysfr = spa(z3);sysfr.Report.Method
ans =

SPA

Дополнительные сведения об этом свойстве и его использовании см. в разделе «Аргументы вывода» на странице ссылки на соответствующую команду оценки и в разделе «Отчет об оценке».

Функции объекта

Многие функции, применимые к динамическим моделям систем, также применимы к idfrd объект модели. Эти функции имеют три общих типа.

  • Функции, которые работают и возвращаются idfrd объекты модели позволяют преобразовывать и манипулировать idfrd модели.

  • Функции, выполняющие аналитические и имитационные функции на idfrd объекты, такие как bode и sim

  • Функции, которые извлекают или интерпретируют информацию о модели, например getcov

В отличие от других определенных линейных моделей, нельзя напрямую преобразовать idfrd модель в другой тип модели с помощью таких команд, как idss или idtf. Вместо этого используйте команду оценки для нужной модели, используя idfrd объект в качестве оценочных данных. Например, использовать sys = ssest(sysfr,2) для оценки модели пространства состояния второго порядка из данных частотной характеристики в idfrd модель sysfr. Пример использования idfrd объект как оценочные данные см. в разделе Оценка модели временной области с использованием данных частотного отклика.

Следующие списки содержат репрезентативное подмножество функций, которые можно использовать с idss модели.

развернуть все

chgTimeUnitИзменение единиц времени динамической системы
chgFreqUnitИзменение частотных единиц частотно-ответной модели данных
fselectВыбор частотных точек или диапазона в модели FRD
frdataДоступ к данным для объекта данных частотной характеристики (FRD)
fcatКонкатенация моделей FRD по размерности частоты

развернуть все

bodeГрафик Моде частотной характеристики, или данные о величине и фазе
spectrumГрафик или обратный спектр выходной мощности модели временного ряда или спектр возмущений линейной модели «вход-выход»

развернуть все

getДоступ к значениям свойств модели
getcovКовариация параметров идентифицированной модели

Примеры

свернуть все

Создание idfrd объект из данных частотной характеристики.

Загрузить данные о величине AMP, данные фазы PHAи частотный вектор W. Установка времени выборки Ts до 0,1.

load demofr AMP PHA W
Ts = 0.1;

Использовать значения AMP и PHA для вычисления ответа со сложным значением response.

response = AMP.*exp(1j*PHA*pi/180);

Создание idfrd object сохранить response в idfrd объект frdata.

frdata = idfrd(response,W,Ts)
frdata =
IDFRD model.
Contains Frequency Response Data for 1 output(s) and 1 input(s).
Response data is available at 1000 frequency points, ranging from 0.03142 rad/s to 31.42 rad/s.
 
Sample time: 0.1 seconds
Status:                                                         
Created by direct construction or transformation. Not estimated.

Постройте график данных.

bode(frdata)

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

frdata является комплексом idfrd объект со свойствами объекта, к которому можно получить доступ с помощью точечной нотации. Например, подтвердите значение Ts.

tsproperty = frdata.Ts
tsproperty = 0.1000

Можно также задать значения свойств. Установите Name свойство для 'DC_Converter'.

frdata.Name = 'DC_Converter';

При импорте frdata в System Identification приложение, приложение называет эти данные DC_Converter, а не имя переменной frdata.

Использовать get для получения полного набора параметров свойств.

get(frdata)
      FrequencyUnit: 'rad/TimeUnit'
             Report: [1x1 idresults.frdest]
       SpectrumData: []
     CovarianceData: []
    NoiseCovariance: []
        InterSample: {'zoh'}
       ResponseData: [1x1x1000 double]
            IODelay: 0
         InputDelay: 0
        OutputDelay: 0
                 Ts: 0.1000
           TimeUnit: 'seconds'
          InputName: {''}
          InputUnit: {''}
         InputGroup: [1x1 struct]
         OutputName: {''}
         OutputUnit: {''}
        OutputGroup: [1x1 struct]
              Notes: [0x1 string]
           UserData: []
               Name: 'DC_Converter'
       SamplingGrid: [1x1 struct]
          Frequency: [1000x1 double]

Преобразование модели состояния-пространства в модель частотного отклика с помощью idfrd команда.

Загрузить данные z2 и оценить модель пространства состояния второго порядка sys.

load iddata2 z2
sys = ssest(z2,2);

Новообращенный sys в idfrd модель frsys.

frsys = idfrd(sys)
frsys =
IDFRD model.
Contains Frequency Response Data for 1 output(s) and 1 input(s), and the spectra for disturbances at the outputs.
Response data and disturbance spectra are available at 68 frequency points, ranging from 0.1 rad/s to 1000 rad/s.
 
Output channels: 'y1'
Input channels: 'u1'
Status:                               
Created by conversion from idss model.

График frsys.

bode(frsys)

Figure contains 2 axes. Axes 1 with title From: u1 To: y1 contains an object of type line. This object represents frsys. Axes 2 contains an object of type line. This object represents frsys.

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

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

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

systf = idtf([1 .2],[1 2 1 1]);

Использовать bode для получения частотной характеристики systf, с точки зрения величины и фазы, для частотного вектора f.

f = logspace(-1,1,100);
[mag,phase] = bode(systf,f);

Использовать значения mag и phase для вычисления ответа со сложным значением response.

response = mag.*exp(1j*phase*pi/180);

Создание idfrd объект frdata сохранить response, указание частоты выборки Ts 0,8.

Ts = 0.8;
frdata = idfrd(response,f,Ts)
frdata =
IDFRD model.
Contains Frequency Response Data for 1 output(s) and 1 input(s).
Response data is available at 100 frequency points, ranging from 0.1 rad/s to 10 rad/s.
 
Sample time: 0.8 seconds
Status:                                                         
Created by direct construction or transformation. Not estimated.

Постройте график данных.

bode(frdata)

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

frdata является комплексом idfrd объект.

Оценка модели передаточной функции на основе данных временной области и преобразование результирующей idtf модель в idfrd модель. Оценка новой модели передаточной функции на основе данных частотной характеристики в idfrd модель. Сравните ответы модели с исходными данными.

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

load iddata2 z2
sys = tfest(z2,2,1);

Новообращенный sys в idfrd моделирование и построение графика частотной характеристики.

frsys = idfrd(sys);
bode(sys)

Figure contains 2 axes. Axes 1 with title From: u1 To: y1 contains an object of type line. This object represents sys. Axes 2 contains an object of type line. This object represents sys.

Оценка новой передаточной функции sys1 используя данные из frsys в качестве оценочных данных.

sys1 = tfest(frsys,2,1);

Сравнение ответов sys и sys1 с исходными оценочными данными z2.

compare(z2,sys,sys1)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent z2 (y1), sys: 85.71%, sys1: 85.71%.

Ответы модели идентичны.

Представлен до R2006a