一、通过simulink函数手工创建:
% function res_adc_a = add_adc_a(block_pach,adc_a_param)
% %删除模型中内容
% %添加所需模块
% %连线
% %设置相应参数
% %关闭库模块系统
% %保存
%
% %为了保证正确性的情况下,打开fig的第一时间获取该模块的gcb,传进函数中
% path = gcb; %获取子系统路径
% Simulink.SubSystem.deleteContents(path); %删除子系统中内容
% load_system('ADCLibrary'); %打开源地址
%
% %添加模块In_a
% add_block('ADCLibrary/In_a', strcat(path,'/In_a'));
% set_param(strcat(path,'/In_a'), 'Position', [60 73 90 87]);
% %添加模块adc_a(GetWay In)
% add_block('ADCLibrary/adc_a', strcat(path,'/adc_a'));
% set_param(strcat(path,'/adc_a'), 'Position', [140 70 205 90]);
% %添加模块Convert_a
% add_block('ADCLibrary/Convert_a', strcat(path,'/Convert_a'));
% set_param(strcat(path,'/Convert_a'), 'Position', [260 65 305 95]);
% %添加模块Out_a
% add_block('ADCLibrary/Out_a', strcat(path,'/Out_a'));
% set_param(strcat(path,'/Out_a'), 'Position', [365 73 395 87]);
%
% %连线
% add_line(path,'In_a/1','adc_a/1');
% add_line(path,'adc_a/1','Convert_a/1');
% add_line(path,'Convert_a/1','Out_a/1');
%
% %设置参数
%
% %关闭库模块系统
% close_system('ADCLibrary');
% %保存模型(用户自己保存)
% %save_system(model_name);
二、通过simulink函数快速创建:
(首先创建需要的源模块库,如:('ADACLibrary');)
%添加add_adc_a
function res_adc_a = add_adc_a()
path = gcb; %获取当前路径
Simulink.SubSystem.deleteContents(path);%删除子系统中内容
load_system('ADACLibrary'); %加载源模块库
new_system('temp_adc_a'); %新建中转系统
Simulink.SubSystem.copyContentsToBlockDiagram('ADACLibrary/ADC_A', 'temp_adc_a');
Simulink.BlockDiagram.copyContentsToSubSystem('temp_adc_a', path);
close_system('ADACLibrary');
save_system('temp_adc_a');
close_system('temp_adc_a');
delete('temp_adc_a.mdl'); %删除中转系统
res_adc_a = 1;
这两种方法针对不同的情况各有优势。