声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1804|回复: 5

紧急求助关于s函数的问题!!

[复制链接]
发表于 2007-5-20 23:06 | 显示全部楼层 |阅读模式

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

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

x
我的这个s函数老是提示如下错误请各位帮忙看下啊。错误信息如下:
Trouble solving algebraic loop containing 'backstepping_1/Vo1/source/Switches2/Model1/Tail/Integrator' at time 6.553660664072742e-006.  Stopping simulation.  There may be a singularity in the solution.  If the model is correct, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances).

源程序如下:
function [sys,x0,str,ts] = spacemodel(t,x,u,flag)
switch flag,
case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
case 3,
    sys=mdlOutputs(t,x,u);
case {2,4,9}
    sys=[];
otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 0; % At least one sample time is needed
sys = simsizes(sizes);
x0  = [];
str = [];
ts  = [];
function sys=mdlOutputs(t,x,u)
E=20;L=10^(-6)*92;C=10^(-6)*200;R=8;Rl=10^(-3)*74;Rc=70*10^(-3);Rd=30*10^(-3);
Rs=44*10^(-3);c0=120;c1=60000;k1=50000;k2=2000;c2=50000;
q1=-1/((R+Rc)*C);
q2=R/((R+Rc)*C);
q3=-R/((R+Rc)*L);
q4=-R*Rc/((R+Rc)*L)-Rl/L-Rd/L;
q5=E/L;
Vd=8;
tao=u(1)*t-Vd*t;
dtao=u(1)-Vd;
a0=-c0*tao+Vd;
da0=-c0*(u(1)-Vd);
a1=1/q2*(-c1*(u(1)-a0)-tao-q1*u(1)+da0)
rou=u(2)-a1;
dda0=-c0*(q1*u(1)+q2*u(2));
da1=1/q2*((c1*da0-(u(1)-Vd)+dda0)+(-c1-q1)*(q1*u(1)+q2*u(2)));
%ut=1/q5*(-c2*(u(2)-a1)-q2*(u(1)-a0)-q3*u(1)-q4*u(2)+da1);
ut=1/q5*(-q2*(u(1)-a0)-q3*u(1)-q4*u(2)+da1-k1*rou-k2*sign(rou));
sys(1)=ut;
回复
分享到:

使用道具 举报

发表于 2007-5-21 12:10 | 显示全部楼层
sizes.NumSampleTimes = 0
采样时间至少是1吧

评分

1

查看全部评分

发表于 2007-5-21 15:20 | 显示全部楼层
楼上的说的对,采样时间个数至少是一个。然后在ts【】中写入你的采样时间和滞后时间。
发表于 2007-5-21 16:25 | 显示全部楼层
sizes.NumSampleTimes = 0; % At least one sample time is needed这里的英文就已经说明了
本版面有个S函数的精华帖子后面有S函数的详细例程连接,希望对楼主有用。
 楼主| 发表于 2007-5-22 12:29 | 显示全部楼层
我改了那个采样时间问题依旧啊!!!希望高手们帮帮忙啊
发表于 2007-5-22 20:52 | 显示全部楼层
1:关于S函数请参考本版面很多S函数的帖子,希望能够尽力自己解决
2:Trouble solving algebraic loop containing 'backstepping_1/Vo1/source/Switches2/Model1/Tail/Integrator' at time 6.553660664072742e-006.  Stopping simulation.  There may be a singularity in the solution.  If the model is correct, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances).
这个错误不是S函数造成的啊?明明就是模块上的错误,但不是积分器的错误,只能说明是数据计算时候错误,这样的错误没有定论的,肯定也不是步长错误,只能看下你的系统模型了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 14:34 , Processed in 0.070754 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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