故障码循环显示专项--和Deepseek的一次深度交互

01--背景

自打Deepseek上线以来,风靡全球,我也在本地接入了deepseek,之前一直想把故障码循环显示专项这个功能做进软件内,因为当前有个项目对观测量的支持非常有限,因为使用的是CAN报文。

观测量预估:

CAN的标准帧长度为111bit,如果周期为10ms,那么1s报文发送100次,波特率为500K bits/s

那么单帧负载率= 111bit*100次/500k =2.22% ,10ms信号观测数量=100/2.22≈45个

2ms单帧负载率=2.22%*5 = 11.1% 2ms信号观测数量=100/11.1 ≈9个

而一个软件有成百上千的观测量,仅仅这点观测量还不足以做全一个观测环境,这样会导致分析问题时所采集的数据总会丢三落四,效率低下。

而这个功能,最起码可以把一些布尔量集合起来,循环展示,通过State的变化去推断信号是什么时候置位的,什么时候又Reset了,关键是一个信号可以代替十几个信号,对变量的空间节省也非常有作用,为什么叫故障码循环显示专项呢?因为该功能对置位的故障码更为有效,有时候发现不对劲了只要把该信号调出来,看看到底哪些故障置位了即可去找对应的应对方法。

现在目前的问题是,在之前的博客中

故障码循环显示专项_simulink持续显示错误代码-CSDN博客

虽然已经通过建模实现了该功能,并且经过几次调试解决了已知的bug,但是最后在软件集成的时候还是出现了问题,那就是我们所用的某个模块(find模块)不支持代码生成功能,由于公司的MATLAB为正版软件,某些功能没有购买,或是版本不支持等

如下图,变步长信号不支持生成代码

02--交互

所以我就在想,能不能避开find模块,find模块的作用就是把非0信号的索引找出来组合成一个数组。

于是就这个问题我问了Deepseek,以下是我们交互的内容:

我是这么问的:

Deepseek第一次回答:

明显没有说完,我让他说下一段:

Deepseek第2次回答:

于是我拿Deepseek写的MATLAB Function代码直接使用了,发现报错,我把报错发给了他

Deepseek第3次回答:

拿去用之后继续报错,有点不想指望他了

Deepseek第4次回答

没说完就给停了

Deepseek第5次回答:

拿这次的代码去使用,居然不报错了成功了

03--模型功能实现

放大下面:

上图,find模块会直接找到对应置位的索引,索引由1开始

而下面先把标志位与索引位置映射好,然后通过MATLAB Function函数,只把大于0的信号重新拼接成数组

MATLAB Function 函数:

复制代码
function y = filter_elements(u)
    % 将输入转为列向量(确保所有维度一致)
    u_col = u(:); % 转为列向量
    
    % 预分配(列向量)
    max_size = length(u_col);
    temp = zeros(max_size, 1); % 改为列向量预分配
    
    % 筛选条件(示例:元素 >0)
    count = 0;
    for i = 1:length(u_col)
        if u_col(i) >0
            count = count + 1;
            temp(count) = u_col(i);
        end
    end
    
    % 输出为列向量:直接截取有效部分(保持列方向)
    y = temp(1:count); 
end

变量设置:

运行仿真:

结果相等均为1,4,5

移植该功能去生成代码:

非常可惜!没有绕过这个变步长信号的使用,因为MATLAB Function内变量y勾选了变步长,仍然无法支持,跟用了Find的结果一样

虽然最后仍然没有在这个事情上得到帮助,但是Deepseek的出现无疑对后续的建模,策略开发有非常好的指导意义。

相关推荐
北纬的小熊5 小时前
Matlab Simulink电力电子仿真-全桥 LLC 谐振变换器调频控制(PFM)仿真研究
嵌入式硬件·matlab
星夜离尘561 天前
MATLAB 清洗 CSV 采样日志:重复时间戳、无效行、分组统计与自动出图
开发语言·matlab·数据分析·数据清洗·csv
星夜离尘561 天前
MATLAB FFT 单边幅度谱:归一化、奇偶长度与频谱泄漏的完整实验
开发语言·matlab·信号处理·频谱分析·fft
星夜离尘561 天前
MATLAB 5 点滑动平均:filter 与 conv 的输出对齐,以及 2 样本延时的含义
开发语言·算法·matlab·滤波·fir
道道_Love2 天前
AI 调 MATLAB 用 MCP 太难用?单元设计规范和测试用例,用原生 AI 一次生成
人工智能·matlab·设计规范
菜鸟~noob2332 天前
【电子战】第31篇:3D AOA 定位——方位+俯仰联合
开发语言·matlab·3d
iCxhust3 天前
Matlab求解发电机的极限切除角
开发语言·算法·matlab·电力系统
LMT_Lanmantech3 天前
MATLAB合规管理:如何避免侵权赔偿和审计风险
开发语言·matlab·信息可视化
Evand J3 天前
【PMSM例程6】永磁同步电机(PMSM)基于增广EKF的d-q轴电感分阶段辨识算法|电机参数估计与误差分析
算法·matlab·电机·ekf
Matlab程序猿3 天前
【MATLAB源码-第460期】基于matlab的OTFS通信系统SLM峰均比抑制及非线性功率放大器失真与误码性能仿真
开发语言·算法·matlab·slm·otfs