基于RCP的嵌入式快速开发及半实物仿真技术AET

为解决此类问题,本课题提出,基于快速控制原型技术,向Simulink库添加自定义的嵌入式系统集成模块的方案,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。

1快速控制原型技术

RCP技术本质上属于一种基于模型的算法设计及半物理仿真。鉴于纯数学仿真的置信度有限,其结果往往仅作参考,而RCP技术基于半物理仿真参与研发过程,将工程师开发的算法下载到实时仿真计算机硬件平台上,通过该仿真机中与产品控制器完全一致的实际I/O口与被控对象实物连接,进行实时仿真,检验算法性能[5],并可以快速反复修改,最终生成目标代码烧写到硬件系统以形成最终的产品[6-7]。

RCP技术最大的特点是快速、简便、经济,极大地提高了研制效率,复杂的程序编写可以通过建立数学模型来实现,工程师的工作重点将主要集中于模型的建立和算法的设计等抽象层面,而不用纠结于程序bug调试和物理实现问题[8]。在实际应用上,RCP仿真可以与另一种半物理仿真——硬件在回路(HardwareintheLoop,HIL)仿真系统互补,相辅相成[1,9]。

本课题以美国ConcurrentiHawk并行仿真计算机系统为平台[3],图1给出了快速原型系统仿真平台示意图[10]。

该系统具有以下特点:

(1)拥有运算能力强大的并行仿真计算机及丰富的、多协议的I/O接口;

(2)在Simulink的环境下实现了离线模型和在线模型的无缝转换;

(3)SimulationWorkbench仿真工作平台,提供了一个完全集成的、与第三方建模软件兼容的环境;

(4)Simbox仿真计算机拥有双CPU的并行处理器系统,并且内置了A/D采集卡,定时/计数器板卡,多串口卡等多种板卡和丰富的I/O接口。

2设计与过程

2.1大气数据计算机

传统的嵌入式开发过程,通常是将硬件设计和软件设计分开进行,也即,根据系统的需求和性能,设计模型和算法,再根据所建立的模型算法进行嵌入式开发板硬件方面的配置。因此对于设计者而言,不仅要掌握所设计系统方面的知识,更要对嵌入式系统的开发过程和C语言的程序编写有一定的了解。而本课题的创新之处在于,基于快速控制原型技术,不仅可以利用Simulink库自带的RTW工具将模型转换成针对目标硬件平台的嵌入式C代码,而且可以通过向Simulink库添加自定义的STM32集成模块,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。

2.2算法设计与模型建立

(1)气压高度

H<11000m时,位于对流层,

代入已知值,Tb=216.5K,Pb=22.632kPa,Hb=11000m,

式中,Ma为马赫数。

(3)指示空速

指示空速是指以标准海平面的大气条件为基础,将真空速归化到标准海平面所得到的速度值,又称表速,表示的是飞行器空气动力的大小。马赫数小于1时:

以上得到的是表征ADC输入输出参数数学关系的方程式,是ADC解算大气数据的数学基础,后续的Simulink建模便建立于上述一组数学模型基础上。

2.3STM32与Simulink的集成

本课题的创新之处在于,基于快速控制原型技术,提出向Simulink库添加自定义的STM32集成模块的方案,从而达到图形化配置嵌入式工程的目的,避免了大量的手动代码编写和繁琐的硬件参数配置。

传统的开发过程中,Simulink与STM32有一定的结合,但并不完善,关键在于Simulink只能对所建立的数学模型进行创建修改以及C代码生成,而并不涉及任何和STM32有关的开发环境的配置,而且原本Simulink上只有针对通用32位处理器的系统目标文件,这样生成的代码在可读性和移植性上有不少的缺陷。

因此,本课题将ST意法半导体官方发布的开发固件库STM32-MAT/TARGET集成到Simulink模型库里面,利用Simulink强大的图形化建模能力,将离线模型建立与STM32外设模块结合起来,共同包含于快速控制原型仿真模型的搭建中。

模块里面包括MCU和ADC、DAC、定时器、串口等外设的配置,这些模块的操作和普通Simulink模块的操作基本相同,唯一不同的是,有关MCU时钟系统和一些外设端口选择的配置需要用到另一个软件。在Simulink中,先把大气数据计算机的仿真模型搭建如图2所示。

模型基本思路就是将静压、总压和总温作为输入,通过各自的模块算出气压高度、空速等数据,将其打包成一帧数据包,然后发送到串口模块。

STM32CubeMX和STM32-Mat/Target与MATLAB/Simu-link的结合,将复杂繁琐的手工编程转换成直观简便的图形配置。模型建立在Simulink里通过模块连线完成,开发环境的配置在STM32CubeMX里通过图形化界面完成。

2.4自动生成代码

RCP技术最重要工具之一就是基于模型的自动代码生成。基于模型设计就要摒弃手写代码的过程,将更多的精力放在算法的开发上,利用Simulink图形化的特点,快速高效地将算法自动生成代码。

最后在STM32CubeMX中配置生成KeilMDK工程文件。

将2.4节所生成的程序编译烧写到STM32开发板上,利用RS232串口连接到电脑,并在电脑上通过Simulink搭建图3所示程序用于接收数据并解包展示。

在运行图3所示的第二套仿真程序的同时,打开STM32进行数据传输,观察数据与预期的是否一致,结果如图4所示。

图4中,输出的5组数据分别是气压高度、马赫数、静温、指示空速和真空速,点线代表原始ADC模型数学仿真得到的输出,条线代表半实物仿真PC实际接收到的ADC原型系统解算的大气数据。可以看出,5组实际数据都能较好地跟踪理论数据,说明所搭建的快速原型系统与程序达到了与理论数学模型相符合的预期。图4(a)、(c)、(d)、(e)中实际曲线相对平滑,过渡自然,取得了较好的效果;图4(b)中由于马赫数变化在10-2~10-3数量级,波动较为剧烈,因此实际曲线相对粗糙,有望在后续的研究中通过滤波等处理得到更为光滑的曲线。总体而言所建立的ADC原型系统取得了较好的效果。

3结论

本课题在分析基于RCP技术的基础上,通过向MATLAB/Simulink集成STM32-Mat开发固件库的方法,再结合STM32CubeMX配置开发环境,提出了一种快速开发STM32工程的方法,并将该方法成功应用于航空电子大气数据计算机嵌入式软件工程实践中。

参考文献

[1]杨向忠,安锦文,崔文革.快速控制原型仿真技术应用[J].航天控制,2009,27(2):72-75.

[2]GREPLR,LEEB.Modeling,parameterestimationandnonlinearcontrolofautomotiveelectronicthrottleusingaRapid-ControlPrototypingtechnique[J].InternationalJournalofAutomotiveTechnology,2010,11(4):601-610.

[3]徐军.飞行控制系统:设计、原型系统及半物理仿真实验[M].北京:北京理工大学出版社,2015.

[4]HUANGG,ZHAOL,LIY,etal.DesignofrapidprototypeofUAVline-of-sightstabilizedcontrolsystem[C].SocietyofPhoto-OpticalInstrumentationEngineers,2018.

[5]MAOR,LIXG,PANBF.Designofcontrolsystemrapidprototypingforsuborbitalreusablelaunchvehicle[J].ElectronicDesignEngineering,2014,22(23):107-113.

[6]董哲,刘宁勇,孙德辉.基于RTW和Linux的快速控制原型技术研究[J].计算机测量与控制,2012,20(9):2420-2422.

[7]YEYL,ZHAOR.Rapidprototypedesignforcontrolsystemsofunderwatervehicles[J].ComputerSimulation,2012,29(3):378-381.

[8]SHATRIV,KURTAJL,LIMANII.Hardware-in-the-LoopArchitecturewithMATLAB/SimulinkandQuaRCforRapidPrototypingofCMACNeuralNetworkControllerforBall-and-BeamPlant[C].InternationalConventiononInformationandCommunicationTechnology,ElectronicsandMicroelectronics,2017:1201-1206.

[9]GREPLR.Real-timecontrolprototypinginMATLAB/Simulink:reviewoftoolsforresearchandeducationinmechatronics[C].IEEEInternationalConferenceonMechatronics,2011:881-886.

[10]BUCHERR,BALEMIS.RapidcontrollerprototypingwithMatlab/SimulinkandLinux[J].ControlEngineeringPractice,2006,14(2):185-192.

[11]郝旭耀.无人机的大气数据处理计算系统研究与设计[D].上海:上海应用技术学院,2015.

[12]马娟.数字式大气数据计算机的软件设计与实现[D].西安:西安电子科技大学,2012.

[13]国凤娟.基于ARM的大气数据计算机设计与开发[D].沈阳:沈阳航空航天大学,2012.

THE END
1.低代码平台生成源代码怎么用零代码企业数字化知识站简道云低代码平台是一款高效、便捷的低代码开发工具,能够帮助用户快速生成源代码并应用于实际项目中。要使用简道云低代码平台生成的源代码,可以按照以下步骤进行:1、配置开发环境;2、导入生成的源代码;3、进行必要的代码修改和优化;4、进行测试和部署。以下内容将详细介绍这些步骤及其背后的原理和注意事项。 https://www.jiandaoyun.com/blog/article/1771388/
2.在窗体编译完代码,如何自动生成代码文章浏览阅读140次。第二张图片是视频教程中的结果,我写完如何自动生成这样的代码。https://blog.csdn.net/2401_88263330/article/details/144315035
3.智能代码自动生成工具:全面解决编程自动化与效率提升问题在当今快速发展的科技时代编程已成为推动社会进步的必不可少力量。随着软件系统的日益复杂编程工作也变得越来越耗时且易出错。为熟悉决这一疑惑智能代码自动生成工具应运而生它不仅可以提升编程效率减少出错率还能让开发者将更多精力投入到创新和核心业务上。本文将详细介绍智能代码自动生成工具全面解决编程自动化与效率提升https://www.yanggu.tv/webgov/aizhishi/75508.html
4.快速开始说明: 请开发者先定义产品功能,在完善产品功能定义后,如属性的值和权限等,等待约20分钟后,再使用代码自动生成工具生成代码,否则代码生成工具将无法生成代码。下载源代码使用“代码自动生成”功能时,开发者可在代码生成设置页面,设置“设备类型” 和“硬件平台”,通过“生成源代码”按钮生成并下载源代码。https://iot.mi.com/new/doc/accesses/direct-access/embedded-development/ble/ble-mesh/ble-mesh
5.8款国内国外很火爆的代码生成器腾讯云开发者社区4、XJR快速开发平台代码生成器 一款国内最新自主研发的JAVA代码自动生成器,目前来看这是一款十分赞的代码生成器,使用体验佳,基于拖拽思想,可视化操作,所见所得,支持mysql,oracle,sqlserver数据库;前后端分离,一键生成。 官方网址:https://www.xjrsoft.com/ https://cloud.tencent.com/developer/article/1596158
6.Java开发平台IntelliJIDEA教程:开发,运行和调试TypeScript源代码IntelliJ IDEA是Java语言开发的集成环境,IntelliJ在业界被公认为优秀的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。 本系列教程内容为如何将IntelliJ IDEA与您喜欢的语言,平台或框架结合使用。本教程将介绍如何开发,运https://www.evget.com/doclib/s/120/14620
7.慧点点低代码开发平台基于零代码低代码平台选配置:一键生成门户、一键生成角色权限部门账号、生成工作流、生成测试数据。基于海量表单库、微应用库和属性库,慧点点零代码平台开启了软件生产的自动化智能化时代,集成了零代码平台、低代码平台和快速开发平台。 低代码平台以零代码和低代码开发平台核心模型驱动开发,实现应用配置和开发对业务变化的快速响应,帮助各类https://huidiandian.com/custom/use_help/Tlist.html
8.最全无代码NoCode和低代码Low这些让您在开发应用程序方面领先一步,通常配有清晰的代码、漂亮的UI组件、管理仪表板和无缝界面。 Divjoy生成一个全栈React应用程序,内置登录页面、身份验证、数据库和托管配置。真的 Create React App官方支持的创建单页 React 应用程序的方式。它提供了一个没有配置的现代构建设 https://www.tanmer.com/blog/707
9.极致业务基础平台:低代码快速开发实现BSCS移动端多终端运行“快速开发,随需而变”是极致科技创始格言,极致科技问世的第一个作品就是“极致业务基础平台”,15年来极致科技所有软件作品全部基于“极致业务基础平台”开发并运行。“极致业务基础平台”是具备完全开发能力面向管理软件程序员的低代码快速开发平台,也是所有管理软件的开发利器。极致业务基础平台除自身用于物业行业构建全https://www.jeez.com.cn/newsinfo/684644.html
10.若依RuoYiAntDesign平台简介 AiDex Sharp 快速开发平台基于著名的开源项目“若依-RuoYi-Vue”改造而成,追求极致的UI交互体验和快速开发,一切向效率看齐,重构优化后端的代码,对前端页面进行了美化。我们将持续升级,持续完善,欢迎友友们收藏和点赞。 感谢RuoYi-Vue 感谢RuoYi-Antdv https://toscode.mulanos.cn/big-hedgehog/aidex-sharp
11.推荐十个开源的前端低代码项目!今天来分享 10 个开源的前端低代码项目!企业级低代码快速开发平台,包含页面可视化配置、自定义表单、自定义报表、权限管理脚手架应用、前后端代码自动生成;主要特点是低代码开发,可实现复杂CRUD功能仅编写数据模型就能完成前后端开发。 GOVIEW GoView 是一个使用 Vue3 搭建的低代码数据可视化开发平台,将图表或页面元素https://www.51cto.com/article/760569.html
12.免费的无代码快速开发平台(无代码平台)本篇文章给大家谈谈免费的无代码快速开发平台,以及无代码 平台对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享免费的无代码快速开发平台的知识,其中也会对无代码 平台进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 本https://www.huoban.com/news/post/121466.html
13.产品价格Java智能快速开发平台 让软件开发极限提速查看演示 企业标准版 咨询/升级免费 基础架构 权限管理 开发组件 代码生成 报表配置 UI标签 校验框架 H+ UI 生成示例 办公应用 -- -- -- 微信支付 提供源码 技术支持 远程协助 -- 企业高级版 咨询/升级免费 http://www.javafast.cn/pricing.html
14.开源一款前后端分离Java+ElementPlus快速开发平台在线生成代码KingAdmin是一个轻量级的,前后端分离的Java快速开发平台,提供通用权限控制基础功能,并提供代码生成功能,提高开发效率 在线预览地址: http://admin.5180it.com/ 二、开源协议 使用Apache-2.0开源协议 三、界面展示 效果图: 主页 个人设置 角色管理 菜单管理 https://www.jianshu.com/p/533b9041c0e7
15.引迈JNPF快速开发平台低代码开发平台零代码开发平台引迈信息,提供快速开发平台、快速开发框架、低代码开发平台、低代码开发框架、0代码开发平台、0代码开发框架、零代码开发平台、零代码开发框架、无代码开发平台、无代码开发框架、.net开发平台、.net开发框架、java开发平台、java开发框架、代码生成器、工作流引擎、开源开https://www.yinmaisoft.com/
16.引迈JNPF快速开发平台低代码开发平台零代码开发平台代码生成器 移动端APP 即时通讯IM 导航模式 全局搜索 应用切换 表单设计 集成助手 大屏模块 门户模块 打印设计 报表模块 报表设计器功能源码 运维一体化管理平台 自动化测试平台 JNPF软件开发平台提供多种开发服务。一般情况下,非商用目的的用户可以免费使用本平台服务。 用户完成平台注册,获取相关服务https://www.jnpfsoft.com/price.html
17.盘点国内热门的低代码/零代码平台,看看你用的哪一款?通用型低代码平台适用于各类企业以及各种类型的应用场景。拥有高度的定制性,能够满足不同场景的需求。这类平台通常提供丰富的组件库、模板和可视化开发工具,使得开发者可以快速构建和部署应用程序。 代码生成类低代码平台 这类平台可以直接生成部分或全部的前端、后台代码,甚至数据库代码,允许用户将生成的应用导出并单独部https://m.nowcoder.com/discuss/658264840984621056
18.JEECG官方网站基于BPM的低代码开发平台(低代码平台JeecgBoot低代码平台,基于SpringBoot+Ant Design的前后端分离微服务架构,集成完善的工作流平台、强大的代码生成器、流程设计器、表单设计器、大屏设计器、报表门户设计,可以应用在任何J2EE项目开发中,尤其适合企业信息管理系统(MIS)、办公系统(OA)、企业资源计划系统http://www.jeecg.com/
19.低代码开发平台:快速生成应用系统,实现轻快优开发低代码开发平台是一种能够用少量代码快速生成应用系统的开发平台。平台将业务对象抽象成各种模型,包括数据模型、组件模型、表单模型、流程模型、业务规则模型等。开发流程基于这些模型进行可视化建模和配置。必要时,再编写代码来补充实现应用系统中一些复杂的逻辑。 http://www.bjhwtx.com/h-nd-180138.html