ss

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

Описание

Используйте ss создать модели в пространстве состояний с комплексным знаком или с действительным знаком или преобразовать модели динамической системы в форму модели в пространстве состояний. Можно также использовать ss создать обобщенное пространство состояний (genss) модели или неопределенное пространство состояний (uss (Robust Control Toolbox)) модели.

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

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

x˙=Ax+Buy=Cx+Du

Здесь, xU и y представляйте состояния, вводы и выводы соответственно, в то время как ABC и D матрицы пространства состояний. ss объект представляет модель в пространстве состояний в MATLAB®, хранящем ABC и D наряду с другой информацией, такой как шаг расчета, имена и задерживается характерный для вводов и выводов.

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

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

  • Представляйте модель линейного независимого от времени (LTI), чтобы выполнить систему управления

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

Создание

Описание

пример

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

x˙=Ax+Buy=Cx+Du

Например, рассмотрите объект с Nx состояния, Ny выходные параметры и Nu входные параметры. Матрицы пространства состояний:

  • A Nx- Nx действительный - или матрица с комплексным знаком.

  • B Nx- Nu действительный - или матрица с комплексным знаком.

  • C Ny- Nx действительный - или матрица с комплексным знаком.

  • D Ny- Nu действительный - или матрица с комплексным знаком.

пример

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) свойства наборов модели в пространстве состояний с помощью одного или нескольких Name,Value парные аргументы для любой из предыдущих комбинаций входных аргументов.

пример

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

пример

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

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

Преобразование в форму пространства состояний исключительно не задано в случае 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.

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

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

  • Обобщенные или неопределенные модели LTI такой как genss или uss Модели (Robust Control Toolbox). (Используя неопределенные модели требует программного обеспечения Robust Control Toolbox™.)

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

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

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

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

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

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

  • 'noise' — Преобразуйте шумовой компонент sys

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

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

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

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

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

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

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

  • Пространство состояний (ss) объект модели, когда входные параметры ABC и D числовые матрицы или при преобразовании от другого типа объекта модели.

  • Обобщенная модель в пространстве состояний (genss) объект, когда один или несколько матриц ABC и D включает настраиваемые параметры, такой как realp параметры или обобщенные матрицы (genmat). Для примера смотрите, Создают Модель в пространстве состояний и с Фиксированным и с Настраиваемые параметры.

  • Неопределенная модель в пространстве состояний (uss) объект, когда один или несколько входных параметров ABC и D включает неопределенные матрицы. Используя неопределенные модели требует программного обеспечения Robust 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'.

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

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

Модули состояния в виде одного из следующего:

  • Вектор символов — Для моделей первого порядка, например, 'm/s'

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

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

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

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

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

Введите задержку каждого входного канала в виде одного из следующего:

  • Скаляр — Задает входную задержку системы SISO или ту же задержку всех входных параметров мультивходной системы.

  • Nu- 1 вектор — Задают отдельные входные задержки входа мультивходной системы, где Nu количество входных параметров.

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

Для получения дополнительной информации смотрите Задержки Линейных систем.

Выведите задержку каждого выходного канала в виде одного из следующего:

  • Скаляр — Задает выходную задержку системы SISO или ту же задержку всех выходных параметров мультивыходной системы.

  • Ny- 1 вектор — Задают отдельные выходные задержки выхода мультивыходной системы, где Ny количество выходных параметров.

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

Для получения дополнительной информации смотрите Задержки Линейных систем.

Шаг расчета в виде:

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

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

  • -1 для системы дискретного времени с незаданным шагом расчета.

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

Модули переменной Time в виде одного из следующего:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

Введите названия канала в виде одного из следующего:

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

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

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

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

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 2D выходная модель, введите:

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Передискретизируйте модель дискретного времени
feedbackCоединение обратной связи многих моделей
connectСоединения блок-схемы динамических систем
seriesПоследовательная связь двух моделей
parallelПараллельная связь двух моделей
pidtuneАлгоритм настройки ПИДа для линейной модели объекта управления
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.

Создайте модель в пространстве состояний с шагом расчета 0,25 секунд и следующих матриц пространства состояний:

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

Задайте матрицы пространства состояний.

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 величин. Вход к системе является ведущим крутящим моментом, в то время как скоростями вращения являются выходные параметры. Матрицы пространства состояний для куба:

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

Задайте ABC и 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.

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

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

Создайте модель в пространстве состояний, задав состояние и введите имена с помощью пар "имя-значение".

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

Количество состояния и входных имен должно быть сопоставимо с размерностями ABC, и D.

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

step(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.

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

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);

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

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]

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

Загрузите модель ltiSys полинома Поля-Jenkins в 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--')

В этом примере показано, как создать пространство состояний 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 заданной следующими матрицами пространства состояний:

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}
        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 смотрите Задержки Определения.

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

A=[-1.2-1.60100010],B=[100],C=[00.51.3],D=0,Матрицы пространства состояний

Создайте объект 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)

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

Можно отобразить запасы по амплитуде и фазе на Диаграмме Боде можно следующим образом.

bode(sys)
grid

Для более подробного примера смотрите Запасы по амплитуде и фазе Оценки.

В данном примере спроектируйте ПИД-регулятор 2-DOF с целевой пропускной способностью 0,75 рад/с для системы, представленной следующими матрицами:

A=[-0.5-0.110],B=[10],C=[01],D=0.

Создайте объект 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, сбалансировать эффективность и робастность.

Для интерактивного ПИДа, настраивающего Live Editor, смотрите Live Editor ПИД-регулятора Мелодии задача. Эта задача позволяет вам в интерактивном режиме спроектировать ПИД-регулятор и автоматически генерирует код MATLAB для вашего live скрипта.

Для интерактивного ПИДа, настраивающего автономное приложение, используйте PID Tuner. См. Проект ПИД-регулятора для Быстрого Отслеживания уставки для примера разработки контроллера, использующего приложение.

Считайте объект пространства состояний 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