夜雨聆风学习资料网

ARTICLE · 1326250

ECU应用层软件模型AI开发--1 AI快速助力Simulink建模的失败实例

ECU应用层软件模型AI开发--1 AI快速助力Simulink建模的失败实例
ECU应用层软件模型AI开发--0 从文件夹开始,为了展示如何利用AI进行ECU应用层软件模型开发,本文直接来一个比较复杂的例子,看看结果会怎么样。
1 如何问AI?
这是我的整体思路,如果进一步梳理,那么控制的整体需求是这样:
1)控制多个电磁阀(不超过16个)。
2)电磁阀的控制有优先级,比如电磁阀1的优先级高于电磁阀2,电磁阀2又高于电磁阀3,以此类推。
3)比较电磁阀控制指令和状态,决定是否需要进行启闭操作。
4)每个电磁阀启闭操作,闭合操作必须先进行预充操作,开启操作不需要预充操作。
5)对于需要进行闭合的电磁阀进行预充操作还有规定,一个一个进行,每个预充有时间限定,如果当前电磁阀在规定时间内未完成预充,那么当前这个电磁阀往最后排,下一个电磁阀先进行预充操作,直到所有预充操作完成。
初步的实现想法是:
1)使用两个变量来分别表示电磁阀控制指令和电磁阀状态,这里使用数据类型均为uint16,将这个uint16数据以二进制形式来表示,bit0表示电磁阀1,这样可以一个bit表示一个电磁阀的状态,
2)如果是控制指令,bit0=1,则表示为请求闭合电磁阀1,bit0=0,则表示为请求开启电磁阀1;
3)如果是状态,bit0=1,则表示电磁阀1为闭合状态,bit0=0,则表示电磁阀1为开启状态。
4)在此基础上,我现在需要比较对应的电磁阀控制指令和状态。识别出来哪些需要进行闭合,哪些需要进行开启。
5)对于需要进行闭合的电磁阀,需要进行预充操作,且按照优先级一个一个进行,注意如何处理预充操作成功和失败的逻辑处理。这个设计的逻辑是重点,也相对复杂。
2 AI怎么回?
直接看AI给的结果:
注意我们最终目标是让AI帮我们进行应用层软件模型开发,即Simulink模型是我们的最终目标,如果以最开始的提示词来让AI实现Simulink模型,几乎不太可能,但是现在有AI生成的这个答案之后,可能性就大了很多,这里有两种方式,一种基于已回答的C代码自己去搭建模型;另一种是以此作为精准的提示词,让AI去生成Simulink模型。接下来用第二种方式:
3 如何让AI直接生成Simulink模型?
OK,提示词生成了,那么接下来采用已经部署了Matlab和Simulink MPC的Workbuddy来实现:让 AI 直接帮你跑 MATLAB/Simulink:官方 MCP Server 部署全记录
4 AI生成的Simulink模型怎么样?
直接利用上面的提示词,想要一次输出会怎么样?结果如下:
可以看到离理想的结果还差了好远的,但至少了这种可能性,那么如何接近想要的效果呢,一个优化,比如让它生成stateflow来实现:
耗时非常长,而且效果差,没关系,使用另一个方法,即做减法,就是不要求一次性出来,而是分步来实现,下篇文章继续探究
5 小结
到此展示了一个比较复杂的需求,如何利用AI进行Simulink模型生成的过程,结果离想要的差了很多,但是没关系,因为这里没有展示如何针对AI生成的每一步进行详细分析以确认是否符合自己的设计预期过程,不管是生成C代码还是生成Simulink模型。本文重点还是在于展示工具链的链路确认好,祝大家也越用越熟,高效建模。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料