科普:多领域分布式协同仿真

分布式协同仿真是一种在分布式计算环境中进行协同工作的仿真方法。使用该方法进行协同仿真时,仿真任务将被分发到多个计算节点上,并且这些节点可以同时工作以模拟完整的系统行为。分布式协同仿真已被广泛应用于工程、科学和军事领域,以便更好地模拟和理解大规模和复杂系统的行为。

分布式协同仿真有以下特点:

1.集成多学科仿真模型: 分布式协同仿真能够集成来自机械、电气、电子、控制、通信等多个学科领域的仿真模型,是其核心特点之一。

2.分布式计算: 仿真模型在分布式计算环境中运行,可以分布在不同的计算节点上,使系统能够更高效地处理大规模、复杂的仿真任务。

3.协同仿真: 不同领域的仿真模型能够协同工作,实时共享仿真结果和数据,有助于更全面地理解系统的交互作用和影响。

4.支持实时决策:分布式协同仿真通过实时共享仿真数据支持实时决策制定。这对于系统设计、优化和问题解决非常重要。

5.模型可重用性:由于模型是基于模块化的原则构建的,不同领域的模型可以在其他项目中实现复用。

总体来说,分布式协同仿真能够更高效地处理大规模、复杂的仿真工作,更全面地理解系统的交互作用和影响,其可复用性则提高了模型的可维护性和可扩展性,对于系统设计、优化与问题解决有着重要意义。

分布式协同仿真可应用于下列领域:

DigiThread是一款国产自主可控的多领域分布式协同仿真平台,基于DDS(数据分发服务)通信模式并通过协同仿真软总线连接多种仿真模型,可实现点对点的数据通讯,已被广泛应用于复杂系统集成仿真和数字孪生等。本文将简要介绍使用一个应用DigiThread进行分布式协同仿真的案例,整体架构图如下:

该案例中,首先利用天目全数字实时仿真软件SkyEye仿真运行C6713处理器,搭建一个模拟输出两路PWM信号的嵌入式系统;接着引入一个C模型,用于接收仿真输出的PWM信号,通过该模型内部的校准算法对PWM信号进行滤波、补偿处理;最后将校准后的PWM信号输出到Simulink,驱动控制系统模型。

在此基础上,本案例还加入了电控上位机。SkyEye支持与上位机软件通过网络的形式进行连接:

  • 上位机软件提供了一个直观的用户界面,允许开发测试人员以交互的方式对PWM信号的占空比和频率进行实时调整,无需停止仿真模型或重新编译代码;
  • 支持实时显示当前仿真模型的运行参数,有助于开发人员分析当前系统的状态。

该案例在DigiThread上搭建的仿真工程示意图如下:

1. C6713 SkyEye作为SkyEye仿真芯片模型,部署在192.168.0.98节点;

2. C_PWM作为算法模型,部署在192.168.0.31节点;

3. C6713Simulink_Version2016b作为控制系统模型,部署在192.168.0.77节点。

上述三个节点中,由192.168.0.31作为本机主控节点,整个协同仿真的过程将在主控节点上进行工程创建、模型搭建、端口数据订阅、IP配置、模型部署、初始化、仿真、仿真数据回放等操作;另外两个节点根据接收到的来自主控节点的仿真命令,操控对应的仿真模型。

下图为在电控上位机调节占空比时,DigiThread监视窗口以及Simulink Scope中发生的波形变化。从图片中可以看到,在21.9s ~ 21.95s之间,电控上位机进行了占空比调整动作,此时C6713 SkyEye模型收到上位机的指令,完成计算后作出响应,此时对SkyEye模型的输出监视如下图左侧波形所示。右侧为C6713Simulink_Version2016b模型接收到数据后输出的响应波形。

由此可见,借助于DigiThread,能够实现"芯片级仿真"、"控制系统仿真"这两个不同领域下的仿真模型的数据互通,并且支持将不同的仿真模型部署到不同的主机,最终在同一台主控机中完成仿真控制,真正意义上实现分布式协同仿真。

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

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

相关文章

Linux中vim的编译链接和gcc

gcc,g,gdb的安装 命令行写gcc,g,gdb根据提示安装:sudo apt install gcc/g/gdb gcc分布编译链接 (1)预编译: gcc -E main.c -o main.i (2)编译: gcc -S main.i -o main.s (3)汇编: gcc -c main.s -o main.o (4)链接 gcc main.o -o main 执行: ./main 或者:全路径/main 编译链…

LeetCode Hot100 108.将有序数组转为二叉搜索树

题目: 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 方法: class Solution {public…

【Mybatis-Plus篇】Mybatis-Plus基本使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于Python 中创建 Sentinel-2 RGB 合成图像

一、前言 下面的python代码将带您了解如何从原始 Sentinel-2 图像创建 RGB 合成图像的过程。 免费注册后,可以从 Open Access Hub 下载原始图像。 请注意,激活您的帐户可能需要 24 小时! 二、准备工作 (1)导入必要的库…

C#,《小白学程序》第十七课:随机数(Random)第四,移动平均值(Moving Average)的计算方法与代码

1 文本格式 /// <summary> /// 《小白学程序》第十七课&#xff1a;随机数&#xff08;Random&#xff09;第四&#xff0c;移动平均值的计算方法与代码 /// 继续学习数据统计&#xff0c;移动平均值的计算方法 /// 移动平均值就是一定步长内数值的平均值&#xff0c;用…

单片机、ARM、嵌入式开发、Android 底层开发有什么关系?

单片机、ARM、嵌入式开发、Android 底层开发有什么关系&#xff1f; 从我目前的见识来看&#xff1a; 单片机是个系统&#xff08;比如&#xff1a;51、AVR、PLC...&#xff09;&#xff0c;其中包含了去除了输入输出之外的运算器、控制器、存储器&#xff0c;我们用程序可以非…

Day31| Leetcode 455. 分发饼干 Leetcode 376. 摆动序列 Leetcode 53. 最大子数组和

进入贪心了&#xff0c;我觉得本专题是最烧脑的专题 Leetcode 455. 分发饼干 题目链接 455 分发饼干 让大的饼干去满足需求量大的孩子即是本题的思路&#xff1a; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {…

小程序中的大道理之三--对称性和耦合问题

再继续扒 继续 前一篇 的话题, 在那里, 提到了抽象, 耦合及 MVC, 现在继续探讨这些, 不过在此之前先说下第一篇里提到的对称性. 注: 以下讨论建立在前面的基础之上, 为控制篇幅起见, 这里将不再重复前面说到的部分, 如果您还没看过前两篇章, 阅读起来可能会有些困难. 这是第一…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(八)

套餐模块功能开发 1. 新增套餐1.1 需求分析和设计1.1.1产品原型&#xff1a;1.1.2接口设计&#xff1a;1.1.3数据库设计&#xff1a; 1.2 代码开发1.2.1 DishController层1.2.2 DishService接口类1.2.3 DishServiceImpl接口实现类1.2.4 DishMapper层1.2.5 DishMapper.xml1.2.6 …

Vue项目实战之一----实现分类弹框效果

效果图 实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"js/vue.js"></script><!-- 引入样式 --><link rel"stylesheet&qu…

大数据基础设施搭建 - Hive

文章目录 一、上传压缩包二、解压压缩包三、配置环境变量四、初始化元数据库4.1 配置MySQL地址4.2 拷贝MySQL驱动4.3 初始化元数据库4.3.1 创建数据库4.3.2 初始化元数据库 五、启动元数据服务metastore5.1 修改配置文件5.2 启动/关闭metastore服务 六、启动hiveserver2服务6.1…

android实战项目之二十二---如何快速APP中集成支付宝和微信支付功能

效果图 实现方案 jcenter 集成方式 implementation com.xgr.easypay:EasyPay:2.0.5 // 基类库&#xff0c;必选 implementation com.xgr.easypay:wechatpay:2.0.5 // 微信支付&#xff0c;可选 implementation com.xgr.easypay:alipay:2.0.5 // 支付宝支付&#xff0c;可…