声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1447|回复: 3

求助:S函数

[复制链接]
发表于 2007-6-2 15:59 | 显示全部楼层 |阅读模式

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

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

x
我编的S函数不是错在哪,可以连接但放入模块运行是老出错,大家帮忙看看啊
%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;
%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  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 6;
sizes.NumInputs      =3;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 0;

sys=simsizes(sizes);
x0=[];
str=[];
ts=[];
function sys=mdlOutputs(t,x,u)
if u(1)>0
sys(1)=1
sys(2)=0
elseif u(1)<0
sys(1)=0
sys(2)=1
end
if u(2)>0
sys(3)=1
sys(4)=0
elseif u(2)<0
sys(3)=0
sys(4)=1
end
if u(3)>0
sys(5)=1
sys(6)=0
elseif u(3)<0
sys(5)=0
sys(6)=1
end
我有三个输入,六个输出.属于脉冲信号呢
回复
分享到:

使用道具 举报

发表于 2007-6-4 15:21 | 显示全部楼层
sizes.NumSampleTimes = 0;至少为1
另外ts还有你的输出那里没有用到状态变量么?
发表于 2007-6-4 18:01 | 显示全部楼层

回复 #1 verazj 的帖子

ts必须有设定值,例如[-1 0]是继承;[0 0]是每个时间步都运行
发表于 2007-6-5 21:43 | 显示全部楼层
你是仿真什么的啊
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-21 11:11 , Processed in 0.061978 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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