Первая фаза симуляции происходит, когда модель системы открыта, и вы симулируете модель. В Редакторе Simulink® нажмите Run. Выполнение симуляции заставляет механизм Simulink вызывать компилятор модели. Компилятор модели преобразует модель в исполняемую форму, процесс вызвал компиляцию. В частности, компилятор:
Выполняет выражения параметров блоков модели, чтобы определить их значения.
Определяет атрибуты сигнала, например, имя, тип данных, числовой тип и размерность, не явным образом заданная моделью, и проверяет, что каждый блок может принять сигналы, соединенные с его входными параметрами.
Названное распространение атрибута процесса используется, чтобы определить незаданные атрибуты. Этот процесс влечет за собой распространение атрибутов исходного сигнала к входным параметрам блоков, что это управляет.
Выполняет оптимизацию сокращения блока.
Сглаживает иерархию модели, заменяя виртуальные подсистемы на блоки, которые они содержат (см., Сравнивают Решатели).
Определяет порядок выполнения блока основанной на задаче сортировкой.
Определяет шаги расчета всех блоков в модели, шаги расчета которой вы явным образом не задавали (см., Как Распространение Влияет на Наследованные Шаги расчета).
Эти события являются по существу тем же самым как, что происходит, когда вы обновляете схему (Схема обновления и Симуляция Запуска). Различие - то, что программное обеспечение Simulink запускает компиляцию модели как часть симуляции модели, куда компиляция приводит непосредственно в соединяющуюся фазу, как описано в Фазе Ссылки. В отличие от этого вы запускаете явное обновление модели как автономную работу на модели.
В этой фазе механизм Simulink выделяет память, необходимую для рабочих областей (сигналы, состояния и параметры периода выполнения) для выполнения блок-схемы. Это также выделяет и инициализирует память для структур данных, которые хранят информацию о выполнении для каждого блока. Для встроенных блоков основная структура данных во время выполнения для блока называется SimBlock. Это хранит указатели на буферы и состояние ввода и вывода блока, и работайте векторы.
В фазе Link механизм Simulink также создает списки осуществлений метода. Эти списки перечисляют самый эффективный порядок, в котором можно вызвать методы блока модели, чтобы вычислить его выходные параметры. Отсортированные списки заказов блока, сгенерированные во время фазы компиляции модели, используются, чтобы создать списки осуществлений метода.
Можно присвоить приоритеты обновления блокам. Выходные методы более высоких приоритетных блоков выполняются перед теми из более низких приоритетных блоков. Приоритеты соблюдаются, только если они сопоставимы с его правилами блочной сортировки.
Если Фаза Ссылки завершается, симуляция вводит фазу цикла симуляции. В этой фазе механизм Simulink последовательно вычисляет состояния и выходные параметры системы с промежутками со времени начала симуляции ко времени окончания, с помощью информации, предоставленной моделью. Последовательные моменты времени, в которых вычисляются состояния и выходные параметры, называются временными шагами. Отрезок времени между шагами называется размером шага. Размер шага зависит от типа решателя (см., Выдерживают сравнение, Решатели) использовался для расчета непрерывных состояний системы, основной шаг расчета системы (см. Шаги расчета в Системах), и ли непрерывные состояния системы имеют разрывы (см. Обнаружение Пересечения нулем).
Фаза Simulation Loop имеет две подфазы: фаза Loop Initialization и фаза Loop Iteration. Фаза инициализации происходит однажды, в начале цикла. Фаза итерации повторяется однажды на временной шаг со времени начала симуляции ко времени остановки симуляции.
В начале симуляции модель задает начальные состояния и выходные параметры системы, которая будет симулирована. На каждом шаге вычисляются новые значения для входных параметров системы, состояний и выходных параметров, и модель обновляется, чтобы отразить вычисленные значения. В конце симуляции модель отражает окончательные значения входных параметров системы, состояний и выходных параметров. Программное обеспечение Simulink обеспечивает отображение данных и регистрирующие блоки. Можно отобразить и/или регистрировать промежуточные результаты включением этих блоков в модели.
Следующая блок-схема объясняет, как цикл симуляции работает где k
обозначает счетчик существенного шага:
На каждом временном шаге, механизме Simulink:
Вычисляет выходные параметры модели.
Механизм Simulink инициирует этот шаг путем вызова модели Simulink Выходной метод. Метод модели Outputs в свою очередь вызывает систему модели Выходной метод, который вызывает Выходные методы блоков, которые модель содержит в порядке, заданном Выходными списками осуществлений метода, сгенерированными в фазе Link симуляции (см., Сравнивают Решатели).
Система Выходной метод передает следующие аргументы каждому методу блока Outputs: указатель на структуру данных блока и на ее структуру SimBlock. Структуры данных SimBlock указывают на информацию, что Выходной метод должен вычислить выходные параметры блока, включая местоположение его входных буферов и его буферов вывода.
Вычисляет состояния модели.
Механизм Simulink вычисляет состояния модели путем вызова решателя. Какой решатель, который это вызывает, зависит от того, не имеет ли модель никаких состояний, только дискретные состояния, только непрерывные состояния, или и непрерывные и дискретные состояния.
Если модель имеет только дискретные состояния, механизм Simulink вызывает дискретный решатель, выбранный пользователем. Решатель вычисляет размер временного шага, должен был поразить шаги расчета модели. Это затем вызывает метод Обновления модели. Метод модели Update вызывает метод Обновления своей системы, которая вызывает методы Обновления каждого из блоков, которые система содержит в порядке, заданном списками методов Обновления, сгенерированными в фазе Link.
Если модель имеет только непрерывные состояния, механизм Simulink вызывает непрерывный решатель, заданный моделью. В зависимости от решателя решатель или в свою очередь вызывает метод Производных модели однажды или вводит подцикл незначительных временных шагов, где решатель неоднократно вызывает Выходные методы модели и методы Производных, чтобы вычислить выходные параметры модели и производные в последовательных интервалах в главном временном шаге. Это сделано, чтобы увеличить точность расчета состояния. Метод модели Outputs и методы Производных в свою очередь вызывают их соответствующие системные методы, которые вызывают блок Outputs и Derivatives в порядке, заданном Выходными параметрами и списками осуществлений методов Производных, сгенерированными в фазе Link.
Опционально проверки на разрывы в непрерывных состояниях блоков.
Названное обнаружение пересечения нулем метода используется, чтобы обнаружить разрывы в непрерывных состояниях. Смотрите Обнаружение Пересечения нулем для получения дополнительной информации.
Вычисляет время для следующего временного шага.
Шаги 1 - 4 повторяются, пока время остановки симуляции не достигнуто.