Скорость и точность являются определяющими факторами для того, чтобы сделать вашу модель способной в реальном времени. Ваша модель способна в реальном времени, если она удовлетворяет обоим этим условиям, когда вы моделируете ее на вашем конкретном целевом компьютере:
Переполнений нет.
Результаты симуляции соответствуют вашим критериям точности.
Скорость объективна. Часы в реальном времени определяют, является ли ваша модель достаточно быстрой для симуляции в реальном времени. Для каждого шага, который принимает ваш решатель, ваша аппаратная система в реальном времени отслеживает время, необходимое для выполнения этих задач обработки:
Выполните симуляцию.
Обработка входа и выхода.
Выполните общие компьютерные задачи.
Переполнение происходит, когда для любого временного шага время, которое требуется вашей системе для выполнения задач обработки, превышает предел в реальном времени для задач. Если ваша целевая машина сообщает о переполнении, когда вы используете его для симуляции модели, ваша модель недостаточно быстрая для симуляции в реальном времени.
Ваша Simscape™ модель точна, если она дает результаты, которые согласуются с эмпирическими и теоретическими данными, которые являются базисом для вашей модели. Точность более субъективна, когда основание и данные моделирования аналогичны, но не находятся в абсолютном согласии. Чтобы определить, является ли ваша модель достаточно точной для симуляции в реальном времени, когда данные не совпадают идеально, рассмотрим эти вопросы:
Модель, представляющая явления, которые вы хотите измерить?
Правильно ли это представляет эти явления?
Если вы планируете использовать свою модель для тестирования проектирования контроллера, является ли модель достаточно точной, чтобы получить результаты, на которые можно положиться для проверки системы?
Единственный способ проверить, способна ли ваша модель в реальном времени, - запустить ее на своём фактическом целевом компьютере в реальном времени с помощью решателей с фиксированной степенью и фиксированной стоимостью. Однако можно оценить, является ли модель и быстрой, и достаточно точной для симуляции в реальном времени, проанализировав результаты моделирования рабочего стола. Чтобы оценить, способна ли ваша модель в реальном времени, смотрите Определение размера шага и Оценку вычислительных затрат.
Если анализ из симуляции рабочего стола указывает, что ваша модель, вероятно, не способна в реальном времени, увеличении скорость модели или точность перед развертыванием вашей модели на вашей машине реального времени. Увеличение скорости вашей симуляции имеет тенденцию к снижению точности, и, наоборот, увеличение точности уменьшает скорость. Чтобы сделать вашу модель способной в реальном времени, сохраните баланс между скоростью и точностью.
Скорость симуляции коррелируют с вашим выбором для:
Моделируйте точность и возможности
Аппаратная вычислительная степень в реальном времени
Шаг расчета решателя (размер шага) и количество итераций
Чтобы попытаться увеличить скорость симуляции, потенциально за счет точности:
Уменьшите точность модели или возможности.
Увеличьте шаг расчета.
Уменьшите количество итераций решателя.
Чтобы попытаться повысить точность симуляции, потенциально за счет скорости:
Увеличьте точность модели или возможности.
Уменьшите шаг расчета.
Увеличьте количество итераций решателя.
Чтобы попытаться увеличить и точность, и скорость, или один, не жертвуя другим, увеличьте вычислительную степень. Чтобы увеличить вычислительную степень, используйте более быстрый процессор в реальном времени или вычисляйте параллельно.
Тип решателя, который вы задаете, также влияет на скорость и точность симуляции. Для симуляции с фиксированным шагом локальные решатели Simscape быстрее и точнее, чем Simulink® глобальные решатели. Неявные решатели быстрее, но менее точны, чем явные решатели. Однако числовая жесткость сети также является определяющим для принятия решения использовать ли неявный решатель или явный решатель. Явные решатели дают более точные результаты для численно жестких сетей.
Для получения дополнительной информации о том, как сложность модели влияет на скорость и точность, смотрите Устранение эффектов, которые требуют интенсивных расчетов. Для получения дополнительной информации о том, как строения решателя влияют на скорость и точность, смотрите Оптимизация Локальных и Глобальных строений решателя.
Возможно, что нет комбинации сложности модели и настроек решателя, которые могут сделать вашу модель способной в реальном времени. Если симуляция не запускается в режиме реального времени на целевой машине, или если точность недопустима, рассмотрите эти опции для повышения скорости и точности:
Если ваш анализ моделирования рабочего стола указывает, что ваша модель, вероятно, недостаточно быстрая для симуляции в реальном времени, устраните эффекты, которые требуют интенсивных расчетов. Идентифицируйте элементы вашей модели, которые вызывают дорогостоящие эффекты, такие как разрывы и быстрые изменения, которые, как правило, замедляют симуляции.
Элементы, которые вызывают разрывы, включают:
Жёсткие упоры или люфт
Трение при скольжении
Разъединители или муфты
Элементы с маленькими постоянными времени, которые вызывают быстрые изменения, включают:
Небольшие массы, прикрепленные к жестким пружинам с минимальным демпфированием
Электрические цепи с низкой емкостью, индуктивностью и сопротивлением
Гидравлические цепи с малыми сжимаемыми объемами
Чтобы исключить или изменить элементы, которые ответственны за эффекты, замедляющие вашу симуляцию, используйте следующие подходы:
Замените нелинейные компоненты на линеаризированные версии.
Замените комплексные уравнения интерполяционными таблицами для их решения.
Замените сложные компоненты упрощенными моделями.
Сглаживайте прерывистые функции (изменения шагов) с помощью фильтров, задержек и других методов.
Вы также можете повлиять на скорость и точность вашей симуляции с помощью спецификаций решателя. Уровень точности, который поставляет ваша машина реального времени, не обязательно коррелирует с определенным размером шага во всех сетях в одной модели. Машина реального времени может дать точные результаты для простой сети в вашей модели, но неточные результаты для более сложной сети. Воспользуйтесь возможностью задать другой решатель строений для каждой сети в вашей модели Simscape. Чтобы помочь сделать вашу модель способной в реальном времени, сконфигурируйте свой глобальный решатель с фиксированным шагом и каждый локальный решатель индивидуально.
Для получения информации об опциях решателя и определении решателей, которые помогают сделать вашу модель Simscape способной в реальном времени, смотрите Решатели для симуляции в реальном времени.
Различные цели дают различные уровни точности при использовании одного и того же размера шага для симуляции одной и той же модели. Вы можете ускорить или увеличить точность симуляции в реальном времени с помощью более быстрого целевого компьютера в реальном времени.
Другой подход для увеличения скорости при сохранении точности состоит в том, чтобы сконфигурировать свою модель, чтобы оценивать несколько физических сетей параллельно. Можно разбить модель, если сети не зависят друг от друга. Работайте и экспериментируйте с вашей моделью, сгенерированным кодом и машиной реального времени, чтобы использовать этот подход.