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
, можно использовать команду 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
является вектором значений частоты (см. Свойства).
Следующий синтаксис создает новый объект idfrd
data
, который содержит горизонтальную конкатенацию data1,data2,...,dataN
:
data = [data1,data2,...,dataN]
data
содержит частотные характеристики от всех входных параметров в data1,data2,...,dataN
к тем же выходным параметрам. Следующая схема является графическим представлением горизонтальной конкатенации данных частотной характеристики. Вектор (j,i,:)
получившихся данных об ответе представляет частотную характеристику от i
th вход к j
th вывод на всех частотах.
Горизонтальная конкатенация объектов idfrd
требует, чтобы у них были те же выходные параметры и векторы частоты. Если выходные названия канала отличаются, и их размерности являются тем же самым, операция конкатенации сбрасывает выходные имена к их значениям по умолчанию.
Следующий синтаксис создает новый объект idfrd
data
, который содержит вертикальную конкатенацию data1,data2,...,dataN
:
data = [data1;data2;... ;dataN]
Получившийся объект idfrd
data
содержит частотные характеристики от тех же входных параметров в data1,data2,...,dataN
ко всем выходным параметрам. Следующая схема является графическим представлением вертикальной конкатенации данных частотной характеристики. Вектор (j,i,:)
получившихся данных об ответе представляет частотную характеристику от i
th вход к j
th вывод на всех частотах.
Вертикальная конкатенация объектов idfrd
требует, чтобы у них были те же входные параметры и векторы частоты. Если входные названия канала отличаются, и их размерности являются тем же самым, операция конкатенации сбрасывает входные имена к их значениям по умолчанию.
Когда свойство SpectrumData
отдельных объектов idfrd
не является пустым, горизонтальным и вертикальным указателем конкатенации SpectrumData
, можно следующим образом.
В случае горизонтальной конкатенации нет никакого значимого способа объединить SpectrumData
отдельных объектов idfrd
, и получившееся свойство SpectrumData
пусто. Пустое свойство заканчивается, потому что каждый объект idfrd
имеет свой собственный набор шумовых каналов, где количество шумовых каналов равняется количеству выходных параметров. Когда получившийся объект idfrd
содержит те же выходные каналы как каждый из отдельных объектов idfrd
, это не может хранить шумовые данные от всех объектов idfrd
.
В случае вертикальной конкатенации тулбокс конкатенирует отдельные шумовые модели по диагонали. Следующее показывает, что data.SpectrumData
является матрицей диагонали блока спектров мощности и перекрестными спектрами выходного шума в системе:
s
в data.s
является сокращением от имени свойства SpectrumData
.
Смотрите Добавляющие Каналы Ввода или вывода в Объектах 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.