加载数据模型层次结构模型变步输入
模型层次结构可以包括离散和连续操作的组件有不同的动力学。你可能会模拟模型层次结构,同时包含离散和连续使用变步解算器组件。
开发每一个组件时,您可以模拟引用的模型,实现了组件作为一个优秀的模型。而不是输入数据来自模型层次结构,尺寸块加载外部输入数据您指定使用输入模型配置参数。
这个例子展示了如何使用输出*模型配置参数,以确保这种模拟捕捉动态的连续输入信号从变步模拟记录。有关更多信息,请参见控制模型加载输入数据。
开顶柜模型
打开模型ContinuousPlant
。模型包含一个转移Fcn块,模型一个连续的植物。步块提供了连续的输入装置。植物输出信号连接到一个输出端口和一个参考模型,过程信号使用离散算法。该算法计算的数量达到一个值的振荡1.5
或更高版本。模型使用顶部变步解算器来捕获的连续动态。
mdl =“ContinuousPlant”;open_system (mdl)
模拟顶级模特
假设你想要测试和改进模型CountOscillations
在隔离。您可以使用上面的数据记录从模拟模型作为输入数据时模拟引用模型作为一个优秀的模型。
模拟模型。在仿真软件上®金宝app将来发布的模拟选项卡上,单击运行。另外,使用sim卡
函数。
= sim (mdl);
得到两个输出的记录数据阶跃响应
和振荡数
。
你= out.yout;stepResp = getElement(你,“阶跃响应”);oscCount = getElement(你,“振荡”);
绘制植物阶跃响应。情节表明,阶跃响应阻尼和算法7
超过一个值的振荡1.5
。
图(1)次要情节(2,1,1)情节(stepResp.Values)次要情节(2,1,2)情节(oscCount.Values)
模拟参考模型作为模型
打开模型CountOscillations
作为一个优秀的模型。
mdl2 =“CountOscillations”;open_system (mdl2)
配置模型加载数据的变量stepResp
作为模拟输入。
在仿真软件将来金宝app发布,建模选项卡上,单击模型设置。
选择数据导入/导出窗格。
选择输入。
在输入字段中,输入
stepResp
。点击好吧。
或者,您可以配置模拟加载外部输入数据编程,使用金宝appSimulink.SimulationInput
对象。
创建一个金宝appSimulink.SimulationInput
对象引用的模型。然后,使用setExternalInput
函数来指定的外部输入模拟变量stepResp
。
思敏= Simu金宝applink.SimulationInput (mdl2);思敏= setExternalInput(思敏,“stepResp”);
看看模型加载输入数据,标记记录的输入信号。选择信号阶跃响应
。然后,在模拟选项卡上,单击测井信号。
或者,您可以标记日志使用的信号金宝appSimulink.sdi.markSignalsForStreaming
函数。
blkPth = strcat (mdl2,“/信号”);金宝appSimulink.sdi.markSignalForStreaming (blkPth 1“上”)
模拟模型。
out2 = sim(思);
得到的数据记录的输入信号和振荡计数。
logsout = out2.logsout;stepRespInput = getElement (logsout,“阶跃响应”);yout2 = out2.yout;oscCount2 = getElement (yout2,“振荡”);
输入信号和振动计算的阴谋。响应似乎不再欠阻尼的,算法计算零振动由于仿真阶跃响应数据加载的方式。
图(2)次要情节(2,1,1)情节(stepRespInput.Values)次要情节(2,1,2)情节(oscCount2.Values)
当你引用模型模拟作为一个顶级模特,阶跃响应动态的解决者意识到只有在尺寸块加载输入数据到模型中。因为信号在变步模拟连续采样时间,样品不均匀间隔的。加载数据,准确地反映了阶跃响应,尺寸块需要加载多个输入值阶跃响应数据。
指定额外的输出时间模拟
您可以使用输出*模型配置参数强制变步求解时间采取措施在指定值除了这些解算器决定。您可以使用时间值记录数据从第一个模拟指定的值输出*参数。
在这个例子中,因为在阶跃响应振荡继续在整个模拟,指定的值输出*参数的整个时间向量输入数据。让时间值的向量。
outTimes = stepResp.Values.Time;
指定输出*参数值的变量outTimes
。
在仿真软件将来金宝app发布,建模选项卡上,单击模型设置。
选择数据导入/导出选项卡。
扩大额外的参数。
集输出选项来
产生额外的输出
。在输出*字段,类型
outTimes
。点击好吧。
或者,您可以配置的参数值仿真使用SimulationInput
对象。
思敏= setModelParameter(思敏,…“OutputOption”,“AdditionalOutputTimes”,…“OutputTimes”,“outTimes”);
模拟模型。
out3 = sim(思);
得到的数据记录的输入信号和振荡计数。
logsout2 = out3.logsout;stepRespInput2 = getElement (logsout2,“阶跃响应”);yout3 = out3.yout;oscCount3 = getElement (yout3,“振荡”);
记录的输入信号和振动计算的阴谋。现在,故事情节看起来一样从第一个模拟整个模型的层次结构。
图(3)次要情节(2,1,1)情节(stepRespInput2.Values)次要情节(2,1,2)情节(oscCount3.Values)
根据系统的需求,您可以指定的值输出*参数使用整个输入信号向量的时间或使用一个或多个输入信号的相关部分时间数据。
提取的一部分timeseries
对象,您可以创建一个tsdata.event
timeseries中感兴趣的对象,描述了一个点,然后使用一个函数等gettsbeforeevent
或gettsafterevent
中提取所需的部分timeseries
对象。然后,你可以利用这段时间向量这些timeseries对象的一个或多个指定的值输出*参数。