關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 漸開線圓柱齒輪幾何參數計算的計算機輔助設計系統

        漸開線圓柱齒輪幾何參數計算的計算機輔助設計系統

        作者: 時間:2012-05-31 來源:網絡 收藏

        α2 = Math.PI * α1 / 180;

        β2 = Math.PI * β1 / 180;

        n = Math.Cos(β2);

        u = 1;

        m = Convert.ToDouble(tBoxm.Text);

        ha = Convert.ToInt32(tBoxha.Text);

        hat = ha * n;

        c = Convert.ToDouble(tBoxc.Text);

        ct = c * n;

        r = Convert.ToDouble(tBoxr.Text);

        rt = r * n;

        if (tBoxpa_s.Enabled) //標準

        {

        Z0 = Convert.ToInt32(tBoxZ1.Text);

        ha01 = ha * m;

        hf0 = 1.25 * m;

        h0 = ha01 + hf0;

        if (tBoxβ.Text != 0)

        {

        a0 = Z0 * m / n;

        d0 = m * Z0 / n;

        }

        else

        {

        a0 = Z0 * m;

        d0 = m * Z0;

        }

        a = a0;

        da0 = d0 + 2 * ha01;

        df0 = d0 - 2 * hf0;

        db0 = d0 + Math.Cos(α2);

        pa = Math.PI * m * Math.Cos(α2);

        //標準齒厚計算

        sc0 = 0.5 * Math.PI * m * Math.Cos(α2) * Math.Cos(α2);

        hc0 = ha01 - Math.PI * m * Math.Sin(2 * α2) / 8;

        invαt = Math.Tan(α2) - α2;

        if (tBoxβ.Text != 0)

        {

        s0 = m * Z0 * Math.Sin(Math.PI * n * n * n / (2 * Z0)) / (n * n * n);

        ha02 = 0.5 * da0 - (0.5 * m * Z0 / (n * n * n)) * (Math.Cos(Math.PI * n * n * n / (2 * Z0)) - Math.Sin(β2) * Math.Sin(β2));

        k0 = (α1 / 180) * Z0 + 1;

        W0 = (Math.PI * (k0 - 0.5) + Z0 * invαt) * m * Math.Cos(α2);

        }

        else

        {

        s0 = m * Z0 * Math.Sin(Math.PI / (2 * Z0));

        ha02 = 0.5 * da0 - 0.5 * m * Z0 * Math.Cos(Math.PI / (2 * Z0));

        k0 = (α1 / 180) * Z0 + 1;

        W0 = (Math.PI * (k0 - 0.5) + Z0 * invαt) * m * Math.Cos(α2);

        }

        }

        計算外嚙合和內嚙合各種,原理基本一樣,重點注意的是取值的精確度問題,以及弄清各參數之間的關系,以便于計算,避免數值的混淆。

        2、確定部分重要精度參數的取值函數

        public static int fpb_value(double x, double y, string z) //基節極限偏差fpb取值

        {…}

        public static int Fβ_value(int x, string y) //齒向公差Fβ取值

        {…}

        public static double fa_value(double x, string y) //中心距極限偏差fa取值

        {…}

        public static int fpt_value(double x, double y, string z) //齒距極限偏差fpb取值

        {…}

        public static int Fr_value(double x, double y, string z) //齒圈徑向跳動公差Fr取值

        {…}

        public static double br_value(string x, double d) //切齒徑向進刀公差br取值

        {…}

        public static char code_value(double x) //偏差代號

        {…}

        3.4.2軟件實現和傳統人工計算的比較

        對齒輪進行設計時,傳統的人工計算具有很大的局限性,下面就列舉兩個比較突出的例子進行比較說明。

        1、在計算參數時,已知參數invα且invα=tanα-α,要番過來求α的值,此設計中我使用的二分法查找的思想來求解(代碼如下),其中取值的精度精確到了10-8。如果如此龐大的計算量進行人工計算,工作量可想而知,而且有存在很大的誤差甚至是錯誤的可能,但借用了此計算機輔助軟件,立刻就可以得到滿意的答案。

        private double inv(double x)

        {

        double f = 0, r = Math.PI / 2, b, fun; //設置變量f,r,b,fun

        b = Math.PI / 4; //因為0α(π/2),所以取第一個二分時b=π/4

        fun = Math.Tan(b) - b; //求出當b=π/4時fun的值

        while (Math.Abs(fun - x) > 0.00000001) //當誤差小于10-8時跳出循環

        {

        if (fun - x > 0) //若fun大于x,取中間值的左邊區間進行循環

        {

        r = b;

        b = (f + r) / 2; //取新區間的中值

        fun = Math.Tan(b) - b;

        }

        else if (fun - x 0) //若fun小于x,取中間值的右邊區



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 凤阳县| 内江市| 洛南县| 长寿区| 招远市| 饶阳县| 景德镇市| 甘孜县| 鹿泉市| 武冈市| 香格里拉县| 南汇区| 尤溪县| 尉氏县| 霞浦县| 岳阳县| 铜山县| 呼和浩特市| 庄河市| 苏尼特右旗| 徐闻县| 璧山县| 五常市| 高雄市| 西昌市| 松江区| 盈江县| 海门市| 织金县| 金溪县| 行唐县| 博爱县| 巴彦淖尔市| 刚察县| 舒兰市| 南通市| 广丰县| 通许县| 石首市| 沅江市| 龙州县|