基于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端口输出实时监视

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

相关推荐
带多刺的玫瑰1 小时前
Leecode刷题C语言之统计不是特殊数字的数字数量
java·c语言·算法
爱敲代码的憨仔1 小时前
《线性代数的本质》
线性代数·算法·决策树
yigan_Eins2 小时前
【数论】莫比乌斯函数及其反演
c++·经验分享·算法
阿史大杯茶2 小时前
AtCoder Beginner Contest 381(ABCDEF 题)视频讲解
数据结构·c++·算法
დ旧言~2 小时前
【高阶数据结构】图论
算法·深度优先·广度优先·宽度优先·推荐算法
张彦峰ZYF2 小时前
投资策略规划最优决策分析
分布式·算法·金融
The_Ticker3 小时前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
爪哇学长3 小时前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
Dola_Pan3 小时前
C语言:数组转换指针的时机
c语言·开发语言·算法
繁依Fanyi3 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse