修改好了计算张力的程序。

This commit is contained in:
facat 2020-04-17 22:25:42 +08:00
parent 35a7300803
commit 6bd527bae2
2 changed files with 52 additions and 45 deletions

95
core.cs
View File

@ -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/T5:Fo=-(T+A*E*a*t)(N)
//一、初始计算数组,5项分别代表:1:气温2:3:容许张力4:P/T5: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));// '存储导线荷载

View File

@ -5,7 +5,7 @@ using System.Text;
namespace conductortension
{
partial class Core
public partial class Core
{
public static double BaoLiuLiangWei(double a)
{