exponenta event banner

isLowIndexDAE

Проверить, не ниже ли дифференциальный индекс системы уравнений 2

Синтаксис

Описание

пример

isLowIndexDAE(eqs,vars) проверяет, нет ли в системе eqs полулинейных дифференциальных алгебраических уравнений первого порядка (DAE) имеет низкий дифференциальный индекс. Если дифференциальный индекс системы равен 0 или 1, то isLowIndexDAE возвращает логический 1 Правда. Если дифференциальный индекс eqs выше, чем 1, то isLowIndexDAE возвращает логический 0 (ложь).

Количество уравнений eqs должно соответствовать количеству переменных vars.

Примеры

Проверка дифференциального индекса системы дисковой полки

Проверьте, имеет ли система полулинейных дисковых полостей первого порядка низкий дифференциальный индекс (0 или 1).

Создайте следующую систему двух дифференциальных алгебраических уравнений. Здесь, x(t) и y(t) - переменные состояния системы. Задайте уравнения и переменные как два символьных вектора: уравнения как вектор символьных уравнений и переменные как вектор вызовов символьных функций.

syms x(t) y(t)
eqs = [diff(x(t),t) == x(t) + y(t), x(t)^2 + y(t)^2 == 1];
vars = [x(t), y(t)];

Использовать isLowIndexDAE для проверки дифференциального порядка системы. Дифференциальный порядок этой системы: 1. Для систем индекса 0 и 1, isLowIndexDAE прибыль 1 (true).

isLowIndexDAE(eqs, vars)
ans =
  logical
   1

Уменьшение дифференциального индекса системы дисковой полки

Проверьте, имеет ли следующая система дисковых полок низкий или высокий дифференциальный индекс. Если индекс выше 1, затем использовать reduceDAEIndex чтобы уменьшить его.

Создайте следующую систему двух дифференциальных алгебраических уравнений. Здесь, x(t), y(t), и z(t) - переменные состояния системы. Задайте уравнения и переменные как два символьных вектора: уравнения как вектор символьных уравнений и переменные как вектор вызовов символьных функций.

syms  x(t) y(t) z(t) f(t)
eqs = [diff(x(t),t) == x(t) + z(t),...
       diff(y(t),t) == f(t), x(t) == y(t)];
vars = [x(t), y(t), z(t)];

Использовать isLowIndexDAE для проверки дифференциального индекса системы. Для этой системы isLowIndexDAE прибыль 0 (false). Это означает, что дифференциальный индекс системы 2 или выше.

isLowIndexDAE(eqs, vars)
ans =
  logical
   0

Использовать reduceDAEIndex переписать систему таким образом, чтобы дифференциальный индекс был 1. Вызов этой функции с четырьмя выходными аргументами также показывает дифференциальный индекс исходной системы. Новая система имеет одну дополнительную переменную состояния, Dyt(t).

[newEqs, newVars, ~, oldIndex] = reduceDAEIndex(eqs, vars)
newEqs =
 diff(x(t), t) - z(t) - x(t)
               Dyt(t) - f(t)
                 x(t) - y(t)
      diff(x(t), t) - Dyt(t)

newVars =
   x(t)
   y(t)
   z(t)
 Dyt(t)

oldIndex =
     2

Проверьте, не ниже ли дифференциальный порядок новой системы 2.

isLowIndexDAE(newEqs, newVars)
ans =
  logical
   1

Входные аргументы

свернуть все

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

Переменные состояния, определяемые как вектор символьных функций или вызовов функций, например x(t).

Пример: [x(t),y(t)]

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