Создайте модель в пространстве состояний, преобразуйте в модель в пространстве состояний
sys
= ss(A
,B
,C
,D
)
sys
= ss(A
,B
,C
,D
,Ts
)
sys
= ss(D
)
sys
= ss
(A
,B
,C
,D
,ltisys
)
sys_ss = ss(sys)
sys_ss
= ss(sys
,'minimal')
sys_ss
= ss(sys
,'explicit')
sys_ss = ss(sys,
'measured')
sys_ss = ss(sys, 'noise')
sys_ss = ss(sys, 'augmented')
Используйте ss
, чтобы создать модели в пространстве состояний (объекты модели ss
) с действительным - или матрицы с комплексным знаком или преобразовать модели динамической системы в форму модели в пространстве состояний. Можно также использовать ss
, чтобы создать Обобщенные модели (genss
) пространства состояний.
создает объект модели в пространстве состояний представление непрерывно-разовой модели в пространстве состоянийsys
= ss(A
,B
,C
,D
)
Для модели с состояниями Nx
, Ny
выходные параметры и входные параметры Nu
:
A
является Nx
-by-Nx
действительный - или матрица с комплексным знаком.
B
является Nx
-by-Nu
действительный - или матрица с комплексным знаком.
C
является Ny
-by-Nx
действительный - или матрица с комплексным знаком.
D
является Ny
-by-Nu
действительный - или матрица с комплексным знаком.
Чтобы установить D = 0
, установите D
на скалярный 0
(нуль), независимо от размерности.
создает модель дискретного времениsys
= ss(A
,B
,C
,D
,Ts
)
с шагом расчета Ts
(в секундах). Установите Ts = -1
или Ts = []
оставлять шаг расчета незаданным.
задает статическую матрицу усиления sys
= ss(D
)D
и эквивалентен
sys = ss([],[],[],D)
создает модель в пространстве состояний со свойствами, наследованными от модели sys
= ss
(A
,B
,C
,D
,ltisys
) ltisys
(включая шаг расчета).
Любой из предыдущих синтаксисов может сопровождаться именем свойства / пары значения свойства.
'PropertyName',PropertyValue
Каждая пара задает конкретное свойство модели, например, входных имен или некоторых примечаний по образцовой истории. См. Свойства для получения дополнительной информации о доступных свойствах объекта модели ss
.
Следующее выражение:
sys = ss(A,B,C,D,'Property1',Value1,...,'PropertyN',ValueN)
эквивалентно последовательности команд:
sys = ss(A,B,C,D) set(sys,'Property1',Value1,...,'PropertyN',ValueN)
sys_ss = ss(sys)
преобразовывает модель sys
динамической системы в форму пространства состояний. Вывод sys_ss
является эквивалентной моделью в пространстве состояний (объект модели ss
). Эта операция известна как реализацию пространства состояний.
производит реализацию пространства состояний без неконтролируемых или неразличимых состояний. Эта реализация пространства состояний эквивалентна sys_ss
= ss(sys
,'minimal')sys_ss = minreal(ss(sys))
.
вычисляет явную реализацию (sys_ss
= ss(sys
,'explicit')E
= I) модели sys
динамической системы. Если sys
является неподходящим, ss
возвращает ошибку.
Преобразования в пространство состояний исключительно не заданы в случае SISO. Они, как также гарантируют, не произведут минимальную реализацию в случае MIMO. Для получения дополнительной информации смотрите Рекомендуемое работающее Представление.
Идентифицированная модель представлена уравнением ввода - вывода формы , где u(t) является набором измеренных входных каналов, и e(t) представляет шумовые каналы. If Λ = LL' представляет ковариацию шумового e(t), это уравнение может также быть записано как , где .
sys_ss = ss(sys)
или sys_ss = ss(sys,
'measured')
преобразовывает измеренный компонент идентифицированной линейной модели в форму пространства состояний. sys
является моделью типа idss
, idproc
, idtf
, idpoly
или idgrey
. sys_ss
представляет отношение между u и y.
sys_ss = ss(sys, 'noise')
преобразовывает шумовой компонент идентифицированной линейной модели в форму пространства состояний. Это представляет отношение между шумовым входом v(t) и выводом y_noise = HL v(t). Шумовые входные каналы принадлежат InputGroup
'Шум'. Именами шумовых входных каналов является v@yname, где yname является именем соответствующего выходного канала. sys_ss
имеет столько же входных параметров сколько выходные параметры.
sys_ss = ss(sys, 'augmented')
преобразовывает и измеренную и шумовую динамику в модель в пространстве состояний. sys_ss
имеет входные параметры ny+nu, таким образом, что первые входные параметры nu представляют каналы u(t), в то время как остающиеся каналами представляют шумовые каналы v(t). sys_ss.InputGroup
содержит 2 входных группы - 'measured'
и 'noise'
. sys_ss.InputGroup.Measured
установлен в 1:nu, в то время как sys_ss.InputGroup.Noise
установлен в nu+1:nu+ny. sys_ss
представляет уравнение
Идентифицированная нелинейная модель не может быть преобразована в форму пространства состояний. Используйте функции линейной аппроксимации, такие как linearize
и linapp
.
Можно использовать синтаксис:
gensys = ss(A,B,C,D)
создать Обобщенную модель (genss
) пространства состояний, когда один или несколько матриц A
, B
, C
, D
является настраиваемой моделью realp
или genmat
. Для получения дополнительной информации об Обобщенных моделях в пространстве состояний, см. Модели с Настраиваемыми Коэффициентами.
Объекты ss
имеют следующие свойства:
|
Матрицы пространства состояний.
|
|
Логическое значение, указывающее, включено ли масштабирование или отключено. Когда (FALSE) Значение по умолчанию: 0 (FALSE) |
|
Имена состояния, заданные как одно из следующего:
Значение по умолчанию: |
|
Модули состояния, заданные как одно из следующего:
Используйте Значение по умолчанию: |
|
Вектор, хранящий внутренние задержки. Внутренние задержки возникают, например, когда заключительная обратная связь в системах с задержками, или при соединении задержанных систем последовательно или параллели. Для получения дополнительной информации о внутренних задержках, смотрите закрывающуюся Обратную связь с Задержками. Для непрерывно-разовых моделей внутренние задержки выражаются в единице измерения времени, заданной свойством Можно изменить значения внутренних задержек. Однако количество записей в |
|
Введите задержку каждого входного канала, заданного как скалярное значение или числовой вектор. Для непрерывно-разовых систем задайте входные задержки единицы измерения времени, сохраненной в свойстве Для системы с входными параметрами Можно также установить Значение по умолчанию: 0 |
|
Выведите задержки. Для системы с Значение по умолчанию: 0 для всех выходных каналов |
|
'SampleTime' . Для непрерывно-разовых моделей, Изменение этого свойства не дискретизирует или передискретизирует модель. Используйте Значение по умолчанию: |
|
Модули для переменной времени, шаг расчета
Изменение этого свойства не имеет никакого эффекта на другие свойства, и поэтому изменяет полное поведение системы. Используйте Значение по умолчанию: |
|
Введите названия канала, заданные как одно из следующего:
Также используйте автоматическое векторное расширение, чтобы присвоить входные имена для мультивходных моделей. Например, если sys.InputName = 'controls'; Входные имена автоматически расширяются до Можно использовать краткое обозначение Входные названия канала имеют несколько использования, включая:
Значение по умолчанию: |
|
Введите модули канала, заданные как одно из следующего:
Используйте Значение по умолчанию: |
|
Введите группы канала. Свойство sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; создает входные группы под названием sys(:,'controls') Значение по умолчанию: Struct без полей |
|
Выведите названия канала, заданные как одно из следующего:
Также используйте автоматическое векторное расширение, чтобы присвоить выходные имена для мультивыходных моделей. Например, если sys.OutputName = 'measurements'; Выходные имена автоматически расширяются до Можно использовать краткое обозначение Выходные названия канала имеют несколько использования, включая:
Значение по умолчанию: |
|
Выведите модули канала, заданные как одно из следующего:
Используйте Значение по умолчанию: |
|
Выведите группы канала. Свойство sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; создает выходные группы под названием sys('measurement',:) Значение по умолчанию: Struct без полей |
|
Имя системы, заданное как вектор символов. Например, Значение по умолчанию: |
|
Любой текст, который вы хотите сопоставить с системой, сохраненной как строка или массив ячеек из символьных векторов. Свойство хранит, какой бы ни тип данных вы обеспечиваете. Например, если sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' Значение по умолчанию: |
|
Любой тип данных вы хотите сопоставить с системой, заданной как любой тип данных MATLAB®. Значение по умолчанию: |
|
Выборка сетки для образцовых массивов, заданных как структура данных. Для образцовых массивов, которые выведены путем выборки одной или нескольких независимых переменных, это дорожки свойства значения переменных, сопоставленные с каждой моделью в массиве. Эта информация появляется, когда вы отображаете или строите образцовый массив. Используйте эту информацию, чтобы проследить результаты до независимых переменных. Установите имена полей структуры данных к именам переменных выборки. Установите значения полей к выбранным значениям переменных, сопоставленным с каждой моделью в массиве. Все переменные выборки должны быть числовыми и скаляр, оцененный, и все массивы выбранных значений должны совпадать с размерностями образцового массива. Например, предположите, что вы создаете 11 1 массив линейных моделей, sysarr.SamplingGrid = struct('time',0:10) Точно так же предположите, что вы создаете 6 9 образцовый массив, [zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',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® в нескольких значениях параметров или рабочих точках, программное обеспечение заполняет Значение по умолчанию: |
Создайте модель в пространстве состояний с шагом расчета 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);
Создайте матрицы пространства состояний и задайте шаг расчета.
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
.
Вычислите модель в пространстве состояний следующей передаточной функции:
Создайте модель передаточной функции.
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) как продукт системы первого порядка и системы второго порядка.
Создайте модель в пространстве состояний дескриптора (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
. Подтвердите, что свойство A
sys
хранится как обобщенная матрица.
sys.A
ans = Generalized matrix with 2 rows, 2 columns, and the following blocks: a: Scalar parameter, 2 occurrences. b: Scalar parameter, 2 occurrences. Type "double(ans)" to see the current value, "get(ans)" to see all properties, and "ans.Blocks" to interact with the blocks.
Извлеките измеренные и шумовые компоненты идентифицированной полиномиальной модели в две отдельных модели в пространстве состояний. Первый (измеренный компонент) может служить моделью объекта управления, в то время как последний может служить возмущением для проекта системы управления.
load icEngine z = iddata(y,u,0.04); sys = ssest(z,3); sysMeas = ss(sys,'measured') sysNoise = ss(sys,'noise')
Также используйте ss(sys)
, чтобы извлечь измеренный компонент.
Для TF к преобразованию модели SS ss(sys_tf)
возвращает измененную версию управляемой канонической формы. Это использует алгоритм, подобный tf2ss
, но дальнейшим перешкалам вектор состояния, чтобы сжать числовую область значений в матричном A
состояния и улучшить численные данные в последующих вычислениях.
Для ZPK к преобразованию SS ss(sys_zpk)
использует прямую форму II структур, как задано в текстах обработки сигналов. Смотрите Обработку сигналов Дискретного времени Оппенхеймом и Шафером для деталей.
Например, в следующем коде, A
и sys.A
отличаются диагональным преобразованием состояния:
n=[1 1]; d=[1 1 10]; [A,B,C,D]=tf2ss(n,d); sys=ss(tf(n,d)); A A = -1 -10 1 0 sys.A ans = -1 -5 2 0
Для получения дополнительной информации смотрите balance
.