【发布时间】:2019-04-21 05:44:04
【问题描述】:
我有一个小的 Simulink 模型如下:
以及相应的代码:
function [xdot,y] = fcn(x,u)
% define your constants
g = 9.81;
m = 0.05;
R = 1;
L = 0.01;
C = 0.0001;
x1 = 0.012;
x2 = 0;
x3 = 0.84;
% nonlinear set of equations
xdot = [x2; g-((C/m)*(x3/x1)^2); -((R/L) +(((2*C)/L)*(((x2*x3)/((x1)^2)))))] + [0;0;1/L]*u;
y = x';
但是,当我尝试运行时,Simulink 会生成以下错误:
数据“y”的推断大小(“[1 3]”)与指定大小不匹配 (“标量”)。组件:MATLAB 函数 |类别:编码器错误 Simulink 无法确定块“MATLAB”的输出的大小和/或类型 功能'由于块体中的错误,或限制 基础分析。错误可能不准确。修复指示的 错误,或明确指定所有块的大小和/或类型 输出。
我在一些文档中搜索了variable size inputs and outputs,选中了可变大小复选框,并将上限输入为 [1 3]。
当我再次尝试运行时,我得到:
最大数据“y”的表达式“[1 3]”必须计算为标量。
我不确定如何解决此错误。我也看了here,但仍然无法让它工作。 任何帮助将不胜感激。
【问题讨论】: