如何借助AI进行模块封装DIY

01--模块封装需求

在建模过程中,经常会遇到重复造轮子,如果把重复的功能封装起来复用将会大大提高建模效率。尤其在诊断模块,很多都是需要满足触发条件然后经过一定的debounce time就进行故障的触发。

举例,倘若有如下需求,可能有几百个信号,每个信号需要进行最大最小值判断,如果在最大最小值范围内则判断该信号有效,如果不在则认为超限值,然后把所有的信号的超限位放在一个信号中进行汇总。任意位置位要能知道具体是哪个信号有问题。

02--功能实现

设计如下参数:

max:the max value from input signal. 输入信号的最大值

min:the min value from input signal. 输入信号的最小值

value_dt:the max and min value data type.上述最大值最小值的数据类型

output_dt:the output signal date type.输出信号的数据类型

按照需求建模,这个比较简单,实现起来比较快

在data conversion模块那里,写上变量output_dt

最大值最小值属性内填变量value_dt

首先进行子系统封装:

封装完成后右键去mask编辑

添加2个Edit

按如下填写:一个是变量说明,一个是变量

再添加两个Data TypeStr

也同样需要填写变量说明及变量名,另外还需要去Type options内去设置数据类型的种类

把如下数据类型勾选上,并且去用户自定义数据类型内把枚举类型也选上

在模块说明那里填写说明信息:

03--模块图标实现

图标的实现可以借助AI了,其实如果封装模块的算法比较复杂的话,也可以借助AI进行提示。

首先模块图标可以在画图软件上面画一个示意图,我画的如下:

把图片喂给豆包,让豆包生成一个用m脚本导入到MATLAB内运行就能生成的图片。

以下是豆包生成的过程。

第一次运行后,差太远

让他调整:

仍然有问题,继续调整:

最终进行4次,生成了和我的画图中几乎一样的代码:

复制代码
%% 最终完美版:文字完全在框内的 Out of range 示意图
clear; clc; close all;

% --- 1. 画布和坐标配置 ---
figure('Color','w','Position',[100 100 900 350]);

min_x = 3;    % Min 位置
max_x = 6;    % Max 位置(往右挪一点,给文字更多空间)
y_low = 0;
y_high = 1;

hold on; axis off; axis equal;

% --- 2. 绘制线条(和原图1:1)---
% 下方完整主轴线
plot([0, 9], [y_low, y_low], 'k', 'LineWidth', 4);

% 左侧 Out of range 框:上横线 + 右侧竖线
plot([0, min_x], [y_high, y_high], 'k', 'LineWidth', 4);
plot([min_x, min_x], [y_low, y_high], 'k', 'LineWidth', 4);

% 右侧 Out of range 框:上横线 + 左侧竖线
plot([max_x, 9], [y_high, y_high], 'k', 'LineWidth', 4);
plot([max_x, max_x], [y_low, y_high], 'k', 'LineWidth', 4);

% --- 3. 文字标注(缩小字体,调整位置,保证在框内)---
% 左侧 Out of range
text(1.5, 0.5, 'Out of range', ...
    'FontSize', 26, ...       % 缩小字体
    'HorizontalAlignment','center', ...
    'VerticalAlignment','middle', ...
    'Color', [0.8 0.3 0]);

% 右侧 Out of range
text(7.5, 0.5, 'Out of range', ...
    'FontSize', 26, ...       % 缩小字体
    'HorizontalAlignment','center', ...
    'VerticalAlignment','middle', ...
    'Color', [0.8 0.3 0]);

% Min 和 Max 标签(位置和竖线对齐)
text(min_x, -0.35, 'Min', ...
    'FontSize', 36, ...
    'HorizontalAlignment','center', ...
    'Color', 'k');

text(max_x, -0.35, 'Max', ...
    'FontSize', 36, ...
    'HorizontalAlignment','center', ...
    'Color', 'k');

% --- 4. 调整坐标范围,防止内容被截断 ---
xlim([-0.5 9.5]);
ylim([-0.8 1.8]);

hold off;

% 2. 保存成图片(保存在当前工作目录)
saveas(gcf, 'OutOfRange_Icon.png');

MATLAB运行后:

在模块的封装的图标界面上,写如下代码即可把图标代入到模块中

04--封装模块最终效果:

双击对话框:

05--测试验证

假若有如下5个测试用例:

A输入值为34,最小值为0,最大值为8,封装模块设置如下:

B输入值为state.open,最小值为state.no_response,最大值为state.closed,封装模块设置如下:

C输入值为1,最小值为0,最大值为2,封装模块设置如下:

D输入值为2100,最小值为0,最大值为2000,封装模块设置如下:

E输入值为255,最小值为0,最大值为255,封装模块设置如下:

然后通过移位模块把所有信号放进一个信号号,并设置观测量,总体模型搭建如下

理论上只有A和D会满足条件而进行置位,上图已经是仿真之后的结果,正好是bit0和bit3置位,满足需求。

相关推荐
txg66614 小时前
HgtJIT:基于异构图 Transformer 的即时漏洞检测框架
人工智能·深度学习·安全·transformer
存在的五月雨14 小时前
Vue3项目一些语法
前端·javascript·react.js
IT研究所14 小时前
AI 时代下的知识管理:从 Claude 的“复盘”能力看生成式 AI价值
大数据·运维·数据库·人工智能·科技·低代码·自然语言处理
AI前沿资讯14 小时前
2026 AI 3D工具推荐:V2Fun如何重新定义“一站式角色创作”
人工智能·3d
水上冰石14 小时前
Vibe Coding即氛围编程,直觉编程概念介绍
人工智能
Xxtaoaooo14 小时前
用 JiuwenSwarm 搭建论文写作 Agent 团队:文献检索、大纲生成、语法润色与引用格式避坑
人工智能·论文写作·智能体·jiuwenswarm·agent 团队
大家的林语冰14 小时前
Node 2026 发布,JS 三大新功能上线,最后一个奇偶版本
前端·javascript·node.js
云边云科技_云网融合14 小时前
企业出海的 “数字丝绸之路“:SD-WAN 如何重构全球网络竞争力
大数据·运维·网络·人工智能
三*一14 小时前
Mapbox GL JS 自研面要素整形工具开发实录
开发语言·javascript·arcgis·ecmascript
超级架构师14 小时前
Huiwen Han — Preprints Public Inventory v10.15
人工智能