如果语句Matlab功能在Simulink上

时间:2014-06-18 10:40:16

标签: matlab function code-generation simulink

我想在Simulink中使用自己的Matlab函数,但我没有成功。它是一个简单的If语句,带有一个输入和三个输出值,所有这些都是整数,这里是代码:

function [ PWM,INA,INB ]  = VNH5019(in_Motor)
if in_Motor ==0
   INA=0;
   INB=0;
   PWM=0;
elseif in_Motor>0
    if in_Motor>255
    in_motor=255;
    end
      INA=1;
      INB=0;
      PWM=in_Motor;
elseif in_Motor<0
   if  in_Motor<-255
       in_motor=-255;
   end
   INA=0;
   INB=1;
   PWM=-in_Motor;
end

这里有错误:

Output argument 'PWM' is not assigned on some execution paths.

Function 'MATLAB Function' (#38.28.35), line 1, column 29:
"VNH5019"

2 个答案:

答案 0 :(得分:1)

尝试在ifs之前为变量赋值。 Simulink需要始终在这种类型的块函数中定义值,并且它们似乎在你的中,但编译器认为它们不是。所以在任何if之前,将一些值赋予你的输出。

它可能会奏效。

答案 1 :(得分:1)

您应该替换该行:

elseif in_Motor<0

简单else