Этот раздел описывает важные характеристики математических представлений физических систем и то, как Simscape™ программное обеспечение реализует такие представления. Вы можете найти этот обзор полезным, если вы:
Потребуйте подробностей таких представлений, чтобы улучшить точность вашей модели или эффективность симуляции.
Создаете свои собственные, пользовательские компоненты Simscape с использованием языка Simscape.
Необходимо диагностировать проблемы с моделированием Simscape или отказами симуляции.
Математические представления являются основой для физической симуляции. Для получения дополнительной информации о симуляции см. Раздел «Как работает симуляция Simscape».
Математическое представление физической системы содержит обыкновенные дифференциальные уравнения (ОДУ), алгебраические уравнения или оба.
ОДУ регулируют скорости изменения системных переменных и содержат некоторые или все производные по времени от системных переменных.
Алгебраические уравнения задают функциональные ограничения среди системных переменных, но не содержат производных по времени от системных переменных.
Без алгебраических ограничений система является дифференциальной (ОДУ).
Без ОДУ система алгебраическая.
С ОДУ и алгебраическими ограничениями система является смешанной дифференциально-алгебраической (ДАУ).
Системная переменная дифференциальна или алгебраична, в зависимости от того, появится ли ее производная по времени в системных уравнениях.
Математическая задача жесткая, если решение, которое вы ищете, изменяется медленно, но существуют другие решения в допусках ошибок, которые изменяются быстро. Жесткая система имеет несколько собственных временных шкал очень различной величины [1].
Жесткая физическая система имеет один или несколько компонентов, которые ведут себя «жестко» в обычном смысле, таких как пружина с большим коэффициентом упругости. Математические эквиваленты включают квази-несжимаемые жидкости и низкую электрическую индуктивность. Такие системы часто проявляют высокую частоту колебания в некоторых из их компонентов или режимов.
События являются прерывистыми изменениями состояния или динамики системы по мере развития системы во времени; для примера, открытия клапана или жёсткого упора. Для получения дополнительной информации о том, как события представлены в языке Simscape, смотрите Дискретное моделирование событий.
Пересечение нуля является определенным типом события, представленным значением знака изменения математической функции. Решатели с переменным шагом делают меньшие шаги, когда они обнаруживают событие пересечения нулем. Меньшие шаги помогают захватить динамику, которая вызывает пересечение нуля, но они также значительно замедляют симуляцию. Различные методы обнаружения и анализа пересечения нуля помогают вам установить правильный баланс между скоростью симуляции и точностью. Для получения дополнительной информации смотрите Управление пересечениями нуля в Simscape Models.
Модель Simscape эквивалентна набору уравнений, представляющих одну или несколько физических систем в качестве физических сетей.
Начните с того, что предположим, что ваша физическая сеть является системой ДАУ: смесью дифференциальных и алгебраических уравнений и переменных.
Помните, что некоторые физические сети представлены только ОДУ.
Физические сети могут содержать жесткие дифференциальные уравнения.
Идентифицируйте дискретные и непрерывные компоненты, которые могут изменяться прерывисто во время симуляции.
Ваша модель может содержать условия пересечения нулем, возникающие из нескольких источников:
Simscape и Simulink® блоки, скопированные из их аналогичного блока библиотек
Пользовательские блоки, запрограммированные на языке Simscape
Программное обеспечение Simulink имеет глобальные методы управления событиями пересечения нулем. Для получения дополнительной информации смотрите Обнаружение пересечения нулем.
Вы можете отключить обнаружение пересечения нулем на отдельных блоках или глобально на всей модели. Обнаружение пересечения нулем часто улучшает точность симуляции, но может замедлить скорость симуляции.
Совет
Если точное время пересечений нуля важно в вашей модели, сохраните пересечение нулем обнаружение включенным. Отключение его может привести к основным неточностям симуляции.
В дополнение к общим методам Simulink, программное обеспечение Simscape имеет определенные инструменты, которые позволяют вам обнаруживать и управлять пересечениями нулем в ваших моделях:
Перед симуляцией можно использовать Statistics Viewer, чтобы идентифицировать потенциальные сигналы пересечения нулем в модели. Эти сигналы обычно генерируются операторами и функциями, которые содержат разрывы, такими как операторы сравнения, abs
, sqrt
функций и так далее. Во время симуляции ни один из этих сигналов не может создать событие пересечения нулем или для одного или нескольких из этих сигналов, имеющих несколько событий пересечения нулем. Для получения дополнительной информации смотрите Просмотр статистики модели.
При регистрации данных моделирования для модели можно выбрать опцию Log simulation statistics. Затем журнал данных включает фактические данные пересечения нулем во время симуляции. Для получения дополнительной информации смотрите Журнал статистики симуляции.
Вы можете получить доступ и проанализировать данные пересечения нулем, записанные во время симуляции, с помощью Simscape Results Explorer. Дополнительные сведения см. в разделе О Simscape Results Explorer.
sscprintzcs
функция печатает информацию о пересечениях нуля, обнаруженных во время симуляции, на основе записанных данных моделирования. Прежде чем вы вызываете эту функцию, вы должны иметь переменную журнала симуляции, которая включает данные статистики симуляции, в текущей рабочей области. Для получения дополнительной информации и примеров см. sscprintzcs
.
Управление пересечением нуля особенно важно, когда вы готовите свои модели к симуляции в реальном времени. Подробный пример этого рабочего процесса см. в разделе Сокращение пересечений нуля.
При написании кода для собственных пользовательских блоков с использованием языка Simscape можно создать или избежать условий пересечения нулем в модели путем переключения между различными реализациями прерывистых условных выражений. Вы можете:
Используйте реляционные операторы, которые создают условия пересечения нулем. Для примера, программирование отношения оператора: a < b
создает условие пересечения нулем.
Используйте реляционные функции, которые не создают условий пересечения нулем. Для примера программирование функционального отношения: lt(a,b)
не создает условие пересечения нулем. Для получения дополнительной информации о том, создает ли конкретная функция разрывы при использовании в языке Simscape, см. equations
.
Примечание
Использование реляционных функций, таких как lt(a,b)
, в предикатах событий всегда создает условие пересечения нулем. Для получения дополнительной информации о предикатах событий см. «Дискретное моделирование событий».
[1] Moler, C. B., Numerical Computing with MATLAB, Philadelphia, Society for Industrial and Applied Mathematics, 2004, chapter 7
[2] Horowitz, P. and Hill, W., The Art of Electronics, 2nd Ed., Cambridge, Cambridge University Press, 1989, chapter 2
[3] Brogan, W. L., Modern Control Theory, 2nd Ed., Englewood Cliffs, New Jersey, Prentice Hall, 1985