isLowIndexDAE

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

Синтаксис

Описание

пример

isLowIndexDAE(eqs,vars) проверки, если система eqs из полулинейных дифференциальных алгебраических уравнений первого порядка (ДАУ) имеет низкий дифференциальный индекс. Если дифференциальным индексом системы является 0 или 1, затем isLowIndexDAE возвращает логический 1 TRUE. Если дифференциальный индекс 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)yt , и 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 ложь). Это означает, что дифференциальным индексом системы является 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