总目录

simulink系列之汽车应用层信号处理

    第一章 simulink信号处理——debounce

    第二章 simulink接口表生成及自动连线脚本

目录

前言

一、simulink接口表生成脚本

1.使用方法:

二、模型整理连线脚本

1.使用方法:

总结

前言

本系列主要围绕作者采用simulink进行日常软件开发过程中的实战和思考。话不多说,直接开干。

对于汽车应用层开发人员来说,几乎可以说日常开发接触到最多的东西就是各种报文信号了。因此,本文主要分享一下应用层软件报文信号处理之debounce,作为本系列的第一篇文章。


一、simulink接口表生成脚本

该脚本主要用来生成simulink应用层输入输出信号的基本信息。

1.使用方法:

使用对象:一般是针对最外层的子系统,当然也可以是内部的子系统

使用方法:打开simulink模型,点击一个子系统,然后运行脚本即可。

注意:如果需要在最终的接口表中生成特定的字段,需要稍微修改一下脚本内容。

脚本如下:

% 脚本1:生成iflist
% filepath: extract_ports_info.m
% 获取当前选中的子系统
subsys = gcs;% 只查找当前子系统下的一级 Inport/Outport(不递归)
inports  = find_system(subsys, 'SearchDepth', 1, 'BlockType', 'Inport');
outports = find_system(subsys, 'SearchDepth', 1, 'BlockType', 'Outport');% 初始化结果
names = {};
types = {};
directions = {};% 处理 Inport
for i = 1:length(inports)blk = inports{i};names{end+1,1} = get_param(blk, 'Name');types{end+1,1} = get_param(blk, 'OutDataTypeStr');directions{end+1,1} = 'Input';
end% 处理 Outport
for i = 1:length(outports)blk = outports{i};names{end+1,1} = get_param(blk, 'Name');types{end+1,1} = get_param(blk, 'OutDataTypeStr');directions{end+1,1} = 'Output';
end% 生成表格
T = table(names, types, directions, ...'VariableNames', {'Name', 'DataType', 'Direction'});disp(T);
writetable(T, 'ports_info.xlsx');

二、模型整理连线脚本

该脚本主要用来整理子系统联系不美观,弯曲的问题。

1.使用方法:

使用对象:一般是针对各个子系统

使用方法:打开simulink模型,点击一个子系统,然后运行脚本即可。

注意:如果选中的子系统连线已经交错等情况时,输出的结果可能不是最佳状态,需要手动协助调整。

脚本如下:

% 脚本2:自动连线
clear;
clc;
port_handles = get_param(gcbh,'PortHandles');
inport_handles = port_handles.Inportfor i = 1:length(inport_handles)line_handles = get_param(inport_handles(i),'Line');
src_handles = get_param(line_handles,'SrcBlockHandle');port_pos = get_param(inport_handles(i),'Position');src_pos = get_param(src_handles,'Position');
src_len = src_pos(3) - src_pos(1);
src_width = src_pos(4) - src_pos(2);new_pos(1) = port_pos(1) - 100;
new_pos(3) = new_pos(1) + src_len;
new_pos(2) = port_pos(2) - fix(src_width/2);
new_pos(4) = port_pos(2) + fix(src_width/2);set_param(src_handles,'Position',new_pos);endoutport_handles = port_handles.Outportfor i = 1:length(outport_handles)line_handles = get_param(outport_handles(i),'Line');
src_handles = get_param(line_handles,'DstBlockHandle');port_pos = get_param(outport_handles(i),'Position');src_pos = get_param(src_handles,'Position');
src_len = src_pos(3) - src_pos(1);
src_width = src_pos(4) - src_pos(2);new_pos(1) = port_pos(1) + 100;
new_pos(3) = new_pos(1) + src_len;
new_pos(2) = port_pos(2) - fix(src_width/2);
new_pos(4) = port_pos(2) + fix(src_width/2);set_param(src_handles,'Position',new_pos);end

总结

以上就是本篇要分享的内容,觉得有用可以关注我后续文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89815.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89815.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/89815.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eureka+LoadBalancer实现服务注册与发现

目录 一、相关文章 二、兼容说明 三、服务注册到EurekaServer 四、服务发现 五、LoadBalancer负载均衡 一、相关文章 基础工程:gradle7.6.1springboot3.2.4创建微服务工程-CSDN博客 Eureka服务端启动:Eureka服务端启动-CSDN博客 LoadBalancer官方…

数据存储方案h5py

对于百万级别的大规模数据(假设 N > 1,000,000),在保证读取速度的前提下,需要综合考虑 存储效率、I/O 吞吐 和 内存管理。以下是针对超大规模数据的优化方案:🚀 终极方案:HDF5 (h5py) 分块存…

ARINC818协议综述

概要 航天领域ARINC818协议 协议的视频帧 协议的层次 帧格式 容器 FC协议的5个层次 8b10b编码 SOF EOF IDLEARINC818视频传输协议 ARINC818协议的容器系统 帧头控制协议FHCP 光纤通道协议 FC-AV ARINC818行场同步解析,上图时序图是关于行场同步小信号相关。ARINC818…

专题 二分法:查找与判定

概念解释 概述 二分法在算法竞赛中一般有这么一个用途:在一个具有单调性的解空间中找到符合题意的一个可行解。下面解释几个专有名词: 解空间 很简单,就是可能存在解的逻辑区域。这个在算法入门时应提到。 可行解 符合题意的解 单调性 …

硬核电子工程:从硅片到系统的全栈实战指南—— 融合电路理论、嵌入式开发与PCB设计的工程艺术

一、电路基础:硬件设计的底层逻辑1.1 基尔霍夫定律的硬件实现// STM32验证KVL定律(ADC采样法) void verify_kvl() {ADC_Enable(ADC1); // 启用ADCfloat Vr1 read_ADC(PA0) * 3.3 / 4096; // 读取R1电压float Vr2 read_ADC(PA1) * 3.3 / 4…

Linux网络:序列化与反序列化

引入:面向字节流 TCP是面向字节流的,如果按照字节流来读取信息,可能会出问题 比如客户传入“1100”,服务器读入“11”,后面的00被当作下一条信息,这就出问题了 我们可以将多个信息合并为一个字符串 在发送信…

二、Spark 开发环境搭建 IDEA + Maven 及 WordCount 案例实战

作者:IvanCodes 日期:2025年7月20日 专栏:Spark教程 本教程将从零开始,一步步指导您如何在 IntelliJ IDEA 中搭建一个基于 Maven 和 Scala 的 Spark 开发环境,并最终完成经典的 WordCount 案例。 一、创建 Maven 项目…

【python】算法实现1

实现一个动态规划算法 def dynamic_programming_example(n: int) -> List[int]:"""动态规划示例&#xff1a;计算斐波那契数列参数:- n: 斐波那契数列的项数返回:- List[int]: 斐波那契数列前n项"""if n < 0:return []elif n 1:return […

C++控制台贪吃蛇开发:从0到1绘制游戏世界

资料合集下载链接: ​​https://pan.quark.cn/s/472bbdfcd014​ 本文将带你一步步实现以下目标: 初始化游戏元素(边界、蛇、食物)的数据。 绘制静态的游戏边界(墙)。 在指定位置显示蛇和食物。 学习并使用Windows API来精确定位光标,实现“指哪打哪”的绘图。 隐藏闪烁…

共享模式、社群与开源链动2+1模式AI智能名片S2B2C商城小程序的协同发展研究

摘要&#xff1a;本文深入探讨了共享模式与社群之间的内在联系&#xff0c;指出信用体系完善是共享模式前提&#xff0c;信任源于相同认知促使共享在社群中更易发生。同时&#xff0c;引入开源链动21模式AI智能名片S2B2C商城小程序这一新兴元素&#xff0c;分析其在共享模式与社…

LeetCode 322. 零钱兑换 LeetCode 279.完全平方数 LeetCode 139.单词拆分 多重背包基础 56. 携带矿石资源

LeetCode 322. 零钱兑换 思路1&#xff1a; 回溯算法可以做&#xff0c;只要存储数组的最小长度即可&#xff0c;但可能会超时。思路2: 相当于是求最大价值的相反面&#xff0c;另外一个物品可以使用多次&#xff0c;因此是个完全背包。因此这是个完全背包的求最小价值类型题…

JAVA面试宝典 -《Elasticsearch 深度调优实战》

文章目录一、引言&#xff1a;搜索引擎为啥越来越慢&#xff1f;1.1 典型业务场景性能瓶颈表现​​&#xff1a;二、倒排索引压缩&#xff1a;让存储与检索更高效&#x1f9e0; 2.1倒排索引结构简述&#x1f527; 2.2 压缩算法三剑客✅ 调优建议三、分片策略&#xff1a;写入性…

克鲁斯焊接机器人保护气省气方案

在现代焊接工艺中&#xff0c;克鲁斯焊接机器人扮演着至关重要的角色。随着制造业对成本控制和可持续发展的日益重视&#xff0c;焊接过程中的保护气省气问题成为了焦点。WGFACS节气装置为克鲁斯焊接机器人的保护气省气提供了一种创新且有效的解决方案。克鲁斯焊接机器人以其高…

JavaEE——多线程中的哈希表

目录前言1.HashTable2.ConcurrentHashMap总结前言 在使用多线程前&#xff0c;我们用HashMap类来创建哈希表&#xff0c;但这个类线程不安全&#xff0c;在这篇文章&#xff0c;我们将介绍多线程环境的哈希表&#xff0c;将会讲述HashTable, HashMap, ConcurrentHashMap这三个…

MyBatis Plus SQL性能分析:从日志到优化的全流程实战指南

引言 在Java开发的江湖里&#xff0c;MyBatis Plus&#xff08;MP&#xff09;早已是“效率利器”——它用极简的API封装了CRUD操作&#xff0c;让开发者从重复的SQL编写中解放出来。但随着项目数据量从“万级”跃升至“十万级”“百万级”&#xff0c;一个尴尬的现实逐渐浮现&…

备忘录设计模式

备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为设计模式&#xff0c;用于捕获对象的内部状态并在需要时恢复该状态&#xff0c;同时不破坏对象的封装性。它适用于需要实现撤销/重做、历史记录或状态快照的场景。核心组件Originator&#xff08;原发器&#xff0…

【世纪龙科技】智能网联汽车环境感知系统教学难题的创新实践​

在职业院校智能网联汽车专业教学中&#xff0c;环境感知系统的教学长期面临三大核心挑战&#xff1a;设备成本高昂导致实训资源不足、抽象原理难以直观呈现、传统教学模式难以满足产业需求。如何让学生在有限的教学条件下&#xff0c;深入理解激光雷达、毫米波雷达等核心部件的…

ES vs Milvus vs PG vector :LLM时代的向量数据库选型指南

互联网时代&#xff0c;关系型数据库为王。相应的&#xff0c;我们的检索方式也是精确匹配查询为主——查找特定的用户ID、商品编号或订单状态。但AI时代&#xff0c;语义检索成为常态&#xff0c;向量数据库成为搜索推荐系统&#xff0c;大模型RAG落地&#xff0c;自动驾驶数据…

磁盘阵列技术的功能与分类

磁盘阵列技术 磁盘阵列是由多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统。现在常见的磁盘阵列称为廉价冗余磁盘阵列&#xff08;Redundant Array of Independent Disk,RAID)。目前&#xff0c;常见的 RAID 如下所示。 廉价冗余磁盘阵列 RAID级别 RAID-0是一种不具…

SpringMVC核心注解:@RequestMapping详解

概述RequestMapping是SpringMVC中最核心的注解之一&#xff0c;用于将HTTP请求映射到MVC和REST控制器的处理方法上。基本功能RequestMapping主要用于&#xff1a;映射URL到控制器类或方法定义请求方法类型&#xff08;GET、POST等&#xff09;定义请求参数、请求头等条件使用位…