0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统的开发分析和规范控制

星星科技指导员 作者:Paul Pilotte 2022-07-05 14:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在第 1 部分中,我们通过BuildingIQ智能气候控制系统和Scania紧急卡车制动系统等示例,推动了在嵌入式系统中使用分析。我们涵盖了数据访问、数据预处理和最具预测性特征的识别。现在让我们转向开发预测分析算法本身。

开发分析算法

重要的是要考虑分析算法是否是您的最佳方法。在系统行为可以通过已知的科学方程很好地表征的情况下,经过验证的数学建模可以是一种简单而有效的方式来满足设计目标。这种方法使用数据拟合、统计建模、ode 和 pde 求解以及参数估计等技术。以这种方式构建的模型具有通过历史数据或基于第一原理预先确定的优势,可以在嵌入式系统上实现内存和计算效率,并且可以更简单地开发和维护。因此,在考虑以数据为中心机器学习技术之前,首先要谨慎考虑“主力”建模方法是否可以满足您的设计目标。然而,对于越来越多的设计挑战,例如在 BuildingIQ 示例中动态设置气候控制点或在斯堪尼亚制动应用中进行对象识别,机器学习是最好的方法。

机器学习

机器学习算法使用计算方法直接从数据中“学习”信息,而不依赖于预定方程作为模型。事实证明,这种使用数据本身训练模型的能力为预测建模开辟了广泛的用例——例如金融信用评分和电影、歌曲和零售购买的在线推荐。在嵌入式系统中,机器学习用于快速增长的应用范围,包括人脸识别、肿瘤检测、电力负荷预测以及前面提到的 BuildingIQ 和 Scania 应用。“大数据”、计算能力和软件工具的可用性提高,使得在工程应用程序中使用机器学习比以往任何时候都更容易。

机器学习大致分为两种类型的学习方法,监督学习和无监督学习,每一种都包含针对不同问题量身定制的几种算法。

pYYBAGLD3I-AYEZdAADSpahNcZo419.png

监督学习是一种使用已知数据集(称为训练数据集)进行预测的 机器学习。 训练数据集包括输入数据和标记的响应值。监督学习算法从中寻求建立一个模型,该模型可以预测新数据集的响应值。测试数据集通常用于验证模型。使用更大的训练数据集通常会产生具有更高预测能力的模型,可以很好地泛化新数据集。

监督学习包括两类算法:

分类:用于分类响应值,其中数据可以分为特定的“类别”。常见的分类算法包括支持向量机 (SVM)、神经网络、朴素贝叶斯分类器、决策树、判别分析和最近邻 ( k NN)。

回归:用于预测何时需要连续响应值。常见的回归算法包括线性回归、非线性回归、广义线性模型、决策树和神经网络。

选择算法取决于许多设计因素,例如内存使用情况、预测速度和模型的可解释性。其他考虑因素包括是否需要单类或多类响应,以及预测变量是连续的还是分类的。由于模型仅与使用的标记训练数据一样好,因此在使用具有代表性的训练数据集时要小心。机器学习工作流程从选择特征开始,然后指定训练和验证集,使用多种算法进行训练,最后评估结果。图 2 所示的交互式应用程序使机器学习工作流程易于学习和使用。

pYYBAGLD3JWAA4H4AAG_LcCGtvU902.png

无监督学习是一种机器学习,用于从由没有标记响应的输入数据组成的数据集中进行推断。

聚类分析是最常见的无监督学习方法,用于探索性数据分析,以发现数据中的隐藏模式或分组。k-means 是一种流行的集群建模算法,它根据到集群质心的测量距离将数据划分为 k 个不同的集群。

层次聚类使用了一种不同的方法来构建多层次的层次聚类树,它提供了视觉解释,但计算要求更高,因此不太适合大量数据。

其他算法包括高斯混合模型、隐马尔可夫模型和自组织神经网络图。

BuildingIQ 团队使用聚类分析作为其模型创建过程的一部分。他们使用 k-means 聚类和高斯混合模型来分割数据,并确定燃气、电力、蒸汽和太阳能对加热和冷却过程的相对贡献。

深度学习

对于涉及图像、文本和信号的分类问题,深度学习已成为一种新的高级分析类别。当在大型标记训练数据集上进行训练时(通常需要使用图形处理单元 (GPU) 进行硬件加速以及强化训练和评估),深度学习模型可以达到最先进的精度,有时在对象分类方面的表现甚至超过人类水平。对于图像分类,卷积神经网络 (CNN) 变得流行,因为它们通过直接从原始图像中提取特征来消除手动特征提取的需要。这种自动特征提取使 CNN 模型对于诸如对象分类等计算机视觉任务具有高度的准确性。

系统工程师可以更容易地使用上面列出的方法和算法,以便在他们的嵌入式系统中结合有效的分析。在这个由三部分组成的系列的最后一篇文章中,我们将介绍实时执行分析和预测控制并将它们集成到一个整体解决方案中,包括传感器和嵌入式系统以及企业 IT 系统和云基础设施。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4842

    浏览量

    108160
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5271

    浏览量

    136062
  • 机器学习
    +关注

    关注

    67

    文章

    8562

    浏览量

    137211
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式单片机开发学习路径

    嵌入式系统是现代科技的重要组成部分,广泛应用于智能家居、汽车电子、工业控制、医疗设备等领域。学习嵌入式单片机开发不仅能提升个人技能,还能开拓
    发表于 02-09 15:42

    嵌入式系统安全设计原则

    随着物联网、工业控制和智能设备的普及,嵌入式系统的安全问题越来越突出。一个小小的漏洞,就可能导致设备被入侵、数据泄露,甚至对人身安全产生威胁。因此,从设计阶段开始就考虑安全,是每一个嵌入式开发
    的头像 发表于 01-19 09:06 472次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>安全设计原则

    什么是嵌入式应用开发

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发
    发表于 01-12 16:13

    从小白到大牛:Linux嵌入式系统开发的完整指南

    是 **“在嵌入式硬件上运行 Linux 系统开发应用”**,其本质是软硬件协同的工程实践。入门阶段需完成三大核心任务:​ 系统认知构建:明确嵌入
    发表于 12-16 10:42

    什么是嵌入式操作系统

    嵌入式操作系统的定义 嵌入式操作系统是专门为资源受限的嵌入式设备(比如 STM32 单片机、物联网模块、工业
    发表于 12-09 10:33

    分享一个嵌入式开发学习路线

    如果你想要学习嵌入式开发,我建议按照这个学习路线准备: 1. 基础铺垫期(1-2个月) 理解嵌入式系统的“硬件基础”和“编程入门”,能看懂简单电路,写出基础C语言代码。这一阶段的学习对学历没有
    发表于 12-04 11:01

    CW32嵌入式软件开发的必备知识

    合适的数据结构和算法。 3 、计算机体系结构 了解处理器架构,如ARM、x86等,以及指令集和内存管理。 熟悉嵌入式系统的硬件组成,如微控制器、FPGA、DSP等。 可以很熟练地根据CW32
    发表于 11-28 07:48

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一个嵌入式处理器,其控制程序被存储在ROM中。这些
    发表于 11-17 06:49

    嵌入式开发的关键点介绍

    : 许多嵌入式系统需要在实时环境中运行,例如工业控制和航空航天应用。因此,嵌入式开发需要考虑系统的实时性能,并确保
    发表于 11-13 08:12

    嵌入式达到什么水平才能就业?

    :包括GPIO、定时器、中断、ADC 等外设的配置与调试,能实现如温湿度采集、电机控制等功能掌握嵌入式 Linux 驱动开发基础:能编写简单字符设备驱动,实现设备的初始化、读写操作,会用内核调试
    发表于 09-15 10:20

    入行嵌入式应该怎么准备?

    知识: 一、C/C++编程C/C++是嵌入式系统开发中最常用的编程语言。熟练掌握C/C++语言将使你能够理解和编写底层驱动程序、操作系统以及与硬件交互的代码。对于嵌入式
    发表于 08-06 10:34

    嵌入式开发就业还有前景吗?

    和医疗器械使用经验。 3)工业控制 工业控制是指通过各种控制设备和系统,对工业生产过程进行监测、控制和优化。随着工业自动化和智能化的发展,工
    发表于 07-16 10:47

    Linux嵌入式和单片机嵌入式的区别?

    区别 单片机嵌入式系统和Linux嵌入式系统是两种不同的嵌入式系统开发方式,它们在应用领域、
    发表于 06-20 09:46

    嵌入式开发,如何选择适合的系统

    嵌入式ARM开发中,面对多种操作系统的选择,如何做出最适合项目的决策?本文将为您梳理常见系统的特性,帮助您快速了解它们的优缺点,以便更好地选择适合的
    的头像 发表于 05-20 11:32 1296次阅读
    <b class='flag-5'>嵌入式开发</b>,如何选择适合的<b class='flag-5'>系统</b>?

    嵌入式开发入门指南:从零开始学习嵌入式

    特定功能的计算机系统,广泛应用于智能家居、工业控制、医疗设备、车载系统等领域。 2. 学习嵌入式开发的前置知识熟悉C语言编程掌握基本的数据结构与算法了解数字电路与微
    发表于 05-15 09:29