声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2370|回复: 11

[基本模块类] s-function仿真遇到问题,请高手给解决一下

[复制链接]
发表于 2008-11-11 20:50 | 显示全部楼层 |阅读模式

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

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

x
xt.m (1.24 KB, 下载次数: 8) 我在运行Simulink仿真的时候,出现以下提示,Output returned by S-function 'xt' in 'fuzzy_slide/S-Function1' during flag=3 call must be a real vector of length 2。
怎么改都不行,不知道怎么办了。
程序如下:

%S-function for continuous state equation
function [sys,x0,str,ts]=s_function(t,x,u,flag)
switch flag,
%Initialization
  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
case 1,
    sys=mdlDerivatives(t,x,u);
%Outputs
  case 3,
    sys=mdlOutputs(t,x,u);
%Unhandled flags
  case {2, 4, 9 }
    sys = [];
%Unexpected flags
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end
%mdlInitializeSizes
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 3;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 2;
sizes.NumInputs      = 3;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 0;
sys=simsizes(sizes);
x0=[0,0,0];
str=[];
ts=[];
function sys=mdlDerivatives(t,x,u)
% x=u(1);
% sys(1)=2.1809*wt+0.036*x1+0.00002*Qs+0.1*u(1);  % dwt
% sys(2)=1800/35*wt-1800/35*x1+1/35*Qs-1/35*u(2);    % dwg
% sys(3)=(100+5.4)*wt-100*x1;                       % dQs
sys(1)=2.1809*u(3)+0.036*x1+0.00002*Qs+0.1*u(1);  % dwt
sys(2)=1800/35*u(3)-1800/35*x1+1/35*Qs-1/35*u(2);    % dwg
sys(3)=(100+5.4)*u(3)-100*x1;                       % dQs
function sys=mdlOutputs(t,x,u)
% dQs=(100+5.4)*wt-100*x1;
dQs=(100+5.4)*u(3)-100*x(1);
%x3=u(1);
sys(1)=x(1);
%sys(2)=u(1);
%sys(3)=dQs;
sys(2)=dQs;

fuzzy_slide.mdl (49.05 KB, 下载次数: 19)
s.m (1.1 KB, 下载次数: 17)
rule.m (1.8 KB, 下载次数: 16)

回复
分享到:

使用道具 举报

发表于 2008-11-11 21:12 | 显示全部楼层

回复 楼主 ezekyal 的帖子

根据提示,出现了虚数吧
 楼主| 发表于 2008-11-11 21:21 | 显示全部楼层
哪里会出现呢。你是说输出还是输入?
应该不会吧。。。我是按照建模进行的啊
发表于 2008-11-11 21:42 | 显示全部楼层
Output returned by S-function 'xt' in 'fuzzy_slide/S-Function1' during flag=3 call must be a real vector of length 2。
 楼主| 发表于 2008-11-11 22:08 | 显示全部楼层
但是我也没发现里面有复数出现吧。。刚开始就不能仿真、
发表于 2008-11-13 08:37 | 显示全部楼层
打不开 看看维数是否一样
发表于 2008-11-13 08:49 | 显示全部楼层
看输出维数 你可能搭错了 另外我已经试验过了 程序没有你说的那个问题 不过有别的问题 不知道是你们程序的需要 还是我理解错了 有问题再说吧
发表于 2008-11-17 02:22 | 显示全部楼层
试试把sizes.DirFeedthrough = 0 改成 = 1
 楼主| 发表于 2008-12-14 19:57 | 显示全部楼层
发表于 2008-12-26 11:14 | 显示全部楼层
同样问题,考虑中,不知道你的解决了吗?
发表于 2008-12-26 11:19 | 显示全部楼层
哦对了,能不能把解决方法告诉我呢,我也很郁闷啊?QQ:61810507,谢谢!
发表于 2009-1-8 17:57 | 显示全部楼层
太难了,想不出来
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-15 22:49 , Processed in 0.081714 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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