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

speccov трехмерный массив размерности ny- ny- 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- nu- nf Трехмерный массив. f вектор частоты, который содержит частоты ответа. Ts шаг расчета, который используется при измерении или вычислении частотной характеристики. Если вы работаете с системой непрерывного времени, установите Ts к 0.

response(ky,ku,kf), где ky, ku, и kf сошлитесь на kth выход, вход, и значение частоты, соответственно, интерпретирован как частотная характеристика с комплексным знаком от входа 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- ny- Nf. Здесь, ny количество выходных параметров и Nf количество точек частоты. SpectrumData(ky1,ky2,kf) перекрестный спектр между шумом при выходе ky1 и шум при выходе ky2, на частоте Freqs(kf). Когда ky1 = ky2 (степень) спектр шума при выходе ky1 таким образом получен.

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

CovarianceData

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

Задайте CovarianceData как 5-D массив с размерностью ny- nu- Nf- 2 на 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- ny- 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- Nu массив. Каждая запись этого массива является численным значением, которое представляет транспортную задержку соответствующей пары ввода/вывода. Можно также установить IODelay к скалярному значению, чтобы применить ту же задержку со всеми парами ввода/вывода.

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

InputDelay

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

Для системы с Nu входные параметры, набор InputDelay к Nu- 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

Для просмотра документации необходимо авторизоваться на сайте