diff --git a/core.cs b/core.cs index 3b038aa..cf0b24b 100644 --- a/core.cs +++ b/core.cs @@ -2,8 +2,17 @@ using System; namespace conductortension { - partial class Core + public partial class Core { + //alpha 是膨胀系数 + //E 弹性模量 + //area 导线截面 + //t 温度 + // l 档距 + public static double Fx(double E,double load,double tension,double alpha,double area,double t) + { + return E * Math.Pow(load / tension, 2) /24- tension / area - alpha * E * t; + } public static bool CalZhangLi(calStressLoadNew inPut, ref double ZhangLi) { @@ -19,8 +28,8 @@ namespace conductortension //计算最大使用张力 double ZuiDaShiYongZhangLi; //最大使用张力=计算拉断力*保证破断张力取计算拉断力的/安全系数 - //ZuiDaShiYongZhangLi = inPut.LaDuanLi * inPut.BaoZhengPoDuanZhangLi / inPut.AnQuan; - ZuiDaShiYongZhangLi = inPut.LaDuanLi / inPut.AnQuan; + ZuiDaShiYongZhangLi = inPut.LaDuanLi * inPut.BaoZhengPoDuanZhangLiXiShu / inPut.AnQuan; + //ZuiDaShiYongZhangLi = inPut.LaDuanLi / inPut.AnQuan; //计算温度线膨胀系数 double XianPengZhang = inPut.XianPengZhang * 0.000001; //计算平均运行张力 @@ -33,19 +42,19 @@ namespace conductortension { inPut.NianPingJun = inPut.NianPingJun / 100; } - double PingJunYunXingZhangLi = inPut.LaDuanLi * inPut.BaoZhengPoDuanZhangLi * inPut.NianPingJun;///////////////////////////////////////////////////////////////////////年平均是20%还是0.2,这里要求的是小数 + double PingJunYunXingZhangLi = inPut.LaDuanLi * inPut.BaoZhengPoDuanZhangLiXiShu * inPut.NianPingJun;///////////////////////////////////////////////////////////////////////年平均是20%还是0.2,这里要求的是小数 if (inPut.SheJiFengSuGaoDu == 0) { inPut.SheJiFengSuGaoDu = 10; } if (inPut.PingJunGaoDu == 0) { - inPut.PingJunGaoDu = 20; + inPut.PingJunGaoDu = 20;//TODO:需要依据电压等级选择 } double a, b, T1, T2, T3, T4, T5, T6; //计算待求工况比载 - double BiZai = 0; //待求工况比载 - if (CalHeZai(inPut, ref BiZai) == false) + double DaiHeZai = 0; //待求工况比载 + if (CalHeZai(inPut, ref DaiHeZai) == false) { return false; } @@ -57,7 +66,7 @@ namespace conductortension double KongZhiYingLi; //临界档距表计算 - //一、初始计算数组,5项分别代表:1:气温,2:比载,3:容许张力,4:P/T,5:Fo=-(T+A*E*a*t)(N) + //一、初始计算数组,5项分别代表:1:气温,2:荷载,3:容许张力,4:P/T,5:Fo=-(T+A*E*a*t)(N) double[] ChuShiZuiDiQiWen = new double[5]; //最低温 double[] ChuShiNianPingJun = new double[5]; //年平均气温 double[] ChuShiDaFeng = new double[5]; //大风 @@ -94,7 +103,7 @@ namespace conductortension ChuShiNianPingJun[2] = PingJunYunXingZhangLi; ChuShiDaFeng[2] = ZuiDaShiYongZhangLi; ChuShiFuBing[2] = ZuiDaShiYongZhangLi; - //4:计算并存储P/T + //4:计算并存储P/T 荷载/张力 ChuShiZuiDiQiWen[3] = ChuShiZuiDiQiWen[1] / ChuShiZuiDiQiWen[2]; ChuShiNianPingJun[3] = ChuShiNianPingJun[1] / ChuShiNianPingJun[2]; ChuShiDaFeng[3] = ChuShiDaFeng[1] / ChuShiDaFeng[2]; @@ -459,7 +468,7 @@ namespace conductortension //计算a a = inPut.JieMianJi * Math.Pow(KongZhiBiZai, 2) * Math.Pow(inPut.DangJu, 2) * inPut.MoLiang / (Math.Pow(KongZhiYingLi, 2) * 24) - KongZhiYingLi + XianPengZhang * inPut.JieMianJi * inPut.MoLiang * (inPut.DaiWen - KongZhiQiWen); //计算b - b = inPut.JieMianJi * inPut.MoLiang * Math.Pow(BiZai, 2) * Math.Pow(inPut.DangJu, 2) / 24; + b = inPut.JieMianJi * inPut.MoLiang * Math.Pow(DaiHeZai, 2) * Math.Pow(inPut.DangJu, 2) / 24; T1 = ZuiDaShiYongZhangLi - (Math.Pow(ZuiDaShiYongZhangLi, 2) * (ZuiDaShiYongZhangLi + a) - b) / (Math.Pow(ZuiDaShiYongZhangLi, 2) * 3 + ZuiDaShiYongZhangLi * a * 2); T2 = T1 - (T1 * T1 * (T1 + a) - b) / (T1 * T1 * 3 + T1 * a * 2); @@ -507,7 +516,7 @@ namespace conductortension public double DaiWen; //待求工况气温(C) public double DangJu; //档距(m) public double SheJiFengSuGaoDu; //设计基准风速高度 - public double BaoZhengPoDuanZhangLi; //保证破断张力取计算拉断力的%,即张力系数 + public double BaoZhengPoDuanZhangLiXiShu; //保证破断张力取计算拉断力的%,即张力系数 public double dxLoad; //线荷载 } @@ -562,26 +571,26 @@ namespace conductortension double bi = 1;//覆冰增大系数B - if (inPut.DaiBing == 0) //'无冰工况 - bi = 1; - else if (inPut.DaiBing <= 5) - bi = 1.1; - else if (inPut.DaiBing <= 10) - bi = 1.2; - else if (inPut.DaiBing <= 15) - bi = 1.3; - else if (inPut.DaiBing <= 20) - bi = 1.5; - else if (inPut.DaiBing <= 25) - bi = 1.7; - else if (inPut.DaiBing <= 30) - bi = 1.8; - else if (inPut.DaiBing <= 40) - bi = 1.9; - else if (inPut.DaiBing <= 60) - bi = 2; - - double u = 1.1;//体型系数 + //if (inPut.DaiBing == 0) //'无冰工况 + // bi = 1; + //else if (inPut.DaiBing <= 5) + // bi = 1.1; + //else if (inPut.DaiBing <= 10) + // bi = 1.2; + //else if (inPut.DaiBing <= 15) + // bi = 1.3; + //else if (inPut.DaiBing <= 20) + // bi = 1.5; + //else if (inPut.DaiBing <= 25) + // bi = 1.7; + //else if (inPut.DaiBing <= 30) + // bi = 1.8; + //else if (inPut.DaiBing <= 40) + // bi = 1.9; + //else if (inPut.DaiBing <= 60) + // bi = 2; + //导线力学计算不考虑覆冰增大系数 by 杜孟远 20200406 + double u;//体型系数 if (inPut.DaiBing > 0 || inPut.WaiJing < 17) u = 1.2; @@ -598,22 +607,20 @@ namespace conductortension if (inPut.DaiBing == 0) //'无冰工况 { - if (inPut.DaiFeng < 20) - a = 1; - else if (inPut.DaiFeng < 27) - a = 0.8; - else if (inPut.DaiFeng < 31.5) - a = 0.75; - else - a = 0.7; - - - dx3 = Math.Pow(inPut.DaiFeng, 2) * inPut.WaiJing * u * a * bi / 1600;// '导线无冰风荷载 + if (inPut.DaiFeng < 20) + a = 1; + else if (inPut.DaiFeng < 27) + a = 0.85; + else if (inPut.DaiFeng < 31.5) + a = 0.75; + else + a = 0.7; + dx3 = Math.Pow(inPut.DaiFeng, 2) * inPut.WaiJing * u * a * bi / 1600;// '导线无冰风荷载 } else { - a = 1; // '有冰工况定义风压不均匀系数a=1 - dx3 = Math.Pow(inPut.DaiFeng, 2) * (inPut.WaiJing + 2 * inPut.DaiBing) * a * bi * u / 1600; // '导线有冰风荷载 + //a = 1; // '有冰工况定义风压不均匀系数a=1 + dx3 = 1.2*Math.Pow(inPut.DaiFeng, 2) * (inPut.WaiJing + 2 * inPut.DaiBing) * a * bi/ 1600; // '导线有冰风荷载 } HeZai = Math.Sqrt(Math.Pow((ZiZhongHeZai + ChuiZhiHeZai), 2) + Math.Pow(dx3, 2));// '存储导线荷载 diff --git a/extra.cs b/extra.cs index 6e72c31..0a83681 100644 --- a/extra.cs +++ b/extra.cs @@ -5,7 +5,7 @@ using System.Text; namespace conductortension { - partial class Core + public partial class Core { public static double BaoLiuLiangWei(double a) {