frd

Создайте модель данных частотной характеристики, преобразуйте в модель данных частотной характеристики

Синтаксис

sys = frd(response,frequency)
sys = frd(response,frequency,Ts)
sys = frd
sysfrd = frd(sys,frequency)
sysfrd = frd(sys,frequency,units)

Описание

sys = frd(response,frequency) создает данные частотной характеристики (frd) объект модели sys от данных о частотной характеристике, хранимых в многомерном массиве response. Векторный frequency представляет базовые частоты для данных о частотной характеристике. Смотрите Формат данных для Ответа Аргумента в Моделях FRD для списка форматов данных ответа.

sys = frd(response,frequency,Ts) создает дискретное время объект модели frd sys со скалярным шагом расчета Ts. Установите Ts =-1 создавать дискретное время объект модели frd, не задавая шаг расчета.

sys = frd создает пустой объект модели frd.

Список входных параметров для любого из этих синтаксисов может сопровождаться именем свойства / пары значения свойства формы

'PropertyName',PropertyValue

Можно использовать эти дополнительные аргументы, чтобы установить различные свойства модель. Для получения дополнительной информации о доступных свойствах моделей frd, смотрите Свойства.

Чтобы обеспечить модель FRD sys, чтобы наследовать все его типичные свойства LTI из любой существующей модели LTI refsys, используйте синтаксис

sys = frd(response,frequency,ltisys)

sysfrd = frd(sys,frequency) преобразовывает модель sys динамической системы в форму данных о частотной характеристике. Частотная характеристика вычисляется на частотах, обеспеченных векторным frequency в rad/TimeUnit, где TimeUnit является единицами измерения времени входной динамической системы, заданной в свойстве TimeUnit sys.

sysfrd = frd(sys,frequency,units) преобразовывает модель динамической системы в модель frd и интерпретирует частоты в векторе frequency, чтобы задать модули units. Для списка значений, которые может принять units, смотрите свойство FrequencyUnit в Свойствах.

Аргументы

Когда вы задаете модель SISO или MIMO FRD или массив моделей FRD, входной параметр, frequency всегда является вектором длины Nf, где Nf является количеством точек данных частоты в FRD. Спецификация входного параметра response получена в итоге в следующей таблице.

Формат данных для ответа аргумента в моделях FRD

Образцовая форма

Формат данных ответа

Модель SISO

Вектор длины Nf, для которого response(i) является частотной характеристикой на частоте frequency(i)

Модель MIMO с Ny выходные параметры и входные параметры Nu

Ny-by-Nu-by-Nf многомерный массив, для которого response(i,j,k) задает частотную характеристику от входа j до вывода i на частоте frequency(k)

S1-by-...-by-Sn массив моделей с Ny выходные параметры и входные параметры Nu

Многомерный массив размера [Ny Nu S1 ... Sn], для которого response(i,j,k,:) задает массив данных о частотной характеристике от входа j до вывода i на частоте frequency(k)

Свойства

Объекты frd имеют следующие свойства:

Frequency

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

FrequencyUnit

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

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

  • 'rad/TimeUnit'

  • 'cycles/TimeUnit'

  • 'rad/s'

  • 'Hz'

  • 'kHz'

  • 'MHz'

  • 'GHz'

  • 'rpm'

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

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

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

ResponseData

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

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

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

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

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

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

Ts

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

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

Значение по умолчанию: 0 (непрерывное время)

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)'}.

Можно использовать краткое обозначение 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)'}.

Можно использовать краткое обозначение 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

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

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

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

Например, предположите, что вы создаете 11 1 массив линейных моделей, sysarr, путем взятия снимков состояния линейной изменяющейся во времени системы во времена t = 0:10. Следующий код хранит выборки времени линейными моделями.

 sysarr.SamplingGrid = struct('time',0:10)

Точно так же предположите, что вы создаете 6 9 образцовый массив, M, путем независимой выборки двух переменных, zeta и w. Следующий код присоединяет значения (zeta,w) к M.

[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)
M.SamplingGrid = struct('zeta',zeta,'w',w)

Когда вы отображаете M, каждая запись в массиве включает соответствующий zeta и значения w.

M
M(:,:,1,1) [zeta=0.3, w=5] =
 
        25
  --------------
  s^2 + 3 s + 25
 

M(:,:,2,1) [zeta=0.35, w=5] =
 
         25
  ----------------
  s^2 + 3.5 s + 25
 
...

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

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

Примеры

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

Создайте модель SISO FRD из вектора частоты и данных об ответе:

% generate a frequency vector and response data 
freq = logspace(1,2);
resp = .05*(freq).*exp(i*2*freq);
% Create a FRD model
sys = frd(resp,freq);

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