Представление Данных Частотной характеристики Используя Объекты idfrd

Конструктор idfrd

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

Примечание

Объект idfrd может только инкапсулировать один набор данных частотной характеристики. Это не поддерживает iddata, эквивалентный из данных о мультиэксперименте.

Используйте следующий синтаксис, чтобы создать объект данных fr_data:

fr_data = idfrd(response,f,Ts)

Предположим, что ny является количеством выходных каналов, nu является количеством входных каналов, и nf является вектором значений частоты. response является ny-by-nu-by-nf трехмерный массив. f является вектором частоты, который содержит частоты ответа. Ts является шагом расчета, который используется при измерении или вычислении частотной характеристики. Если вы работаете с непрерывно-разовой системой, установите Ts на 0.

response(ky,ku,kf), где ky, ku и kf ссылаются на k th вывод, ввел, и значение частоты, соответственно, интерпретировано как частотная характеристика с комплексным знаком от входа ku до вывода ky на частоте f(kf).

Примечание

Когда вы работаете в командной строке, можно только создать объекты idfrd из комплексных чисел G (eiw). Для системы SISO response может быть вектором.

Можно задать свойства объектов, когда вы создаете объект idfrd с помощью синтаксиса конструктора:

fr_data = idfrd(response,f,Ts,
               'Property1',Value1,...,'PropertyN',ValueN)

Свойства idfrd

Чтобы просмотреть свойства объекта idfrd, можно использовать команду get. Следующий пример показывает, как создать объект idfrd, который содержит 100 значений частотной характеристики с шагом расчета 0,1 с, и получите его свойства:

f = logspace(-1,1,100);
[mag, phase] = bode(idtf([1 .2],[1 2 1 1]),f);
response = mag.*exp(1j*phase*pi/180);
fr_data = idfrd(response,f,0.1);
get(fr_data)
      FrequencyUnit: 'rad/TimeUnit'
             Report: [1x1 idresults.frdest]
       SpectrumData: []
     CovarianceData: []
    NoiseCovariance: []
        InterSample: {'zoh'}
       ResponseData: [1x1x100 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: ''
       SamplingGrid: [1x1 struct]
          Frequency: [100x1 double]

Для полного описания всех свойств объектов idfrd смотрите страницу с описанием idfrd.

Чтобы изменить значения свойств для существующего объекта idfrd, используйте команду set или запись через точку. Например, чтобы изменить название объекта idfrd, введите следующую последовательность команды в подсказке:

fr_data.Name = 'DC_Converter';

Выберите I/O Channels и Data в Объектах idfrd

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

fr_data(outputchannels,inputchannels)

Ссылочные определенные каналы по наименованию или индексом канала.

Совет

Используйте двоеточие (:), чтобы задать все каналы и использовать пустую матрицу ([]), чтобы не задать каналы.

Например, следующие данные частотной характеристики ссылок команды из входа образовывают канал 3, чтобы вывести канал 2:

fr_data(2,3) 

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

fr_data('power',{'voltage','speed'})

Чтобы получить только ответы, соответствующие значениям частоты между 200 и 300, используйте следующую команду:

fr_data_sub = fselect(fr_data,[200:300])

Можно также использовать логические выражения для подсправочных данных. Например, чтобы получить все значения частотной характеристики между частотами 1.27 и 9.3 в объекте idfrd fr_data, используйте следующий синтаксис:

fr_data_sub = fselect(fr_data,fr_data.f>1.27&fr_data.f<9.3)

Совет

Используйте end, чтобы сослаться на последний демонстрационный номер в данных. Например, data(77:end).

Примечание

Вы не должны вводить целое имя свойства. В этом примере f в fr_data.f однозначно определяет свойство Frequency объекта idfrd.

Добавление Каналов Ввода или вывода в Объектах idfrd

О Конкатенации idfrd Объекты

Горизонтальная и вертикальная конкатенация idfrd возражает информации об объединении в свойствах ResponseData этих объектов. ResponseData является ny-by-nu-by-nf массив, который хранит ответ системы, где ny является количеством выходных каналов, nu является количеством входных каналов, и nf является вектором значений частоты (см. Свойства).

Горизонтальная Конкатенация Объектов idfrd

Следующий синтаксис создает новый объект idfrd data, который содержит горизонтальную конкатенацию data1,data2,...,dataN:

data = [data1,data2,...,dataN]

data содержит частотные характеристики от всех входных параметров в data1,data2,...,dataN к тем же выходным параметрам. Следующая схема является графическим представлением горизонтальной конкатенации данных частотной характеристики. Вектор (j,i,:) получившихся данных об ответе представляет частотную характеристику от i th вход к j th вывод на всех частотах.

Примечание

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

Вертикальная Конкатенация Объектов idfrd

Следующий синтаксис создает новый объект idfrd data, который содержит вертикальную конкатенацию data1,data2,...,dataN:

data = [data1;data2;... ;dataN]

Получившийся объект idfrd data содержит частотные характеристики от тех же входных параметров в data1,data2,...,dataN ко всем выходным параметрам. Следующая схема является графическим представлением вертикальной конкатенации данных частотной характеристики. Вектор (j,i,:) получившихся данных об ответе представляет частотную характеристику от i th вход к j th вывод на всех частотах.

Примечание

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

Конкатенация Шумовых Данных о Спектре Объектов idfrd

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

В случае горизонтальной конкатенации нет никакого значимого способа объединить SpectrumData отдельных объектов idfrd, и получившееся свойство SpectrumData пусто. Пустое свойство заканчивается, потому что каждый объект idfrd имеет свой собственный набор шумовых каналов, где количество шумовых каналов равняется количеству выходных параметров. Когда получившийся объект idfrd содержит те же выходные каналы как каждый из отдельных объектов idfrd, это не может хранить шумовые данные от всех объектов idfrd.

В случае вертикальной конкатенации тулбокс конкатенирует отдельные шумовые модели по диагонали. Следующее показывает, что data.SpectrumData является матрицей диагонали блока спектров мощности и перекрестными спектрами выходного шума в системе:

data.s=(data1.s00dataN.s)

s в data.s является сокращением от имени свойства SpectrumData.

Управление idfrd Объекты

Подссылка idfrd Объекты

Смотрите Выбирают I/O Channels и Data в Объектах idfrd.

Конкатенация idfrd Объекты

Смотрите Добавляющие Каналы Ввода или вывода в Объектах idfrd.

Операции, которые Создают Объекты idfrd

Следующие операции создают объекты idfrd:

  • Построение объектов idfrd.

  • Оценивая непараметрические модели с помощью etfe, spa и spafdr. Для получения дополнительной информации см. Модели Частотной характеристики.

  • Преобразование объекта Control System Toolbox™ frd. Для получения дополнительной информации смотрите Используя Идентифицированные Модели для Приложений Системы управления.

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

    Например:

    sys_idpoly = idpoly([1 2 1],[0 2],'Ts',1);
    G = idfrd(sys_idpoly,linspace(0,pi,128))
    G =
    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 128 frequency points, ranging from 0 rad/s to 3.142 rad/s.
     
    Sample time: 1 seconds
    Status:                                                         
    Created by direct construction or transformation. Not estimated.