Продукт Simulink ® обеспечивает , linmodlinmod2, и dlinmod функции для извлечения линейных моделей в виде матриц состояния-пространства A, B, C и D. Матрицы состояния-пространства описывают линейное соотношение ввода-вывода как
где x, u и y - состояние, входной и выходной векторы соответственно. Например, следующая модель называется lmod.

Для извлечения линейной модели этой системы введите эту команду.
[A,B,C,D] = linmod('lmod')
A =
-2 -1 -1
1 0 0
0 1 -1
B =
1
0
0
C =
0 1 0
0 0 -1
D =
0
1
Входы и выходы должны быть определены с помощью блоков Inport и Outport из библиотеки Ports & Subsystems. Блоки источника и приемника не действуют в качестве входов и выходов. Блоки ввода можно использовать совместно с исходными блоками, используя блок Sum. Как только данные находятся в форме state-space или преобразованы в объект LTI, можно применить функции в продукте Toolbox™ системы управления для дальнейшего анализа:
Преобразование в объект LTI
sys = ss(A,B,C,D);
График фазы и частоты бланка
bode(A,B,C,D) or bode(sys)
Линеаризованный отклик времени
step(A,B,C,D) or step(sys) impulse(A,B,C,D) or impulse(sys) lsim(A,B,C,D,u,t) or lsim(sys,u,t)
Для проектирования линейной системы управления можно использовать другие функции панели инструментов системы управления и продуктов Toolbox™ надежного управления.
Если модель является нелинейной, можно выбрать рабочую точку для извлечения линеаризованной модели. Дополнительные аргументы для linmod укажите рабочую точку.
[A,B,C,D] = linmod('sys', x, u)
Для дискретных систем или смешанных непрерывных и дискретных систем используйте функцию dlinmod для линеаризации. Эта функция имеет тот же синтаксис вызова, что и linmod за исключением того, что второй правый аргумент должен содержать время выборки для выполнения линеаризации.
Вы можете использовать linmod извлечение линейной модели из среды Simulink ®, содержащей блоки модели. Например, откройте ссылочную модельmdlref_dynamics и топ-модель mdlref_f14.
open_system('mdlref_dynamics'); open_system('mdlref_f14');
В mdlref_f14 модель, блок модели динамики самолета ссылается на mdlref_dynamics модель.

Для линеаризации mdlref_f14 модель, используйте linmod команда.
[A,B,C,D] = linmod('mdlref_f14');### Starting serial model reference simulation build ### Successfully updated the model reference simulation target for: mdlref_dynamics Build Summary Simulation targets built: Model Action Rebuild Reason ========================================================================================== mdlref_dynamics Code generated and compiled mdlref_dynamics_msf.mexa64 does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 18.032s
Полученная модель состояния-пространства соответствует полной mdlref_f14 , включая ссылочную модель.
Вы можете позвонить linmod с рабочей точкой состояния и ввода для моделей, содержащих блоки модели. При использовании рабочих точек вектор состояния x относится к вектору общего состояния для верхней модели и всех ссылочных моделей. Необходимо ввести вектор состояния в формате структуры. Чтобы получить полный вектор состояния, используйте getInitialState.
x = Simulink.BlockDiagram.getInitialState(topModelName)
Совет
В обычном режиме linmod применяет алгоритм поблочной линеаризации к блокам внутри ссылочной модели. Если блок модели находится в режиме ускорителя, linmod команда использует численное возмущение для линеаризации ссылочной модели. Из-за ограничений линеаризации многоскоростных блоков модели в режиме ускорителя при линеаризации со ссылочными моделями следует использовать моделирование нормального режима для всех моделей, на которые ссылаются блоки модели.
Вызов linmod с помощью команды 'v5' аргумент вызывает алгоритм возмущений, созданный до версии программного обеспечения MATLAB ® 5.3. Этот алгоритм также позволяет задать значения возмущений, используемые для выполнения возмущений всех состояний и входов модели.
[A,B,C,D]=linmod('sys',x,u,para,xpert,upert,'v5')
linmod с 'v5' возможность линеаризации модели, содержащей блоки производной или задержки переноса, может быть трудной. Перед линеаризацией замените эти блоки на специально разработанные, чтобы избежать проблем. Эти блоки находятся в библиотеке Simulink Extras в поддиапазоне Linearization.Доступ к библиотеке дополнительных компонентов можно получить, открыв значок «Блоки и панели инструментов»:
Для блока Производная используйте для линеаризации коммутируемую производную.
При использовании блока Производная можно также попытаться включить член производной в другие блоки. Например, если у вас есть блок Производная последовательно с блоком Transfer Fcn, он лучше реализован (хотя это не всегда возможно) с одним блоком Transfer Fcn формы
a.
В этом примере блоки слева от этого рисунка могут быть заменены блоком справа.
