基于DigiThread的仿真模型调参功能

仿真模型调参是指通过调整模型内部的参数值,使仿真模型的输出更符合实际系统的行为或者预期结果的过程。

仿真过程中,往往需要频繁对模型参数进行调整,通过观察不同参数下系统整体的运行情况,实现系统的性能、可靠性和效率的优化。在进行模型调参时,需要注意选择合适的调参方法和调参参数。不同的仿真模型可能需要采用不同的调参方法和参数,以获得最佳的调参效果。

以下是仿真模型调参的一些基本概念:

模型参数:指模型中可以调整的变量,直接影响模型行为的特性,可能包括物理性质、初始条件、系统参数等。仿真模型中,参数调参的目标是找到使模型输出与实际观测相匹配的最佳参数值。

初始参数:开始调参之前,需要为模型参数设定初始值,通常基于先验知识、文献研究或经验来确定,将会影响调参的收敛速度和最终结果。

实验数据:实验数据是从实际系统获得的观测值或测量结果。这些数据用于与仿真模型的输出进行比较,以确定模型的准确性和可靠性。

误差分析:误差分析用于评估仿真模型输出与实际数据之间的差异。通过比较模型的预测结果和实测数据,可以确定模型的偏差和误差。 

文档记录:包括使用的数据集、选定的目标函数、调参算法、最终的参数值以及验证结果,有助于重现调参过程并进行模型维护。

综合这些基本概念可知,有效的仿真模型调参不仅能够提高模型的准确性和实用性,使其更好地反映实际系统的行为,还能提升效率并优化仿真模型的性能,有助于节约仿真模型搭建成本,对提高仿真模型的适用范围和应用价值有着重要意义,使之可以更加广泛地应用于各个领域。

01.仿真模型调参的研究背景和现状

背景

科学与工程复杂性增加:随着科学研究和工程设计的发展,系统变得越来越复杂,传统的试验和分析方法难以涵盖所有可能的情况。仿真模型成为了研究人员和工程师理解和预测系统行为的重要工具。

计算能力的提升:随着计算能力的不断提升,研究人员能够使用更复杂的数学模型进行仿真,进一步加强了对调参方法和技术的需求。

数据的可用性提高:大规模数据的可用性使得研究人员能够更好地对比仿真模型的输出与实测数据,从而进行更准确的调参。

跨学科研究需求:许多涉及多个学科领域的问题需要跨学科的综合研究方法。仿真模型调参在这种情境下发挥着重要作用。

现状

实时调参:针对实时系统的需要,研究人员开始研究实时调参的方法,以在系统运行过程中不断地调整模型参数。

不确定性建模:不确定性是影响仿真模型应用的重要因素,如何在调参中更好地建模和处理不确定性成为关注焦点。

应用领域的多样性:仿真模型调参的研究在涵盖了多个应用领域,包括工程、医学、环境科学、经济学等。

研究者们在不断尝试改进调参算法、提高调参的精度、适应不同模型和系统,并探索与其他计算方法的整合,以满足复杂系统建模的需求。该领域的研究不断发展将为更好地利用仿真模型提供强大工具。

02.仿真模型调参的解决方案

DigiThread是一款国产自主可控的多领域分布式协同仿真平台,基于DDS(数据分发服务)通信模式并通过协同仿真软总线连接多种仿真模型,可实现点对点的数据通讯,已被广泛应用于复杂系统集成仿真和数字孪生等。

DigiThread仿真软总线开放了API,允许外界访问软总线上的数据,并进行读取与写入。

在对仿真工程进行建模作业时,会将仿真模型的输入/输出端口与仿真软总线的Topic进行绑定。开放的软总线API可根据Topic name获取该Topic中的数据,也支持修改该Topic中的数据。

基于此实现,当仿真模型的某个输出值依赖于一个动态变化的参数时,我们可以在此仿真模型中注入一个Parameter类型的端口,利用仿真软总线的API访问该端口,并对该端口绑定的参数进行读取、修改等操作。

▲参数注入功能的实现架构图

03.仿真模型调参的应用案例

打开DigiThread Workspace目录下的示例工程,项目中含一个Sender输出模型和一个Receiver输入模型,Sender模型的所有输出由Receiver接收。

▲DemoC100示例工程建模界面

Sender模型内部定义了不同种类端口,其中包含输出端口(Output)和参数端口(Parameter):

  • u 输出端口可以显示在模型上,支持与其他模型的输入端口进行连接。
  • 参数端口用于接收调参传入的值,当传入值发生变化时,与该参数具有数学运算关系的输出端口的仿真数据也会随之变化。

仿真模型调参功能出现之前,若想修改模型参数,必须进行熟悉模型源码、手动修改参数值、编译模型、导入模型到仿真软件等步骤。由于过程繁杂,需要调试人员掌握不同仿真模型的源码结构以及编译过程;同时也会消耗大量时间,不利于多次调参以达到预期结果。引入仿真模型参数注入功能后,调试人员仅需了解参数与输出端口之间的关系,便可以在仿真过程中实时调整参数值。

下面将重点介绍基于DigiThread调参的具体操作过程。

启动仿真后,右键单击Sender模型,打开DataDouble的端口监视界面,可以看到示波器绘制出一条振荡在 -1 到 1 之间的曲线。此时再次右键单击Sender模型并选择“调参”选项,打开Sender模型的调参界面。点击左下角的“+”按钮,增加一条配置项。在“端口名”一列中可以选择要调参的输出端口(Output)或参数端口(Parameter)。DigiThread的调参功能支持多个端口同时调参,可以根据需要增加多条配置项。

▲Sender模型调参窗口

选择需要调整的AmpDataDouble并设定注入值为10,点击确定后,DataDouble端口输出值随即发生变化,余弦波振幅扩大到 -10 到 10。

▲DataDouble端口输出实时监视

仿真模型调参是一个不断发展的领域,其未来的发展趋势将朝着实时性、不确定性、多学科整合、开源与标准化及人机交互等方向继续发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/189318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一小时玩转【负载均衡】

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…

搜索与回溯算法③

题目: 求0-9所有数字组成的k位不重复的数字。 说明:我们要找到所有不重复数字的k位组合。这个问题相对于前一个问题(搜索与回溯算法②)增加了一个约束:每个数字只能使用一次。这就需要在代码中加入剪枝逻辑来确保不…

初中数学网上考试系统的设计与实现

摘 要: 科技在人类的历史长流中愈洗愈精,不仅包括人们日常的生活起居,甚至还包括了考试的变化。之前的考试需要大量的时间和精力,组织者还需要挑选并考查结果,以及为了强制有效地进行考试所需要采取的一些步骤&#x…

RocketMQ Copilot 一款面向 Apache RocketMQ 的智能辅助运维系统

一、RocketMQ简介 ocketMQ是阿里巴巴研发的一款分布式消息中间件,后开源给Apache基金会,成为apache的顶级开源项目。它具有高性能、高可靠、高实时和分布式的特点。RocketMQ主要应用于解决应用耦合,消息分发,流量削锋等问题。 R…

flutter布局详解及代码示例(补充)

布局 基本布局 Container(基本布局):最常见widgetPadding(内边距布局):Container增加padding的布局Center(居中布局):Container设置居中的布局Align(对齐布…

Java零基础——vue篇

1.【熟悉】Vue简介 1.1 简介 它是一个构建用户界面的框架 Vue是一个前端框架 js jq https://www.pmdaniu.com/#file UI网站 UI 一般开发者使用蓝湖 工具 看着UI图 写接口 https://lanhuapp.com/web/#/item 是一个轻量级的MVVM(Model-View-ViewModel&#xff0…

统计素数并求和(Python)

题目描述 统计素数并求和 本题要求统计给定整数 M M M 和 N N N 区间内素数的个数并对它们求和。 输入格式: 输入在一行中给出两个正整数 M M M 和 N ( 1 ≤ M ≤ N ≤ 500 ) N(1≤M≤N≤500) N(1≤M≤N≤500)。 输出格式: 在一行中顺序输出 M M M 和 N N N 区间内…

(使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))

使用vite搭建vue3项目(vite vue3 vue router pinia element plus) 初始化项目安装依赖,运行项目初始配置 初始化项目 1.需要在创建项目的位置cmd目录下执行 2. npm init vitelatest 回车 npm init vitelatest3.填上自己的项目名称 回车…

【开源】基于JAVA的厦门旅游电子商务预订系统

项目编号: S 030 ,文末获取源码。 \color{red}{项目编号:S030,文末获取源码。} 项目编号:S030,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 景点类型模块2.2 景点档案模块2.3 酒…

Django的回顾的第4天

1.模型层 1.1简介 你可能已经注意到我们在例子视图中返回文本的方式有点特别。 也就是说&#xff0c;HTML被直接硬编码在 Python代码之中。 def current_datetime(request):now datetime.datetime.now()html "<html><body>It is now %s.</body><…

[网鼎杯 2020 青龙组]singal 1

前言 在主函数中找到了一个vm的译码器&#xff0c;译码器主要是解释传入的opcode&#xff0c;然后对我们输入的字符操作&#xff0c;这里我们发现他是单字节比较的&#xff0c;方法很多可以使用单字节映射&#xff0c;也可以是使用符号化执行&#xff0c;当然也可以硬着头皮去…

17、神经网络的性能以及那些框架存在的意义

前几节,我们介绍了推理和训练的大致过程,以及训练过程中要用损失函数来作为评判预测值和真实值差距的标准。 在很多时候,一个神经网络从开始训练到训练完成是要经过很长的时间的,这是因为模型需要不断的校正自己学习到的参数,直到最终loss值降为0。 如果一轮迭代训练耗时…

canvas基础:渲染文本

canvas实例应用100 专栏提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。 canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重要的帮助。 文章目录 示例…

Postman如何导入和导出接口文件

本文介绍2种导出和导入的操作方法&#xff1a;一种是分享链接&#xff0c;导入链接的方式&#xff08;需要登录&#xff09;&#xff1b;另一种是导出json文件&#xff0c;再次导入。下面将详细介绍。 由于第一种分享链接&#xff0c;导入链接的方式需要登录&#xff0c;所以推…

jsp 分页查询展示,实现按 上一页或下一页实现用ajax刷新内容

要实现按上一页或下一页使用 Ajax 刷新内容&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 在前端页面中添加两个按钮&#xff0c;分别为“上一页”和“下一页”。当用户点击按钮时&#xff0c;触发 Ajax 请求。 2. 在后端控制器中接收 Ajax 请求&#xff0c;并根据传…

KNN回归-GridSearchCV模型调优(波士顿房价)

数据集简介 数据介绍 波士顿房价数据集(Boston Housing Dataset) 是一个经典的用于回归分析的数据集。它包含了波士顿地区506个街区的房价信息以及与房价相关的13个特征。这个数据集的目标是根据这些特征来预测波士顿地区房屋的中位数价格(以千美元为单位) 数据说明 Data S…

Vue 3.0 组合式API 生命周期钩子

文章目录 前言配置项api图表on配置项api后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;vue.js &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&#xff0…

微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践进阶以及常见问题解答(二)

微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践进阶及常见问题解答&#xff08;二&#xff09; Power Pages 学习实践进阶 微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践进阶及常见问题解答&#xff08;二&#xff09;Power Pages 核心工具和组…

Openwrt 系统安装 插件名称与中文释义

系统镜像 当时是去官网找对应的&#xff0c;但是作为门外汉&#xff0c;想简单&#xff0c;可以试试这个网站 插件 OpenWrt/Lede全部插件列表功能注释

【AUTOSAR】【通信栈】IPduM

AUTOSAR专栏——总目录_嵌入式知行合一的博客-CSDN博客文章浏览阅读310次。本文主要汇总该专栏文章,以方便各位读者阅读。https://xianfan.blog.csdn.net/article/details/132072415 目录 一、概述 二、相关模块 2.1 OS