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) векторы. Если задано, они устанавливают рабочую точку, в которой извлекается линейная модель. Когда модель моделей-ссылок с использованием блока Model, необходимо использовать формат структуры 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)

Когда модель моделей-ссылок с использованием блока Model, необходимо использовать формат структуры 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.

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

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

Линеаризация системы в дискретном времени

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

[Ad,Bd,Cd,Dd] = dlinmod('sys', Ts, x, u);

формирует дискретную модель пространства состояний во время дискретизации Ts и рабочую точку, заданную вектором состояния x и входной вектор u. Чтобы получить непрерывное приближение модели дискретной системы, задайте Ts на 0.

Для систем, состоящих из линейных, многократных, дискретных и непрерывных блоков, dlinmod формирует линейные модели, имеющие одинаковые частотные и временные характеристики (для постоянных входов) в преобразованное время дискретизации Ts, при условии, что

  • Ts - целое число, кратное всем временам дискретизации в системе.

  • Система стабильна.

Для систем, которые не удовлетворяют первому условию, в целом линеаризация является изменяющейся во времени системой, которая не может быть представлена моделью пространства состояний [A, B, C, D], которая 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-я строка является именем блока, сопоставленным со ith-е состояние. Входы и выходы нумеруются последовательно на схеме.

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

Алгоритмы по умолчанию в linmod и dlinmod обработайте блоки Transport Delay путем замены линеаризации блоков аппроксимацией Паде. Для 'v5' алгоритм, линеаризация модели, которая содержит блоки Derivative или Transport Delay, может быть проблематичной. Для получения дополнительной информации см. Раздел «Линеаризация моделей».

См. также

| |

Введенный в R2007a