You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在MATLAB Simulink中为总线施加增益并保留信号命名信息

Simulink总线施加增益后保留命名元素的解决方法

直接给总线加Gain模块会将其转换为向量,丢失所有命名元素,以下是几种可行的解决方式:

方法一:用Bus Assignment模块逐个处理

  • 拖入Bus Assignment模块,输入端连接原始总线
  • 打开模块参数面板,在「Assignment」列表中选择每个总线元素,将赋值表达式设为[元素名] * [增益值](比如speed * 2)
  • 模块输出端直接输出保留所有命名结构的总线

方法二:用MATLAB Function模块批量处理

  • 添加MATLAB Function模块,右键输入端口→「属性」→「数据类型」选择对应总线对象
  • 编辑函数代码,批量遍历总线字段并施加增益:
function outBus = busGain(inBus, gain)
    fields = fieldnames(inBus);
    for i = 1:length(fields)
        outBus.(fields{i}) = inBus.(fields{i}) * gain;
    end
end
  • 输出端口同样设置为对应总线类型,输出即为带命名的总线

方法三:封装子系统批量处理

  • 创建子系统,将输入端口设为总线类型
  • 内部用Bus Selector拆分所有总线信号,给每个信号添加Gain模块,再用Bus Creator按原结构重新打包
  • 子系统输出端口设为原总线类型,外部调用时直接输入总线即可得到保留命名的输出

注意事项

  • 确保总线基于Simulink.Bus对象定义(可在Base Workspace中创建),临时总线可能无法被模块正确识别结构

内容的提问来源于stack exchange,提问作者Alex Band

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 07:12:06