exponenta event banner

Представление данных частотного отклика с использованием объектов idfrd

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

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

Примечание

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

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

fr_data = idfrd(response,f,Ts)

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

response(ky,ku,kf), где ky, ku, и kf ссылка на kвыходное, входное и частотное значение, соответственно, интерпретируется как комплексный частотный отклик от входа 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-объектах

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

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

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

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

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

Примечание

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

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

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

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

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

Примечание

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

Данные спектра конкатенации шума для объектов idfrd

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

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

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

data.s = (data1.s0⋱0dataN.s)

s в data.s - аббревиатура для SpectrumData имя свойства.

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

Вложенные ссылки на объекты IDFRD

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

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

См. раздел Добавление каналов ввода или вывода в idfrd-объектах.

Операции по созданию объектов IDFRD

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

  • Строительство idfrd объекты.

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

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

  • Преобразование любой линейной динамической системы с помощью 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.