Я использую JModelica для моделирования систем DAE и SALib для анализа чувствительности в Python. В каждом найденном примере используются только алгебраические модели без динамического поведения. Таким образом, результаты являются скалярными значениями, и можно применять анализ чувствительности.
Решения для моделей DAE - это траектории относительно времени, зависящего (кроме параметров модели и входных данных) от начальных условий. Чтобы свести это довольно сложное решение к скалярным значениям, я сделал следующее:
- Вариация входов определяется как шаговые входы, где высота шага является переменной частью.
- Я определил эталонное моделирование с конкретными параметрами модели, входными данными (высота шагов, см. Предыдущий пункт) и начальными условиями.
- Все параметры модели и высоты входного шага варьируются в пространстве параметров / ввода, и модель моделируется для каждой комбинации. Начальные условия не изменены.
- Результат каждого моделирования сравнивается с результатом эталонного моделирования с использованием RMSE для получения скалярного веса.
Имеет ли этот подход смысл? Возможно, RMSE искажает мои результаты, и абсолютная ошибка - лучший выбор. Также я не меняю начальные условия. Добавление их в пространство параметров увеличит размерность пространства параметров на 5.
В целом: какова правильная процедура для анализа чувствительности в системах DAE?