2017-05-14 21 views
1

我想根據位置條件改變移動機器人的輸入輪速度?根據條件改變微分方程中的參數?

if d > 0 & d < 0.4 
     p.WR = 0.51; 
     p.WL = 0.5; 
    elseif d > 0.4 & d < 0.8 
     p.WR = 0.5; 
     p.WL = 0.51; 
    elseif d == 0.4 
     p.WR = 0.5; 
     p.WL = 0.5; 
    end 
function dt = mydglw9(t,c,p) 
    x = c(1);y = c(2);th = c(3); 
     dx = (((p.r*p.WL)+(p.r*p.WR))/2) * cos(th); 
     dy = (((p.r*p.WL)+(p.r*p.WR))/2) * sin(th); 
     dth= ((p.r*p.WL)-(p.r*p.WR))/p.L; 
     dt = [dx;dy;dth]; 
     pose = [x y th]; 
    end 

但是我總是得到錯誤[引用不存在的領域「WL」],有沒有一種方法,使求解求解微分方程之前檢查的條件?

+1

你的代碼不完整!你會在哪一行得到這個錯誤? - – Reflection

回答

0

您可以檢查是否O不可用isfield存在從p結構WL領域:

isfield(p,'WL') 

返回true如果該字段存在。