大家好!!
我在编程中碰到一个问题,是关于非符号~的
这是一个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变量的,小弟百思不得其解,请哪位高人赐教,小弟在此叩首谢过!!
我在编程中碰到的一个问题