type
status
date
slug
summary
tags
category
icon
password
开始建模
安装好后,代开工程
在本地新建一个工程文件夹,复制完整路径地址
粘贴到MATLAB里,切换到工程路径

matlab建模入口


这里我就不使用空白画布了,用已有得画布展示,忽略画布里得内容即可。

汽车电子常用得软件库是这两个。

然后就是基于模型进行建模了。对于各个模型得使用教程,我会专门开一个章节,Simulink Library Browser
Simulink Library Browser
simulink
commonly used blocks
Bus Creator 与之成对使用得是 Demux
Bus Creator是一个用于将多个信号组合成一个总线信号的模块。它可以将不同类型和维度的信号合并到一个总线中,便于信号的传输和管理。
主要用途:
- 将多个独立信号组合成一个总线信号
- 简化模型的连接线,使模型更清晰
- 方便信号的批量处理和传输
可修改的主要参数:
- Number of inputs:输入端口的数量,可以通过对话框直接修改
- Output signal name:输出总线信号的名称
- Show input port labels:是否显示输入端口的标签
- Input signal names:各个输入信号的名称
- Require all inputs to have names:是否要求所有输入都必须命名
参数修改方法:
- 双击Bus Creator模块,打开Block Parameters对话框
- 在对话框中可以直接修改上述参数
- 也可以通过右键菜单中的Format选项调整模块的显示格式
使用注意事项:
- 输入信号的维度可以不同
- 建议给每个输入信号命名,以便于后续处理
- 可以配合Bus Selector模块使用,实现信号的选择性提取


Bus Selector
Bus Selector是一个用于从总线信号中提取所需信号的模块。它可以从Bus Creator创建的总线中选择性地提取一个或多个信号进行后续处理。
主要用途:
- 从总线信号中提取单个或多个信号
- 可以选择性地处理总线中的特定信号
- 简化复杂系统中的信号处理流程
可修改的主要参数:
- Output signals:选择要从总线中提取的信号
- Show output port labels:是否显示输出端口的标签
- Output as bus:是否将选中的多个信号作为新的总线输出
参数修改方法:
- 双击Bus Selector模块,打开Block Parameters对话框
- 在Signal Selector中选择需要提取的信号
- 可以通过搜索或浏览的方式选择所需信号
使用注意事项:
- 输入必须是有效的总线信号
- 确保选择的信号名称与总线中的信号名称匹配
- 注意输出信号的维度和类型是否符合后续处理需求
Constant
Constant模块是一个用于生成常数值信号的基本模块。它可以输出指定的常数值,包括标量、向量或矩阵。
主要用途:
- 生成固定的常数值信号
- 提供系统参数或基准值
- 用作系统的输入测试信号
可修改的主要参数:
- Constant value:设置输出的常数值
- Output data type:指定输出信号的数据类型
- Sample time:设置采样时间
- Output minimum/maximum:设置输出信号的取值范围
参数修改方法:
- 双击Constant模块,打开Block Parameters对话框
- 在Constant value框中输入所需的常数值
- 在Data Type选项中设置输出数据类型
使用注意事项:
- 确保常数值的维度与连接的模块要求相匹配
- 注意数据类型的选择,避免数据溢出
- 对于实时系统,建议明确指定采样时间
暂无指示
Data Type Conversion
Data Type Conversion是一个用于转换信号数据类型的模块。它可以将输入信号从一种数据类型转换为另一种数据类型,确保数据类型的兼容性。
主要用途:
- 在不同数据类型的模块之间进行信号转换
- 优化系统性能和内存使用
- 确保数据类型的兼容性和精度要求
可修改的主要参数:
- Output data type:指定输出信号的目标数据类型
- Input and output scaling:设置信号的缩放参数
- Rounding mode:选择数值舍入方式
- Overflow handling:设置数据溢出处理方式
参数修改方法:
- 双击Data Type Conversion模块,打开Block Parameters对话框
- 在Output data type中选择目标数据类型
- 根据需要配置缩放、舍入和溢出处理选项
使用注意事项:
- 注意数据类型转换可能导致的精度损失
- 考虑数据范围,避免溢出错误
- 合理选择舍入模式,确保计算结果的准确性

Delay
Delay是一个用于引入信号延迟的模块。它可以将输入信号延迟指定的时间步长或采样周期,常用于数字信号处理和控制系统中。
主要用途:
- 引入信号的时间延迟
- 模拟系统中的传输延迟
- 实现数字滤波器和控制算法
可修改的主要参数:
- Number of delay units:设置延迟的时间步长或采样周期数
- Initial condition:设置延迟器的初始状态值
- Sample time:指定采样时间
- State attributes:配置状态存储属性
参数修改方法:
- 双击Delay模块,打开Block Parameters对话框
- 在Number of delay units中输入所需的延迟单位数
- 设置Initial condition和其他相关参数
使用注意事项:
- 确保延迟单位数为非负整数
- 注意初始条件的设置对系统响应的影响
- 考虑采样时间对延迟效果的影响
暂无指示
Discrete-Time Integrator
Discrete-Time Integrator是一个用于执行离散时间积分运算的模块。它可以对输入信号进行数值积分,常用于离散控制系统和数字信号处理中。
主要用途:
- 实现离散时间系统中的积分运算
- 构建数字控制器和滤波器
- 模拟系统状态的累积效应
可修改的主要参数:
- Integration method:选择积分算法(如Forward Euler、Backward Euler等)
- Forward Euler(前向欧拉法):使用当前时刻的导数值来预测下一时刻的状态值,计算简单但精度较低
- Backward Euler(后向欧拉法):使用下一时刻的导数值来计算下一时刻的状态值,计算相对复杂但更稳定
- 在自动驾驶系统中,车速积分得到位移时,Forward Euler可能用于预测短期路径,而Backward Euler则用于需要更高精度的轨迹规划,如自动泊车系统
Forward Euler和Backward Euler是两种常用的数值积分方法:
汽车工程应用示例:
- Initial condition:设置积分器的初始状态
- Sample time:指定采样时间
- External reset:配置外部重置条件
参数修改方法:
- 双击Discrete-Time Integrator模块,打开Block Parameters对话框
- 在Integration method中选择合适的积分算法
- 设置Initial condition和其他相关参数
使用注意事项:
- 选择合适的积分方法以确保数值稳定性
- 注意采样时间对积分精度的影响
- 合理设置初始条件以避免积分饱和
暂无指示
Gain
Gain是一个用于信号放大或衰减的基本模块。它通过将输入信号乘以一个指定的增益系数来改变信号的幅值。
主要用途:
- 调节信号的幅值大小
- 实现信号的比例变换
- 用于系统的增益控制
可修改的主要参数:
- Gain:设置增益系数值
- Multiplication:选择乘法运算的方式(Element-wise或Matrix)
- Output data type:指定输出信号的数据类型
- Sample time:设置采样时间
参数修改方法:
- 双击Gain模块,打开Block Parameters对话框
- 在Gain框中输入所需的增益值
- 根据需要配置其他参数选项
使用注意事项:
- 注意增益值的设置范围,避免信号溢出
- 确保增益矩阵的维度与输入信号匹配
- 考虑数据类型转换可能带来的精度损失



Ground
Ground没有别的用途,就是一个接地,由于系统得地不一定是0电平,所以用到地信号的尽可能使用该模型。
In1 其与out1成对
In1是Simulink中的输入端口模块,用于接收外部输入信号或子系统的输入信号。
主要用途:
- 作为子系统的输入接口
- 接收来自其他模块或系统的信号
- 在模型分层设计中实现信号传递
可修改的主要参数:
- Port number:设置输入端口的编号
- Port dimensions:指定输入信号的维度
- Output data type:设置输出信号的数据类型
- Sample time:指定采样时间
参数修改方法:
- 双击In1模块,打开Block Parameters对话框
- 在对话框中设置端口属性和信号特性
- 可以通过右键菜单修改端口的显示格式
使用注意事项:
- 确保端口号的唯一性
- 注意信号维度的匹配
- 合理设置数据类型和采样时间
这里Interpolate data是用于数据导入的,即可以通过导入.mat文件来赋值,实际上不常用,一般数据是通过命令窗口调用整个子系统工程的.mat文件来引入参数的,这里可以不用管他,默认即可。
第二页的参数配置,没有什么可以调整的,一般是沿用继承即可,如果有强迫症请确保和绑定的信号是同种数据类型。


Integrator
Integrator是一个用于执行连续时间积分运算的模块。它可以对输入信号进行实时积分,常用于连续控制系统和物理系统建模中。
主要用途:
- 实现连续时间系统中的积分运算
- 构建物理系统模型(如速度积分得到位置)
- 设计连续时间控制器
可修改的主要参数:
- Initial condition:设置积分器的初始状态值
- External reset:配置积分器的重置条件
- Upper saturation limit:设置积分输出的上限
- Lower saturation limit:设置积分输出的下限
参数修改方法:
- 双击Integrator模块,打开Block Parameters对话框
- 在Initial conditions中设置初始值
- 根据需要设置积分限幅和重置条件
使用注意事项:
- 合理设置初始条件以避免系统响应异常
- 注意积分饱和现象,必要时设置限幅
- 在存在噪声的系统中要考虑积分漂移问题
Logical Operator
Logical Operator是一个用于执行逻辑运算的模块。它可以对输入信号进行与、或、非等逻辑运算,常用于条件判断和状态控制。
主要用途:
- 执行基本的逻辑运算(AND、OR、NOT等)
- 实现多条件判断和决策
- 用于状态切换和控制逻辑的实现
可修改的主要参数:
- Operator:选择逻辑运算类型(AND、OR、NAND、NOR、XOR、NXOR)
- Number of input ports:设置输入端口的数量
- Output data type:指定输出信号的数据类型
- Sample time:设置采样时间
参数修改方法:
- 双击Logical Operator模块,打开Block Parameters对话框
- 在Operator下拉菜单中选择所需的逻辑运算类型
- 设置输入端口数量和其他相关参数
使用注意事项:
- 确保输入信号为布尔类型或可转换为布尔类型的数值
- 注意逻辑运算的优先级和组合顺序
- 考虑采样时间对逻辑运算结果的影响
以与门为例


如果对信号处理不熟悉建议勾选,可以防止数据类型的异常而导致行为不一致。这个是要求门的前后数据类型要统一。
Mux
Mux(多路复用器)是一个用于将多个输入信号合并成一个向量信号的模块。它可以将不同的标量或向量信号组合成一个更大的向量输出。
主要用途:
- 将多个独立信号合并成一个向量信号
- 简化模型的信号连接
- 用于信号的批量处理和传输
可修改的主要参数:
- Number of inputs:设置输入端口的数量
- Display option:选择显示格式(signals或ports)
- Output dimensions:指定输出信号的维度
- Sample time:设置采样时间
参数修改方法:
- 双击Mux模块,打开Block Parameters对话框
- 在Number of inputs中输入所需的输入端口数量
- 选择适当的显示选项和信号属性
使用注意事项:
- 确保输入信号的数据类型兼容
- 注意输出向量的维度计算
- 合理安排信号的连接顺序,便于后续处理
暂无指示-ps:个人感觉向量在嵌入式编程中好处不明显,反而容易记错记混,还不如一个个变量单独处理,不建议使用该模型
Product
Product是一个用于执行信号乘法运算的模块。它可以实现两个或多个输入信号的乘法或除法运算。
主要用途:
- 执行信号间的乘法运算
- 实现信号的缩放和调节
- 用于系统增益的调整和控制
可修改的主要参数:
- Number of inputs:设置输入端口的数量
- Multiplication:选择乘法运算方式(Element-wise或Matrix)
- Element-wise(逐元素):对输入信号的对应元素进行乘法运算,要求输入信号的维度相同
- Matrix(矩阵):将输入信号作为矩阵进行矩阵乘法运算,需要满足矩阵乘法的维度要求
- Sample time:设置采样时间
- Input dimensions:指定输入信号的维度
参数修改方法:
- 双击Product模块,打开Block Parameters对话框
- 在Number of inputs中设置输入端口数量
- 选择适当的乘法运算方式和信号属性
使用注意事项:
- 注意信号维度的匹配,确保运算有效
- 考虑数值溢出的可能性,必要时进行限幅
- 合理处理除法运算中的零除问题

无法生成bool类型的输出,如果需要转换数据类型,需要配合Data Type Conversion组件
Relational Operator
Relational Operator是一个用于执行关系比较运算的模块。它可以比较两个输入信号的大小关系,输出布尔类型的结果。
主要用途:
- 比较两个信号的大小关系(>, <, >=, <=, ==, !=)
- isinf: 检测信号是否为无穷大(±∞)
- isnan: 检测信号是否为非数值(Not a Number)
- isfinite: 检测信号是否为有限数值(既不是无穷大也不是NaN)
- 实现条件判断和阈值检测
- 用于控制系统中的状态切换
可修改的主要参数:
- Operator:选择比较运算符(>=, >, <=, <, ==, !=)
- isinf: 检测信号是否为无穷大(±∞)
- isnan: 检测信号是否为非数值(Not a Number)
- isfinite: 检测信号是否为有限数值(既不是无穷大也不是NaN)
- Output data type:指定输出信号的数据类型
参数修改方法:
- 双击Relational Operator模块,打开Block Parameters对话框
- 在Operator下拉菜单中选择所需的比较运算符
- 设置相关的信号属性和比较模式
使用注意事项:
- 确保输入信号的数据类型兼容
- 注意浮点数比较时的精度问题
- 考虑采样时间对比较结果的影响
Saturation
Saturation(饱和)是一个用于限制信号幅值范围的模块。它可以将输入信号限制在指定的上下限范围内,防止信号超出预期范围。
主要用途:
- 限制信号的最大和最小值
- 防止系统输出超出安全范围
- 模拟实际系统中的物理限制
可修改的主要参数:
- Upper limit:设置信号的上限值
- Lower limit:设置信号的下限值
- Output data type:指定输出信号的数据类型
参数修改方法:
- 双击Saturation模块,打开Block Parameters对话框
- 在Upper limit和Lower limit中输入所需的限幅值
- 设置其他相关参数如数据类型和采样时间
使用注意事项:
- 确保上限值大于下限值
- 注意限幅值的选择要符合实际系统要求
- 考虑限幅对系统动态特性的影响
- 在反馈控制系统中使用时要注意防止积分饱和
Scope
按键例程
运行概念文档
设计调查表
建模步骤
有文字内容详情不解或业务合作的可以通过以下方式联系本人:微信号:kmkadagarm(请注明称呼与来意)
- 作者:Knight
- 链接:https://www.ale-tech.cn//article/matlab
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。







