Факторы моделирования с алгебраическими циклами

Управление большими моделями с помощью искусственных алгебраических циклов

Примите эти методы проекта для больших моделей с алгебраическими циклами:

  • Избегайте создания циклов, которые содержат разрывы или типы данных nondouble. Simulink® решатель алгебраического цикла основан на градиенте и должен решить алгебраические ограничения до высокой точности.

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

  • Если вы планируете сгенерировать код для модели, включите параметр Minimize algebraic loop occurrences для всех атомарных подсистем. Когда это возможно, убедитесь, что входные порты для атомарных подсистем соединены непосредственно с сквозными соединениями.

  • Избегайте объединения некорректных и прямолинейных путей с использованием блоков Bus Creator или Mux. Simulink, возможно, не сможет устранить какие-либо результирующие искусственные алгебраические циклы. Вместо этого рассмотрите кластеризацию объектов без прямой и прямой каналов в отдельных подсистемах.

    Используйте блоки Bus Selector, чтобы передать только необходимые сигналы в атомарные подсистемы.

Моделируйте блоки и прямое сквозное соединение

Когда блок Model является частью цикла, и блок является прямой передачей через блок, может возникнуть алгебраический цикл. Алгебраический цикл в модели не обязательно является ошибкой, но может дать неожиданные результаты. См.:

Прямой блок Model сквозного соединения, вызванная ссылочной структурой модели

Блок Model может быть прямой передачей через блок из-за структуры ссылочной модели. Где прямая передача через результаты из структуры модели подмодели и вызывает нежелательный алгебраический цикл, можно:

Прямой блок Modelо сквозного соединения, вызванной строением модели

Типовой метод реального времени (grt) и встроенного реального времени (ert) базирующиеся цели обеспечивают опцию Single output/update function в диалоговом окне Configuration Parameters. Эта опция контролирует, имеет ли сгенерированный код отдельные функции выхода и обновления или объединенную функцию вывода/обновления. См.:

Когда включена функция Single output/update (по умолчанию), блок Model имеет объединенную функцию output/update. Функция делает блок прямой передачей через блок для всех входных портов, независимо от структуры ссылочной модели. Там, где получается нежелательный алгебраический цикл, можно:

  • Отключите одну функцию вывода/обновления. Код для блока Model затем имеет отдельные выходы и обновленные функции, устраняя прямую передачу через и, следовательно, алгебраический цикл.

  • Вручную вставьте один или несколько блоков Unit Delay по мере необходимости, чтобы прервать алгебраический цикл.

Изменение приоритетов блоков при использовании Алгебраического Решателя Цикла

Во время фазы обновления симуляции Simulink определяет порядок выполнения симуляции блочных методов. Это упорядоченное расположение вызова блока является execution order.

Если вы присваиваете приоритеты невиртуальным блокам, чтобы указать Simulink их порядок выполнения относительно других блоков, решатель алгебраического цикла не чтит эти приоритеты при попытке решить какие-либо алгебраические циклы.

Похожие темы