Jump to content

    

Matlab Simulink - запустить симуляцию из скрипта, остановить в нужное время, изменить состояние

Привет

А может кто-то вспомнить. Знаю, что в Симулине можно запускать моделирование из скрипта. А можно ли его поставить на паузу в определенное время (по отношению к симуляции)? А потом изменить программно состояние switch и запустить дальше? Нужно для автоматизации тестов.

Share this post


Link to post
Share on other sites

В лоб решить проблему врядли получится.

Попробуйте что-то типа такого:

load_system(my_model);

set_param('my_model','SimulationCommand','start');

Внутри модели подайте на matlab_function управляющий сигнал(например по счётчику), и в самой функции напишите что-нибудь типа такого:

x = 33;

set_param('my_model/Slider Gain','gain', num2str(x));

Ну или просто по счётчику выставить сигнал переключения свитчем.

Также можно поиграться с функцией get_param. Может что и получится.

Share this post


Link to post
Share on other sites

Не, я нашел простой способ, кстати описан у Matlaba в хелпе. Использовать clock и сравнивать его с константой. Выход подключить к assertion и там вызывать функцию pause модели. То есть перед set_param('my_model','SimulationCommand','start'); надо обновить значение констаны и тогда модель будет моделироваться сколько нужно, а потом вставать на паузу точно по времени.

Единственное, что set_param('my_model','SimulationCommand','start'); - это не блокирующая функция, поэтому надо ждать от симуляции ответ get_param, что она остановилась.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now