当前位置: 首页 > news >正文

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] 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JavaWeb后端开发总结(3)
  • 微知-BIOS中的XHCI模式是什么意思?(usb3.0的扩展控制器影响usb3.0速率等选项)
  • Android之同一个Thread线程里只能有一个Looper?(ThreadLocal)
  • 计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • 前端面试八股文
  • 部署Apache网站
  • 828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署GitLab服务器
  • 调度器怎么自己写?调度器在实现时需要注意哪些细节?请写一个jvm的调度器?如何在这个调度器中添加多个任务?
  • 【docker】基于docker-compose 安装elasticsearch + kibana + ik分词器(8.10.4版本)
  • ffmpeg面向对象-待定
  • 2024 第七届“巅峰极客”网络安全技能挑战赛初赛 Web方向 题解WirteUp
  • AWQ量化(Activation-aware Weight Quantization)
  • 本地运行 Qwen2-VL
  • 函数式编程思想
  • 第十一周:机器学习
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 30天自制操作系统-2
  • Android 架构优化~MVP 架构改造
  • android 一些 utils
  • extjs4学习之配置
  • HashMap剖析之内部结构
  • iOS编译提示和导航提示
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript函数式编程(一)
  • JavaScript新鲜事·第5期
  • laravel 用artisan创建自己的模板
  • mysql 数据库四种事务隔离级别
  • python3 使用 asyncio 代替线程
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 初识 beanstalkd
  • 初识 webpack
  • 数据科学 第 3 章 11 字符串处理
  • 算法-图和图算法
  • 线性表及其算法(java实现)
  • 一道面试题引发的“血案”
  • Nginx实现动静分离
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​批处理文件中的errorlevel用法
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #Linux(权限管理)
  • (+4)2.2UML建模图
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)【Hibernate总结系列】使用举例
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)fock函数详解
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET delegate 委托 、 Event 事件
  • .net实现头像缩放截取功能 -----转载自accp教程网