Esempio n. 1
0
        protected void HuangTowerCaculate(int index)
        {
            ElecCalsParas paras = ParaList[index];

            ElecCalsRes SideCalRes = new ElecCalsRes();

            SideCalRes.SpanFit    = paras.BackSpanFit;
            SideCalRes.IsBackSide = true; //只是为了计算45风
            SideCalRes.UpdataSor(paras.BackWeatherPara, paras.BackWirePara.Ind, paras.BackWirePara.Grd, paras.BackWirePara.OPGW, paras.JumpWirePara, paras.BackSidePara, paras.CommParas);

            TowerElecCals BackTower = ParaList[index - 1].TowerCals;

            BackTower.UpdataTowerTraHei();
            BackTower.UpdateAtitudeTower();

            TowerHangElecCals CalTower = (TowerHangElecCals)ParaList[index].TowerCals;

            CalTower.UpdataTowerTraHei();
            CalTower.UpdateAtitudeTower();

            TowerElecCals FrontTower = ParaList[index + 1].TowerCals;

            FrontTower.UpdataTowerTraHei();
            FrontTower.UpdateAtitudeTower();

            paras.CommParas.UpateIceCovrage(SideCalRes.Weather.WeathComm, SideCalRes.SideParas.IceArea);

            CalTower.GetAndUpdateSideRes(SideCalRes);

            CalTower.GetAndUpdateStrData(paras.StrDatas);

            for (int i = 0; i <= 9; i++)
            {
                CalTower.PhaseTraList[i].CalsStrLoad();
            }

            CalTower.FlashBackHeiSub(BackTower);
            CalTower.FlashFrontHeiSub(FrontTower);
            CalTower.UpdateDFCure();

            CalTower.Cals();

            CalTower.UpdateTensionDiff();
        }
Esempio n. 2
0
        public void TestMethod2_TowerHang()
        {
            var saveFileDialog = new Microsoft.Win32.SaveFileDialog()
            {
                Filter = "Txt Files (*.txt)|*.txt"
            };

            if (saveFileDialog.ShowDialog() != true)
            {
                return;
            }

            var pro = new ProjectInfo("新建工程", "施工图");

            pro.Volt    = 500;
            pro.VoltStr = "500kV";
            pro.ACorDC  = 0;

            ElecCalsWire DxData   = new ElecCalsWire("JL/G2A-720/50-45/7", 1, 775.41, 36.23, 2397.7, 63000, 20.9, 170600, 0, 25, 4);
            ElecCalsWire GrdData  = new ElecCalsWire("JLB20A-150", 2, 148.07, 15.75, 989.4, 147200, 13, 178570, 1, 10);
            ElecCalsWire OPGWData = new ElecCalsWire("JLB20A-150", 3, 148.07, 15.75, 989.4, 147200, 13, 178570, 2, 10);

            ElecCalsWeaRes Weath15 = new ElecCalsWeaRes("15mm27m/s", 1);
            List <ElecCalsWorkCondition> wkcList = new List <ElecCalsWorkCondition>()
            {
                new ElecCalsWorkCondition()
                {
                    Name         = "最大风速",
                    Temperature  = 0,
                    WindSpeed    = 31,
                    IceThickness = 0,
                },
                new ElecCalsWorkCondition()
                {
                    Name         = "最低气温",
                    Temperature  = -20,
                    WindSpeed    = 0,
                    IceThickness = 0,
                },
                new ElecCalsWorkCondition()
                {
                    //即Excel中的"电线覆冰"
                    Name         = "最大覆冰",
                    Temperature  = -5,
                    WindSpeed    = 10,
                    IceThickness = 20,
                },
                new ElecCalsWorkCondition()
                {
                    Name         = "平均气温",
                    Temperature  = 10,
                    WindSpeed    = 0,
                    IceThickness = 0,
                },
                new ElecCalsWorkCondition()
                {
                    Name         = "最高气温",
                    Temperature  = 40,
                    WindSpeed    = 0,
                    IceThickness = 0,
                },
                new ElecCalsWorkCondition()
                {
                    Name         = "安装情况",
                    Temperature  = -10,
                    WindSpeed    = 10,
                    IceThickness = 0,
                },
                new ElecCalsWorkCondition()
                {
                    Name         = "不均匀风",
                    Temperature  = 0,
                    WindSpeed    = 31,
                    IceThickness = 0,
                },
                new ElecCalsWorkCondition()
                {
                    Name         = "验算冰",
                    Temperature  = -5,
                    WindSpeed    = 10,
                    IceThickness = 10,
                },
                new ElecCalsWorkCondition()
                {
                    Name         = "验算不均匀冰I",
                    Temperature  = -5,
                    WindSpeed    = 10,
                    IceThickness = 10,
                },
                new ElecCalsWorkCondition()
                {
                    Name         = "验算不均匀冰II",
                    Temperature  = -5,
                    WindSpeed    = 10,
                    IceThickness = 10,
                },
            };

            Weath15.InsertGK(wkcList);

            ElecCalsCommRes CommParas = new ElecCalsCommRes();

            CommParas.Volt        = pro.Volt;
            CommParas.VoltStr     = pro.VoltStr;
            CommParas.Terrain     = "山地";
            CommParas.TerType     = 'B';
            CommParas.TerrainPara = 0.16;
            CommParas.IndAveHei   = 20;
            CommParas.GrdAveHei   = 20;
            CommParas.GrdCl       = 12;
            CommParas.SetForIncrPara();
            CommParas.SetForMaxMinPara(1.025, 1.025, 1.15 / 1.025, 1.1 / 1.025, 0.95, 0.95, 1, 1);

            var iceThick = wkcList.Find(item => item.Name == "最大覆冰").IceThickness;

            CommParas.CalMethodParaHang(1, 1, 1, iceThick, 1, 2);

            ElecCalsSideRes OneWrieSidePara = new ElecCalsSideRes(0.95, 2.5, 25, 1, 4, 25, 1, 4, 25);

            OneWrieSidePara.IceArea = "重冰区";

            ElecCalsTowerAppre BackAppre = new ElecCalsTowerAppre();

            BackAppre.SetTraPara(27.5, 13.3, 0, 35.3);
            ElecCalsTowerAppre CalsAppre = new ElecCalsTowerAppre();

            CalsAppre.SetTraPara(26.1, 12.4, 0, 28.8);
            ElecCalsTowerAppre FrontAppre = new ElecCalsTowerAppre();

            FrontAppre.SetTraPara(27.5, 13.3, 0, 35.3);

            ElecCalsSpanFit SpanFit = new ElecCalsSpanFit(0, 5, 10, 0, 4, 5, 0, 18, 10);

            TowerHangElecCals BackTower  = new TowerHangElecCals();
            TowerHangElecCals CalTower   = new TowerHangElecCals();
            TowerHangElecCals FrontTower = new TowerHangElecCals();

            BackTower.SetPosInf("N6098", "SJ252D", 29, 1254.09997558594, -3, 0, 0, 0);
            BackTower.TowerAppre = BackAppre;
            BackTower.UpdataTowerTraHei();
            BackTower.UpdateAtitudeTower();

            CalTower.SetPosInf("N6099", "SZ253", 48, 1273, -4.7, 6, 0.3, 0);
            CalTower.SetFrontBackPosInf(374, 428, 466, 428);
            CalTower.TowerAppre = CalsAppre;
            CalTower.UpdataTowerTraHei();
            CalTower.UpdateAtitudeTower();

            FrontTower.SetPosInf("N6100", "SJ252D", 33, 1309.69995117187, -5, 0, 0, 0);
            FrontTower.TowerAppre = FrontAppre;
            FrontTower.UpdataTowerTraHei();
            FrontTower.UpdateAtitudeTower();

            List <string> LogList = new List <string>();

            LogList.AddRange(BackTower.PrintHei("小号塔", false));
            LogList.AddRange(FrontTower.PrintHei("大号塔", false));
            LogList.AddRange(CalTower.PrintHei("计算塔", false));

            ElecCalsRes SideCalRes = new ElecCalsRes();

            SideCalRes.SpanFit    = SpanFit;
            SideCalRes.IsBackSide = true; //只是为了计算45风
            SideCalRes.UpdataSor(Weath15, DxData, GrdData, OPGWData, DxData, OneWrieSidePara, CommParas);

            CommParas.UpateIceCovrage(SideCalRes.Weather.WeathComm, SideCalRes.SideParas.IceArea);
            LogList.Add(CommParas.PrintIceCovrageHang());

            CalTower.GetAndUpdateSideRes(SideCalRes);

            LogList.Add("\n张力:");
            LogList.AddRange(CalTower.SideRes.PrintTension(CalTower.TowerType));

            LogList.Add("\n比载和应力:");
            LogList.AddRange(CalTower.SideRes.PrintBzAndYL(CalTower.TowerType));

            //绝缘子串参数
            ElecCalsStrData IndStr = new ElecCalsStrData();

            IndStr.SetIGPara(701.58, 1, 28, 0, 8, 0, 0);
            ElecCalsStrData GrdStr = new ElecCalsStrData();

            GrdStr.SetIGPara(29.08, 2, 1, 0, 4, 0, 0);

            CalTower.GetAndUpdateStrData(IndStr, GrdStr);

            for (int i = 0; i <= 9; i++)
            {
                CalTower.PhaseTraList[i].CalsStrLoad();
            }

            //导线有2侧,每侧有3相,因为三相的数据一样,故每侧打印一相
            LogList.Add("\n侧绝缘子串风荷载和垂直荷载:");
            LogList.Add("导线");
            LogList.AddRange(CalTower.PhaseTraList[0].PrintStrLoad(CalTower.TowerType));
            LogList.Add("地线");
            LogList.AddRange(CalTower.PhaseTraList[3].PrintStrLoad(CalTower.TowerType));

            CalTower.FlashBackHeiSub(BackTower);
            CalTower.FlashFrontHeiSub(FrontTower);
            CalTower.UpdateDFCure();
            LogList.AddRange(CalTower.PrintDFCure());

            CalTower.Cals();
            LogList.AddRange(CalTower.PrintCalsReslt());

            CalTower.UpdateTensionDiff();
            LogList.AddRange(CalTower.PrintTensionDiff());

            FileUtils.TextSaveByLine(saveFileDialog.FileName, LogList);
        }