首页 > 解决方案 > simulink 中的非线性状态空间模型

问题描述

我正在尝试在 simulink 中创建非线性状态空间模型。到目前为止,我所做的是, 数字

在我的 matlab 函数中,我写了我的方程式:

function [xdot, y] = nonlinearss(x,u)
%define constants
a1=...;
b1=...; 
xdot=[x(2);x(3);x(4);x(5);a1*x(1)*x(1)+...]+[0;0;0;0;(b1*x(1)*x(1)+...]*u;
y = x(1);
end

当我运行模型时,它给了我这个错误:

Simulink 无法将可变大小模式从“untitled/MATLAB Function”的输出端口 1 传播到“untitled/Integrator”的输入端口 1。此输入端口需要一个固定大小的模式。可变大小模式源自“untitled/MATLAB Function”。检查以下场景之一的 'untitled/Integrator' 的配置: 1) 模块不支持可变大小信号;2) 模块支持可变大小的信号,但需要对其进行配置。

我的x矩阵是一个固定大小 (5x1) 的向量,也是xdot. 为什么它给我这个错误以及我该如何解决这个错误?(另外我必须提到,在我的 MATLAB 功能块代码的编辑器中,我点击了“编辑数据”,然后我检查了 xdot 和 x 的可变大小框,我给了[5 1] 作为大小。)

标签: matlabsimulink

解决方案


推荐阅读