Модель в пространстве состояний
Используйте ss
создать модели в пространстве состояний с комплексным знаком или с действительным знаком или преобразовать модели динамической системы в форму модели в пространстве состояний. Можно также использовать ss
создать обобщенное пространство состояний (genss
) модели или неопределенное пространство состояний (uss
(Robust Control Toolbox)) модели.
Модель в пространстве состояний является математическим представлением физической системы как набор входа, выхода и переменных состояния, связанных дифференциальными уравнениями первого порядка. Переменные состояния задают значения выходных переменных. ss
объект модели может представлять SISO или модели в пространстве состояний MIMO в непрерывное время или дискретное время.
В непрерывное время модель в пространстве состояний имеет следующую форму:
Здесь, x
U
и y
представляйте состояния, вводы и выводы соответственно, в то время как A
B
C
и D
матрицы пространства состояний. ss
объект представляет модель в пространстве состояний в MATLAB®, хранящем A
B
C
и D
наряду с другой информацией, такой как шаг расчета, имена и задерживается характерный для вводов и выводов.
Можно создать объект модели в пространстве состояний или определением состояния, матрицы ввода и вывода непосредственно, или путем преобразования модели другого типа (такие как модель tf
передаточной функции) к форме пространства состояний. Для получения дополнительной информации смотрите Модели в пространстве состояний. Можно использовать
ss
объект модели к:
Выполните линейный анализ
Представляйте модель линейного независимого от времени (LTI), чтобы выполнить систему управления
Объединитесь с другими моделями LTI, чтобы представлять более сложную систему
создает объект модели в пространстве состояний непрерывного времени следующей формы:sys
= ss(A
,B
,C
,D
)
Например, рассмотрите объект с Nx
состояния, Ny
выходные параметры и Nu
входные параметры. Матрицы пространства состояний:
A
Nx
- Nx
действительный - или матрица с комплексным знаком.
B
Nx
- Nu
действительный - или матрица с комплексным знаком.
C
Ny
- Nx
действительный - или матрица с комплексным знаком.
D
Ny
- Nu
действительный - или матрица с комплексным знаком.
преобразует в 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. Для получения дополнительной информации смотрите Рекомендуемое работающее Представление.
возвращает явную реализацию пространства состояний (E = I) модели в пространстве состояний динамической системы sys
= ss(ssSys
,'explicit')ssSys
. ss
возвращает ошибку если ssSys
является неподходящим. Для получения дополнительной информации о явной реализации пространства состояний смотрите Модели в пространстве состояний.
A
— Матрица состоянияNx
- Nx
матрицаМатрица состояния в виде Nx
- Nx
матрица, где, Nx
количество состояний. Этот вход устанавливает значение свойства A.
B
— Матрица входа к состояниюNx
- Nu
матрицаМатрица входа к состоянию в виде Nx
- Nu
матрица, где, Nx
количество состояний и Nu
количество входных параметров. Этот вход устанавливает значение свойства B.
C
— Состояние к выходной матрицеNy
- Nx
матрицаСостояние к выходной матрице в виде Ny
- Nx
матрица, где, Nx
количество состояний и Ny
количество выходных параметров. Этот вход устанавливает значение свойства C.
D
— Проходная матрицаNy
- Nu
матрицаПроходная матрица в виде Ny
- Nu
матрица, где, Ny
количество выходных параметров и Nu
количество входных параметров. Этот вход устанавливает значение свойства D.
ts
Размер шагаШаг расчета в виде скаляра. Для получения дополнительной информации смотрите свойство Ts.
ltiSys
— Динамическая система, чтобы преобразовать в форму пространства состоянийДинамическая система, чтобы преобразовать в пространство состояний формируется в виде 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™.)
component
— Компонент идентифицированной модели'measured'
(значение по умолчанию) | 'noise'
| 'augmented'
Компонент идентифицированной модели, чтобы преобразовать в виде одного из следующего:
'measured'
— Преобразуйте измеренный компонент sys
.
'noise'
— Преобразуйте шумовой компонент sys
'augmented'
— Преобразуйте и измеренные и шумовые компоненты sys
.
component
только применяется когда sys
идентифицированная модель LTI.
Для получения дополнительной информации об идентифицированных моделях LTI и их измеренных и шумовых компонентах, см. Идентифицированные Модели LTI.
ssSys
— Модель динамической системы, чтобы преобразовать в минимальную реализацию или явную формуss
объект моделиМодель динамической системы, чтобы преобразовать в минимальную реализацию или явную форму в виде ss
объект модели.
sys
— Выведите системную модельss
объект модели | genss
объект модели | uss
объект моделиВыведите системную модель, возвращенную как:
Пространство состояний (ss
) объект модели, когда входные параметры A
B
C
и D
числовые матрицы или при преобразовании от другого типа объекта модели.
Обобщенная модель в пространстве состояний (genss
) объект, когда один или несколько матриц A
B
C
и D
включает настраиваемые параметры, такой как realp
параметры или обобщенные матрицы (genmat
). Для примера смотрите, Создают Модель в пространстве состояний и с Фиксированным и с Настраиваемые параметры.
Неопределенная модель в пространстве состояний (uss
) объект, когда один или несколько входных параметров A
B
C
и D
включает неопределенные матрицы. Используя неопределенные модели требует программного обеспечения Robust Control Toolbox.
A
— Матрица состоянияNx
- Nx
матрицаМатрица состояния в виде Nx
- Nx
матрица, где Nx
количество состояний. Матрица состояния может быть представлена во многих отношениях в зависимости от желаемой реализации модели в пространстве состояний, такой как:
Каноническая форма модели
Сопутствующая каноническая форма
Заметная каноническая форма
Управляемая каноническая форма
Для получения дополнительной информации смотрите Каноническую Реализацию Пространства состояний.
B
— Матрица входа к состояниюNx
- Nu
матрицаМатрица входа к состоянию в виде Nx
- Nu
матрица, где Nx
количество состояний и Nu
количество входных параметров.
C
— Состояние к выходной матрицеNy
- Nx
матрицаСостояние к выходной матрице в виде Ny
- Nx
матрица, где Nx
количество состояний и Ny
количество выходных параметров.
D
— Проходная матрицаNy
- Nu
матрицаПроходная матрица в виде Ny
- Nu
матрица, где Ny
количество выходных параметров и Nu
количество входных параметров. D
также называется как статическая матрица усиления, которая представляет отношение выхода к входу при условии устойчивого состояния.
E
— Матрица для неявных моделей в пространстве состоянийNx
- Nx
матрицаМатрица для неявного или моделей в пространстве состояний дескриптора в виде Nx
- Nx
матрица. E
пусто по умолчанию, означая, что уравнение состояния является явным. Чтобы задать неявное уравнение состояния E
dx/dt = Ax + Bu, установите это свойство на квадратную матрицу одного размера с A
. Смотрите dss
для получения дополнительной информации о создании моделей в пространстве состояний дескриптора.
Scaled
— Логическое значение, указывающее, включено ли масштабирование или отключено
(значение по умолчанию) | 1
Логическое значение, указывающее, включено ли масштабирование или отключено в виде любого 0
или 1
.
Когда Scaled
установлен в 0
(отключенный), затем большинство числовых алгоритмов, действующих на модель в пространстве состояний sys
автоматически перемасштабируйте вектор состояния, чтобы улучшить числовую точность. Можно предотвратить такое автомасштабирование установкой Scaled
к 1
(активированный).
Для получения дополнительной информации о масштабировании, смотрите prescale
.
StateName
— Имена состояния' '
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовИмена состояния в виде одного из следующего:
Вектор символов — Для моделей первого порядка, например, 'velocity'
.
Массив ячеек из символьных векторов Модели For с двумя или больше состояниями
StateName
isempty
для всех состояний по умолчанию.
StateUnit
— Модули состояния' '
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовМодули состояния в виде одного из следующего:
Вектор символов — Для моделей первого порядка, например, 'm/s'
Массив ячеек из символьных векторов Модели For с двумя или больше состояниями
Используйте StateUnit
отслеживать модули каждого состояния. StateUnit
не оказывает влияния на поведение системы. StateUnit
isempty
для всех состояний по умолчанию.
InternalDelay
— Внутренние задержки моделиВнутренние задержки модели в виде вектора. Внутренние задержки возникают, например, когда заключительная обратная связь в системах с задержками, или при соединении задержанных систем последовательно или параллели. Для получения дополнительной информации о внутренних задержках, смотрите закрывающуюся Обратную связь с Задержками.
Для моделей непрерывного времени внутренние задержки описываются в единице измерения времени, заданной TimeUnit
свойство модели. Для моделей дискретного времени внутренние задержки описываются как целочисленные множители шага расчета Ts
. Например, InternalDelay = 3
означает задержку трех периодов выборки.
Можно изменить значения внутренних задержек с помощью свойства InternalDelay
. Однако количество записей в sys.InternalDelay
не может измениться, потому что это - структурное свойство модели.
InputDelay
— Введите задержку
(значение по умолчанию) | скаляр | Nu
- 1 векторВведите задержку каждого входного канала в виде одного из следующего:
Скаляр — Задает входную задержку системы SISO или ту же задержку всех входных параметров мультивходной системы.
Nu
- 1 вектор — Задают отдельные входные задержки входа мультивходной системы, где Nu
количество входных параметров.
Для систем непрерывного времени задайте входные задержки единицы измерения времени, заданной TimeUnit
свойство. Для систем дискретного времени задайте входные задержки целочисленных множителей шага расчета, Ts
.
Для получения дополнительной информации смотрите Задержки Линейных систем.
OutputDelay
— Выведите задержку
(значение по умолчанию) | скаляр | Ny
- 1 векторВыведите задержку каждого выходного канала в виде одного из следующего:
Скаляр — Задает выходную задержку системы SISO или ту же задержку всех выходных параметров мультивыходной системы.
Ny
- 1 вектор — Задают отдельные выходные задержки выхода мультивыходной системы, где Ny
количество выходных параметров.
Для систем непрерывного времени задайте выходные задержки единицы измерения времени, заданной TimeUnit
свойство. Для систем дискретного времени задайте выходные задержки целочисленных множителей шага расчета, Ts
.
Для получения дополнительной информации смотрите Задержки Линейных систем.
Ts
Размер шага
(значение по умолчанию) | положительная скалярная величина | -1
Шаг расчета в виде:
0 для систем непрерывного времени.
Положительная скалярная величина, представляющая период выборки системы дискретного времени. Задайте Ts
в единице измерения времени, заданной TimeUnit
свойство.
-1 для системы дискретного времени с незаданным шагом расчета.
Изменение Ts
не дискретизирует или передискретизирует модель. Чтобы преобразовать между представлениями непрерывного времени и дискретного времени, использовать c2d
и d2c
. Чтобы изменить шаг расчета системы дискретного времени, использовать d2d
.
TimeUnit
— Модули переменной Time'seconds'
(значение по умолчанию) | 'nanoseconds'
| 'microseconds'
| 'milliseconds'
| 'minutes'
| 'hours'
| 'days'
| 'weeks'
| 'months'
| 'years'
| ...Модули переменной Time в виде одного из следующего:
'nanoseconds'
'microseconds'
'milliseconds'
'seconds'
'minutes'
'hours'
'days'
'weeks'
'months'
'years'
Изменение TimeUnit
не оказывает влияния на другие свойства, но изменяет полное поведение системы. Использование chgTimeUnit
преобразовывать между единицами измерения времени, не изменяя поведение системы.
InputName
— Введите названия канала''
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовВведите названия канала в виде одного из следующего:
Вектор символов, для моделей одно входа.
Массив ячеек из символьных векторов, для мультивходных моделей.
''
, никакие имена не заданы ни для каких входных каналов.
В качестве альтернативы можно присвоить входные имена для мультивходных моделей с помощью автоматического векторного расширения. Например, если sys
2D входная модель, введите:
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
2D выходная модель, введите:
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
структура без полей.
Следующие списки содержат представительное подмножество функций, которые можно использовать с ss
объекты модели. В общем случае любая функция, применимая к Моделям Динамической системы, применима к ss
объект.
step | Переходный процесс динамической системы; данные о переходном процессе |
impulse | График импульсной характеристики динамической системы; данные об импульсной характеристике |
lsim | Постройте симулированный ответ времени динамической системы к произвольным входным параметрам; данные о симулированном отклике |
bode | Диаграмма Боде частотной характеристики, или величина и данные о фазе |
nyquist | Годограф Найквиста частотной характеристики |
nichols | График Николса частотной характеристики |
bandwidth | Пропускная способность частотной характеристики |
pidtune | Алгоритм настройки ПИДа для линейной модели объекта управления |
rlocus | График корневого годографа динамической системы |
lqr | Проект Линейно-квадратичного регулятора (LQR) |
lqg | Проект "линейного квадратичного гауссова" (LQG) |
lqi | Линейно-квадратично-интегральное управление |
kalman | Проект фильтра Калмана, Оценка состояния фильтра Калмана |
Создайте модель в пространстве состояний SISO, заданную следующими матрицами пространства состояний:
Задайте 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 = [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
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
секунды:
Задайте матрицы пространства состояний и создайте дискретное время модель в пространстве состояний 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');
Количество состояния и входных имен должно быть сопоставимо с размерностями A
B
C
, и D
.
Именование вводов и выводов может быть полезным при контакте с графиками отклика для систем MIMO.
step(sys)
Заметьте, что вход называет Force
в заголовке переходного процесса.
В данном примере создайте модель в пространстве состояний с тем же временем и введите модульные свойства, наследованные от другой модели в пространстве состояний. Рассмотрите следующие модели в пространстве состояний:
Во-первых, создайте модель в пространстве состояний 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 = [2,4;3,5]; sys1 = ss(D)
sys1 = D = u1 u2 y1 2 4 y2 3 5 Static gain.
Вычислите модель в пространстве состояний следующей передаточной функции:
Создайте модель передаточной функции.
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) как продукт системы первого порядка и системы второго порядка.
В данном примере извлеките измеренные и шумовые компоненты идентифицированной полиномиальной модели в две отдельных модели в пространстве состояний.
Загрузите модель ltiSys
полинома Поля-Jenkins в
identifiedModel.mat
.
load('identifiedModel.mat','ltiSys');
ltiSys
идентифицированная модель дискретного времени формы: , где представляет измеренный компонент и шумовой компонент.
Извлеките измеренные и шумовые компоненты как модели в пространстве состояний.
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.
Измеренный компонент может служить моделью объекта управления, в то время как шумовой компонент может использоваться в качестве возмущения для проекта системы управления.
Создайте модель в пространстве состояний дескриптора (E ≠ I).
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 и 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 заданной следующими матрицами пространства состояний:
При рассмотрении входной задержки 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 смотрите Задержки Определения.
В данном примере рассмотрите объект системы в пространстве состояний, который представляет следующие матрицы состояния:
Создайте объект 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 рад/с для системы, представленной следующими матрицами:
Создайте объект 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 = [-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
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.