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

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

The '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 выходы, set OutputDelay в Ny-by-1 вектора, где каждая запись является числовым значением, представляющим выходу задержку для соответствующего канала выхода. Можно также задать OutputDelay к скалярному значению, чтобы применить ту же задержку ко всем каналам.

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

Ts

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

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

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

TimeUnit

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

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

По умолчанию: 'seconds'

InputName

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

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

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

Кроме того, используйте автоматическое расширение вектора, чтобы назначить входные имена для мультивходов. Для примера, если sys является моделью с двумя входами, введите:

sys.InputName = 'controls';

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

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

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

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

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

  • Определение точек соединения при соединении моделей

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

InputUnit

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

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

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

Использование InputUnit отслеживать модули входных сигналов. InputUnit не влияет на поведение системы.

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

InputGroup

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

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

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

sys(:,'controls')

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

OutputName

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

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

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

Кроме того, используйте автоматическое расширение вектора, чтобы назначить имена выходов для мультивыходов. Для примера, если sys является двухвыпускной моделью, введите:

sys.OutputName = 'measurements';

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

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

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

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

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

  • Определение точек соединения при соединении моделей

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

OutputUnit

Выход модулей канала, заданный как один из следующих:

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

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

Использование OutputUnit отслеживать выход модулей сигнала. OutputUnit не влияет на поведение системы.

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

OutputGroup

Выходы каналов. The 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 (Simulink Control Design) и slLinearizer (Simulink Control Design) заполните 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