Уравнения переменных состояний в SimInTech

В технике автоматического управления переменные состояния представляют собой математическую модель физической системы в виде набора входных, выходных и статических переменных, связанных дифференциальными уравнениями первого порядка. Чтобы не отвлекаться на количества входов, выходов и состояний, переменные выражаются в виде векторов. Кроме того, если динамическая система линейна и инвариантна по времени, то дифференциальные и алгебраические уравнения могут быть записаны в матричном виде.Представление системы в виде переменных состояний обеспечивает удобный и компактный способ моделирования и анализа систем с несколькими входами и выходами.В отличие от подхода в частотной области, использование переменных состояний не ограничивается системами с линейными компонентами и нулевыми начальными условиями.

Наиболее общее представление переменных состояний линейной системы с u-входами, y-выходами и n-переменными состояния имеет вид, представленный на рисунке (Рисунок 1).

Рисунок 1. Схематичное представление переменных состояний линейной системы

Описание многомерной линейной динамической системы в матричной форме имеет вид [3]:
где A, B, C, D – матрицы: системы, входа, выхода и обхода, соответственно; x(t) – вектор переменных состояния (размерностью [Nx]); u(t) – вектор входа (размерностью [Nu]); y(t) – вектор выхода, (размерностью [Ny]).
Получаем:
Матрицы A, B, C, D определяются следующим образом:
Вектор входа u(t) представлен силами, выводящими систему из равновесия:
Вектор выхода y(t) представлен перемещениями x1(t) и x2(t):
На рисунке (Рисунок 2) представлен вид схемы модели, реализующей решение при помощи блока «Переменные состояния», на рисунке ниже (Рисунок 3) приведены результаты моделирования.

Рисунок 2. Схема модели, реализующей решение при помощи блока «Переменные состояния»

Для удобства заполнения свойств блоков, размещённых на схемном окне, в дополнении к командам, приведённым в разделе Уравнение Лагранжа, скрипт проекта дополняется следующими записями (transp – функция транспонирования матрицы [3]):
A = transp([[0 , 0 , 1 , 0];[0 , 0 , 0 , 1];[-(k1+k2)/m1 , k2/m1 , -(b1+b2)/m1 , b2/m1];[k2/m2 , -k2/m2 , b2/m2 , -b2/m2]]); // матрица системы
B = transp([[0 , 0];[0 , 0];[1/m1 , 0];[0 , 1/m2]]); // матрица входа
C = transp([[1 , 0 , 0 , 0];[0 , 1 , 0 , 0]]); // матрица выхода
D = transp([[0 , 0];[0 , 0]]); // матрица обхода
y0 = [x0 , x0 , V0 , V0]; // начальные условия

Рисунок 3. Результаты моделирования: изменение перемещения тел