Автоматизируйте настройку модели при помощи скрипта

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

Этот пример показывает три различных способа программно настроить настройку вашей модели:

  • Отредактируйте существующую активную конфигурацию модели модели

  • Создайте и отредактируйте новую конфигурацию модели в модели

  • Создайте ссылку настройки, которая указывает на автономную конфигурацию модели

В данном примере используйте модель sldemo_mdlref_depgraph.

model = 'sldemo_mdlref_depgraph';
open_system(model)

Отредактируйте активную конфигурацию модели

Чтобы управлять конфигурацией модели, которая сопоставлена с моделью, используйте ConfigSet объект, который представляет конфигурацию модели. В данном примере используйте настройку, которая активна для модели.

activeConfigObj = getActiveConfigSet(model);
get_param(activeConfigObj,'Name')
ans = 
'Configuration'

Активной настройкой для модели является Configuration. Чтобы видеть текущие значения параметров в настройке, используйте get_param функционируйте и ConfigSet объект.

get_param(activeConfigObj,'StopTime')
ans = 
'2*24*60*60'

Переименуйте конфигурацию модели в UpdatedConfig.

set_param(activeConfigObj,'Name','UpdatedConfig');

В данном примере установите время остановки 200 и измените тип решателя в решатель переменного шага.

set_param(activeConfigObj,'StopTime','200');
set_param(activeConfigObj,'SolverType','Variable-step');

Создайте и активируйте конфигурацию модели

Когда это необходимо, чтобы изменить настройку модели и сохранить исходные значения параметров ее активной настройки, создайте и активируйте новую конфигурацию модели в модели. Чтобы создать другую конфигурацию модели, скопируйте существующую конфигурацию модели и присоедините копию к модели. Чтобы избежать конфликтов по совпадению имен, когда вы присоединяете копию, или переименовываете копию прежде, чем присоединить его или устанавливают allowRename, дополнительный третий аргумент attachConfigSet, к true.

В данном примере скопируйте активную конфигурацию модели. Переименуйте копию в ConfigCopy и присоедините его к модели.

newConfigObj = copy(activeConfigObj);
set_param(newConfigObj,'Name','ConfigCopy');
attachConfigSet(model, newConfigObj);

Когда вы присоединяете конфигурацию модели к модели, это неактивно. Можно управлять неактивными настройками таким же образом, что вы управляете активной конфигурацией модели. Чтобы использовать новую настройку, активируйте его для модели.

set_param(newConfigObj,'SolverType','Fixed-step');

setActiveConfigSet(model,'ConfigCopy');
activeConfigSet = getActiveConfigSet(model);
get_param(activeConfigSet,'Name')
ans = 
'ConfigCopy'

Теперь ConfigCopy активная конфигурация модели.

Настройте ссылку настройки

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

В данном примере сконфигурируйте модель vdp использовать ссылку настройки. Во-первых, создайте автономную конфигурацию модели в базовом рабочем пространстве путем копирования активной конфигурации модели модели. Автономной настройкой является ConfigSet объект представлен переменной freeConfigSet. Можно пропустить этот шаг, если вы хотите сослаться на существующую автономную конфигурацию модели.

model = 'vdp';
open_system(model)

freeConfigSet = copy(getActiveConfigSet(model));

Создайте ссылку настройки. Чтобы указать ссылку на вашу автономную настройку, установите SourceName свойство к freeConfigSet, переменная, которая представляет вашу настройку. Новой ссылкой является ConfigSetRef объект представлен переменной configRef. Назовите ссылочный vdpConfigRef.

configRef = Simulink.ConfigSetRef;
set_param(configRef,'SourceName','freeConfigSet')
set_param(configRef,'Name','VdpConfigRef')

Присоедините ссылку настройки на модель vdp при помощи ConfigSetRef объект. Можно присоединить ссылку только на одну модель. Чтобы использовать ссылку настройки в модели, активируйте его.

attachConfigSet('vdp',configRef);
setActiveConfigSet('vdp','VdpConfigRef');

Теперь, когда вы изменяете конфигурацию модели что объект freeConfigSet представляет, изменения применяются к модели.

Можно получить значения параметров в ссылке настройки при помощи get_param. Однако вы не можете изменить значения параметров непосредственно в ссылке настройки. Чтобы изменить значения, необходимо использовать ConfigSet объект, который представляет автономную конфигурацию модели, на которую ссылаются. Получите автономную конфигурацию модели от ссылки настройки при помощи getRefConfigSet метод.

referencedConfigObj = getRefConfigSet(configRef);

Теперь referencedConfigObj представляет ту же автономную конфигурацию модели что ваша ссылка моделей. freeConfigSet представляет ту конфигурацию модели также. Используйте объект конфигурации модели изменить значения параметров в конфигурации модели, на которую ссылаются. Эти изменения применяются к каждой модели, это ссылается на настройку.

set_param(referencedConfigObj,'SignalLogging','off');
set_param(referencedConfigObj,'StartTime','10');

Похожие темы