使用MATLAB代码构建模型
偶尔,我会使用Matlab命令构建,修改和添加块的疑问。金宝app在这篇文章中,我将提供一个基本概述的共同点模型建设命令。
内容
从一个新系统开始
因为在从M代码执行模型构造时需要引用系统,所以我立即在调用的变量中保存关闭SYS.。这new_system.命令在内存中创建了空模型,您必须致电Open_System.在屏幕上显示它。
sys ='testmodel';new_system(sys)%创建模型Open_System(SYS)%打开模型
添加块和线路
当我向画布添加块时,我指定了提供适当布局的位置。位置参数提供块的左上角(x,y)和右下右(x + w,y + h)角。x和y值相对于画布左上角的原点(0,0);x向右增加,Y增加。要保持我的布局组织,我使用标准块大小30乘30,以及60的偏移量。
x = 30;y = 30;w = 30;H = 30;offset = 60;
我喜欢带有略微不同比例的港口,因此我将它们定义为其他块的高度。add_block.指定定义块名称的源块和目标路径。块名称对于给定系统必须是唯一的add_block.提供A.makenameunique选项。(这里没有使用)
pos = [x y + h / 4 x + w y + h * .75];add_block('内置/ inport',[sys.'/ in1'],'位置',pos);
我将添加一个集成器块,偏移到Inport的右侧。
pos = [(x +偏移)y(x +偏移)+ w y + h];add_block('内置/ Integrator',[sys.'/ int1'],'位置',pos)
要连接块,调用add_line并提供系统名称,源端口和目标端口。港口由此指定'blockname / portnum'格式。默认行路由是从源到目的地的直接线路连接。我更喜欢使用autorouting.选项。
add_line(sys,'In1 / 1'那'int1 / 1'那'autorouting'那'在')
添加多个块和行时,我将它们分组add_block / add_line.对保持自己组织。
pos = [(x +偏移* 2)y(x +偏移* 2)+ w y + h];add_block('内置/ Integrator',[sys.'/ int2'],'位置',pos)add_line(sys,'int1 / 1'那'int2 / 1'那'autorouting'那'在')POS = [(x +偏移* 2)y +偏移(x +偏移* 2)+ w(y +偏移)+ h];add_block('内置/范围',[sys.'/ scope1'],'位置',pos)add_line(sys,'int1 / 1'那'范围1/1'那'autorouting'那'在')
删除块和线条
删除块时,我打电话delete_line.前delete_block.。这与我之前所做的事情相反。命令被分组delete_line / delete_block.对。对于此示例,我将删除积分器INT2.,并添加一个出口。
delete_line(sys,'int1 / 1'那'int2 / 1')delete_block([sys'/ int2'])pos = [(x +偏移* 2)y + h / 4(x +偏移* 2)+ w y + h * .75];add_block('内置/出口',[sys.'/ out1'],'位置',pos)add_line(sys,'int1 / 1'那'out1 / 1')
更换块
有时你真的不想删除一个块,你只是替换它。replace_block.为您提供替换匹配特定标准的所有块的功能。我仔细阅读了阅读文档以更好地了解这个功能。
replace_block(sys,'姓名'那'in1'那'内置/罪'那'noprompt');set_param([sys'/ in1'],'位置',[x y x + w y + h],'姓名'那'正弦波');
[t,x,y] = sim(sys);绘图(t,y),ylim([ - 。5 2.5]),网格在
现在轮到你了
你使用模型建设命令吗?为什么余弦不在零下交叉?给一个在这里评论随着你的想法。
注释
要发表评论,请点击这里登录您的MathWorks帐户或创建新的。