idfrd

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

Синтаксис

h = idfrd(Response,Freq,Ts)
h = idfrd(Response,Freq,Ts,'CovarianceData',Covariance,'SpectrumData',Spec,'NoiseCovariance',Speccov)
h = idfrd(Response,Freq,Ts,...
     'P1',V1,'PN',VN)
h = idfrd(mod)
h = idfrd(mod,Freqs)

Описание

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

h = idfrd(Response,Freq,Ts,'CovarianceData',Covariance,'SpectrumData',Spec,'NoiseCovariance',Speccov) также хранит неуверенность в ответе, Covariance, спектре аддитивного воздействия (шум), Spec и ковариация шума, Speccov.

h = idfrd(Response,Freq,Ts,...
     'P1',V1,'PN',VN)
создает объект idfrd, который хранит модель частотной характеристики свойствами, заданными парами значения свойства модели idfrd.

h = idfrd(mod) преобразовывает System Identification Toolbox™ или Control System Toolbox™ линейная модель к данным частотной характеристики на частотах по умолчанию, включая выходные спектры шума и их ковариацию.

h = idfrd(mod,Freqs) преобразовывает System Identification Toolbox или Control System Toolbox линейная модель к данным частотной характеристики на частотах Freqs.

Для модели

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

Объектно-ориентированная память idfrd оценка передаточной функции G(eiω), а также спектр аддитивного шума (Φv) при выводе.

Φv(ω)=λT|H(eiωT)|2

где λ является предполагаемым отклонением e (t), и T является шагом расчета.

Для непрерывно-разовой системы шумовым спектром дают:

Φv(ω)=λ|H(eiω)|2

Создание idfrd от Данных Ответов

Response является трехмерным массивом размерности ny-by-nu-by-Nf, с ny, являющимся количеством выходных параметров, nu количество входных параметров и Nf количество частот (то есть, длина Freqs). Response(ky,ku,kf) является таким образом частотной характеристикой с комплексным знаком от входа ku до вывода ky на частоте ω=Freqs(kf). При определении ответа системы SISO Response может быть дан как вектор.

Freqs является вектор-столбцом длины Nf, содержащий частоты ответа.

Ts является шагом расчета. Ts = 0 означает непрерывно-разовую модель.

Междемонстрационное поведение: Для данных о частотной характеристике дискретного времени (Ts>0) можно также задать междемонстрационное поведение входного сигнала, который был в действительности, когда выборки были собраны первоначально из эксперимента. Чтобы задать междемонстрационное поведение, используйте:

mf = idfrd(Response,Freq,Ts,'InterSample','zoh');

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

Covariance является 5-D массивом, содержащим ковариацию частотной характеристики. Это имеет размерность ny-by-nu-by-Nf-by-2-by-2. Структура такова, что Covariance(ky,ku,kf,:,:) является ковариационной матрицей 2 на 2 ответа Response(ky,ku,kf). Элемент 1-1 является отклонением действительной части, элемент 2-2 является отклонением мнимой части, и 1-2 и 2-1 элемент является ковариацией между действительными и мнимыми частями. squeeze(Covariance(ky,ku,kf,:,:)) таким образом дает ковариационную матрицу соответствующего ответа.

Формат для получения информации о спектре следующие:

spec является трехмерным массивом размерности ny-by-ny-by-Nf, такой, что spec(ky1,ky2,kf) является перекрестным спектром между шумом при выводе ky1 и шумом при выводе ky2 на частоте Freqs(kf). Когда ky1 = ky2 (степень) спектр шума при выводе ky1 таким образом получен. Для модели одно вывода spec может быть дан как вектор.

speccov является трехмерным массивом размерности ny-by-ny-by-Nf, такой, что speccov(ky1,ky1,kf) является отклонением соответствующего спектра мощности.

Если только SpectrumData должен быть группирован в объекте idfrd, установите Response = [].

Преобразование в idfrd

Объект idfrd может также быть вычислен из данной линейной идентифицированной модели, mod.

Если частоты, Freqs не задан, выбор по умолчанию, сделаны на основе динамики модели mod.

Предполагаемая ковариация:

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

  • Если вы создаете mod при помощи команд, таких как idss, idtf, idproc, idgrey или idpoly, то программное обеспечение устанавливает CovarianceData на [].

Обработка задержки: Если mod содержит задержки, то программное обеспечение присваивает задержки объекта idfrd, h, можно следующим образом:

  • h.InputDelay = mod.InputDelay

  • h.IODelay = mod.IODelay+repmat(mod.OutputDelay,[1,nu])

    Выражение repmat(mod.OutputDelay,[1,nu]) возвращает матрицу, содержащую выходную задержку каждой пары ввода/вывода.

Частотные характеристики для подмоделей могут быть получены стандартной подссылкой, h = idfrd(m(2,3)). h = idfrd(m(:,[])) дает h, который только содержит SpectrumData.

Модели idfrd могут быть изображены в виде графика с bode, spectrum и nyquist, которые принимают смеси параметрических моделей, такие как модели idtf и idfrd в качестве аргументов. Обратите внимание на то, что spa, spafdr и etfe возвращают их результаты оценки, когда 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 с помощью синтаксиса конструктора:

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

Свойства

Свойства объектов idfrd включают:

ResponseData

Данные о частотной характеристике.

Свойство 'ResponseData' хранит данные о частотной характеристике как трехмерный массив комплексных чисел. Для систем SISO 'ResponseData' является вектором значений частотной характеристики в точках частоты, заданных в свойстве 'Frequency'. Для систем MIMO с входными параметрами Nu и Ny выходные параметры, 'ResponseData' является массивом размера [Ny Nu Nw], где Nw является количеством точек частоты.

Frequency

Точки частоты данных о частотной характеристике. Задайте значения Frequency в модулях, заданных свойством FrequencyUnit.

FrequencyUnit

Единицы частоты модели.

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

  • 'rad/TimeUnit'

  • 'cycles/TimeUnit'

  • 'rad/s'

  • 'Hz'

  • 'kHz'

  • 'MHz'

  • 'GHz'

  • 'rpm'

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

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

Значение по умолчанию: 'rad/TimeUnit'

SpectrumData

Спектры мощности и перекрестные спектры системы выводят воздействия (шум). Задайте SpectrumData как трехмерный массив комплексных чисел.

Задайте SpectrumData как трехмерный массив с размерностью ny-by-ny-by-Nf. Здесь, ny является количеством выходных параметров, и Nf является количеством точек частоты. SpectrumData(ky1,ky2,kf) является перекрестным спектром между шумом при выводе ky1 и шумом при выводе ky2 на частоте Freqs(kf). Когда ky1 = ky2 (степень) спектр шума при выводе ky1 таким образом получен.

Для модели одно вывода задайте SpectrumData как вектор.

CovarianceData

Ковариационные матрицы данных об ответе.

Задайте CovarianceData как 5-D массив с размерностью ny-by-nu-by-Nf-by-2-by-2. Здесь, ny, nu и Nf являются количеством выходных параметров, входных параметров и точек частоты, соответственно. CovarianceData(ky,ku,kf,:,:) является ковариационной матрицей 2 на 2 данных об ответе ResponseData(ky,ku,kf). Элемент 1-1 является отклонением действительной части, элемент 2-2 является отклонением мнимой части, и 1-2 и 2-1 элемент является ковариацией между действительными и мнимыми частями.

squeeze(Covariance(ky,ku,kf,:,:))

NoiseCovariance

Отклонение спектров мощности.

Задайте NoiseCovariance как трехмерный массив с размерностью ny-by-ny-by-Nf. Здесь, ny является количеством выходных параметров, и Nf является количеством точек частоты. NoiseCovariance(ky1,ky1,kf) является отклонением соответствующего спектра мощности. Чтобы устранить влияние шумового компонента из модели, задайте NoiseVariance как 0. Нулевое отклонение делает предсказанный вывод тем же самым как моделируемый вывод.

Report

Сводный отчет, который содержит информацию об опциях оценки и результатах, когда модель частотной характеристики получена с помощью команд оценки, таких как 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);
m = idfrd(response,f,0.08);
m.Report.Method
ans =

     ''

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

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

SPA

Report является свойством только для чтения.

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

InterSample

Введите междемонстрационное поведение.

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

Установите InterSample на одно из следующего:

  • 'zoh' — Входной сигнал, используемый для конструкции/оценки данных о частотной характеристике, подвергся фильтру "нулевой порядок, содержат".

  • 'foh' — Входной сигнал подвергся фильтру хранения первый порядок.

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

Для мультивходных данных задайте InterSample как Nu-by-1 массив ячеек, где Nu является количеством входных параметров.

IODelay

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

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

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

Значение по умолчанию: 0 для всех пар ввода/вывода

InputDelay

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

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

Можно также установить InputDelay на скалярное значение применять ту же задержку со всеми каналами.

Значение по умолчанию: 0

OutputDelay

Выведите задержки.

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

Ts

'SampleTime' . Для непрерывно-разовых моделей, Ts = 0. Для моделей дискретного времени Ts является положительной скалярной величиной, представляющей шаг расчета, выраженный в модуле, заданном свойством TimeUnit модели. Чтобы обозначить модель дискретного времени с незаданным шагом расчета, установите Ts = -1.

Изменение этого свойства не дискретизирует или передискретизирует модель.

Значение по умолчанию: 1

TimeUnit

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

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

Значение по умолчанию: 'seconds'

InputName

Введите названия канала, заданные как одно из следующего:

  • Вектор символов — Для моделей одно входа, например, 'controls'.

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

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

sys.InputName = 'controls';

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

Когда вы оцениваете модель с помощью объекта iddata, data, программное обеспечение автоматически устанавливает InputName на data.InputName.

Можно использовать краткое обозначение u, чтобы относиться к свойству InputName. Например, sys.u эквивалентен sys.InputName.

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

  • Идентификация каналов на образцовом отображении и графиках

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

  • Определение точек контакта, когда взаимосвязанные модели

Значение по умолчанию: '' для всех входных каналов

InputUnit

Введите модули канала, заданные как одно из следующего:

  • Вектор символов — Для моделей одно входа, например, 'seconds'.

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

Используйте InputUnit, чтобы отслеживать модули входного сигнала. InputUnit не имеет никакого эффекта на поведение системы.

Значение по умолчанию: '' для всех входных каналов

InputGroup

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

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

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

sys(:,'controls')

Значение по умолчанию: Struct без полей

OutputName

Выведите названия канала, заданные как одно из следующего:

  • Вектор символов — Для моделей одно вывода. Например, 'measurements'.

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

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

sys.OutputName = 'measurements';

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

Когда вы оцениваете модель с помощью объекта iddata, data, программное обеспечение автоматически устанавливает OutputName на data.OutputName.

Можно использовать краткое обозначение y, чтобы относиться к свойству OutputName. Например, sys.y эквивалентен sys.OutputName.

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

  • Идентификация каналов на образцовом отображении и графиках

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

  • Определение точек контакта, когда взаимосвязанные модели

Значение по умолчанию: '' для всех выходных каналов

OutputUnit

Выведите модули канала, заданные как одно из следующего:

  • Вектор символов — Для моделей одно вывода. Например, 'seconds'.

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

Используйте OutputUnit, чтобы отслеживать модули выходного сигнала. OutputUnit не имеет никакого эффекта на поведение системы.

Значение по умолчанию: '' для всех выходных каналов

OutputGroup

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

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

создает выходные группы под названием temperature и measurement, которые включают выходные каналы 1, и 3, 5, соответственно. Можно затем извлечь подсистему от всех входных параметров до measurement использование выходных параметров:

sys('measurement',:)

Значение по умолчанию: Struct без полей

Name

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

Значение по умолчанию: ''

Notes

Любой текст, который вы хотите сопоставить с системой, сохраненной как строка или массив ячеек из символьных векторов. Свойство хранит, какой бы ни тип данных вы обеспечиваете. Например, если 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.'

Значение по умолчанию: [0×1 string]

UserData

Любой тип данных вы хотите сопоставить с системой, заданной как любой тип данных MATLAB®.

Значение по умолчанию: []

SamplingGrid

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

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

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

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

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

где sys является массивом, содержащим три идентифицированных модели, полученные в rpms 1000, 5000 и 10000, соответственно.

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

Значение по умолчанию: []

Подссылка

Различные каналы idfrd получены путем подссылки.

h(outputs,inputs)

h(2,3) таким образом содержит данные об ответе из входного канала 3, чтобы вывести канал 2, и, если применимо, выходные данные о спектре для выходного канала 2. Каналы могут также быть упомянуты их именами, как в h('power',{'voltage','speed'}).

Горизонтальная конкатенация

Добавление входных каналов,

h = [h1,h2,...,hN]

создает модель idfrd h, с ResponseData, содержащим все входные каналы в h1,...,hN. Выходные каналы hk должны быть тем же самым, а также векторами частоты. SpectrumData проигнорирован.

Вертикальная конкатенация

Добавление выходных каналов,

h = [h1;h2;... ;hN]

создает модель idfrd h с ResponseData, содержащим все выходные каналы в h1, h2,...,hN. Входные каналы hk должны все быть тем же самым, а также векторами частоты. SpectrumData также добавлен для новых выходных параметров. Перекрестный спектр между выходными каналами h1, h2,...,hN затем обнуляется.

Преобразование в iddata

Можно преобразовать объект idfrd в объект iddata частотного диапазона

Data = iddata(Idfrdmodel)

Seeiddata.

Примеры

свернуть все

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

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

Создайте объект idfrd.

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.08);

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

Можно использовать get(fr_data), чтобы просмотреть все свойства объекта idfrd. Можно задать свойства, когда вы создаете объект idfrd с помощью синтаксиса конструктора. Например, fr_data = idfrd(y,u,Ts,'Property1',Value1,...,'PropertyN',ValueN).

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

fr_data.Name = 'DC_Converter';

Если вы импортируете fr_data в приложение System Identification, эти данные называют DC_Converter в приложении, а не именем переменной fr_data.

Смотрите также

| | | | | |

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