exponenta event banner

linmod

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

Синтаксис

argout = linmod('sys');
argout = linmod('sys', x, u);
argout = linmod('sys', x, u, para);
argout = linmod('sys', x, u, 'v5');
argout = linmod('sys', x, u, para, 'v5');
argout = linmod('sys', 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) возвращает структуру, содержащую линеаризованную модель, включая имена состояний, имена входных и выходных данных и информацию об операционной точке.

Описание

linmod вычислить линейную модель состояния-пространства путем линеаризации каждого блока в модели по отдельности.

linmod получает линейные модели из систем обыкновенных дифференциальных уравнений, описанных как модели Simulink. Входы и выходы обозначены на блок-схемах Simulink с использованием блоков Inport и Outport.

Алгоритм по умолчанию использует предварительно запрограммированные аналитические блочные якобианы для большинства блоков, что должно привести к более точной линеаризации, чем численное возмущение входов и состояний блоков. Список блоков с предварительно запрограммированными аналитическими якобинцами доступен в документации Simulink Control Design™ вместе с обсуждением блочно-аналитического алгоритма линеаризации.

Алгоритм по умолчанию также допускает специальную обработку проблемных блоков, таких как транспортная задержка и квантователь. Дополнительные сведения и параметры см. в диалоговом окне маски этих блоков.

Примечания

По умолчанию системное время равно нулю. Для систем, зависящих от времени, можно задать переменную para к двухэлементному вектору, где второй элемент используется для установки значения t при котором будет получена линейная модель.

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

[sizes,x0,xstring] = sys

где xstring - вектор строк, i-я строка которого является именем блока, связанного с iВ-м штате. Входы и выходы пронумерованы на диаграмме последовательно.

Для систем с одним входом и несколькими выходами форму функции переноса можно преобразовать с помощью подпрограммы. ss2tf или в форму нулевого полюса с использованием ss2zp. Линеаризованные модели можно также преобразовать в объекты LTI с помощью ss. Эта функция создает объект LTI в форме state-space, который может быть дополнительно преобразован в передаточную функцию или форму с нулевым коэффициентом усиления с помощью tf или zpk.

Алгоритмы по умолчанию в linmod обрабатывать блоки задержки переноса путем замены линеаризации блоков аппроксимацией Pade. Для 'v5' алгоритм, линеаризация модели, которая содержит блоки производной или задержки переноса, может быть проблематичным. Дополнительные сведения см. в разделе Линеаризация моделей.

См. также

| |

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