声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1521|回复: 1

[综合讨论] 请教一个关于S函数错误的问题

[复制链接]
发表于 2010-10-25 15:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 amfk2006 于 2010-10-25 15:34 编辑

Output returned by S-function '***' in '***' during flag=3 call must be a real vector of length 1

单独加常数或正弦输入,没有问题,但是放在大的模型一起仿真,就出现如上错误,请大侠看看,谢谢!



function [sys,x0,str,ts] = mpt(t,x,u,flag,Kc)

  switch flag

  case 0
    [sys,x0,str,ts]=mdlInitializeSizes;

  case 2
    sys=mdlUpdate(t,x,u);

  case 3
    sys=mdlOutputs(t,x,u,Kc);

  case{1,4,9}
    sys=[];

  otherwise
    error(['Unhandled flag = ',num2str(flag)]);

  end

function [sys,x0,str,ts]=mdlInitializeSizes(t,x,u)

sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 2;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0  = [0 0];
str = [];
ts  = [0.001 0];

function sys=mdlUpdate(t,x,u)

sys(1,1) = u(1);
sys(2,1) = u(2);

function sys=mdlOutputs(t,x,u,Kc)

sys = u(1)-u(2);

回复
分享到:

使用道具 举报

发表于 2010-10-26 11:18 | 显示全部楼层
首先程序可能有问题 你这个是两个输入的差用不到mdlUpdate 另外在你的系统里面 注意输入的维数

点评

赞成: 5.0
赞成: 5
  发表于 2010-10-26 12:51
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-4-27 10:48 , Processed in 0.059463 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表