exponenta event banner

dlinmod

Извлечение дискретно-временной линейной модели пространства состояния вокруг рабочей точки

Синтаксис

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

Аргументы

sys

Имя системы Simulink ®, из которой извлекается линейная модель.

x, u

Государство (x) и вход (u) векторы. Если указано, они задают рабочую точку, в которой извлекается линейная модель. Если модель имеет ссылки на модель с помощью блока «Модель», необходимо использовать формат структуры Simulink для задания x. Извлечение x используйте следующую команду:

x = Simulink.BlockDiagram.getInitialState('sys');

Затем можно изменить значения рабочих точек в этой структуре путем редактирования x.signals.values.

Если состояние содержит различные типы данных (например, 'double' и 'uint8'), то для задания этого состояния нельзя использовать вектор. Вместо этого необходимо использовать структуру. Кроме того, можно указать состояние как вектор только в том случае, если типом данных состояния является 'double'.

Ts

Время выборки дискретно-временной линеаризованной модели

'v5'

Необязательный аргумент, вызывающий алгоритм возмущений, созданный до MATLAB ® 5.3. Вызов этого необязательного аргумента эквивалентен вызовуlinmodv5.

para

Трехэлементный вектор необязательных аргументов:

  • para(1) - значение возмущения дельты, значение, используемое для выполнения возмущения состояний и входов модели. Это допустимо для линеаризаций с использованием 'v5' флаг. Значение по умолчанию - 1e-05.

  • para(2) - Время линеаризации. Для блоков, являющихся функциями времени, можно задать этот параметр с неотрицательным значением, которое дает время (t), при котором Simulink оценивает блоки при линеаризации модели. Значение по умолчанию - 0.

  • para(3) - Комплект para(3)=1 для удаления дополнительных состояний, связанных с блоками, не имеющими пути от входа к выходу. Значение по умолчанию - 0.

xpert, upert

Значения возмущений, используемые для выполнения возмущений всех состояний и входов модели. Значения по умолчанию:

xpert = para(1) + 1e-3*para(1)*abs(x)
upert = para(1) + 1e-3*para(1)*abs(u)

Если модель имеет ссылки на модель с помощью блока «Модель», необходимо использовать формат структуры Simulink для задания xpert. Извлечение xpert используйте следующую команду:

xpert = Simulink.BlockDiagram.getInitialState('sys');

Затем можно изменить значения возмущений в этой структуре, отредактировав xpert.signals.values.

Входные аргументы возмущений доступны только при вызове алгоритма возмущений, созданного до MATLAB 5.3, либо путем вызова linmodv5 или указание 'v5' входной аргумент для linmod.

argout

linmod, dlinmod, и linmod2 возвращать представления состояния-пространства, если задана выходная (левая) сторона уравнения следующим образом:

  • [A,B,C,D] = linmod('sys', x, u) получает линеаризованную модель sys вокруг рабочей точки с заданными переменными состояния x и вход u. Если опустить x и u, значения по умолчанию равны нулю.

linmod и dlinmod оба также возвращают передаточную функцию и представления структуры данных MATLAB линеаризованной системы в зависимости от способа задания выходной (левой) стороны уравнения. Используя linmod в качестве примера:
  • [num, den] = linmod('sys', x, u) возвращает линеаризованную модель в форме передаточной функции.

  • sys_struc = linmod('sys', x, u) возвращает структуру, содержащую линеаризованную модель, включая имена состояний, имена входных и выходных данных и информацию об операционной точке.

Описание

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' алгоритм, линеаризация модели, которая содержит блоки производной или задержки переноса, может быть проблематичным. Дополнительные сведения см. в разделе Линеаризация моделей.

См. также

| |

Представлен в R2007a