【导读】于现代工业智能化转型中,交融人工智能技能的传感器正成为要害鞭策力。此中,将边沿与云端人工智能(AI)技能融入配备模仿及数字器件的传感器,成为极具潜力的标的目的。因为AI技能手腕繁多,传感器设计职员于推进这一交融时,面对着诸多彼此制约的挑战,像决议计划延迟、收集带宽占用、功耗与电池寿命,以和适配呆板的AI模子选择等问题。前文已经对于基在AI的无线状况监控传感器Voyager4的概况与硬件设计做了先容,本文将深切剖析为智能边沿传感器构建的软件架构、AI算法,以和于Voyager4上开发AI模子的全体系级要领。
择要
于现代工业智能化转型中,交融人工智能技能的传感器正成为要害鞭策力。此中,将边沿与云端人工智能(AI)技能融入配备模仿及数字器件的传感器,成为极具潜力的标的目的。因为AI技能手腕繁多,传感器设计职员于推进这一交融时,面对着诸多彼此制约的挑战,像决议计划延迟、收集带宽占用、功耗与电池寿命,以和适配呆板的AI模子选择等问题。前文已经对于基在AI的无线状况监控传感器Voyager4的概况与硬件设计做了先容,本文将深切剖析为智能边沿传感器构建的软件架构、AI算法,以和于Voyager4上开发AI模子的全体系级要领。
状况监控传感器的软件设计
Voyager4是由ADI公司开发的无线状况监控平台,开发职员借助它可以或许快速将无线解决方案部署到呆板或者测试设置并举行测试。Voyager4等机电康健状态监控解决方案广泛运用在各行各业,例如呆板人以和涡轮机、电扇、泵、机电等扭转机械。
为如许的无线边沿装备开发软件可能很坚苦。从传感器设计的初期阶段最先,开发职员就必需思量总体体系架构,体系的各个部门怎样运行,怎样集成差别组件以协同事情,以和怎样运用及部署有效的算法与阐发东西(如神经收集)来晋升边沿智能程度。
对于在此类项目,重要方针就是为边沿装备及所连主机创立易在理解、可修改、可进级的软件。Voyager4内部有两个微节制器及很多外设,包括传感器、电源治理板、闪存及通讯接口。开发旨于节制及整合每一个部门的代码是一项艰难的使命。
本文但愿经由过程展示Voyager4的开发设计历程,重点申明所采纳的步调,并提供一些详细的实现案例,以帮忙读者更好地相识自行开发边沿传感器的要领。
这是论述Voyager4状况监控平台开发的三部门系列文章的第2部门。
►本系列文章的第1部门先容了Voyager4无线状况监控传感器,包括传感器架构的要害元素、硬件设计、功耗阐发及机械集成。
►本系列文章的第2部门将重点会商软件架谈判AI算法,并申明于Voyager4上开发及部署AI模子的完备体系级要领。
►本系列文章的第3部门将会商AI算法的现实实现,以和Voyager4可以检测的各类妨碍,例如不服衡、未瞄准及轴承缺陷。
概述
这里扼要回首了Voyager的事情道理。有关状况监控传感器的更多信息,以和关在Voyager4项目的专有硬件、功耗及安全特征的具体信息,请参阅本系列文章的第1部门。
图1.Voyager4事情模式。
图1显示了Voyager4的传感器事情道理。ADXL382三轴8 kHz数字微电机体系(MEMS)加快度计用在收罗振动数据。收罗的数据会依据事情模式遵照差别的路径。
路径A是最初采用的路径,原始振动数据直接发送到MAX32666低功耗蓝牙®(BLE)处置惩罚器。然后,数据可以经由过程无线BLE或者USB发送给用户。路径B是一种替换事情模式,可以于使用Voyager收罗原始数据并经由过程MAX78000外部东西练习模子后利用该模式。数据不会发送给用户,而是通报给边沿AI算法来猜测呆板妨碍。路径C及D别离代表检测到及未检测到机电妨碍的用例。假如检测到妨碍,则可以经由过程BLE处置惩罚器向主机发送妨碍标记或者用户警报。假如未检测到妨碍,传感器将返回休眠模式,直到发生下一次检测事务。
该架构是Voyager4软件及AI算法开发的重点。为了从体系层面周全理解该架构,本文将会商如下几方面:
►BLE术语
►BLE外围装备的实现
►BLE中央装备的实现
►AI算法的练习及部署
BLE配景常识
设计工业边沿传感器时,毗连是要害设计因素之一。按照可用或者所需的功率,毗连会影响笼罩规模、靠得住性、装备总体寿命及尺寸等各个方面。如表1所示,与其他毗连尺度比拟,BLE拥有一些尤其的上风。对于在咱们的工业监控用例而言,BLE的笼罩规模、功率及靠得住性尤为主要。要相识BLE边沿装备的设计及开发,起首必需相识所有BLE项目城市利用的一些基本术语。
表1.无线毗连尺度比力
周全先容BLE的所有特征将需要一本书的篇幅。本文将重点先容实现BLE装备时需要思量的一些要害观点,包括:
►软件仓库
►外围装备/中央装备模子
►和谈及配置文件
BLE软件仓库
BLE软件仓库是一系列尺度和谈的调集,装备必需撑持这些和谈才能被视为与BLE兼容。为了帮忙读者更轻松地舆解这个术语,图2展示了仓库内差别和谈的分层方式。对于在用户通讯及装备毗连等高级功效,需要卖力数据封装及解析等基本使命的较初级和谈提供撑持。
幸运的是,开发职员对于仓库构成部门有基本的相识凡是就充足了,他们可以从一系列已经经实现各自版本仓库的硬件装备中举行选择。用户只需开发运用步伐中卖力节制装备自己的部门,并使用预构建的BLE仓库便可。
图2.BLE仓库。
BLE仓库凡是由三个差别部门构成:运用步伐、主机及节制器。运用步伐界说用户接口及用户实现的详细运用代码(振动监测)。主机是指BLE软件仓库的上层,它节制配置文件及和谈等高级功效。节制器是指BLE仓库的底层,它处置惩罚链路层及物理层,如2.4 GHz无线电自己。此项目选择利用MAX32666 BLE微节制器。这是一款低功耗Arm®Cortex®-M4微节制器,搭载低功耗蓝牙5无线电,撑持远间隔(4×)通讯及高数据吞吐速度(2 Mbps)。
外围装备/中央装备模子
按照BLE装备的作用,可以将其界说为外围装备或者中央装备。数据可以双向流动,二者之间最年夜的区分之一是其毗连方式。于毗连以前,外围装备会布告其可否毗连,中央装备则扫描可供毗连的外围装备并倡议毗连。数据可以于外围装备及中央装备之间双向流动,但中央装备被视为主机。旧版BLE文献也将外围装备及中央装备别离称为办事器及客户端。
图3.外围装备/中央装备1:1模子。
于咱们的体系中,将Voyager平台界说为外围装备,它网络数据并将其发送到中央装备。对于在这个项目,为了简化开发及便在理解,咱们起首研究最简朴的景象:单个中央装备与单个外围装备交互,如图3所示。
和谈及配置文件
于蓝牙的定名术语中,和谈及配置文件很轻易混合。简朴地说,和谈是界说装备操作的基本功效块:数据封装、格局、路由等。配置文件是组合于一路以撑持基本事情模式的功效包。它素质上是多种和谈的组合,以实现某种总体功效。例如,电池办事配置文件可用在查询装备的残剩电池电量。所有BLE装备都必需实现至关主要的通用拜候配置文件(GAP)及通用属性配置文件(GATT),以便可以或许毗连到其他BLE装备。GAP卖力处置惩罚底层各项功效:播送、装备发明及毗连治理。GATT卖力治理装备之间的高级数据构造及传输,使它们可以或许经由过程已经成立的毗连履行读写操作。
其他配置文件是可选的附加项,用在为装备提供分外功效,例如靠近配置文件(Proximity Profile)。这些配置文件包括由蓝牙技能同盟(SIG)创立的预界说配置文件。开发智能腕表或者智能电表等典型装备时,利用一组预界说的配置文件可能颇有用,但对于在需要实现年夜量自界说功效的装备而言,预界说配置文件可能会带来限定。
开发职员还有可使用并不是由蓝牙SIG创立的自界说配置文件,如许做可以晋升设计矫捷性,但会捐躯必然的可移植性。每一个配置文件将其数据构造成办事,办事由多个特征构成,如图4所示。
图4.自界说号令办事器配置文件。
傍边心装备及外围装备之间形成毗连时,中央装备可以哀求与该外围装备联系关系的配置文件及办事。图5显示了中央装备发出哀求时,Voyager的GAP、GATT及自界说配置文件(和其办事)的布局。
图5.Voyager配置文件布局。
对于在Voyager,除了了基本的GAP及GATT配置文件,咱们还有界说了一个用作号令办事器的自界说配置文件,它处置惩罚来自中央装备的号令,并返回数据或者更新外围装备自己的配置。
固件实现
BLE微节制器是该体系的焦点,它确保所有外围传感器及装备的数据均可以由相连的BLE中央装备检索或者修改。
装备配置
咱们使用MAX32666上预先构建的BLE仓库,经由过程填充相干配置功效来构建外围装备的外不雅。例如,于图6中,咱们为扫描数据发明数组提供了数据长度、播送类型及一系列字符,每一次Voyager上电时,外围装备设置函数城市挪用该数组。
图6.设置Voyager扫描数据。
像如许的BLE装备将有年夜量的设置需要配置,包括无线电的传输功率及返回数据类型。建议从所利用硬件附带的预构建示例入手,然后于其基础长进行自界说修改。MAX32666提供了一个BLE数据办事器(外围装备)的示例代码,名为BLE DATS,Voyager项目就因此此为基础构建的。配置后,傍边心装备扫描可用装备时,外围装备的名称显示为Voyager。这也能够用在过滤搜刮列表,以便中央装备仅显示预期名称的装备。如图7所示,装备名称与装备MAC地址及吸收旌旗灯号强度唆使(RSSI)一同显示。
图7.中央装备中显示的Voyager。
仓库内的其他配置设置节制装备其他模式的预期名称及举动,例如制造商ID、对于读/写号令的相应等。
图8.Voyager4硬件框图,采用了MAX3207E、DS28C40A、ADXL38二、ADG163四、MAX3266六、ADXL36七、MAX78000、MAX1726二、MAX20335及MAX38642。
号令办事器
Voyager4运用的中央端及外围端是同步设计的,是以可以使用含有单个BLE办事的自界说配置文件来简化外围装备接口。该配置文件将卖力吸收来自中央装备的号令,并以加快度计数据、温度数据及其他装备信息的情势返回相应。
对于在像Voyager如许繁杂的装备,采用该单一自界说办事举行BLE通讯是差别平常的做法,但却带来了几点利益。这类做法不仅撑持Voyager版本之间的向后兼容性,并且加强了号令矫捷性,由于经由过程将字符串用作Voyager外围装备的号令输入,运用可以按照数据的解析方式,矫捷撑持各类类型的号令及值。
一旦外围装备及中央装备之间形成毗连,为了成立双向通讯,中央装备就会向自界说特征发出通知号令,如图11所示。如许就于外围端成立了一个通知体系,并于中央端指定了响应的回调函数。这象征着,每一当有更新的数据分配给该自界说特征时,城市通知中央装备,传输新数据,并触发中央装备的回调函数。
固件架构
图8中的硬件示用意显示了Voyager中包罗的各类元器件以和相干的数据路径及电源。年夜大都软件开发都是于BLE微节制器长进行的,由于它作为号令中央,卖力协调装备的BLE接口以和传感器及微节制器数据的内部管道。为了与体系中的差别传感器及微节制器举行交互,咱们必需开发供BLE微节制器及AI部门中会商的AI微节制器利用的装备驱动步伐。现实上,这些驱动步伐的开发及集成占了联网边沿传感器所需编程事情的很年夜一部门。
编写可移植代码
开发固件时,咱们将代码划分成几个抽象层,以将特定微节制器的详细细节与运用步伐及驱动步伐代码区别开来。这类做法很常见,凡是会于运用层以外再划分出三个明确的条理来治理差别的代码功效,即硬件抽象层(HAL)、板撑持包(BSP)及驱动步伐层。此架构如图9所示。
图9.通用BSP-HAL架构。
HAL为步伐与差别硬件的交互提供了一种同一要领,步伐无需知道每一个装备的详细细节。BSP界说了依靠在硬件的软件,而驱动步伐层界说了各个装备的更详细细节,如寄放器映照。例如,Voyager有两个微节制器,MAX32666用在BLE毗连,MAX78000带有一个板载卷积神经收集(CNN)加快器。如图10所示,Voyager中的HAL界说了微节制器、SPI及I2C将利用的基本通讯号令。举例来讲,任何装备驱动步伐发出任何SPI通讯哀求时,此使命最初城市被委托给HAL中的SPI函数,然后HAL查找BSP的详细信息,以便针对于该微节制器利用准确的SPI号令。
对于在体系中的每一个电路板,HAL连结稳定,但对于在每一个微节制器,BSP会更新。BSP还有卖力界说体系的通用构建模块,以将运用步伐挪用与所利用的详细装备解耦。于图10中,BSP中的MAIN_ADXL模块是所利用的底层加快度计的抽象块。任何加快度计的经常使用号令(如初始化及读取)都于BSP层中界说,而初级函数(如get_raw_xyz_data)则于ADXL382模块中的驱动步伐级别上界说。将驱动步伐代码从MAX32666移植到MAX78000微节制器时,加快度计代码连结稳定,由于它仅与加快度计自己有关。只有BSP层中的文件需要更新,以便可以或许与新微节制器通讯。
这对于在体系中部件的改换或者进级来讲,也具备较着的上风。于Voyager中,一个真实例子是咱们决议进级所用的主加快度计。进级仅需更新驱动步伐层中的代码,维护、修改及测试事情都患上以简化。
图10.Voyager BSP HAL架构。
数据管道及BLE中央装备
虽然温度及电池信息可按照要求提供应BLE中央装备运用步伐,但Voyager的重要作用是作为状况监控器及振动传感器。关在数据吞吐速度及数据发送频率,咱们重点思量振动传感器及典型状况监控场景,好比天天举行一次短暂丈量。BLE不撑持高数据吞吐速度。ADXL382是一款高带宽、3轴加快度计,于高机能模式下每一秒每一轴收罗16,000个样本。按照体系所包罗的元器件,有几种数据发送方式可供选择。
发送及时数据
没有任何情势的缓冲,傍边心装备哀求数据时,只要数据可用,便当即发送。这类方式于演示模式下颇有用,可以及时展示高机能加快度计数据,可是电池电量很快就会耗尽,而且因为天生数据的速率跨越发送的速率,数据包会被抛弃或者毁坏。
从存储器发送数据
另外一种方式是将数据生存到闪存中。如许,咱们就能够安全地记载加快度计数据,而没必要担忧笼罩之前的值。生存的数据随后会直接发送到中央装备,或者于收到中央装备的号令落伍行陈诉。该体系再也不是及时的(数据多是几分钟甚至几天前的),是以咱们还有可以使用BLE对于数据包的应对体系,确保数据完备完好地达到中央装备,若有任何数据丢掉则从头发送。
对于在典型的工业状况监控场景而言,这类方案更为实用,但装备的电池寿命年夜部门华侈于发送天天变化不年夜的振动信息上。
于边沿履行阐发
为了延伸电池续航时间,于边沿履行一些阐发会更好,确保仅相干数据才经由过程无线电链路传输。固然,这只有于边沿孕育发生成心义洞察所需的功耗较着低在经由过程BLE发送数据所需的功耗时才是可行的(有关这方面的更多信息,请参阅本系列文章的第1部门)。
于图8中可以看到,加快度计与两个微节制器都有直接数据路径。于咱们在边沿履行某些阐发的用例中,AI微节制器可以直接从加快度计读取振动数据,并利用板载AI模子举行阐发。
图11.Voyager中央/外围装备架构。
设计中央装备用户界面
BLE外围装备与Voyager外围装备同步设计,是以二者的交互方式存于很是年夜的矫捷性。一般来讲,中央装备需要扫描并毗连Voyager外围装备,然后发送字符串号令并处置惩罚其返回值。首次毗连后,所有BLE号令都直接发送到外围装备的自界说办事举行解析。于本例中,中央装备是Windows PC上的图形用户界面(GUI),用Python编写,并使用BLE外围装备库(BLEak)发出尺度BLE号令。BLEak成立于Python的asyncio尺度库之上,答应BLE号令异步运行,确保用户界面连结可交互状况且不会冻结。
当GUI乐成毗连到外围装备时,体系会主动向Voyager的单个自界说特征发出通知号令,如图11所示。如许可确保对于此特征的任何更新城市陈诉给中央装备。这一点很主要,由于Voyager会对于后续号令给出应对或者相应,注解这些号令是否已经乐成履行。
怎样哀求数据?
始终利用简朴的字符串号令来哀求数据。例如,中央装备可以发出setphy 2号令,唆使Voyager利用其2M无线电。这会晋升数据通讯速率,但笼罩规模及靠得住性会遭到必然的影响。外围装备会解析此号令以确保其有用,然后以输入值2挪用本身的内部setphy函数,从而切换所用的无线电。假如Voyager乐成履行了此函数,则Return: OK号令会被发还中央装备并显示给用户。
解译加快度计数据
吸收数据以前,GUI用户可以选择利用setadxlcfg号令配置所连Voyager的加快度计。一旦外围装备发出启动号令,加快度计数据就会从外围装备流向中央装备。默许环境下,中央装备及外围装备以及时数据模式运行,这对于在演示目的颇有用。
于外围装备端,内部进步前辈先出(FIFO)缓冲区根据用户指定的采样速度填充新数据。一旦FIFO填满,体系就会于Voyager自界说办事上设置一个标记,通知外围装备有新数据可用。然后,数据被发送到外围装备并举行解析,转化为x、y、z三个轴的加快度数据的格局化数组。数据始终以图形方式显示,用户可以选择“生存数据”选项,以将数据生存到csv文件供之后阐发。
图12.Voyager4中央装备GUI画图数据。
AI算法设计
本项目的方针是检测机电的康健状态什么时候最先降落。边沿AI阐发旨于经由过程阐发音频、温度、振动等一种或者多种输入数据,天生机电康健状态的指标或者特性,从而代替或者增补人类数据阐发。振动阐发是现今状况监控运用中经常使用的技能手腕。
输入
很多边沿AI处置惩罚器往往很是耗电,这与无线状况监控解决方案的方针之一(即延伸续航时间)南辕北辙。MAX78000(如前所述)可以或许快速、低功耗地举行AI推理,其总功耗比利用无线BLE还有要低。可是,于利用低功耗边沿AI处置惩罚器时,应留意神经收集的范围不克不及凌驾电路板的规格。该板搭载一个512 kB数据内存的CNN加快器。它重要用在方针检测、音频处置惩罚及时间序列数据处置惩罚。
咱们解决方案可用的数据是加快度时间序列。为了只管即便提高所练习算法的机能,咱们测验考试了几种预处置惩罚要领,以确定哪一种要领瞄准确度影响最年夜。本系列文章的第3部门将对于此加以具体会商。
练习
于线资源“Analog Devices AI”GitHub具体申明了练习神经收集并将其部署到MAX78000的历程。一般来讲,起首利用PyTorch®或者TensorFlow®等通例东西集于主机PC上创立模子。此模子需要练习数据,这些数据必需由方针装备生存并传输到PC。输入的一部门成为练习集,专门用在练习模子。还有有一部门成为验证集,用在不雅察丧失函数(收集机能的权衡尺度)于练习时期怎样变化。
按照所用的模子类型,可能需要差别类型及数目的数据。要辨认特定的机电妨碍,您需要利用标注好的数据练习模子。这些数据不仅要包罗各类妨碍状况下的振动信息,还有要包罗无端障的正常状况下的振动数据作为对于比。
图13.Voyager康健状态练习数据。
Voyager最初采用主动编码器类型的神经收集开发。主动编码器无需借助数据标签就能学会怎样对于数据举行分类。虽然这类类型的模子不合适繁杂的妨碍分类,但它可以快速完成练习,而且仅需利用客户已经有的数据,例如正常运行机电数据。
练习所需的抱负数据量因详细环境而异。要害于在拥有充足的数据来进修正常运行机电数据的一般趋向,同时防止过拟合。Voyager部署的默许示例仅利用了30秒的正常运行加快度计数据举行练习。同时生存了一样数目的存于不服衡妨碍的数据以供验证。两个数据集均经由过程Python GUI直接生存到练习PC中。
图14.Voyager妨碍测试数据。
输入数据用在练习模子以前,颠末了预处置惩罚。然后,练习剧本按挨次运行频频练习迭代,并遴选出体现凸起的模子。为了测试目的,需要一些妨碍输入数据。基在正常运行数据练习模子后,务必先用妨碍数据举行测试,如许才能确保成果的靠得住性。
怎样部署算法?
模子练习完成后,必需利用ADI公司的于线东西集举行量化及合成。量化步调经由过程舍入或者截断,将所天生模子的权重映照到更小的数值区间调集,从而削减模子存储所需的内存。这是将神经收集部署到较小边沿装备的尺度步调。合成步调将量化模子转换成微节制器可理解的C文件。
此步调天生三个文件,随后必需将这些文件复制到微节制器的勾当项目中,并于下次固件更新时加载。此中两个文件(cnn.h及cnn.c)包罗用在CNN配置的寄放器写入操作,以和所加载模子的其他有效功效。第三个文件(weights.h)包罗练习(及量化)获得的模子权重。
经由过程有线更新(借助调试端口)或者无线(OTA)更新加载新固件后,就完成为了模子部署,BLE微节制器就能按需查询模子,履行AI推理。
部署后怎样利用?
一旦部署新固件,AI微节制器就会作为有限状况机运行,经由过程SPI接管并相应来自BLE节制器的号令。
图15.微节制器SPI通讯。
收到推理哀求时,AI微节制器会叫醒,并向加快度计哀求数据。主要的一点是,它随后会对于该时间序列数据履行与练习时不异的预处置惩罚步调。末了,此预处置惩罚的输出会送到已经部署的神经收集,由其陈诉分类成果。
图16.AI推理状况机。
出在省电思量,AI微节制器被设计成于叫醒时主动履行推理。是以,BLE微节制器可以仅于需要举行阐发时才启动AI微节制器。
于典型设置中,BLE微节制器可以天天短暂地从低功耗休眠模式叫醒,哀求对于现有加快度计数据举行AI推理,假如数据不满意用户设定的前提,好比模子以99%的置信度判定数据正常,则返回休眠模式。反之,假如数据看起来异样或者没法判定是否正常时,则BLE微节制器可以毗连到四周的BLE主机并同享数据。经由过程这类方式,于边沿举行阐发就无需主机体系理解数据,从而节省了电池电量。
结语
本文先容了无线振动监测体系Voyager4,它采用边沿AI阐发来晋升其作为状况监控东西的智能程度及电池续航时间。设计有用的状况监控传感器需要思量多个方面。咱们会商了Voyager4的硬件旌旗灯号链、用在将差别体系元素集成于一路的固件,以和该装备作为BLE外围装备的外不雅。咱们还有切磋了AI于Voyager中的运用,并提供了有关怎样开发及部署边沿AI模子的一些看法。
保举浏览:
逾越传统:空心线圈怎样重塑RF与主动化范畴——工程师必备选型指南
贸泽电子联袂英飞凌:海量元器件助力工程师“加快跑”
国产测试仪器新冲破:赛迈测控完成近亿元A轮融资
安森美光伏方案剖析:助力逆变器能效周全进级
深度解析通信变压器的焦点上风、运用生态与原厂选型成本战略
-拉斯维加斯官方网站-(中国)有限公司