Представление данных частотной характеристики с использованием объектов 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 ссылка на kth-й выход, вход и значение частоты, соответственно, интерпретируется как комплексная частотная характеристика от входа 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';

Выберите каналы ввода-вывода и данные в объектах с неявнополюсным выходом

Можно ссылаться на определенные значения данных в 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 объекты объединяют информацию в ResponseData свойства этих объектов. ResponseData является ny-by- nu-by- nf массив, который сохраняет ответ системы, где ny количество выхода каналов, nu количество входа каналов и nf является вектором значений частоты (см. ResponseData описание свойства в idfrd).

Горизонтальная конкатенация простых объектов

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

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

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

Примечание

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

Вертикальная конкатенация простых объектов

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

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

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

Примечание

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

Конкатенация данных шумового спектра простых объектов

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

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

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

data.s=(data1.s00dataN.s)

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

Управление простыми объектами

Подреференция простых объектов

См. раздел «Выбор каналов ввода-вывода и данных в простых объектах».

Конкатенирование простых объектов

Смотрите Добавление Входных или Выходных Каналов в простых Объектах.

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

Следующие операции создают 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.