比较数值的反应和块和和MATLAB函数块
这个例子展示了如何生成模拟输入和使用它们来练习一个模型对其完整的操作范围。在本例中,生成测试数据来模拟模型和比较的数值响应和块,并在MATLAB®和实现的功能块ex_testsum
模型。
打开模型。
模型=“ex_testsum”;open_system(模型);
指定数据属性和生成数据
使用fixed.DataSpecification
指定输入数据对象的属性。在这个示例中,创建了两个DataSpecification
对象,一个双精度的数据类型,另一个使用单精度的数据类型。值的时间间隔生成的第一个对象从1到64,和间隔的值所产生的第二个是从1到32。
dataspec1 = fixed.DataSpecification (“双”,“间隔”,{64});dataspec2 = fixed.DataSpecification (“单一”,“间隔”32、{1});
的DataGenerator
对象生成numerically-rich的组合值。使用仿真软件的输出数据®模型,设置的格式输出金宝app“timeseries”
。
datagen = fixed.DataGenerator;datagen。DataSpecifications = {dataspec1, dataspec2};[tsdata1, tsdata2] = outputAllData (datagen,“timeseries”);
建立模型和模拟
应用的属性DataSpecification
对象的轮廓尺寸块模型。
set_param (“ex_testsum /三机一体”,…“OutDataTypeStr”dataspec1.DataTypeStr,…“SignalType”dataspec1.Complexity,…“PortDimensions”,(“(”num2str (dataspec1.Dimensions)“]”])set_param (“ex_testsum / In2”,…“OutDataTypeStr”dataspec2.DataTypeStr,…“SignalType”dataspec2.Complexity,…“PortDimensions”,(“(”num2str (dataspec2.Dimensions)“]”])
生成的timeseries数据加载到模型和模拟。
set_param(模型,“LoadExternalInput”,“上”,…“ExternalInput”,“tsdata1, tsdata2”,…“StopTime”字符串(tsdata1.Time(结束)));simout = sim(模型);
可视化输出
可视化仿真的输出,和比较的数值行为的两个实现和操作。
得到的惟一值为每个数据集生成的数据。
(x, y) = datagen.getUniqueValues;d = abs (simout.yout {1} . values。数据——simout.yout {2} .Values.Data);X =重塑(tsdata1。数据元素个数(x) []);Y =重塑(tsdata2。数据元素个数(x) []);D =重塑(D,元素个数(x) []);
情节之间的不同输出作为输入值的函数。
图;冲浪(X, Y, D,“EdgeColor”,“没有”);网格在;视图(2);轴紧;包含(“三机”);ylabel (“In2”);colorbar;标题(abs (MATLAB功能块输出——和块输出)”);
的情节,可以看出两者的区别实现增加数字输入的值变大。这种差异是由于不同数据类型的蓄电池两种实现。
比较数值响应与单精度蓄电池
的蓄电池数据类型和块的参数设置继承:继承通过内部规则
。在这种情况下,数据类型用于蓄电池是双精度浮点类型。设置蓄电池数据类型来单
和比较输出了。
set_param([模型,/笔的),“AccumDataTypeStr”,“单一”)simout = sim(模型);
可视化输出。当蓄电池类型和块的设置单
,实现返回相同的结果值。
(x, y) = datagen.getUniqueValues;d = abs (simout.yout {1} . values。数据——simout.yout {2} .Values.Data);X =重塑(tsdata1。数据元素个数(x) []);Y =重塑(tsdata2。数据元素个数(x) []);D =重塑(D,元素个数(x) []);图;冲浪(X, Y, D,“EdgeColor”,“没有”);网格在;视图(2);轴紧;包含(“三机”);ylabel (“In2”);colorbar;标题(abs (MATLAB功能块输出——和块输出)”);