我想在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"
答案 0 :(得分:1)
尝试在ifs之前为变量赋值。 Simulink需要始终在这种类型的块函数中定义值,并且它们似乎在你的中,但编译器认为它们不是。所以在任何if之前,将一些值赋予你的输出。
它可能会奏效。
答案 1 :(得分:1)
您应该替换该行:
elseif in_Motor<0
简单else
。