1 内容介紹
運用MATLAB的優化工具箱對直齒圓柱齒輪傳動進行了優化設計,其限制優化時采用fmincon求解器,優化結果與正常設計結果比較,獲得了更為緊湊的結構.通過應用執行個體驗證了其優化方法的可靠性,可為齒輪結構的優化設計提供參考.
2 部分代碼
function JK=JofK(m,phis,ar,rrT,ts,N1,N2,C,rT1,rT2)
%此處多添加部分是為了判斷函數是否能計算,若不能計算則傳回主函數,并傳回空值,用來判斷計算出錯,給出提示框
CENUM={m,phis,ar,rrT,ts,N1,N2,C,rT1,rT2};
CEN=sum(cellfun('isempty',CENUM));
%判斷輸入數中是否有空值,若是有的話,傳回空值
if CEN
JK=[];
return
else
[urmin,urmax,e,xD,rf,xrp,yrp,gammaw,phi]=Parameter(m,phis,ar,rrT,ts,N1,N2,C,rT1,rT2);
options=optimset('display','off');
ur=fminbnd(@KofJ,urmin,urmax,options,m,rf,e,rrT,N1,xrp,yrp,phis,xD,gammaw);
KJ=KofJ(ur,m,rf,e,rrT,N1,xrp,yrp,phis,xD,gammaw);
%這裡調用了KofJ子函數,若是子函數傳回的值為空,則此子函數的字也傳回為空
if ~isempty(KJ)
JK=-cos(phi)/KJ;
else
JK=[];
return
end
end