Моделирование факторов с алгебраическими циклами

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

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

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

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

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

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

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

Блоки Model и прямое сквозное соединение

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

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

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

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

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

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

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

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

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

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

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

Похожие темы