程序想要實現將PID三個參數的值限定在[0,1]中,代碼如下:
clear
clc
%將PID的參數限制在[0,1]
max=1;%上限
min=0;%下限
PIDmax=ones(3,1)*max;
PIDmin=ones(3,1)*min;
PID=[2.5 0.5 -0.1]';
newPID=min(max(PID,PIDmin),PIDmax)
報錯信息:
變量名稱不要命名爲函數名,這裏先將max=1,把max定義爲了一個值,後面遇到max就會當成一個值來處理,就不會調用max()函數。
clear
clc
%將PID的參數限制在[0,1]
ma=1;%上限,變量名不要設置爲max
mi=0;%下限,變量名不要設置爲min
PIDmax=ones(3,1)*ma;
PIDmin=ones(3,1)*mi;
PID=[2.5 0.5 -0.1]';
newPID=min(max(PID,PIDmin),PIDmax)
運行正確: