如何借助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置位,满足需求。

相关推荐
Data-Miner1 小时前
41页精品PPT|AI大模型安全架构构建与落地实践解决方案
人工智能·安全·安全架构
nap-joker1 小时前
生成式人工智能框架统一了人类多组学,以模拟衰老、代谢健康和干预反应
人工智能·衰老·ai-agent融合多组学数据·未来疾病
MegaDataFlowers1 小时前
15.三数之和
算法
AI袋鼠帝2 小时前
DeepSeek V4来了!
人工智能
小鱼~~2 小时前
GRU模型简介
人工智能·深度学习
互联网推荐官2 小时前
上海APP开发公司的技术路径选择:从架构设计到工程落地
大数据·人工智能·物联网·软件工程
AI袋鼠帝2 小时前
开源Turix,你可以把任何App当Agent Skill用!比如微信..
人工智能
小鱼~~2 小时前
DataLoader简介
人工智能·深度学习
qq_411262422 小时前
四博AI智能音响方案(基于四博小助手AITOYO2)
人工智能·macos·xcode