声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1773|回复: 4

[基本模块类] 急求:正确的逆变器S-函数!

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

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

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

x
ASS与UI的S-函数程序错在哪里了啊

求救高手啊!!!
高手在哪里呀?
帮我看看这个程序为什么不能运行呀


%csfunc.m
function[sys,x0,str,ts]=table(t,x,u,flag)
function [sys,x0,str,ts]=mdlInitializeSizes
        sizes = simsizes;
        sizes.NumContStates =0;
        sizes.NumDiscStates =0;
        sizes.NumOutputs    =1;
        sizes.NumInputs     =3;
        sizes.DirFeedthrough=1;
        sizes.NumSampleTimes=1;
        sys = simsizes(sizes);
        x0 =[];
        str =[];
        ts =[0 0];
%逆变器功能的S-函数
function[sys,x0]=table(t,x,u,flag,E)
E=500;
Ktable=[6,5,4,3,2,1;7,7,0,7,0,0;5,3,1,6,4,2;7,7,7,7,7,7;2,4,6,1,3,5;0,0,7,0,7,7;1,2,3,4,5,6];
Ksa=[0,0,0,0,1,1,1,1];
Ksb=[0,0,1,1,0,0,1,1];
Ksc=[0,1,0,1,0,1,0,1];
if flag==3
    X=4*u(2)+u(3)+1;
    Y=u(1);
    u(s)=Ktable(X,Y);
    Kus=us+1;
    Sa=Ksa(Kus);
    Sb=Ksb(Kus);
    Sc=Ksc(Kus);
    Sys(1)=(2*Sa-Sb-Sc)*E/3;
    Sys(2)=(2*Sb-Sa-Sc)*E/3;
    Sys(3)=(2*Sc-Sa-Sb)*E/3;
elseif flag==0  
        sys=[0;0;3;3;0;0];
    else
        sys=[];
        end


提示错误是这样的:
      Error getting arg counts for S-Function 'table' in'untitled/S-Function'.
      ERROR mesagge: Line 39 Column12'
      This statemen is incomplete
回复
分享到:

使用道具 举报

发表于 2007-6-15 17:55 | 显示全部楼层
自己查阅本版面S函数的帖子,已经比较完善
S函数的模板以及相关解释
你的这个连flag都没给出的嘛
 楼主| 发表于 2007-6-16 09:13 | 显示全部楼层

请问您指的flag没有给出是什么意思?

请问您指的flag没有给出是什么意思啊?
函数里面不是有那个if flag==3......else if flag==0.......else 函数吗??

如果要给出,应该怎么给啊
怎么编,还要编什么样的程序呀?
 楼主| 发表于 2007-6-16 09:40 | 显示全部楼层
我是指在我用simulink中用这个S-函数出现了错误,
因为我编程的时候好像不用给出flag,不是吗?
发表于 2007-6-18 10:57 | 显示全部楼层
如果不用flag的,为什么要用S函数,用个M文件嵌入到matlab fcn不就可以了么?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-11 04:55 , Processed in 0.069541 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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