天天看點

【機械】基于matlab實作直齒圓柱齒輪應力計算附matlab代碼

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

3 運作結果

【機械】基于matlab實作直齒圓柱齒輪應力計算附matlab代碼

4 參考文獻