Модель с нулевым коэффициентом усиления
Использовать zpk создание моделей с нулевым усилением полюсов или преобразование динамических системных моделей в форму с нулевым усилением полюсов.
Модели с нулевым коэффициентом усиления являются представлением передаточных функций в факторизованном виде. Например, рассмотрим следующую функцию передачи SISO с непрерывным временем:
4s2 + 5s + 6
G(s) может быть факторизован в форму с нулевым коэффициентом усиления как:
+ 2) (s + 3).
Более общее представление модели усиления нулевого полюса SISO выглядит следующим образом:
(1)) (s − p (2))... (s − p (n))
Здесь, z и p являются векторами вещественных или комплексных нулей и полюсов, и K - действительное или комплексное скалярное усиление
Объект модели с нулевым коэффициентом усиления можно создать либо путем непосредственного указания полюсов, нулей и коэффициентов усиления, либо путем преобразования модели другого типа (например, модели «состояние-пространство»). ss) к форме с нулевым полюсом и усилением.
Также можно использовать zpk для создания обобщенного состояния-пространства (genss) модели или неопределенное состояние-пространство (uss (Надёжная панель инструментов управления)) модели.
создает непрерывную модель с нулевым полюсным усилением с помощью sys = zpk(zeros,poles,gain)zeros и poles указано как векторы и скалярное значение gain. Продукция sys является zpk объект модели, хранящий данные модели. Набор zeros или poles кому [] для систем без нулей или полюсов. Эти два входа не должны иметь одинаковую длину, и модель не должна быть правильной (то есть иметь избыток полюсов).
s = zpk('s') создает специальную переменную s можно использовать в рациональном выражении для создания модели с нулевым коэффициентом усиления в непрерывном времени. Использование рационального выражения иногда может быть проще и интуитивнее, чем указание полиномиальных коэффициентов.
zeros - нули модели с нулевым коэффициентом усиленияNyоколо-Nu массив ячеек векторов строкНули модели с нулевым коэффициентом усиления, указанной как:
Вектор строки для моделей SISO. Например, использовать [1,2+i,2-1] создание модели с нулями в s = 1, s = 2+i, и s = 2-i. Пример см. в разделе Модель с нулевым коэффициентом усиления SISO непрерывного времени.
Один Nyоколо-Nu массив ячеек векторов строк для задания модели с нулевым полюсным усилением MIMO, где Ny - количество выходов, и Nu - количество входов. Пример см. в разделе Модель с нулевым полюсным усилением MIMO дискретного времени.
Например, если a является realp настраиваемый параметр с номинальным значением 3, то вы можете использовать zeros = [1 2 a] для создания genss модель с нулями в s = 1 и s = 2 и настраиваемый ноль при s = 3.
Также является собственностью zpk объект. Этот входной аргумент задает начальное значение свойства Z.
poles - Полюса модели с нулевым коэффициентом усиленияNyоколо-Nu массив ячеек векторов строкПолюса модели с нулевым коэффициентом усиления, указанные как:
Вектор строки для моделей SISO. Пример см. в разделе Модель с нулевым коэффициентом усиления SISO непрерывного времени.
Один Nyоколо-Nu массив ячеек векторов строк для задания модели с нулевым полюсным усилением MIMO, где Ny - количество выходов и Nu - количество входов. Пример см. в разделе Модель с нулевым полюсным усилением MIMO дискретного времени.
Также является собственностью zpk объект. Этот входной аргумент задает начальное значение свойства P.
gain - Коэффициент усиления модели с нулевым полюсомNyоколо-Nu массив ячеек векторов строкКоэффициент усиления модели с нулевым полюсным усилением, определяемый как:
Скаляр для моделей SISO. Пример см. в разделе Модель с нулевым коэффициентом усиления SISO непрерывного времени.
Один Nyоколо-Nu матрица для задания модели MIMO с нулевым полюсным усилением, где Ny - количество выходов и Nu - количество входов. Пример см. в разделе Модель с нулевым полюсным усилением MIMO дискретного времени.
Также является собственностью zpk объект. Этот входной аргумент задает начальное значение свойства K.
ts - Время выборкиВремя выборки, указанное как скаляр. Также является собственностью zpk объект. Этот входной аргумент задает начальное значение свойства Ts.
ltiSys - Динамическая системаДинамическая система, заданная как динамическая системная модель SISO или MIMO или массив динамических системных моделей. Динамические системы, которые можно использовать:
Непрерывные или дискретные числовые модели LTI, такие как tf, zpk, ss, или pid модели.
Обобщенные или неопределенные модели LTI, такие как genss или uss (Надежная панель инструментов управления). (Для использования неопределенных моделей требуется лицензия Toolbox™ надежного управления.)
Полученная модель с нулевым коэффициентом усиления предполагает
текущие значения перестраиваемых компонентов для перестраиваемых проектных блоков управления.
номинальные значения модели для неопределенных проектных блоков управления.
Идентифицированные модели LTI, такие как idtf(Панель инструментов идентификации системы), idss(Панель инструментов идентификации системы), idproc(Панель инструментов идентификации системы), idpoly(панель инструментов идентификации системы), и idgrey(Панель инструментов идентификации системы). Чтобы выбрать компонент определенной модели для преобразования, укажите component. Если не указать component, tf преобразует измеренный компонент идентифицированной модели по умолчанию. (Для использования идентифицированных моделей требуется программное обеспечение System Identification Toolbox™.)
Идентифицированная нелинейная модель не может быть преобразована в zpk объект модели. Сначала можно использовать линейные аппроксимационные функции, такие как linearize и linapp (Для этой функции требуется программное обеспечение System Identification Toolbox.)
m - Статический коэффициент усиленияСтатический коэффициент усиления, заданный как скаляр или матрица. Статический коэффициент усиления или коэффициент усиления в установившемся состоянии системы представляет отношение выходного сигнала к входному сигналу в установившемся состоянии.
component - Компонент идентифицированной модели'measured' (по умолчанию) | 'noise' | 'augmented'Компонент идентифицированной модели для преобразования, указанный как один из следующих:
'measured' - Преобразовать измеренный компонент sys.
'noise' - Преобразование шумовой составляющей sys
'augmented' - Преобразовать как измеренные, так и шумовые компоненты sys.
component применяется только тогда, когда sys является идентифицированной моделью LTI.
Дополнительные сведения об идентифицированных моделях LTI и их измеренных и шумовых компонентах см. в разделе Идентифицированные модели LTI.
sys - Модель выходной системыzpk объект модели | genss объект модели | uss объект моделиВыходная модель системы, возвращенная как:
Нулевой коэффициент усиления (zpk) объект модели, когда zeros, poles и gain входные аргументы содержат числовые значения.
Обобщённая модель состояния-пространства (genss) объект, когда zeros, poles и gain входные аргументы включают настраиваемые параметры, такие как realp параметры или обобщенные матрицы (genmat).
Неопределенная модель состояния-пространства (uss) объект, когда zeros, poles и gain входные аргументы включают неопределенные параметры. Для использования неопределенных моделей требуется лицензия Rustible Control Toolbox.
Z - Системные нулиNyоколо-Nu массив ячеек векторов строкСистемные нули, указанные как:
Массив ячеек нулей передаточной функции или корней числителя для моделей SISO.
Один Nyоколо-Nu массив ячеек векторов строк нулей для каждой пары ввода-вывода в модели MIMO, где Ny - количество выходов и Nu - количество входов.
Значения Z может быть либо вещественным, либо комплексным.
P - Системные полюсаNyоколо-Nu массив ячеек векторов строкСистемные полюса, указанные как:
Массив ячеек полюсов передаточных функций или корней знаменателя для моделей SISO.
Один Nyоколо-Nu массив ячеек векторов строк полюсов для каждой пары ввода-вывода в модели MIMO, где Ny - количество выходов и Nu - количество входов.
Значения P может быть либо вещественным, либо комплексным.
K - Выигрыши системыNyоколо-Nu матрицаУсиление системы, указанное как:
Скалярное значение для моделей SISO.
Один Nyоколо-Nu матрица, хранящая значения усиления для каждой пары ввода-вывода модели MIMO, где Ny - количество выходов и Nu - количество входов.
Значения K может быть либо вещественным, либо комплексным.
DisplayFormat - определяет способ факторизации многочленов числителя и знаменателя для отображения;'roots' (по умолчанию) | 'frequency' | 'time constant'Определяет способ факторизации многочленов числителя и знаменателя для отображения, определяемый одним из следующих параметров:
'roots' - отображаемые коэффициенты в терминах расположения корней полинома. 'roots' является значением по умолчанию DisplayFormat
'frequency' - Отображаемые коэффициенты в терминах корневых собственных частот start0 и коэффициентов демпфирования
'frequency' формат дисплея недоступен для дискретно-временных моделей с Variable стоимость 'z^-1' или 'q^-1'.
'time constant' - Отображаемые множители в терминах корневых констант времени startи коэффициентов коэффициентов демпфирования.
'time constant' формат дисплея недоступен для дискретно-временных моделей с Variable стоимость 'z^-1' или 'q^-1'.
Для моделей непрерывного времени в следующей таблице показано расположение многочленов в каждом формате отображения.
DisplayName Стоимость | Коэффициент первого порядка (реальный корень ) | Коэффициент второго порядка (пара комплексных корней ± jb) |
|---|---|---|
'roots' | R) | β), = a2 + b2 |
'frequency' | ), = R | sü 0) 2, b2, |
'time constant' | starts) 2, 1 |
Для моделей дискретного времени полиномиальные коэффициенты расположены аналогично моделям непрерывного времени со следующими переменными заменами:
где Ts - время выборки. В дискретно-временном, startи start0 близко соответствуют постоянной времени и собственной частоте эквивалентного корня непрерывного времени при условии выполнения следующего условия: частота Найквиста).
Variable - Переменная отображения модели с нулевым коэффициентом усиления's' (по умолчанию) | 'z' | 'p' | 'q' | 'z^-1' | 'q^-1'Отображаемая переменная модели с нулевым коэффициентом усиления, заданная как одно из следующих значений:
's' - По умолчанию для моделей непрерывного времени
'z' - По умолчанию для моделей дискретного времени
'p' - Эквивалентно 's'
'q' - Эквивалентно 'z'
'z^-1' - Обратная 'z'
'q^-1' - Эквивалентно 'z^-1'
IODelay - Задержка транспортировки0 (по умолчанию) | скаляр | Nyоколо-Nu множествоЗадержка транспортировки, указанная как одно из следующих значений:
Скаляр - укажите задержку передачи для системы SISO или ту же задержку передачи для всех пар ввода/вывода системы MIMO.
Nyоколо-Nu array - укажите отдельные задержки передачи для каждой пары ввода/вывода системы MIMO. Здесь, Ny - количество выходов и Nu - количество входов.
Для систем непрерывного времени укажите задержки транспортировки в единицах времени, указанных в TimeUnit собственность. Для систем с дискретным временем укажите задержки переноса в целых числах, кратных времени выборки. Ts. Дополнительные сведения о временной задержке см. в разделе Временные задержки в линейных системах.
InputDelay - Задержка на входе0 (по умолчанию) | скаляр | Nu-по-1 векторуЗадержка на входе для каждого входного канала, определяемая как одно из следующих значений:
Скаляр (Scalar) - задает задержку ввода для системы SISO или такую же задержку для всех входов системы с несколькими входами.
Nu-by-1 vector - Определение отдельных входных задержек для ввода системы с несколькими входами, где Nu - количество входов.
Для систем непрерывного времени укажите задержки на входе в единицу времени, указанную TimeUnit собственность. Для дискретно-временных систем укажите входные задержки в целых кратных времени выборки, Ts.
Дополнительные сведения см. в разделе Временные задержки в линейных системах.
OutputDelay - Задержка на выходе0 (по умолчанию) | скаляр | Ny-по-1 векторуЗадержка на выходе для каждого выходного канала, определяемая как одно из следующих значений:
Скаляр (Scalar) - указывает задержку вывода для системы SISO или такую же задержку для всех выходов системы с несколькими выходами.
Ny-by-1 vector - Определение отдельных выходных задержек для вывода системы с несколькими выходами, где Ny - количество выходов.
Для систем непрерывного времени укажите задержки на выходе в единицах времени, указанных TimeUnit собственность. Для дискретно-временных систем укажите задержки на выходе в целых числах, кратных времени выборки. Ts.
Дополнительные сведения см. в разделе Временные задержки в линейных системах.
Ts - Время выборки0 (по умолчанию) | положительный скаляр | -1Время выборки, указанное как:
0 для систем непрерывного времени.
Положительный скаляр, представляющий период выборки дискретно-временной системы. Определить Ts в единице времени, указанной TimeUnit собственность.
-1 для дискретно-временной системы с неопределенным временем выборки.
TimeUnit - Переменные единицы времени'seconds' (по умолчанию) | 'nanoseconds' | 'microseconds' | 'milliseconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months' | 'years' | ...Единицы переменной времени, указанные как одно из следующих значений:
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
Изменение TimeUnit не влияет на другие свойства, но изменяет общее поведение системы. Использовать chgTimeUnit преобразование между единицами времени без изменения поведения системы.
InputName - Названия входных каналов'' (по умолчанию) | символьный вектор | массив ячеек символьных векторовИмена входных каналов, указанные как одно из следующих:
Символьный вектор для моделей с одним входом.
Массив ячеек символьных векторов для моделей с несколькими входами.
'', не указаны имена для каких-либо входных каналов.
Кроме того, можно назначить входные имена для моделей с несколькими входами с помощью автоматического векторного расширения. Например, если sys является моделью с двумя входами, введите:
sys.InputName = 'controls';Имена вводимых данных автоматически расширяются до {'controls(1)';'controls(2)'}.
Можно использовать сокращенную нотацию u см. InputName собственность. Например, sys.u эквивалентно sys.InputName.
Использовать InputName кому:
Определение каналов на дисплее модели и графиках.
Извлечение подсистем систем MIMO.
Укажите точки соединения при соединении моделей.
InputUnit - Блоки входных каналов'' (по умолчанию) | символьный вектор | массив ячеек символьных векторовБлоки входных каналов, указанные как одно из следующих:
Символьный вектор для моделей с одним входом.
Массив ячеек символьных векторов для моделей с несколькими входами.
'', не указаны единицы измерения для каких-либо входных каналов.
Использовать InputUnit для задания единиц входного сигнала. InputUnit не влияет на поведение системы.
InputGroup - Группы входных каналовВходные группы каналов, заданные как структура. Использовать InputGroup назначение входных каналов систем MIMO группам и ссылка на каждую группу по имени. Имена полей InputGroup - имена групп, а значения полей - входные каналы каждой группы. Например:
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
создает входные группы с именем controls и noise которые включают входные каналы 1 и 2, и 3 и 5соответственно. Затем можно извлечь подсистему из controls входы на все выходы с использованием:
sys(:,'controls')По умолчанию InputGroup - структура без полей.
OutputName - Названия выходных каналов'' (по умолчанию) | символьный вектор | массив ячеек символьных векторовИмена выходных каналов, указанные как одно из следующих:
Символьный вектор для моделей с одним выходом.
Массив ячеек символьных векторов для моделей с несколькими выходами.
'', не указаны имена для каких-либо выходных каналов.
Кроме того, можно назначить имена выходных данных для моделей с несколькими выходами с помощью автоматического векторного расширения. Например, если sys является моделью с двумя выходами, введите:
sys.OutputName = 'measurements';Имена вывода автоматически расширяются до {'measurements(1)';'measurements(2)'}.
Можно также использовать сокращенную нотацию y см. OutputName собственность. Например, sys.y эквивалентно sys.OutputName.
Использовать OutputName кому:
Определение каналов на дисплее модели и графиках.
Извлечение подсистем систем MIMO.
Укажите точки соединения при соединении моделей.
OutputUnit - Блоки выходных каналов'' (по умолчанию) | символьный вектор | массив ячеек символьных векторовЕдиницы выходного канала, указанные как одно из следующих:
Символьный вектор для моделей с одним выходом.
Массив ячеек символьных векторов для моделей с несколькими выходами.
'', не указаны единицы измерения для каких-либо выходных каналов.
Использовать OutputUnit для задания единиц выходного сигнала. OutputUnit не влияет на поведение системы.
OutputGroup - Группы выходных каналовГруппы выходных каналов, заданные как структура. Использовать OutputGroupназначение выходных каналов систем MIMO группам и ссылка на каждую группу по имени. Имена полей OutputGroup - имена групп, а значения полей - выходные каналы каждой группы. Например:
sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5];
создает выходные группы с именем temperature и measurement которые включают выходные каналы 1, и 3 и 5соответственно. Затем можно извлечь подсистему из всех входов в measurement вывод с использованием:
sys('measurement',:)По умолчанию OutputGroup - структура без полей.
Name - Имя системы'' (по умолчанию) | символьный векторИмя системы, указанное как символьный вектор. Например, 'system_1'.
Notes - Пользовательский текст{} (по умолчанию) | символьный вектор | массив ячеек символьных векторовПользовательский текст, который требуется связать с системой, указанный как символьный вектор или массив ячеек символьных векторов. Например, 'System is MIMO'.
UserData - Пользовательские данные[] (по умолчанию) | любой тип данных MATLAB ®Пользовательские данные, которые необходимо связать с системой, указанные как любой тип данных MATLAB.
SamplingGrid - Сетка выборки для массивов моделейСетка выборки для массивов модели, заданная как массив структуры.
Использовать SamplingGrid для отслеживания значений переменных, связанных с каждой моделью в массиве модели, включая идентифицированные линейные инвариантные по времени (IDLTI) массивы моделей.
Задайте имена полей структуры для имен переменных выборки. Задайте значения полей для значений выборочных переменных, связанных с каждой моделью в массиве. Все переменные выборки должны быть числовыми скалярами, а все массивы значений выборки должны соответствовать размерам массива модели.
Например, можно создать массив линейных моделей 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 автоматически.
По умолчанию SamplingGrid - структура без полей.
Следующие списки содержат репрезентативное подмножество функций, которые можно использовать с zpk модели. Как правило, любая функция, применимая к динамическим моделям систем, применима к zpk объект.
step | График ступенчатой реакции динамической системы; данные ответа на шаг |
impulse | график импульсной характеристики динамической системы; данные импульсной характеристики |
lsim | Постройте график моделируемой временной реакции динамической системы на произвольные входы; смоделированные данные ответа |
bode | График Моде частотной характеристики, или данные о величине и фазе |
nyquist | Найквистский график частотной характеристики |
nichols | Диаграмма частотной характеристики Николса |
bandwidth | Полоса пропускания частотного отклика |
pidtune | Алгоритм настройки PID для линейной модели установки |
rlocus | График корневого локуса динамической системы |
lqr | Конструкция линейного квадратичного регулятора (LQR) |
lqg | Линейно-квадратично-гауссова (LQG) конструкция |
lqi | Линейно-квадратично-интегральное управление |
kalman | Проектирование фильтра Калмана для оценки состояния |
В этом примере рассмотрим следующую непрерывную модель SISO с нулевым коэффициентом усиления:
Непрерывная модель с нулевым коэффициентом усиления полюсов
Задайте нули, полюса и коэффициент усиления и создайте модель SISO с нулевым коэффициентом усиления.
zeros = 0; poles = [1-1i 1+1i 2]; gain = -2; sys = zpk(zeros,poles,gain)
sys =
-2 s
--------------------
(s-2) (s^2 - 2s + 2)
Continuous-time zero/pole/gain model.
Для этого примера рассмотрим следующую модель дискретного времени SISO с нулевым усилением полюсов с временем выборки 0,1 с:
Дискретная модель усиления нулевого полюса SISO
Задайте нули, полюса, коэффициенты усиления и время выборки и создайте дискретную модель SISO с нулевым полюсом.
zeros = [1 2 3]; poles = [6 5 4]; gain = 7; ts = 0.1; sys = zpk(zeros,poles,gain,ts)
sys = 7 (z-1) (z-2) (z-3) ------------------- (z-6) (z-5) (z-4) Sample time: 0.1 seconds Discrete-time zero/pole/gain model.
В этом примере создается модель усиления нулевого полюса MIMO путем объединения моделей усиления нулевого полюса SISO. Рассмотрим следующую модель с одним входом и двумя выходами с непрерывным временем с нулевым полюсным усилением:
+ i) (s + 2-i)].
Укажите модель усиления нулевого полюса MIMO путем объединения записей SISO.
zeros1 = 1; poles1 = -1; gain = 1; sys1 = zpk(zeros1,poles1,gain)
sys1 = (s-1) ----- (s+1) Continuous-time zero/pole/gain model.
zeros2 = -2; poles2 = [-2+1i -2-1i]; sys2 = zpk(zeros2,poles2,gain)
sys2 =
(s+2)
--------------
(s^2 + 4s + 5)
Continuous-time zero/pole/gain model.
sys = [sys1;sys2]
sys =
From input to output...
(s-1)
1: -----
(s+1)
(s+2)
2: --------------
(s^2 + 4s + 5)
Continuous-time zero/pole/gain model.
Создайте модель с нулевым полюсным усилением для дискретной модели с несколькими входами и несколькими выходами:
Дискретная модель MIMO с нулевым коэффициентом усиления
со временем выборки ts = 0.2 секунд.
Задайте нули и полюса как массивы ячеек, а коэффициенты усиления - как массив.
zeros = {[] 0;2 []};
poles = {-0.3 -0.3;-0.3 -0.3};
gain = [1 1;-1 3];
ts = 0.2;Создайте дискретную модель MIMO с нулевым полюсным усилением.
sys = zpk(zeros,poles,gain,ts)
sys =
From input 1 to output...
1
1: -------
(z+0.3)
- (z-2)
2: -------
(z+0.3)
From input 2 to output...
z
1: -------
(z+0.3)
3
2: -------
(z+0.3)
Sample time: 0.2 seconds
Discrete-time zero/pole/gain model.
Задайте нули, полюса и коэффициент усиления вместе с временем выборки и создайте модель с нулевым коэффициентом усиления, указав имена состояний и входных данных с помощью пар имя-значение.
zeros = 4; poles = [-1+2i -1-2i]; gain = 3; ts = 0.05; sys = zpk(zeros,poles,gain,ts,'InputName','Force')
sys =
From input "Force" to output:
3 (z-4)
--------------
(z^2 + 2z + 5)
Sample time: 0.05 seconds
Discrete-time zero/pole/gain model.
Число входных имен должно соответствовать числу нулей.
Именование входов и выходов может быть полезным при работе с графиками ответов для систем MIMO.
step(sys)

Обратите внимание на имя ввода Force в заголовке графика ответа на шаг.
Для этого примера создайте непрерывную модель с нулевым коэффициентом усиления полюсов, используя рациональные выражения. Использование рационального выражения иногда может быть проще и интуитивнее, чем указание полюсов и нулей.
Рассмотрим следующую систему:
2s + 10.
Чтобы создать модель передаточной функции, сначала укажите s в качестве zpk объект.
s = zpk('s')s = s Continuous-time zero/pole/gain model.
Создайте модель с нулевым коэффициентом усиления, используя s в рациональном выражении.
sys = s/(s^2 + 2*s + 10)
sys =
s
---------------
(s^2 + 2s + 10)
Continuous-time zero/pole/gain model.
Для этого примера создайте дискретную модель с нулевым полюсным усилением, используя рациональное выражение. Использование рационального выражения иногда может быть проще и интуитивнее, чем указание полюсов и нулей.
Рассмотрим следующую систему:
нулевого усиления
Чтобы создать модель с нулевым коэффициентом усиления, сначала укажите z в качестве zpk объект и время выборки ts.
ts = 0.1;
z = zpk('z',ts)z = z Sample time: 0.1 seconds Discrete-time zero/pole/gain model.
Создание модели с нулевым коэффициентом усиления с помощью z в рациональном выражении.
sys = (z - 1) / (z^2 - 1.85*z + 0.9)
sys =
(z-1)
-------------------
(z^2 - 1.85z + 0.9)
Sample time: 0.1 seconds
Discrete-time zero/pole/gain model.
Для этого примера создайте модель с усилением нулевого полюса со свойствами, унаследованными от другой модели с усилением нулевого полюса. Рассмотрим следующие две модели с нулевым коэффициентом усиления:
Для этого примера создайте sys1 с TimeUnit и InputDelay свойство имеет значение «»minutes'.
zero1 = 0; pole1 = [0;-8]; gain1 = 2; sys1 = zpk(zero1,pole1,gain1,'TimeUnit','minutes','InputUnit','minutes')
sys1 =
2 s
-------
s (s+8)
Continuous-time zero/pole/gain model.
propValues1 = [sys1.TimeUnit,sys1.InputUnit]
propValues1 = 1x2 cell
{'minutes'} {'minutes'}
Создание второй модели с нулевым коэффициентом усиления со свойствами, унаследованными от sys1.
zero = 1; pole = [-3,5]; gain2 = 0.8; sys2 = zpk(zero,pole,gain2,sys1)
sys2 = 0.8 (s-1) ----------- (s+3) (s-5) Continuous-time zero/pole/gain model.
propValues2 = [sys2.TimeUnit,sys2.InputUnit]
propValues2 = 1x2 cell
{'minutes'} {'minutes'}
Обратите внимание, что модель с нулевым коэффициентом усиления sys2 имеет те же свойства, что и sys1.
Рассмотрим следующую матрицу статического усиления с двумя входами и двумя выходами m:
Матрица статического усиления MIMO
Задайте матрицу усиления и создайте статическую модель усиления с нулевым полюсом.
m = [2,4;...
3,5];
sys1 = zpk(m)sys1 = From input 1 to output... 1: 2 2: 3 From input 2 to output... 1: 4 2: 5 Static gain.
Можно использовать статическую модель усиления с нулевым полюсом sys1 полученный выше для каскадирования его с другой моделью с нулевым коэффициентом усиления.
sys2 = zpk(0,[-1 7],1)
sys2 =
s
-----------
(s+1) (s-7)
Continuous-time zero/pole/gain model.
sys = series(sys1,sys2)
sys =
From input 1 to output...
2 s
1: -----------
(s+1) (s-7)
3 s
2: -----------
(s+1) (s-7)
From input 2 to output...
4 s
1: -----------
(s+1) (s-7)
5 s
2: -----------
(s+1) (s-7)
Continuous-time zero/pole/gain model.
Для этого примера вычислите модель с нулевым коэффициентом усиления для следующей модели состояния-пространства:
Состояние-пространственные матрицы
Создайте модель state-space с помощью матриц state-space.
A = [-2 -1;1 -2]; B = [1 1;2 -1]; C = [1 0]; D = [0 1]; ltiSys = ss(A,B,C,D);
Преобразование модели «состояние-пространство» ltiSys в модель с нулевым усилением полюсов.
sys = zpk(ltiSys)
sys =
From input 1 to output:
s
--------------
(s^2 + 4s + 5)
From input 2 to output:
(s^2 + 5s + 8)
--------------
(s^2 + 4s + 5)
Continuous-time zero/pole/gain model.
Вы можете использовать for цикл для задания массива моделей с нулевым коэффициентом усиления.
Во-первых, предварительно распределите массив модели с нулевым коэффициентом усиления с нулями.
sys = zpk(zeros(1,1,3));
Первые два индекса представляют количество выходов и входов для моделей, в то время как третий индекс представляет количество моделей в массиве.
Создайте массив модели с нулевым коэффициентом усиления, используя рациональное выражение в for цикл.
s = zpk('s'); for k = 1:3 sys(:,:,k) = k/(s^2+s+k); end sys
sys(:,:,1,1) =
1
-------------
(s^2 + s + 1)
sys(:,:,2,1) =
2
-------------
(s^2 + s + 2)
sys(:,:,3,1) =
3
-------------
(s^2 + s + 3)
3x1 array of continuous-time zero/pole/gain models.
Для этого примера извлеките измеренные и шумовые компоненты идентифицированной полиномиальной модели в две отдельные модели с коэффициентом усиления нулевого полюса.
Загрузить модель полинома Бокса (Box) - Дженкинса (Jenkins) ltiSys в identifiedModel.mat.
load('identifiedModel.mat','ltiSys');
ltiSys - идентифицированная дискретно-временная модель вида: CDe (t), где BF представляет измеренную и CD составляющую шума.
Извлеките измеренные и шумовые компоненты в виде моделей с нулевым усилением полюсов.
sysMeas = zpk(ltiSys,'measured') sysMeas =
From input "u1" to output "y1":
-0.14256 z^-1 (1-1.374z^-1)
z^(-2) * -----------------------------
(1-0.8789z^-1) (1-0.6958z^-1)
Sample time: 0.04 seconds
Discrete-time zero/pole/gain model.
sysNoise = zpk(ltiSys,'noise')sysNoise =
From input "v@y1" to output "y1":
0.045563 (1+0.7245z^-1)
--------------------------------------------
(1-0.9658z^-1) (1 - 0.0602z^-1 + 0.2018z^-2)
Input groups:
Name Channels
Noise 1
Sample time: 0.04 seconds
Discrete-time zero/pole/gain model.
Измеряемый компонент может служить моделью установки, в то время как шумовой компонент может использоваться в качестве модели возмущения для проектирования системы управления.
Для этого примера создайте модель SISO с нулевым коэффициентом усиления с задержкой на входе 0,5 секунды и задержкой на выходе 2,5 секунды.
zeros = 5; poles = [7+1i 7-1i -3]; gains = 1; sys = zpk(zeros,poles,gains,'InputDelay',0.5,'OutputDelay',2.5)
sys =
(s-5)
exp(-3*s) * ----------------------
(s+3) (s^2 - 14s + 50)
Continuous-time zero/pole/gain model.
Вы также можете использовать get для отображения всех свойств объекта MATLAB.
get(sys)
Z: {[5]}
P: {[3x1 double]}
K: 1
DisplayFormat: 'roots'
Variable: 's'
IODelay: 0
InputDelay: 0.5000
OutputDelay: 2.5000
Ts: 0
TimeUnit: 'seconds'
InputName: {''}
InputUnit: {''}
InputGroup: [1x1 struct]
OutputName: {''}
OutputUnit: {''}
OutputGroup: [1x1 struct]
Notes: [0x1 string]
UserData: []
Name: ''
SamplingGrid: [1x1 struct]
Дополнительные сведения об указании временной задержки для модели LTI см. в разделе Указание временных задержек.
Для этого примера проектируйте контроллер PID с 2 финансовыми департаментами с целевой пропускной способностью 0,75 рад/с для системы, представленной следующей моделью нулевой выгоды полюса:
1Модель с усилением от нуля до полюса
Создание объекта модели с нулевым коэффициентом усиления sys с использованием zpk команда.
zeros = []; poles = [-0.25+0.2i;-0.25-0.2i]; gain = 1; sys = zpk(zeros,poles,gain)
sys =
1
---------------------
(s^2 + 0.5s + 0.1025)
Continuous-time zero/pole/gain model.
Используя целевую полосу пропускания, используйте pidtune для создания контроллера 2-DOF.
wc = 0.75;
C2 = pidtune(sys,'PID2',wc)C2 =
1
u = Kp (b*r-y) + Ki --- (r-y) + Kd*s (c*r-y)
s
with Kp = 0.512, Ki = 0.0975, Kd = 0.574, b = 0.38, c = 0
Continuous-time 2-DOF PID controller in parallel form.
Использование типа 'PID2' причины pidtune для создания контроллера 2-DOF, представленного в виде pid2 объект. Этот результат подтверждается на дисплее. На дисплее также показано, что pidtune настраивает все коэффициенты контроллера, включая веса уставок b и c, чтобы сбалансировать производительность и надежность.
Для получения информации о интерактивной настройке PID в интерактивном редакторе см. задачу Настройка контроллера PID в интерактивном редакторе. Эта задача позволяет в интерактивном режиме проектировать контроллер PID и автоматически генерировать код MATLAB для сценария в реальном времени.
Для интерактивной настройки PID в автономном приложении используйте PID-тюнер. Пример разработки контроллера с помощью приложения см. в документе «Проектирование контроллера PID для быстрого отслеживания ссылок».
zpk использует функцию MATLAB roots преобразование функций переноса и функций zero и pole для преобразования моделей пространства состояний.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.