Simulink矩阵运算端口维度不匹配问题求助
Simulink矩阵乘法模型维度不匹配问题排查
问题背景
搭建Simulink模型执行矩阵乘法,配置如下:
- Wind、Gravity为3x1向量
- DCM为6DOF固定质量模块输出的3x3矩阵
预期运算逻辑:(3x3) * (3x1) = 3x1,但仿真时触发维度不匹配错误,报错信息如下:
Error using uavsim (line 7)
Error due to multiple causes.
Caused by:
Error using uavsim (line 7)
Error in port widths or dimensions. 'Output Port 1' of 'storm_uav/Constant2' is a [3x1] matrix.
Error using uavsim (line 7)
Error in port widths or dimensions. 'Input Port 1' of 'storm_uav/Model5' is a one dimensional vector with 1 elements.
认为维度设置正确,但向量无法传入模型(模型应继承输入维度),需排查问题。
实用排查步骤
- 检查Model5输入端口配置
- 打开Model5子模型,选中输入端口模块进入参数设置界面
- 确认「信号维度」设置为
-1(自动继承输入维度),若手动指定了维度,改为-1或直接设置为3
- 验证Constant2输出维度
- 在Constant2输出端临时添加Display模块,运行仿真前查看实际输出维度是否为3x1
- 检查连线是否误连到Model5的其他单维输入端口
- 确认矩阵乘法模块模式
- 找到矩阵乘法模块进入参数设置,确认「乘法模式」为「矩阵-矩阵乘法」(而非元素逐乘),确保3x3与3x1的维度兼容
- 验证DCM输出维度
- 在6DOF模块的DCM输出端添加Display模块,确认输出确实为3x3矩阵,避免模块输出被意外转置或降维
内容的提问来源于stack exchange,提问作者vtx22
相关产品推荐
相关产品推荐

