概述
最近在用Simulink做电路仿真的时候,发现在电路中模块数量较多的时候,对模块参数值进行修改会比较麻烦。经过一番搜索,发现可以通过MATLAB对Simulink中电路模块参数进行赋值。
假设文件名是test.slx,该文件包含以下模块。
根据以上文件介绍以下几个有用的指令:
函数 | 功能 |
get_param('test','Blocks') | 获取test中的模块类型 |
get_param('test/Resistor','Dialogparameters') | 获取test中Resistor的参数类型 |
get_param('test/Resistor','R') | 获取test中Resistor模块R参数的值 |
set_param('test/Resistor','R','0.1') | 将test中Resistor模块R赋值为0.1 |
get_param('test','Blocks') ,获取test中的模块类型,
运行后输出...
ans = 4×1 cell 数组 {'Capacitor' } {'DC Current Source1'} {'Resistor' } {'Voltage Sensor1' } |
get_param('test/Resistor','Dialogparameters'),获取test中Resistor的参数类型
ans = 包含以下字段的struct: R: [1×1 struct] R_unit: [1×1 struct] R_conf: [1×1 struct] ... ... |
get_param('test/Resistor','R'),获取test中Resistor模块R参数的值
ans = '1' |
set_param('test/Resistor','R','0.1'),将test中Resistor模块R赋值为0.1。
对单个模块进行赋值可以使用set_param('test/Resistor','R','value')函数,因此对多个模块赋值可以通过MATLAB编写.m文件使用for循环来实现。
Resistor_name=cell(1,12);%创建模块名称元胞组 value=0.1:0.1:1.2;%创建模块值0.1,0.2,...,1.2 for i=1:12 Resistor_name{i}=strcat('test/Resistor',num2str(i));%将变量命名为test中Resistor名称 set_param(Resistor_name{i},'R',num2str(value(i)));%批量赋值 end |
最后
以上就是辛勤烧鹅为你收集整理的simulink中怎么对参数进行优化_如何使用MATLAB对Simulink中电路模块参数进行批量赋值?...的全部内容,希望文章能够帮你解决simulink中怎么对参数进行优化_如何使用MATLAB对Simulink中电路模块参数进行批量赋值?...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复