MATLAB中sim函数的用法

目录

语法

说明

Simulink.SimulationInput 对象语法

模型名称语法

示例

使用 Simulink.SimulationInput 对象为仿真设置模块参数

使用当前参数设置仿真模型

使用在结构体中指定的选项仿真模型

使用 Simulink.Configset 对象仿真模型


        sim函数的功能是对 Simulink 模型进行仿真。

语法

simOut = sim(simIn)
simOut = sim(simIn,Name,Value)
simOut = sim(modelName)
simOut = sim(modelName,Name,Value)
simOut = sim(modelName,paramStruct)
simOut = sim(modelName,configSet)

说明

Simulink.SimulationInput 对象语法

​simOut = sim(simIn) 根据在一个或多个 Simulink.SimulationInput 对象上定义的属性,运行 Simulink® 模型的一个或多个仿真。

  • 如果 simIn 是标量 Simulink.SimulationInput 对象,则 simOut 是标量 Simulink.SimulationOutput 对象。

  • 如果 simIn 是 Simulink.SimulationInput 对象数组,

则 simOut 是 Simulink.SimulationOutput 对象数组。

可以使用 SimulationInput 对象来配置仿真的选项和输入,包括:

  • 要仿真的模型

  • 外部输入数据的源变量或文件

  • 用于仿真的模块参数值

  • 用于仿真的模型配置参数值

        当 SimulationInput 对象的属性修改模型或模块参数值时,该值将在仿真期间修改,并在仿真结束时还原。

        ​当使用 SimulationInput 对象配置程序化仿真时,您可以轻松地从使用 sim 函数转换为使用其他函数,如 parsim 和 batchsim。

​        simOut = sim(simIn,Name,Value) 根据 Simulink.SimulationInput 对象 simIn 上定义的属性仿真模型,并使用由一个或多个名称-值参数指定的附加选项。

模型名称语法

        simOut = sim(modelName) 使用模型的当前配置参数和模块参数值仿真由 modelName 指定的模型。

  • 如果模型启用了单一仿真输出参数,则 simOut 是一个 Simulink.SimulationOutput 对象。

  • 如果模型未启用单一仿真输出参数,则 simOut 是一个包含仿真时间的向量。有关详细信息,请参阅不推荐返回多个输出参数。

        simOut = sim(modelName,Name,Value) 仿真由 modelName 指定的模型,并使用由一个或多个名称-值参数指定的选项。例如,通过将参数名称和值指定为名称-值参量,可以修改仿真的模型配置参数值。

        当通过向 sim 函数提供输入来修改模型配置参数时,这些更改将在仿真期间应用,并在仿真结束时还原。

        simOut = sim(modelName,paramStruct) 使用由结构体 paramStruct 指定的模型配置参数值仿真由 modelName 指定的模型。

        simOut = sim(modelName,configSet) 使用配置集 configSet 中的模型配置参数值仿真由 modelName 指定的模型。

示例

使用 Simulink.SimulationInput 对象为仿真设置模块参数

        使用 SimulationInput 对象修改模型中模块的参数值。打开模型。

openExample("simulink_general/sldemo_househeatExample")

        为此模型创建 SimulationInput 对象。

mdl = "sldemo_househeat";
simIn = Simulink.SimulationInput(mdl);

        通过修改 Set Point 模块的值参数,将调温器的设定值更改为 300。

simIn = setBlockParameter(simIn,"sldemo_househeat/Set Point",...
	"Value","300");

对模型进行仿真。

out = sim(simIn);

使用当前参数设置仿真模型

        对处于现有状态的模型 vdp 进行仿真,不考虑它是尚未加载还是已加载但有尚未保存的更改。

simOut = sim("vdp");

使用在结构体中指定的选项仿真模型

        使用在结构体中指定的模型配置参数值仿真模型 vdp。

        创建结构体 paramStruct。将模型配置为使用变量名称 xoutNew 记录状态。

paramStruct.SaveState      = 'on';
paramStruct.StateSaveName  = 'xoutNew';

向结构体中添加更多字段,以将模型配置为使用变量名称 youtNew 记录输出。

paramStruct.SaveOutput     = 'on';
paramStruct.OutputSaveName = 'youtNew';

使用在结构体中指定的选项仿真模型。

simOut = sim('vdp',paramStruct)
simOut = 
  Simulink.SimulationOutput:

                xoutNew: [64x2 double] 
                youtNew: [64x2 double] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

使用 Simulink.Configset 对象仿真模型

        打开模型 vdp 并获取活动配置的 Simulink.ConfigSet 对象。

mdl = "vdp";
open_system(mdl)
cs = getActiveConfigSet(mdl);

        创建 Simulink.ConfigSet 对象的一个副本。然后,使用 set_param 函数修改配置集中的参数值。将 ConfigSet 对象中的参数配置为:

  • 使用绝对容差 1e-5

  • 使用变量名称 xoutNew 记录状态

  • 使用变量名称 youtNew 记录输出

csNew = copy(cs);
set_param(csNew,"AbsTol","1e-5",...
         "SaveState","on","StateSaveName","xoutNew",...
         "SaveOutput","on","OutputSaveName","youtNew")

        使用修改后的 Simulink.ConfigSet 对象仿真模型。

simOut = sim(mdl,csNew)
simOut = 
  Simulink.SimulationOutput:

                xoutNew: [65x2 double] 
                youtNew: [65x2 double] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值