标题:我在编程中碰到的一个问题
只看楼主
gyzjzj
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-4-28
 问题点数:0 回复次数:0 
我在编程中碰到的一个问题

大家好!!
我在编程中碰到一个问题,是关于非符号~的
这是一个simulink模型中的s函数:
function sys=mdlOutputs(t,x,u)
%输入u1为Tab时间内v1作用时间;u2为Tab时间内v2作用时间;u3为Tab零矢量;u4为Tac时间内v1作用时间;u5为Tac时间内v2作用时间; u6为Tac零矢量;u7为Tpwm时间

h=0;
if (mod(t,u(7))<=0+u(3)/2) %1
h=0;
elseif (mod(t,u(7))<=0+u(3)/2+u(1)) %3
h=~h;
elseif (mod(t,u(7))<=0+u(3)/2+u(1)+u(2)) %5
h=~h;
elseif (mod(t,u(7))<=u(1)+u(2)+u(3)+u(6)/2) %9
h=0;
elseif (mod(t,u(7))<=u(1)++u(2)+u(3)+u(6)/2+u(5)) %11
h=~h;
elseif (mod(t,u(7))<=u(1)++u(2)+u(3)+u(6)/2+u(4)+u(5)) %13
h=~h;
else %7
h=0;
end
end
sys=[h];
运行结果是提示:
Output returned by S-function 'unit_pulse_synchronism' in block 'sparse_rectify_inverter_with_idealsimple/Subsystem2/S-Function3' during flag=3 call must be a real vector of length 1

如果将h=~h改成h=1或者h=0程序就可以运行
按道理matlab 中是可以将这种单变量看成bool变量的,小弟百思不得其解,请哪位高人赐教,小弟在此叩首谢过!!

搜索更多相关主题的帖子: Tac Tab mod elseif 时间 
2006-04-28 22:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-60967-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.198702 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved