MCU也要基于模型设计?看海尔嵌入式开发专家范纪青怎么说
2024-06-21 来源:EEWORLD
在家电行业快速发展中,传统的瀑布流式的嵌入式开发模式正面临前所未有的挑战。随着产品功能的日益复杂化,如何提升开发效率、保证产品质量成为企业关注的焦点。
日前,在MATLAB EXPO 2024上,海尔集团嵌入式开发专家范纪青以公司的实际开发为例,介绍了基于模型的设计(MBD)是如何帮助传统家电行业提升效率,迎接数字化的。
作为全球知名的家电品牌,海尔有着丰富的产品品类,以范纪青所在的水联网业务部门来看,就包括了电热水器、燃气热水器、热泵热水器、净水机、采暖炉等等丰富的产品。产品种类和功能的升级,正在推进海尔开发模式的变革。
传统开发模式力不从心
范纪青指出,如今对海尔而言,在产品功能向多样化和智能化发展的趋势下,电子控制部分不可能完全依赖硬件电路实现,必须加入更复杂的控制算法。也正因此,传统的软件开发模式已显得力不从心,需要进一步提高软件开发的融合性与复用性。
传统的软件开发模式存在诸多问题,其中之一是开发调试周期过长。通常开始于技术文档的编制,随后进行简单的算法设计。之后主要的工作将转向编写和调试代码。代码调试和编译完成后,需要将其烧录到实体硬件上,并执行进一步的调试工作,大部分时间都消耗在了手写代码和调试上。
其次是软件庞大之后容易出错且效率低。范纪青指出,早期软件代码量较小时,传统开发模式更加简洁易用,而随着如今MCU的Flash已经到了512KB甚至更大时,这也意味着代码量激增。传统软件开发方式势必会出现效率低、错误增加、算法通用性差、可读性差等诸多问题。
另外,传统的软件测试方法也存在局限性。由于依赖人工编写测试用例,限制了测试的覆盖范围。同时,许多核心算法诸如PID等,需要实体硬件进行调试,这无疑增加了开发难度和周期。
MathWorks 中国半导体行业首席技术官陈晓挺博士也举例道,比如空调系统现在需要集成新风系统,这不仅提高了对家电的技术要求,也相应地增加了研发的复杂性和难度。另外,成本也是家电厂商需要面临的压力。大多数家电产品在功能增加的同时,价格却在下降。这要求在设计上进行创新,通过软件实现硬件功能,例如软件定义传感器等,从而降低成本。
陈晓挺说道:“基于功能和成本的双重需求,软件算法变得日益复杂。开发算法不能再依赖于传统的手工编写、汇编语言或C语言,而是需要通过仿真来进行。”
围绕MBD进行软件重构
在嵌入式领域,MBD在汽车领域已经相当普遍,无论是在建模、软件代码生成还是验证方面,都已久经考验。但在家电领域,此前对于这项技术并不太感冒。“很多人也有这样的疑问,选择MathWorks这么高大上的工具做开发,是不是会有“杀鸡用牛刀”的感觉?实际上,通过构建MBD,我们软件开发的开发流程和管理理念都发生了变化。”范纪青说道。
范纪青介绍道,面对各种开发弊端,海尔在集团内部开始了开发转型,对软硬件设计方法学进行了重构。其中在硬件上,集团内部实现了模块通用化,通过在中间件以下部分的重构,实现了软硬件解耦,这样在更换芯片或进行设备验证时,仅需一两天内就可完成。
更重要的是,海尔利用MBD,使开发人员可以将主要精力集中在模型及算法的开发上。从而提高开发效率,减少人为错误,并适应快速变化的市场需求。
范纪青认为,如今许多软件和计算机工程的开发者对底层知识了解不足,因此通过软硬件解耦和MBD的方法论,优化了开发流程,开发效率,并提高了代码可读性,增强了协作开发的可能。
在转型过程中,海尔也面临着从C代码到MBD的转变,这不仅是技术上的挑战,还包括团队协作和管理模式的变革,更是理念上的革新。
“理念转变是最大的难点,许多人习惯于硬件设计,而软件团队通常规模较小,许多资深专家对新算法也不太熟悉。这时,我们就需要借助工具。这些工具可以借鉴其他领域的经验,例如通信领域中已使用的信号处理算法,我们可以将其适配并简化,以适应家电行业智能互联的需求。”陈晓挺也表示。
“随着公司规模的扩大,软件开发势必要向数字化转型,将软件划分为多个标准化模块,从过去个人独立工作转变为团队协作模式。”范纪青说道。
采用MBD的好处
范纪青认为MBD具有多项优势。首先,它能够降低开发难度并提高开发效率,这对于实现软件的模块化和标准化至关重要。此外,MBD允许多个模块的并行开发,从而使得团队协作变得更加高效。同时,由于如今家电都有智能化和OTA需求,因此也需要持续集成和部署(CI/CD)的敏捷开发方式,传统开发流程下缺乏此类工具。
“MBD可以允许在开发的早期阶段解决更多问题,这种左移的方法可以在早期发现并解决问题,从而减少了后期通过硬件修复bug的成本。”范纪青说道。设计人员可以在构建系统之前验证系统设计并优化硬件和软件实现,或者使用现有设计进行验证,从而避免昂贵的物理原型迭代。这种模型在环验证可以模拟各种异常情况,这是硬件测试所不具备的。
“传统的开发流程中,工程师需要在实验室中手动调整参数,观察系统响应,这个过程繁琐且容易出错。MBD允许工程师在仿真环境中复现实验条件,快速调整和优化系统性能,提高了实验的准确性和可靠性。”
另外,范纪青还表示,MathWorks提供丰富的数学公式以及图形化建模功能以及静态测试工具Polyspace,这些都极大降低了建模及验证、测试的门槛。另外,MathWorks的自动代码生成工具,支持从模型自动生成代码,此过程减少了手动编码出错的可能性,并确保了模型和代码之间的一致性。值得一提的是,MathWorks嵌入式自动代码生成工具,支持为特定处理器生成代码,并提供了部署和测试手段,在效率和存储空间上,代码水平已经远超传统的手动模式。
MBD在海尔的实践
500多万的MATLAB用户涵盖从Apple、Google、空中客车、特斯拉和国际货币基金组织等跨国巨头,到初创公司和高校,应用涵盖科学计算到金融工程的各个领域。也正因此,MathWorks积累了大量的用户案例,以证明MBD的优势。
MATLAB EXPO也成为了MATLAB爱好者们交流分享的盛会。在MATLAB EXPO 2022上,海尔洗衣机部门王越就分享了《海尔使用MBD加速智能电器的软件开发》。
在今年的MATLAB EXPO 2024上,范纪青又深入分享了海尔在MBD上的体会。
范纪青解释说,白色家电的核心竞争力之一就是电机上,诸如冰箱、空调、热泵等应用的压缩机,洗衣机的BLDC电机等等,目前电机驱动算法通常由东芝、瑞萨、英飞凌和TI等国外芯片公司掌握,海尔通过Simulink和MATLAB建立了自己的电机驱动模型,解决了过往严重依赖国外技术的问题。
自动控制特别是PID算法的开发是电机控制中的重要组成。但直流电机驱动设计中涉及许多复杂的数学公式,诸如微分、积分、正弦、余弦等电机驱动中常用的数学运算,以及克拉克变换、帕克变换等等,另外还会涉及到大量的功率器件模型,这使得算法开发及验证变得异常繁琐。通过MATLAB和Simulink,海尔建立了电机模型,并通过模型的仿真与分析,优化了电感、直流电阻和反电动势等参数,确保了电源稳定性和算法的准确性。
同时,海尔的MBD不仅限于核心算法,还包括整机模型及测试系统的开发。例如,在饮水机产品中,通过建立功能逻辑、交互输入等多个模型,海尔能够清晰地追踪数据流向。以电热水器的预约加热功能为例,传统测试方法需要人工设置各种时间组合,进行长达数周的测试。而MBD测试,可以在40分钟内完成原本需要45天的测试工作。这种自动化测试不仅大幅缩短了测试时间,还提高了测试覆盖率,确保了软件质量,同时简化了问题定位和复现过程。
范纪青表示,海尔已经利用MBD开发了6款电机驱动产品,在一年半的时间内达到了十几万的销量,圆满完成了市场的验证。
构建生态系统的必要性
范纪青发现,海尔在构建MBD时,发现很多芯片缺乏与MATLAB的融合,因此仍需要C语言来解决很多基础问题,对此也希望更多芯片厂商能提供代码库和API的支持,从而有效地利用芯片资源。
MathWorks正在为开发人员提供许多跨硬件平台移植应用的功能,因为开发者可能与多家MCU厂商合作,如TI、ST和Infineon等。
更多关于MathWorks支持的硬件可以查询:https://ww2.mathworks.cn/hardware-support/home.html,里面已经支持了主流的MCU或模块厂商,诸如树莓派、Arduino等。
写在最后
“尽管家电行业已经成熟,但仍有提升空间。关键在于如何通过深入探索和创新,将这一成熟行业推向新的高度。”范纪青说道,“同时,家电领域竞争一直非常激烈,我们始终要面临质量、成本、交期这6个字的考验。”
而通过MBD方法学,海尔找到了家电创新的新范式。范纪青也对此总结道:“通过使用MathWorks工具,我们显著提升了产品的质量,随之而来的效益提升也是显而易见的。这是管理层希望看到的变化,但对于开发团队来说,这不仅仅是表面的变化,更是开发流程和管理方式的变革。管理层可能只看到了“水面之上”的变化,而我们作为基础开发人员,更应该注重“水面之下”的工作。只有当基础工作扎实了,“水面之上”的成果才会自然而然地显现。”
- keil中GD32 MCU IAP中APP的存储地址如何设置?
- GD32 MCU如何使用双ADC内核提高ADC采样率?
- 【GD32 MCU 移植教程】6、从GD32F1x0和GD32F3x0移植到GD32E230
- 分析采用GD32 MCU设计LCD显示屏背光驱动方案的实用性和应用
- 8位单片机体系的直接软件构架(C51系列)
- 下一代汽车微控制器
- 【GD32 MCU 移植教程】2、从 GD32F303 移植到 GD32F503
- 【GD32 MCU 移植教程】1、从 GD32F10x 移植到 GD32F30x
- GD32单片机STM32远程下载手机程序升级固件下载局域网网页升级工具
- GD32 MCU碰到IIC总线卡死怎么办?