Сокращение времени расчета для производных блоков в SimMechanics - PullRequest
1 голос
/ 04 октября 2009

У меня есть программа в SimMechanics, которая использует 6 производных блоков (du / dt). Время симуляции составляет около 24 часов. Есть ли способ сократить время расчета производных блоков Simulink?

Ответы [ 2 ]

1 голос
/ 04 октября 2009

Методы Рунге-Кутты (называемые ODE45 или ODE23 на диалекте Matlab) не всегда полезны при механических проблемах из-за лучшей производительности при настройке срезов с переменным временем. Перейдите к настройке с фиксированным временем и выберите решатель, оценив порядок ошибок, который вы можете допустить. Обратитесь к документации Matlab (и к некоторым текстам числового анализа тоже :-)) для более подробной информации.

Подумайте также, нужна ли вашей проблеме техника разрешения с жесткой поддержкой. Огромные постоянные термины могут привести к нестабильности вашего решателя, если не будут правильно обработаны.

1 голос
/ 04 октября 2009

Вы не говорите, каков ваш временной шаг интеграции. Если это порядка миллисекунд, и вы имитируете общее время переходного процесса 10 секунд, это означает 10000 временных шагов.

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

На это также влияет схема интеграции, которую вы используете. Хорошо известно, что явная интеграция имеет проблемы со стабильностью для больших временных шагов, поэтому, если вы используете метод интеграции Эйлера, вам придется использовать небольшой временной шаг.

Возможно, вы можете переключить свою схему интеграции на неявный метод, Runge Kutta 5-го порядка с исправлением ошибок или Burlich-Storer. Подробности смотрите в документации.

Вы не предоставили полезной информации о физике интересующей системы, размере модели или ваших вариантах моделирования, так что все это обоснованное предположение с моей стороны.

...