spare 发表于 2007-4-16 15:02

求教:使用s函数时出现的错误

在模型中使用了s函数,仿真时出现如:Error in 'myBoost/S-Function' while executing M-File S-function 'ercichazhi', flag = 3 (output), at time 0. MATLAB error message:
Undefined function or variable "P"
的错误,麻烦高手帮忙看看,谢谢!!!

spare 发表于 2007-4-16 15:03

回复 #1 spare 的帖子

好像是说刚开始时输出函数部分有问题,难道是初始值设置的问题

bin1996 发表于 2007-4-16 19:36

若是你的S函数引入了参数"P"
第一行:function = sfuntmpl(t,x,u,flag,P):
同样case 0,
    =mdlInitializeSizes(P)
case 3,
    sys=mdlOutputs(t,x,u,P);
以及function =mdlInitializeSizes(P)
function sys=mdlOutputs(t,x,u,P)
若是用到了状态方程:应设在mdlDerivatives(t,x,u,P)中加入参数P
注:上述都是在S函数摸板编辑环境中进行的.

spare 发表于 2007-4-17 09:16

回复 #3 bin1996 的帖子

我是在调用函数中使用了P参数,也必须这样吗?

cdwxg 发表于 2007-4-17 11:21

引入也是需要声明的,最起码在该S函数里面你需要对它定义,否则matlab 不知道你这个是干吗的?
如果可能可以看下程序,看下呢.
页: [1]
查看完整版本: 求教:使用s函数时出现的错误