Извлечение дискретно-временной линейной модели пространства состояния вокруг рабочей точки
argout= dlinmod('sys',Ts)argout= dlinmod('sys',Ts,x,u)argout= dlinmod('sys',Ts,x,u,para, 'v5')argout= dlinmod('sys',Ts,x,u,para,xpert,upert, 'v5')
| Имя системы Simulink ®, из которой извлекается линейная модель. |
| Государство ( x = Simulink.BlockDiagram.getInitialState('sys');Затем можно изменить значения рабочих точек в этой структуре путем редактирования Если состояние содержит различные типы данных (например, |
| Время выборки дискретно-временной линеаризованной модели |
| Необязательный аргумент, вызывающий алгоритм возмущений, созданный до MATLAB ® 5.3. Вызов этого необязательного аргумента эквивалентен вызову |
| Трехэлементный вектор необязательных аргументов:
|
| Значения возмущений, используемые для выполнения возмущений всех состояний и входов модели. Значения по умолчанию: xpert = para(1) + 1e-3*para(1)*abs(x) upert = para(1) + 1e-3*para(1)*abs(u) Если модель имеет ссылки на модель с помощью блока «Модель», необходимо использовать формат структуры Simulink для задания xpert = Simulink.BlockDiagram.getInitialState('sys');Затем можно изменить значения возмущений в этой структуре, отредактировав Входные аргументы возмущений доступны только при вызове алгоритма возмущений, созданного до MATLAB 5.3, либо путем вызова |
|
linmod и dlinmod оба также возвращают передаточную функцию и представления структуры данных MATLAB линеаризованной системы в зависимости от способа задания выходной (левой) стороны уравнения. Используя linmod в качестве примера:
|
dlinmod вычислить линейную модель состояния-пространства для дискретно-временной системы путем линеаризации каждого блока в модели по отдельности.
linmod получает линейные модели из систем обыкновенных дифференциальных уравнений, описанных как модели Simulink. Входы и выходы обозначены на блок-схемах Simulink с использованием блоков Inport и Outport.
Алгоритм по умолчанию использует предварительно запрограммированные аналитические блочные якобианы для большинства блоков, что должно привести к более точной линеаризации, чем численное возмущение входов и состояний блоков. Список блоков с предварительно запрограммированными аналитическими якобинцами доступен в документации Simulink Control Design™ вместе с обсуждением блочно-аналитического алгоритма линеаризации.
Алгоритм по умолчанию также допускает специальную обработку проблемных блоков, таких как транспортная задержка и квантователь. Дополнительные сведения и параметры см. в диалоговом окне маски этих блоков.
Функция dlinmod может линеаризовать дискретные, многоскоростные и гибридные непрерывные и дискретные системы в любое заданное время дискретизации. Использовать тот же синтаксис вызова для dlinmod как для linmod, но вставьте время выборки, в течение которого выполняется линеаризация, в качестве второго аргумента. Например,
[Ad,Bd,Cd,Dd] = dlinmod('sys', Ts, x, u);
создает дискретную модель состояния-пространства во время выборки Ts и рабочая точка, заданная вектором состояния x и входной вектор u. Чтобы получить непрерывную модель аппроксимации дискретной системы, установите Ts кому 0.
Для систем, состоящих из линейных, многоскоростных, дискретных и непрерывных блоков, dlinmod создает линейные модели, имеющие идентичные частотные и временные характеристики (для постоянных входов) в преобразованное время выборки Ts, при условии, что
Ts является целым числом, кратным всем временам выборки в системе.
Система стабильна.
Для систем, не удовлетворяющих первому условию, линеаризация, как правило, представляет собой изменяющуюся во времени систему, которая не может быть представлена с помощью модели [A, B, C, D] state-space, котораяdlinmod возвращает.
Вычисление собственных значений линеаризованной матрицы Ad обеспечивает индикацию стабильности системы. Система стабильна, если Ts>0 и собственные значения находятся в пределах единичной окружности, как определено этим утверждением:
all(abs(eig(Ad))) < 1
Аналогично, система стабильна, если Ts = 0 и собственные значения находятся в левой половине плоскости, как определено этим утверждением:
all(real(eig(Ad))) < 0
Когда система нестабильна и время выборки не кратно целому числу других времен выборки, dlinmod производит Ad и Bd матрицы, которые могут быть сложными. Собственные значения Ad матрица в этом случае все же, однако, обеспечивает хорошую индикацию стабильности.
Вы можете использовать dlinmod преобразование времени выборки системы в другие значения или преобразование линейной дискретной системы в непрерывную систему или наоборот.
Вы можете найти частотную характеристику непрерывной или дискретной системы, используя bode команда.
По умолчанию системное время равно нулю. Для систем, зависящих от времени, можно задать переменную para к двухэлементному вектору, где второй элемент используется для установки значения t при котором будет получена линейная модель.
Порядок состояний от нелинейной модели к линейной модели сохраняется. Для систем Simulink переменная символьного вектора, содержащая имя блока, связанное с каждым состоянием, может быть получена с помощью
[sizes,x0,xstring] = sys
где xstring - вектор строк, i-я строка которого является именем блока, связанного с iВ-м штате. Входы и выходы пронумерованы на диаграмме последовательно.
Для систем с одним входом и несколькими выходами форму функции переноса можно преобразовать с помощью подпрограммы. ss2tf или в форму нулевого полюса с использованием ss2zp. Линеаризованные модели можно также преобразовать в объекты LTI с помощью ss. Эта функция создает объект LTI в форме state-space, который может быть дополнительно преобразован в передаточную функцию или форму с нулевым коэффициентом усиления с помощью tf или zpk.
Алгоритмы по умолчанию в linmod и dlinmod обрабатывать блоки задержки переноса путем замены линеаризации блоков аппроксимацией Pade. Для 'v5' алгоритм, линеаризация модели, которая содержит блоки производной или задержки переноса, может быть проблематичным. Дополнительные сведения см. в разделе Линеаризация моделей.