基于模型的设计——MCU篇
- 格式:docx
- 大小:3.26 MB
- 文档页数:63
MBD指南性文件(全网独一份)基于模型设计的自动代码生成操作指南 MBD:基于模型的设计一、概述MBD是一种软件开发流程,Simulink建立的模型从早期验证,代码生成到后期的SIL/PIL等提供了全流程的快速开发工具链和品质保障措施。
不仅通过仿真可以进行早期设计的验证,还可以生成C,C++等代码直接应用于PC、MCU等平台,在嵌入式软件开发中发挥着重要作用。
本文将以Simulink模型生成嵌入式C代码为主体详细分析代码生成的应用技巧,并重点讲解代码生成过程的参数配置及优化。
二、适用范围本指南适用于汽车电装品及辅助测具的软件开发及维护,也适用于基于MATLAB/SImulink生成或者转换的软件开发。
三、缩写及定义3.1 缩写缩写 全名MBD Model Based DesignMIL Model in the loopSIL Software in the loop3.2 定义四、代码生成Simulink的 Coder generation工具箱提供了将模型转换为可优化的嵌入式C代码的功能。
Configuration Parameter工具可以对代码生成方法、格式等约束条件进行配置,从而使生成的代码具有高质量,高可读性,高优化的特点 在生成嵌入式代码时,至少需要完成三部分的配置:模型解算器,模型的系统文件目标,硬件实现规定。
4.1解算器打开 Simulink模型,进入 Configuration Parameter(快捷键Cml+E)对话框,如下图所示,选定 Solver:●必须设置项:①解算器类型:选择固定点解算器( Fixed-step);②解算器算法:选择离散方法( dis c rete);注:固定点解算器提供了多种算法,目前引用的嵌入式系统是非连续的(no c ontinuous states)。
③解算器步长:依据底层调度周期;注:解算器步长为整个模型提供了一个基础采样频率,被称为基采样率。
图1 嵌入式系统在边缘上的分布图2 整个工作分为在PC端的部分和设备端的部分图3 模型的部署主要是连接2个世界的关键环节图4 搭建适合在MCU端使用的神经网络第一种是生成与模型相对应的C/C++代码,它们包括训练出来的权重——用数组表示;模型各层的定义——用宏定义表示;以及模型所执行的操作——包装成一个函数,由它来把模型操作映射成对目标平台NN 库API的调用。
这样,模型就直接化成了C/C++工程的一部分,一起编译链接到固件中了。
这样做的优势是深度整合,效率高、代码小;但进行模型修改的同时需要重新生成固件,非常死板,比较适合较单一的系统。
另一种是在目标平台上运行通用的模型执行引擎——也叫Inference Engine (IE)。
IE接收模型的操作胜任更复杂的问题,如人脸识别,以及分辨上百种以上的种类,像用于MobileNet和MobileFaceNet的反向残差连接就是典型的实例。
早期的神经网络构建块中包含的参数较多,比如卷积核常用5x5,后面创新的结构常常把单个构建块化整为零成一个小型的子网络,既减少了参数又改进了性能。
尽管神经网络的结构很丰富,但整体上看仍然是直筒式的顺序处理结构。
在搭建较深的神经网络时,一些片段常常重复出现,于是在设计网络时可以像宏定义一般预制复合结构,再串在一起,这样可以简化设计,并且灵活多用。
基于以上建模方式,我们在NXP i.MX RT1062上实理的神经网络技术频谱,比较长的水平线般也采用较扁的矩形而不再是常见的正方形提,另一种循环神经网络联系比较丰富的事物时往往更加得心应手MCU上还没有优化支持CNN系建模方案的效率也能媲美3 小结与未来展望MCU级。
比如广泛用于后加入了图5 10项物体分类所使用的NN结构东芝电子元件及存储装置株式会社 电子器件与存储研发中心 主管 山田裕。
灯饰MCU方案随着智能家居的兴起和人们对生活质量要求的提高,灯饰领域也逐渐迎来了智能化的时代。
为了实现智能化控制和更好的用户体验,MCU(Microcontroller Unit,微控制器)方案在灯饰设计中得到了广泛应用。
本文将介绍灯饰MCU方案的特点、应用以及未来发展趋势。
一、MCU方案的特点灯饰MCU方案是基于微控制器技术的一种解决方案,具有以下特点:1. 多功能性:MCU可集成多种功能模块,如通讯、判断逻辑、控制执行、存储等,通过编程可以实现多样化的功能和交互方式。
2. 高效性:MCU具备高速运算和响应能力,能够快速处理大量数据和实时控制要求,保证灯饰设备的高效稳定运行。
3. 灵活性:MCU方案支持软件定义,可以根据用户的需求进行灵活的定制和扩展,满足不同场景下的灯饰控制需求。
二、MCU方案的应用灯饰MCU方案在实际应用中有着广泛的应用场景,其中包括但不限于以下几个方面:1. 照明控制:MCU方案可以实现照明亮度的调节、颜色温度的调整,甚至是智能光感控制,通过传感器感知周围环境并自动调整照明效果。
2. 节能管理:MCU方案可以实现灯饰设备的智能化节能管理,通过定时、定量控制,合理利用光线资源,实现能耗的最优化。
3. 情景模式:MCU方案支持多种情景模式的切换,用户可以根据需要选择不同的灯光效果,如阅读模式、聚会模式、睡眠模式等,提升用户体验。
4. 远程控制:MCU方案可以通过网络通讯模块实现对灯饰设备的远程控制,用户可以通过手机App或者智能音箱等终端设备,随时随地操控灯光。
三、MCU方案的未来发展趋势随着人工智能、物联网等技术的快速发展,灯饰MCU方案在未来有着广阔的发展前景。
以下几个方面是我们对MCU方案未来发展趋势的初步预测:1. 智能化水平的提升:将更多的智能化技术融入MCU方案中,例如语音识别、人脸识别等,使得用户与灯饰设备的交互更加智能化、便捷化。
2. 云平台的应用:将MCU方案与云平台相结合,实现对大规模灯饰设备的集中管理和控制,提高设备运营效率。
I G I T C W技术 分析Technology Analysis78DIGITCW2023.121 会议电视MCU资源池的网络架构设计1.1 MCU资源池概述MC U 资源池是会议电视系统中的关键组成部分,它承担着多方会议的集中管理与控制任务。
MCU (Multipoint Control Unit )是一种集成了视频、音频和数据传输功能的系统,具有以下功能和作用。
(1)MCU 资源池可以集中实现多个终端设备的会议连接和通信。
它允许多个终端同时参与会议,并在会议过程中进行实时的音视频数据传输。
通过MCU 资源池,会议主持人可以轻松地控制会议的开启、关闭、成员管理等操作。
(2)MCU 资源池支持多方同时进行实时的音视频通信。
它可以对接多个终端设备,将不同终端的音视频数据进行集中处理和转发,实现各方之间的实时互动和交流。
通过MCU 资源池,参会者可以在不同地点参加会议,节省时间和成本。
(3)MCU 资源池可以对音视频数据进行编解码、混合、转换等媒体处理操作。
它能够将来自不同终端的音视频数据进行混音、画面切换、子画面合成等处理,为参会者提供更好的听觉和视觉体验。
(4)除了音视频数据,MCU 资源池还支持数据的传输和共享。
参会者可以通过MCU 资源池实现文件共享、屏幕共享、虚拟白板等功能,实现更便捷的信息交流和协作[1]。
1.2 组网需求分析在多方会议场景下,网络组网需求非常重要,直接影响着会议电视系统的性能和用户体验。
以下是多方会议场景下的网络组网需求分析。
(1)多方会议需要同时传输多个音视频流,因此对带宽的需求较高。
每个参会者都需要上传自己的音视频数据,并接收其他参会者的音视频数据,因此网络组网需要提供足够的带宽来支持这些数据流的传输。
带宽需求量取决于参与会议的终端数量、音视频质量和传输协议等因素。
(2)多方会议的实时性要求较高,通信延迟应尽可能低。
过高的延迟会导致参会者之间的沟通不作者简介:秦莎莎(1982-),女,汉族,山东沂水人,工程师,硕士研究生,研究方向为会议电视。
■建筑电气第6卷第2期2021年4月基于MC+的智能密码锁控制系统孙鹏宇,魏立明4(吉林建筑大学电气算院,吉林长春130118)摘要:智码锁具有安全高效的功能,在5678中具有广泛的应用性。
本文设计的智(密码锁采用STC89C52E片为主要器件,由电源模块、单片机最小系统模块、显示模块、报警模块、矩阵键盘模块等'成。
该设计实现在液晶屏上显示汉字、开关的状态、输入多次错t)码自动锁死功(、可随意修改密码、输入密码错t会自动报警等一系列基本功能。
具有操作方便、保密性强等优势,具有良好的应用价值。
关键词:智(锁;STC89C52;电源模块;液晶屏;矩阵键盘中图分类号:TU911文献标识码:A文章编号:2096-2118(2021)02-0053-04Intelligent Password Lock Control System Based on MCUSUN Pengyu,WEI Liming4(School Electricity and Computer, Jilin Jianzhu University,Changchun Jilin130118,China.Abstract:The smart code lock has safe and efficient functions and has a wide range of applications in daily life. The smart code lock designed in this paper use STC89C52chip as the main circuit, which is composed of power module,single chip microcomputer system module,display module,alarm module,matrix keyboard module and so on.This design realizes a series of basic functions,such as displaying Chinese characters on the LCD screen,status of switches,automatic locking function when inputting wrong passwords for many times,random modification of passwords,automatic alarm when inputting wrong passwords,etc.These have the good application value,cause the advantage of easy operation,great confidentiality and so on.Keywords:smart lock;STC89C52;power module;LCD screen;matrix keyboard0引言智能密码锁是靠密码控制锁的正常工作,当人们输入密码的时候,采用电路进行开锁。
第二章Simulink建模与调试Simulink是动态和嵌入式等系统的建模与仿真工具,也是基于模型设计的基础。
对于机电、航空航天、信号处理、自动控制、通讯、音视频处理等众多领域,Simulink提供了交互式的可视化开发环境和可定制的模块库,对系统进行建模、仿真与调试等。
并可实现与Stateflow有限状态机的无缝连接,扩展对复杂系统的建模能力。
通过Simulin模块库自带的1000多个预定义模块,基本上可快速地创建基于MCU器件应用的系统模型。
运用层次化建模、数据管理,子系统定制等手段,即使是复杂的嵌入式MCU应用系统,也能轻松完成简明精确的模型描述。
大量使用Embedded MATLAB来创建用户自己的算法模块,可大大加快建模速度。
读者在后面的内容中,会经常看到用Embedded MATLAB创建的算法模块,加快MCU器件开发的实例。
模型是基于模型设计的起点,同时也最核心的东西。
本章将以基于PID控制的直流电机的物理建模与调试为例来介绍Simulink,更详细的内容请读者参考MathWorks公司相关内容的用户手册。
Simulink的主要特点如下:●众多可扩展的模块库●利用图形编辑器来组合和管理模块图●以系统功能来划分模型,实现对复杂系统的管理●利用模型浏览器(Model Explorer)寻找、创建、配置模型组件的参数与属性●利用API实现与其他仿真程序的连接或集成用户代码●用图形化的调试器和剖析器来检查仿真结果,评估模型的性能指标●在MATLAB命令窗口中,可对仿真结果进行分析与可视化,自定义模型环境、信号参数和测试数据●利用模型分析和诊断工具来确保模型的一致性,定位模型中的错误本章主要内容有:●Simulink基本操作●搭建直流电机模型●Simulink模型调试2.1 Simulink基本操作2.1.1 模块库和编辑窗口打开模型库浏览器在matlab的命令窗口中输入“simulink”指令或单击matlab工具栏上的“simulink”图标就可以打开模型库浏览器。
如图2.1.1所示:图2.1.1 模型库浏览器打开模型编辑窗口要建立一个新的模型,首先要打开一个模型编辑窗口。
可以通过点击模块库浏览器上的NEW Model按钮,或File→NEW→Model来打开窗口,如图2.1.2所示。
图2.1.2 打开模型编辑窗口2.1.2 Simulink模块库Simulink模块库是建立模型的基础,其中囊括了大量的基本功能模块,只有当用户熟练的掌握了模块库,才能快速、高效的建立模型。
从图 2.1.1所示的模型库浏览器可知,在Simulink 模块库中包含有以下子模块库,如表2.1.1所示:下面将详细介绍几种使用频率较高的模块库。
1.常用模块库(commonly used block)常用模块库中的模块是simulink所有模块库中使用频率最高模块的合集,主要是为了方便用户以最快的速度建立模型。
常用模块包含如图2.1.3所示的成员,模块功能如表 2.1.2所示:图2.1.3 常用模块库表2.1.2常用模块库列表2.连续模块库(continuous)连续模块库中的模块如2.1.4图所示,它包含了搭建连续系统所涉及到的绝大部分模块,这些模块的功能如2.1.3表所示:图2.1.4 连续模块库结合本书是讲述基于模型设计的思想开发MCU器件,本章将以Simulink在控制电机中的应用为例,介绍Simulink的建模与调试技术。
这里值得一提的是PID控制模块。
PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
它是在较新版本的Simulink中才新增并逐步完善的一个模块,R2010b版已经具备自动调节功能。
具体原理和使用将在后面分析。
3.离散模块库(discontinuous)离散模块在涉及数字信号系统中被广泛使用,基于这种考虑,mathworks公司单独列出了离散系统模块库。
离散模块库中的模块和其功能如2.1.5图所列:图2.1.5 离散模块库其中常用模块的功能如表2.1.4所示:表2.1.4离散模块库列表4.数学运算模块库(math operations)数学运算模块将很多数学运算封装成模块的形式,使数学运算操作大大简化,减少了很多程序设计上的繁琐过程。
此模块库所包含的模块如图2.1.6所示:图2.1.6 数学运算模块库其中常用模块的功能如表2.1.5所示:表2.1.5数学运算模块库列表5.信号源模块库(signal attributes)信号源模块库如2.1.7图所示:图2.1.7 信号源模块库其中常用模块的功能如表2.1.6所示:表2.1.6信号源模块库列表6.信号接收模块库(sinks)信号接收模块库如图2.1.8所示:图2.1.8信号接收模块库其中常用模块的功能如表2.1.7所示:表2.1.7信号接收模块库列表7.用户自定义模块库(user-defined functions)用户自定义模块库如图2.1.9所示:图2.1.9 用户自定义模块库其中常用模块的功能如表2.1.8所示:2.1.3 模块的基本操作1. 模块的查找在模块库页面的左侧以树形结构显示了一系列的子库,如连续模块库,离散模块库,数学运算模块库,当用户对这些模块比较熟悉以后,可以非常方便、快捷的找到自己需要的模块。
如果是刚刚接触Simulink的用户,这里还提供了查找功能,方便不熟悉它的人使用。
如图2.1.10所示:图2.1.10 模块查找当用户找到自己所需要的模块后,就要把它复制到模型编辑窗口中以便进行下一步的操作。
这里可以直接把模块拖拽到编辑窗口中完成复制,也可以右键单击,在弹出菜单中选择“Add to new model ”,如图2.1.11所示。
图2.1.11 添加模块2. 模块的选定模块被加入到编辑窗口以后,要通过选定模块才能对其进行操作。
选定单个模块可以直接用鼠标左键单击目标模块;也可以按下鼠标任意键拖动,此时会出现一个虚线框,当虚线框包围了目标模块时放开鼠标,即可选中模块。
若是要选中多个模块就需要用上述的虚线框法来操作,如图2.1.12所示。
选择编辑窗口中所有对象的方法是单击菜单Edit→Select All。
图2.1.12 选定一组对象3. 模块的连接和调整●模块的调整为了使模型更加美观和符合逻辑,有时需要对模块的大小、方向等做适当的修改。
模块大小的调整。
选中模块,用鼠标选中模块周围4个黑色方块中的任意一个开始拖动,这时会出现一个虚线框表示的新模块大小示意,调整至需要的大小后释放鼠标即可,如图 2.1.13所示。
图2.1.13 调整模块大小模块的旋转。
选中模块想要旋转的模块,在菜单中选择Format,在次级目录中选择Flip Block可以使模块180°旋转;选择Rotate Block使模块旋转90°。
如图2.1.14所示:图2.1.14 模块翻转●模块的连接模型中的信号是从模块经连线传输到下一个模块的,因此模块间的连线被称为信号线,当模块设置好以后,只有将它们按一定的顺序连接起来才能完成一个正确的模型。
自动连线:Simulink系统具备自动连线的功能,步骤如下:选择一个具有信号输出的模块,按下“ctrl”键,然后用鼠标左键单击要连接到的模块。
如图2.1.15所示:图2.1.15 自动连线手动连线。
用户也可以选择自己手动连线。
把鼠标指针移动到第一个模块的输出端口,这时指针的形状会变为一个十字,如图2.1.16所示。
图2.1.16 手动连线按下并拖动鼠标至目标模块的输入端口处,这时鼠标指针会变成一个双十字,释放鼠标后两个模块就连接起来了。
如图2.1.17所示:图2.1.17手动连线提示:用手动方法连接模块时是可以从输出到输入口划连接线的。
分支连线:是指从一条已经存在的连线上另外再拉出一条线用来连接一个模块的输入口。
这时,原连线和分支连线上传输的是同一个信号。
把鼠标指针移动到原有连线上,按下“ctrl”键,拖动鼠标左键到目标模块的端口,释放鼠标,完成连线。
如图2.1.18所示:图2.1.18 分支连线移动连线:把鼠标移动到想要移动的连线处,按下左键并拖动到目标位置,释放按键,完成移动。
如图2.1.19所示:图2.1.19 移动连线连线的折曲:选择要折曲的线段,将鼠标移动到要折曲的点上,按下“shift”键,并按下鼠标左键,这时指针会变成一个圆圈状,拖动折曲点至目标位置后释放鼠标,完成折曲。
如图2.1.20所示:图2.1.20 曲折连线连线中插入模块:如果模块只有一个输入口和输出口,那么可以将该模块直接插入到一天连线中。
如图2.1.21所示:图2.1.21连线中插入模块连线的注释:有时为了增加模型的可读性,常常会给信号线加上注释。
在要添加注释的连线附近双击鼠标左键会出现一个文本输入框,用户可以根据需要添加适当的注释,注释的位置是可以通过鼠标拖拽更改位置的。
如图2.1.22所示:图2.1.22连线的注释2.2 搭建直流电机模型直流电机是控制系统中的常用组件,它给系统提供旋转动力或者和其他组件配合进行传动。
下面将通过一个直流电机模型(DC Motor)来介绍如何在Simulink中建立LTI(LTI Linear time-invariant)系统并实现对其转速的控制。
2.2.1 数学模型分析电机可分为电气部件和机械部件两部分,电机模型如图2.2.1所示。
AngularVelocity图2.2.1 电机模型电机的电气部分和机械部分是通过转子联系起来的,转子即为电能与机械能转化的枢纽。
这两部分的方程都要受到转子感应电动势的影响。
对于左边的电气部分,由电磁感应定律可知,转子会产生一个反向的感应电动势来阻止转子的运转,外界电源V in要克服反向感应电动势做功,才能使转子转动。
我们可以先把其他元件抽象为电阻和电感,把精力集中到主要矛盾上来:电机如何平稳运转。
当电机正常运转时,先分析电气部分回路:外部电源V in、电阻和电感上的电压降V R 和V L、转子上的反向感应电动势V emf在同一个回路中。
由电路分析的基础知识KVL定律(基尔霍夫电压定律)可以得到:V in=V R+V L+V emf①对于右边的机械部分,稍复杂一些。
当电动机带着负载匀速旋转时,其输出转矩必定与负载转矩相等。
在非理想电机模型中(即不忽略机械、电磁损耗),轴承的摩擦、电刷和换向器的摩擦、转子铁心中的涡流、磁滞损耗都要引起阻转矩。
此阻转矩用T f表示。
这样,电动机的输出转矩便等于电磁转矩T减去电机本身的阻转矩T f。
所以,当电机克服负载阻转矩T L匀速旋转时,则有:T L=T O=T−T f②实际上,电机经常运行在转速变化的情况下,例如启动、停转或反转等,因此必须讨论转速改变时的转矩平衡关系。