Если вы хотите использовать ту же настройку настройки во многих моделях, можно записать скрипт, чтобы программно сконфигурировать каждую модель таким же образом. Можно использовать скрипт, чтобы заархивировать и сравнить параметры конфигурации, которые используют модели.
Этот пример показывает три различных способа программно настроить настройку вашей модели:
Отредактируйте существующую активную конфигурацию модели модели
Создайте и отредактируйте новую конфигурацию модели в модели
Создайте ссылку настройки, которая указывает на автономную конфигурацию модели
В данном примере используйте модель 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(activeConfigObj,'Name')
ans = 'UpdatedConfig'
Теперь 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');