簡體   English   中英

Simulink上的If語句Matlab函數

[英]If Statement Matlab Function on Simulink

我正在嘗試制作自己的Matlab函數以在Simulink中使用,但是我沒有成功。 這是一個簡單的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"

嘗試在ifs之前將值賦給變量。 Simulink需要始終在這種類型的塊函數中定義值,在您看來,它們確實是,但編譯器認為它們不是。 因此,如果有的話,請為您的輸出分配一些價值。

它可能會工作。

您可能應該替換該行:

elseif in_Motor<0

與一個簡單的else

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM