Как работает симулятор Simulink? - PullRequest
8 голосов
/ 07 октября 2010

Я бы хотел понять, как работает симулятор Simulink. Использует ли он механизм дискретного моделирования событий (тогда как обрабатывается непрерывное время?)? Зависит ли он от генерации кода на основе статического цикла? Или?

Ответы [ 2 ]

4 голосов
/ 23 декабря 2010

Перед первым циклом выясняется порядок выполнения блоков (начиная с тех, которые не требуют ввода от каких-либо других блоков)

Каждый цикл вычисляет выход каждого блока на основе входных данных и кода блока. Код каждого блока статичен, он в основном существовал до того, как вы сложили модель. (Я не знаю, действительно ли параметры блока изменяют код или они оцениваются только во время выполнения, на каждой итерации.)

Если шаг моделирования является переменным, то каждый цикл рассчитывает размер следующего шага, основываясь главным образом на том, насколько быстро изменяются переменные модели. Чем быстрее они меняются, тем меньше должен быть размер шага, поэтому кратковременная высокая производная не должна существовать намного дольше, чем должна. (Я не знаю деталей этого вычисления, может быть, кто-то еще может пролить свет?) Итак, «непрерывное» моделирование или переменный шаг только означает, что Simulink будет делать обоснованное предположение в каждом цикле о том, какой размер шага достаточно мал сохранить погрешность квантования времени на приемлемом уровне. По-настоящему непрерывное моделирование буквально невозможно на полностью цифровом оборудовании, таком как процессор вашего компьютера.

0 голосов
/ 23 декабря 2010

Я, конечно, не эксперт, но ответ, скорее всего, будет «это зависит».

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

...