exponenta event banner

ss

Модель пространства состояний

Описание

Использовать ss создание действительных или комплексных моделей пространства состояний или преобразование динамических системных моделей в форму модели пространства состояний. Также можно использовать ss для создания обобщенного состояния-пространства (genss) модели или неопределенное состояние-пространство (uss (Надёжная панель инструментов управления)) модели.

Модель «состояние-пространство» - это математическое представление физической системы как набора входных, выходных и переменных состояния, связанных дифференциальными уравнениями первого порядка. Переменные состояния определяют значения выходных переменных. ss объект модели может представлять модели состояния-пространства SISO или MIMO за непрерывное или дискретное время.

В непрерывном времени модель state-space имеет следующий вид:

x˙=Ax+Buy=Cx+Du

Здесь, x, u и y представляют состояния, входы и выходы соответственно, в то время как A, B, C и D - матрицы состояния-пространства. ss объект представляет модель состояния-пространства при хранении MATLAB ®A, B, C и D наряду с другой информацией, такой как время выборки, имена и задержки, относящиеся к входам и выходам.

Объект модели state-space можно создать либо путем непосредственного указания состояния, входной и выходной матриц, либо путем преобразования модели другого типа (например, модели передаточной функции). tf) в форму state-space. Дополнительные сведения см. в разделе Модели пространства состояний. Вы можете использовать ss объект модели для:

  • Выполнение линейного анализа

  • Представление линейной инвариантной по времени (LTI) модели для выполнения проектирования управления

  • Объединение с другими моделями LTI для представления более сложной системы

Создание

Описание

пример

sys = ss(A,B,C,D) создает объект модели состояния-пространства непрерывного времени следующего вида:

x˙=Ax+Buy=Cx+Du

Например, рассмотрим растение с Nx состояния, Ny выходы, и Nu входные данные. Матрицами состояния-пространства являются:

  • A является Nxоколо-Nx real- или комплекснозначная матрица.

  • B является Nxоколо-Nu real- или комплекснозначная матрица.

  • C является Nyоколо-Nx real- или комплекснозначная матрица.

  • D является Nyоколо-Nu real- или комплекснозначная матрица.

пример

sys = ss(A,B,C,D,ts) создает объект дискретно-временной модели состояния-пространства следующей формы с временем образца ts (в секундах):

x [n + 1] = Ax [n] + Bu [n] y [n] = Cx [n] + Du [n]

Чтобы оставить время выборки неопределенным, установите ts кому -1.

пример

sys = ss(A,B,C,D,ltiSys) создает модель пространства состояний со свойствами, такими как входные и выходные имена, внутренние задержки и значения времени выборки, унаследованные от модели ltisys.

пример

sys = ss(D) создает модель состояния-пространства, представляющую статическое усиление, D. Модель выходного состояния-пространства эквивалентна ss([],[],[],D).

пример

sys = ss(___,Name,Value) задает свойства модели state-space с использованием одного или нескольких Name,Value пара аргументов для любой из предыдущих комбинаций входных аргументов.

пример

sys = ss(ltiSys) преобразует динамическую модель системы ltiSys в модель пространства состояний. Если ltiSys содержит перестраиваемые или неопределенные элементы, ss использует текущие или номинальные значения для этих элементов соответственно.

пример

sys = ss(ltiSys,component) преобразует в ss объект образует измеренный компонент, компонент шума или оба указанных component идентифицированной линейной инвариантной по времени (LTI) модели ltiSys. Использовать этот синтаксис только тогда, когда ltiSys является идентифицированной (LTI) моделью, такой как idtf(Панель инструментов идентификации системы), idss(Панель инструментов идентификации системы), idproc(Панель инструментов идентификации системы), idpoly(Панель инструментов идентификации системы) или idgrey(Панель инструментов идентификации системы).

sys = ss(ssSys,'minimal') возвращает минимальную реализацию состояния-пространства без неконтролируемых или ненаблюдаемых состояний. Эта реализация эквивалентна minreal(ss(sys)) где матрица A имеет наименьшее возможное измерение.

Преобразование в форму state-space не определено однозначно в случае SISO. Это также не гарантированно обеспечивает минимальную реализацию в случае MIMO. Дополнительные сведения см. в разделе Рекомендуемое рабочее представление.

пример

sys = ss(ssSys,'explicit') возвращает явную реализацию состояния-пространства (E = I) динамической модели состояния-пространства системы ssSys. ss возвращает ошибку, если ssSys является неправильным. Дополнительные сведения о явной реализации пространства состояний см. в разделе Модели пространства состояний.

Входные аргументы

развернуть все

Матрица состояний, указанная как Nxоколо-Nx матрица где, Nx - количество состояний. Этот ввод задает значение свойства A.

Матрица «вход в состояние», заданная как Nxоколо-Nu матрица где, Nx - количество состояний и Nu - количество входов. Этот ввод задает значение свойства B.

Матрица «состояние-выход», заданная как Nyоколо-Nx матрица где, Nx - количество состояний и Ny - количество выходов. Этот ввод задает значение свойства C.

Матрица прохождения, заданная как Nyоколо-Nu матрица где, Ny - количество выходов и Nu - количество входов. Этот ввод задает значение свойства D.

Время выборки, указанное как скаляр. Дополнительные сведения см. в разделе Свойство Ts.

Динамическая система для преобразования в форму state-space, заданную как динамическая системная модель SISO или MIMO или массив динамических системных моделей. Динамические системы, которые можно преобразовать, включают в себя:

  • Непрерывные или дискретные числовые модели LTI, такие как tf, zpk, ss, или pid модели.

  • Обобщенные или неопределенные модели LTI, такие как genss или uss (Надежная панель инструментов управления). (Для использования неопределенных моделей требуется программное обеспечение Toolbox™ надежного управления.)

    Полученная модель состояния-пространства предполагает

    • текущие значения перестраиваемых компонентов для перестраиваемых проектных блоков управления.

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

  • Идентифицированные модели LTI, такие как idtf(Панель инструментов идентификации системы), idss(Панель инструментов идентификации системы), idproc(Панель инструментов идентификации системы), idpoly(панель инструментов идентификации системы), и idgrey(Панель инструментов идентификации системы). Чтобы выбрать компонент определенной модели для преобразования, укажите component. Если не указать component, ss преобразует измеренный компонент идентифицированной модели по умолчанию. (Для использования идентифицированных моделей требуется программное обеспечение System Identification Toolbox™.)

Компонент идентифицированной модели для преобразования, указанный как один из следующих:

  • 'measured' - Преобразовать измеренный компонент sys.

  • 'noise' - Преобразование шумовой составляющей sys

  • 'augmented' - Преобразовать как измеренные, так и шумовые компоненты sys.

component применяется только тогда, когда sys является идентифицированной моделью LTI.

Дополнительные сведения об идентифицированных моделях LTI и их измеренных и шумовых компонентах см. в разделе Идентифицированные модели LTI.

Динамическая модель системы для преобразования в минимальную реализацию или явную форму, заданную как ss объект модели.

Выходные аргументы

развернуть все

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

  • Область состояния (ss) объект модели, когда входные данные A, B, C и D числовые матрицы или при преобразовании из другого типа объекта модели.

  • Обобщённая модель состояния-пространства (genss) объект, когда одна или несколько матриц A, B, C и D включает настраиваемые параметры, такие как realp параметры или обобщенные матрицы (genmat). Пример см. в разделе Создание модели пространства состояния с фиксированными и настраиваемыми параметрами.

  • Неопределенная модель состояния-пространства (uss) объект, когда один или несколько входов A, B, C и D включает в себя неопределенные матрицы. Для использования неопределенных моделей требуется программное обеспечение Rustible Control Toolbox.

Свойства

развернуть все

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

  • Каноническая форма модели

  • Компаньонная каноническая форма

  • Наблюдаемая каноническая форма

  • Управляемая каноническая форма

Дополнительные сведения см. в разделе Канонические реализации состояния и пространства.

Матрица «вход в состояние», заданная как Nxоколо-Nu матрица, где Nx - количество состояний и Nu - количество входов.

Матрица «состояние-выход», заданная как Nyоколо-Nx матрица, где Nx - количество состояний и Ny - количество выходов.

Матрица прохождения, заданная как Nyоколо-Nu матрица, где Ny - количество выходов и Nu - количество входов. D также называется матрицей статического усиления, которая представляет отношение выходного сигнала к входному в установившемся состоянии.

Матрица для неявных или дескрипторных моделей состояния-пространства, указанных как Nxоколо-Nx матрица. E пусто по умолчанию, что означает явное выражение состояния. Чтобы задать неявное уравнение состояния E dx/dt = Ax + Bu, задайте для этого свойства квадратную матрицу того же размера, что и A. Посмотрите dss для получения дополнительной информации о создании моделей состояния дескриптора и пространства.

Логическое значение, указывающее, включено или отключено масштабирование, указанное как 0 или 1.

Когда Scaled имеет значение 0 (отключено), то большинство числовых алгоритмов, действующих на модель состояния-пространства sys автоматически масштабировать вектор состояния для повышения числовой точности. Вы можете предотвратить такое автоматическое масштабирование, установив Scaled кому 1 (включено).

Дополнительные сведения о масштабировании см. в разделе prescale.

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

  • Символьный вектор - для моделей первого порядка, например, 'velocity'.

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

StateName пуст ' ' для всех состояний по умолчанию.

Путь состояния для облегчения управления путем блока состояния в линеаризации, указанный как одно из следующих:

  • Символьный вектор - для моделей первого порядка

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

StatePath пуст ' ' для всех состояний по умолчанию.

Государственные единицы, указанные как одно из следующих:

  • Символьный вектор - для моделей первого порядка, например, 'm/s'

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

Использовать StateUnit для отслеживания единиц каждого состояния. StateUnit не влияет на поведение системы. StateUnit пуст ' ' для всех состояний по умолчанию.

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

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

Можно изменить значения внутренних задержек с помощью свойства InternalDelay. Однако количество записей в sys.InternalDelay не может изменяться, поскольку является структурным свойством модели.

Задержка на входе для каждого входного канала, определяемая как одно из следующих значений:

  • Скаляр (Scalar) - задает задержку ввода для системы SISO или такую же задержку для всех входов системы с несколькими входами.

  • Nu-by-1 vector - Определение отдельных входных задержек для ввода системы с несколькими входами, где Nu - количество входов.

Для систем непрерывного времени укажите задержки на входе в единицу времени, указанную TimeUnit собственность. Для дискретно-временных систем укажите входные задержки в целых кратных времени выборки, Ts.

Дополнительные сведения см. в разделе Временные задержки в линейных системах.

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

  • Скаляр (Scalar) - указывает задержку вывода для системы SISO или такую же задержку для всех выходов системы с несколькими выходами.

  • Ny-by-1 vector - Определение отдельных выходных задержек для вывода системы с несколькими выходами, где Ny - количество выходов.

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

Дополнительные сведения см. в разделе Временные задержки в линейных системах.

Время выборки, указанное как:

  • 0 для систем непрерывного времени.

  • Положительный скаляр, представляющий период выборки дискретно-временной системы. Определить Ts в единице времени, указанной TimeUnit собственность.

  • -1 для дискретно-временной системы с неопределенным временем выборки.

Примечание

Изменение Ts не дискретизирует и не выполняет повторную выборку модели. Для преобразования между представлениями непрерывного и дискретного времени используйте c2d и d2c. Для изменения времени выборки системы дискретного времени используйте d2d.

Единицы переменной времени, указанные как одно из следующих значений:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

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

  • Символьный вектор для моделей с одним входом.

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

  • '', не указаны имена для каких-либо входных каналов.

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

sys.InputName = 'controls';

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

Можно использовать сокращенную нотацию u см. InputName собственность. Например, sys.u эквивалентно sys.InputName.

Использовать InputName кому:

  • Определение каналов на дисплее модели и графиках.

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

  • Укажите точки соединения при соединении моделей.

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

  • Символьный вектор для моделей с одним входом.

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

  • '', не указаны единицы измерения для каких-либо входных каналов.

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

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

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

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

sys(:,'controls')

По умолчанию InputGroup - структура без полей.

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

  • Символьный вектор для моделей с одним выходом.

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

  • '', не указаны имена для каких-либо выходных каналов.

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

sys.OutputName = 'measurements';

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

Можно также использовать сокращенную нотацию y см. OutputName собственность. Например, sys.y эквивалентно sys.OutputName.

Использовать OutputName кому:

  • Определение каналов на дисплее модели и графиках.

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

  • Укажите точки соединения при соединении моделей.

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

  • Символьный вектор для моделей с одним выходом.

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

  • '', не указаны единицы измерения для каких-либо выходных каналов.

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

Группы выходных каналов, заданные как структура. Использовать OutputGroupназначение выходных каналов систем MIMO группам и ссылка на каждую группу по имени. Имена полей OutputGroup - имена групп, а значения полей - выходные каналы каждой группы. Например:

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

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

sys('measurement',:)

По умолчанию OutputGroup - структура без полей.

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

Пользовательский текст, который требуется связать с системой, указанный как символьный вектор или массив ячеек символьных векторов. Например, 'System is MIMO'.

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

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

Использовать 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 - структура без полей.

Функции объекта

Следующие списки содержат репрезентативное подмножество функций, которые можно использовать с ss объекты модели. Как правило, любая функция, применимая к динамическим моделям систем, применима к ss объект.

развернуть все

stepГрафик ступенчатой реакции динамической системы; данные ответа на шаг
impulseграфик импульсной характеристики динамической системы; данные импульсной характеристики
lsimПостройте график моделируемой временной реакции динамической системы на произвольные входы; смоделированные данные ответа
bodeГрафик Моде частотной характеристики, или данные о величине и фазе
nyquistНайквистский график частотной характеристики
nicholsДиаграмма частотной характеристики Николса
bandwidthПолоса пропускания частотного отклика
poleПолюса динамической системы
zeroНули и усиление динамической системы SISO
pzplotНулевой график динамической модели системы с опциями настройки графика
marginЗапас усиления, запас фазы и переходные частоты
zpkМодель с нулевым коэффициентом усиления
tfМодель передаточной функции
c2dПреобразование модели из непрерывного в дискретное время
d2cПреобразование модели из дискретного в непрерывное время
d2dПовторная выборка дискретно-временной модели
feedbackОбратная связь нескольких моделей
connectБлок-схема взаимосвязей динамических систем
seriesПоследовательное соединение двух моделей
parallelПараллельное соединение двух моделей
pidtuneАлгоритм настройки PID для линейной модели установки
rlocusГрафик корневого локуса динамической системы
lqrКонструкция линейного квадратичного регулятора (LQR)
lqgЛинейно-квадратично-гауссова (LQG) конструкция
lqiЛинейно-квадратично-интегральное управление
kalmanПроектирование фильтра Калмана для оценки состояния

Примеры

свернуть все

Создайте модель пространства состояний SISO, определяемую следующими матрицами пространства состояний:

A = [-1,5-210] B = [0,50] C = [01] D = 0

Задайте матрицы A, B, C и D и создайте модель пространства состояний.

A = [-1.5,-2;1,0];
B = [0.5;0];
C = [0,1];
D = 0;
sys = ss(A,B,C,D)
sys =
 
  A = 
         x1    x2
   x1  -1.5    -2
   x2     1     0
 
  B = 
        u1
   x1  0.5
   x2    0
 
  C = 
       x1  x2
   y1   0   1
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.

Создайте модель state-space со временем выборки 0,25 секунды и следующими матрицами state-space:

A = [01-5-2] B = [03] C = [01] D = [0]

Укажите матрицы state-space.

A = [0 1;-5 -2];
B = [0;3];
C = [0 1];
D = 0;

Укажите время выборки.

Ts = 0.25;

Создайте модель «состояние-пространство».

sys = ss(A,B,C,D,Ts);

Для этого примера рассмотрим куб, вращающийся вокруг своего угла с тензором инерции J и демпфирующее усилие F 0,2 величины. Входным сигналом в систему является крутящий момент, в то время как угловые скорости являются выходными сигналами. Матрицы state-space для куба:

A =-J-1F, B=J-1, C=I, D=0, где, J = [8-3-3-38-3-3-38]andF = [0.20000.20000.2]

Укажите A, B, C и D и создайте непрерывную модель состояния-пространства.

J = [8 -3 -3; -3 8 -3; -3 -3 8];
F = 0.2*eye(3);
A = -J\F;
B = inv(J);
C = eye(3);
D = 0;
sys = ss(A,B,C,D)
sys =
 
  A = 
             x1        x2        x3
   x1  -0.04545  -0.02727  -0.02727
   x2  -0.02727  -0.04545  -0.02727
   x3  -0.02727  -0.02727  -0.04545
 
  B = 
           u1      u2      u3
   x1  0.2273  0.1364  0.1364
   x2  0.1364  0.2273  0.1364
   x3  0.1364  0.1364  0.2273
 
  C = 
       x1  x2  x3
   y1   1   0   0
   y2   0   1   0
   y3   0   0   1
 
  D = 
       u1  u2  u3
   y1   0   0   0
   y2   0   0   0
   y3   0   0   0
 
Continuous-time state-space model.

sys MIMO, поскольку система содержит 3 входа и 3 выхода, наблюдаемых из матриц C и D. Дополнительные сведения о моделях пространства состояний MIMO см. в разделе Модели пространства состояний MIMO.

Создание модели пространства состояний с использованием следующих матриц состояний с дискретным временем, множеством входов и множеством выходов с временем выборки ts = 0.2 секунды:

A = [-700-10] B = [5002] C = [1-4-40,5] D = [0-220]

Укажите матрицы состояния-пространства и создайте модель состояния-пространства MIMO с дискретным временем.

A = [-7,0;0,-10];
B = [5,0;0,2];
C = [1,-4;-4,0.5];
D = [0,-2;2,0];
ts = 0.2;
sys = ss(A,B,C,D,ts)
sys =
 
  A = 
        x1   x2
   x1   -7    0
   x2    0  -10
 
  B = 
       u1  u2
   x1   5   0
   x2   0   2
 
  C = 
        x1   x2
   y1    1   -4
   y2   -4  0.5
 
  D = 
       u1  u2
   y1   0  -2
   y2   2   0
 
Sample time: 0.2 seconds
Discrete-time state-space model.

Создайте матрицы state-space и укажите время выборки.

A = [0 1;-5 -2];
B = [0;3];
C = [0 1];
D = 0;
Ts = 0.05;

Создайте модель state-space, указав имена состояний и входных данных с помощью пар name-value.

sys = ss(A,B,C,D,Ts,'StateName',{'Position' 'Velocity'},...
    'InputName','Force');

Количество имен состояний и входных данных должно соответствовать измерениям A, B, C, и D.

Именование входов и выходов может быть полезным при работе с графиками ответов для систем MIMO.

step(sys)

Figure contains an axes. The axes with title From: Force To: Out(1) contains an object of type line. This object represents sys.

Обратите внимание на имя ввода Force в заголовке графика ответа на шаг.

В этом примере создайте модель пространства состояния со свойствами времени и единицы ввода, унаследованными от другой модели пространства состояния. Рассмотрим следующие модели пространства состояний:

A1 = [-1,5-210] B1 = [0,50] C1 = [01] D1 = 5A2 = [7-102] B2 = [0,852] C2 = [1014] D2 = 2

Сначала создайте модель пространства состояний sys1 с TimeUnit и InputUnit свойство имеет значение «»minutes'.

A1 = [-1.5,-2;1,0];
B1 = [0.5;0];
C1 = [0,1];
D1 = 5;
sys1 = ss(A1,B1,C1,D1,'TimeUnit','minutes','InputUnit','minutes');

Убедитесь, что время и входные единицы свойства sys1 имеют значение 'minutes'.

propValues1 = [sys1.TimeUnit,sys1.InputUnit]
propValues1 = 1x2 cell
    {'minutes'}    {'minutes'}

Создание второй модели пространства состояния со свойствами, унаследованными от sys1.

A2 = [7,-1;0,2];
B2 = [0.85;2];
C2 = [10,14];
D2 = 2;
sys2 = ss(A2,B2,C2,D2,sys1);

Убедитесь, что единицы времени и ввода sys2 были унаследованы от sys1.

propValues2 = [sys2.TimeUnit,sys2.InputUnit]
propValues2 = 1x2 cell
    {'minutes'}    {'minutes'}

В этом примере создается статическая модель состояния-пространства MIMO с усилением.

Рассмотрим следующую матрицу статического усиления с двумя входами и двумя выходами:

D = [2435]

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

D = [2,4;3,5];
sys1 = ss(D)
sys1 =
 
  D = 
       u1  u2
   y1   2   4
   y2   3   5
 
Static gain.

Вычислите модель состояния-пространства следующей передаточной функции:

H (s) = [s + 1s3 + 3s2 + 3s + 2s2 + 3s2 + s + 1]

Создайте модель передаточной функции.

H = [tf([1 1],[1 3 3 2]) ; tf([1 0 3],[1 1 1])];

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

sys = ss(H);

Проверьте размер модели state-space.

size(sys)
State-space model with 2 outputs, 1 inputs, and 5 states.

Количество состояний равно совокупному порядку записей SISO в H (s).

Для получения минимальной реализации H (s) введите

sys = ss(H,'minimal');
size(sys)
State-space model with 2 outputs, 1 inputs, and 3 states.

Полученная модель имеет порядок три, который является минимальным количеством состояний, необходимых для представления H (s). Чтобы увидеть это количество состояний, выполните рефакторинг H (s) как произведение системы первого порядка и системы второго порядка.

H (s) = [1s + 2001] [s + 1s2 + s + 1s2 + 3s2 + s + 1]

Для этого примера извлеките измеренные и шумовые компоненты идентифицированной модели полинома в две отдельные модели состояния-пространства.

Загрузить модель полинома Бокса (Box) - Дженкинса (Jenkins) ltiSys в identifiedModel.mat.

load('identifiedModel.mat','ltiSys');

ltiSys - идентифицированная дискретно-временная модель вида: y (t) = BFu (t) + CDe (t), где BF представляет измеренную составляющую и CD составляющую шума.

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

sysMeas = ss(ltiSys,'measured') 
sysMeas =
 
  A = 
            x1       x2
   x1    1.575  -0.6115
   x2        1        0
 
  B = 
        u1
   x1  0.5
   x2    0
 
  C = 
            x1       x2
   y1  -0.2851   0.3916
 
  D = 
       u1
   y1   0
 
  Input delays (sampling periods): 2 
 
Sample time: 0.04 seconds
Discrete-time state-space model.
sysNoise = ss(ltiSys,'noise')
sysNoise =
 
  A = 
           x1      x2      x3
   x1   1.026   -0.26  0.3899
   x2       1       0       0
   x3       0     0.5       0
 
  B = 
       v@y1
   x1  0.25
   x2     0
   x3     0
 
  C = 
             x1        x2        x3
   y1     0.319  -0.04738   0.07106
 
  D = 
          v@y1
   y1  0.04556
 
Input groups:        
    Name     Channels
    Noise       1    
                     
Sample time: 0.04 seconds
Discrete-time state-space model.

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

Создайте модель состояния-пространства дескриптора (EI).

a = [2 -4; 4 2];
b = [-1; 0.5];
c = [-0.5, -2];
d = [-1];
e = [1 0; -3 0.5];
sysd = dss(a,b,c,d,e);

Вычислите явную реализацию системы (E = I).

syse = ss(sysd,'explicit')
syse =
 
  A = 
        x1   x2
   x1    2   -4
   x2   20  -20
 
  B = 
       u1
   x1  -1
   x2  -5
 
  C = 
         x1    x2
   y1  -0.5    -2
 
  D = 
       u1
   y1  -1
 
Continuous-time state-space model.

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

bodeplot(sysd,syse,'g--')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent sysd, syse. Axes 2 contains 2 objects of type line. These objects represent sysd, syse.

В этом примере показано, как создать область состояния genss модель, имеющая как фиксированные, так и настраиваемые параметры.

A = [1a + b0ab], B = [-3.01.5], C = [0,30], D = 0,

где a и b - перестраиваемые параметры, начальными значениями которых являются -1 и 3соответственно.

Создание настраиваемых параметров с помощью realp.

a = realp('a',-1);
b = realp('b',3);

Определение обобщенной матрицы с помощью алгебраических выражений a и b.

A = [1 a+b;0 a*b];

A является обобщенной матрицей, Blocks свойство содержит a и b. Начальное значение A является [1 2;0 -3], от начальных значений a и b.

Создайте матрицы состояния-пространства с фиксированным значением.

B = [-3.0;1.5];
C = [0.3 0];
D = 0;

Использовать ss для создания модели состояния-пространства.

sys = ss(A,B,C,D)
sys =

  Generalized continuous-time state-space model with 1 outputs, 1 inputs, 2 states, and the following blocks:
    a: Scalar parameter, 2 occurrences.
    b: Scalar parameter, 2 occurrences.

Type "ss(sys)" to see the current value, "get(sys)" to see all properties, and "sys.Blocks" to interact with the blocks.

sys является обобщенной моделью LTI (genss) с настраиваемыми параметрами a и b.

В этом примере рассмотрим модель SISO state-space, определяемую следующими матрицами state-space:

A = [-1,5-210] B = [0,50] C = [01] D = 0

Учитывая задержку на входе 0,5 секунды и задержку на выходе 2,5 секунды, создайте объект модели состояния-пространства для представления матриц A, B, C и D.

A = [-1.5,-2;1,0];
B = [0.5;0];
C = [0,1];
D = 0;
sys = ss(A,B,C,D,'InputDelay',0.5,'OutputDelay',2.5)
sys =
 
  A = 
         x1    x2
   x1  -1.5    -2
   x2     1     0
 
  B = 
        u1
   x1  0.5
   x2    0
 
  C = 
       x1  x2
   y1   0   1
 
  D = 
       u1
   y1   0
 
  Input delays (seconds): 0.5 
  Output delays (seconds): 2.5 
 
Continuous-time state-space model.

Вы также можете использовать get для отображения всех свойств объекта MATLAB.

get(sys)
                A: [2x2 double]
                B: [2x1 double]
                C: [0 1]
                D: 0
                E: []
           Scaled: 0
        StateName: {2x1 cell}
        StatePath: {2x1 cell}
        StateUnit: {2x1 cell}
    InternalDelay: [0x1 double]
       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 см. в разделе Указание временных задержек.

В этом примере рассмотрим объект state-space system, который представляет следующие матрицы состояний:

A = [-1.2-1.60100010], B = [100], C = [00,51,3], D = 0, матрицы State-space

Создание объекта state-space sys с использованием ss команда.

A = [-1.2,-1.6,0;1,0,0;0,1,0];
B = [1;0;0];
C = [0,0.5,1.3];
D = 0;
sys = ss(A,B,C,D);

Затем вычислите модель «состояние-пространство» с замкнутым контуром для единичного отрицательного усиления и найдите полюса объекта системы «состояние-пространство» с замкнутым контуром. sysFeedback.

sysFeedback = feedback(sys,1);
P = pole(sysFeedback)
P = 3×1 complex

  -0.2305 + 1.3062i
  -0.2305 - 1.3062i
  -0.7389 + 0.0000i

Цикл обратной связи для единичного усиления стабилен, так как все полюса имеют отрицательные вещественные части. Проверка полюсов замкнутого контура обеспечивает бинарную оценку стабильности. На практике более полезно знать, насколько надежна (или хрупка) стабильность. Одним из признаков надежности является то, насколько усиление петли может измениться до потери стабильности. График корневого локуса можно использовать для оценки диапазона k значения, для которых цикл стабилен.

rlocus(sys)

Figure contains an axes. The axes contains 5 objects of type line. This object represents sys.

Изменения коэффициента усиления контура являются лишь одним из аспектов надежной стабильности. В общем, несовершенное моделирование растений означает, что и усиление, и фаза точно не известны. Поскольку ошибки моделирования оказывают наиболее вредное влияние вблизи частоты пересечения усиления (частота, где коэффициент усиления с разомкнутым контуром составляет 0 дБ), также важно, насколько изменение фазы может быть допустимо на этой частоте.

Поля усиления и фазы можно отобразить на графике Бода следующим образом.

bode(sys)
grid

Figure contains 2 axes. Axes 1 contains an object of type line. This object represents sys. Axes 2 contains an object of type line. This object represents sys.

Более подробный пример см. в разделе Оценка выигрыша и полей фазы.

Для этого примера проектируйте контроллер PID с 2 финансовыми департаментами с целевой пропускной способностью 0,75 рад/с для системы, представленной следующими матрицами:

A = [-0,5-0,110], B = [10], C = [01], D = 0.

Создание объекта state-space sys с использованием ss команда.

A = [-0.5,-0.1;1,0];
B = [1;0];
C = [0,1];
D = 0;
sys = ss(A,B,C,D)
sys =
 
  A = 
         x1    x2
   x1  -0.5  -0.1
   x2     1     0
 
  B = 
       u1
   x1   1
   x2   0
 
  C = 
       x1  x2
   y1   0   1
 
  D = 
       u1
   y1   0
 
Continuous-time state-space 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.513, Ki = 0.0975, Kd = 0.577, b = 0.344, 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 для быстрого отслеживания ссылок».

Рассмотрим государственный космический завод G с пятью входами и четырьмя выходами и контроллером обратной связи в пространстве состояний K с тремя входами и двумя выходами. Выходы 1, 3 и 4 установки G должен быть подключен контроллер K входы и выходы контроллера на входы 4 и 2 установки.

В этом примере рассмотрим две модели состояния-пространства непрерывного времени для обеих G и K представлены следующим набором матриц:

AG = [-30.40.3-0.5-2.8-0.80.20.8-3], BG = [0.400.30.20-0.2-10.1-0.9-0.50.60.90.50.20], CG = [0-0.1-10-0.21.6-0.71.51.2-1.4-0.20], DG = [0000-100.4-0.700.900.30000.20000]

AK = [-0.22.10.7-2.2-0.1-2.2-0.42.3-0.2], BK = [-0.1-2.1-0.3-0.100.6100.8], CK = [-100-0.4-0.20.3], DK = [00000-1.2]

AG = [-3,0.4,0.3;-0.5,-2.8,-0.8;0.2,0.8,-3];
BG = [0.4,0,0.3,0.2,0;-0.2,-1,0.1,-0.9,-0.5;0.6,0.9,0.5,0.2,0];
CG = [0,-0.1,-1;0,-0.2,1.6;-0.7,1.5,1.2;-1.4,-0.2,0];
DG = [0,0,0,0,-1;0,0.4,-0.7,0,0.9;0,0.3,0,0,0;0.2,0,0,0,0];
sysG = ss(AG,BG,CG,DG)
sysG =
 
  A = 
         x1    x2    x3
   x1    -3   0.4   0.3
   x2  -0.5  -2.8  -0.8
   x3   0.2   0.8    -3
 
  B = 
         u1    u2    u3    u4    u5
   x1   0.4     0   0.3   0.2     0
   x2  -0.2    -1   0.1  -0.9  -0.5
   x3   0.6   0.9   0.5   0.2     0
 
  C = 
         x1    x2    x3
   y1     0  -0.1    -1
   y2     0  -0.2   1.6
   y3  -0.7   1.5   1.2
   y4  -1.4  -0.2     0
 
  D = 
         u1    u2    u3    u4    u5
   y1     0     0     0     0    -1
   y2     0   0.4  -0.7     0   0.9
   y3     0   0.3     0     0     0
   y4   0.2     0     0     0     0
 
Continuous-time state-space model.
AK = [-0.2,2.1,0.7;-2.2,-0.1,-2.2;-0.4,2.3,-0.2];
BK = [-0.1,-2.1,-0.3;-0.1,0,0.6;1,0,0.8];
CK = [-1,0,0;-0.4,-0.2,0.3];
DK = [0,0,0;0,0,-1.2];
sysK = ss(AK,BK,CK,DK)
sysK =
 
  A = 
         x1    x2    x3
   x1  -0.2   2.1   0.7
   x2  -2.2  -0.1  -2.2
   x3  -0.4   2.3  -0.2
 
  B = 
         u1    u2    u3
   x1  -0.1  -2.1  -0.3
   x2  -0.1     0   0.6
   x3     1     0   0.8
 
  C = 
         x1    x2    x3
   y1    -1     0     0
   y2  -0.4  -0.2   0.3
 
  D = 
         u1    u2    u3
   y1     0     0     0
   y2     0     0  -1.2
 
Continuous-time state-space model.

Определите feedout и feedin векторы, основанные на входах и выходах, которые должны быть подключены в контуре обратной связи.

feedin = [4 2];
feedout = [1 3 4];
sys = feedback(sysG,sysK,feedin,feedout,-1)
sys =
 
  A = 
           x1      x2      x3      x4      x5      x6
   x1      -3     0.4     0.3     0.2       0       0
   x2    1.18   -2.56    -0.8    -1.3    -0.2     0.3
   x3  -1.312   0.584      -3    0.56    0.18   -0.27
   x4   2.948  -2.929   -2.42  -0.452   1.974   0.889
   x5   -0.84   -0.11     0.1    -2.2    -0.1    -2.2
   x6   -1.12   -0.26      -1    -0.4     2.3    -0.2
 
  B = 
            u1       u2       u3       u4       u5
   x1      0.4        0      0.3      0.2        0
   x2    -0.44       -1      0.1     -0.9     -0.5
   x3    0.816      0.9      0.5      0.2        0
   x4  -0.2112    -0.63        0        0      0.1
   x5     0.12        0        0        0      0.1
   x6     0.16        0        0        0       -1
 
  C = 
           x1      x2      x3      x4      x5      x6
   y1       0    -0.1      -1       0       0       0
   y2  -0.672  -0.296     1.6    0.16    0.08   -0.12
   y3  -1.204   1.428     1.2    0.12    0.06   -0.09
   y4    -1.4    -0.2       0       0       0       0
 
  D = 
          u1     u2     u3     u4     u5
   y1      0      0      0      0     -1
   y2  0.096    0.4   -0.7      0    0.9
   y3  0.072    0.3      0      0      0
   y4    0.2      0      0      0      0
 
Continuous-time state-space model.
size(sys)
State-space model with 4 outputs, 5 inputs, and 6 states.

sys - результирующая модель состояния-пространства замкнутого контура, полученная путем соединения указанных входов и выходов G и K.

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