Ejemplo n.º 1
0
        // new transformer.TRTR2332AN Phases = 1, windings = 2, buses = (BMT98402313.1.0, BMT165130397.1.0), conns = (LN, LN), kvs = (7.97 7.97), kvas = (1992, 1992), xhl = 0.75,%loadloss=0.125251004016064,%noloadloss=0.0268072289156626
        // new RegControl.RRTR2332AN transformer = TRTR2332AN, winding = 2, PTphase = 1, ptratio = 66.4, band = 3, vreg = 125
        public bool ConsultaStoredReguladorMT(bool _modoReconf)
        {
            _arqReguladorMT = new StringBuilder();

            using (SqlConnection conn = new SqlConnection(_connBuilder.ToString()))
            {
                // abre conexao
                conn.Open();

                using (SqlCommand command = conn.CreateCommand())
                {
                    // se modo reconfiguracao
                    if (_modoReconf)
                    {
                        command.CommandText = "select CodRegulMT,TnsLnh1_kV,CodFasPrim,CodPonAcopl1,CodPonAcopl2,PotNom_kVA,[ReatHL_%],"
                                              + "[Resis_%],PerdVz_W,TenRgl_pu,CodBnc,TipRegul from dbo.StoredReguladorMT "
                                              + "where CodBase=@codbase and CodAlim in (" + _par._conjAlim + ")";
                        command.Parameters.AddWithValue("@codbase", _par._codBase);
                    }
                    else
                    {
                        command.CommandText = "select CodRegulMT,TnsLnh1_kV,CodFasPrim,CodPonAcopl1,CodPonAcopl2,PotNom_kVA,[ReatHL_%],[Resis_%],PerdVz_W,TenRgl_pu,CodBnc,TipRegul from dbo.StoredReguladorMT where CodBase=@codbase and CodAlim=@CodAlim";
                        command.Parameters.AddWithValue("@codbase", _par._codBase);
                        command.Parameters.AddWithValue("@CodAlim", _alim);
                    }

                    using (var rs = command.ExecuteReader())
                    {
                        // verifica ocorrencia de elemento no banco
                        if (!rs.HasRows)
                        {
                            return(false);
                        }

                        while (rs.Read())
                        {
                            string tensaoFN    = AuxFunc.GetTensaoFN(rs["TnsLnh1_kV"].ToString());
                            string tipoRegul   = rs["TipRegul"].ToString();
                            string perVazioPer = CalcPerdVazio(rs);
                            string vRegVolts   = CalcVReg(rs["TenRgl_pu"].ToString());
                            string ptratio     = GetPTRatio(rs["TnsLnh1_kV"].ToString());

                            // banco de regulador
                            if (tipoRegul.Equals("4"))
                            {
                                string linha1 = "new transformer.RT" + rs["CodRegulMT"] + "-" + rs["CodBnc"].ToString()
                                                + " Phases=1"
                                                + ",windings=2"
                                                + ",buses=[" + "BMT" + rs["CodPonAcopl1"] + "." + rs["CodBnc"].ToString() + ".0 " + "BMT" + rs["CodPonAcopl2"] + "." + rs["CodBnc"].ToString() + ".0]," //OBBS1
                                                + "conns=[LN LN]"
                                                + ",kvs=[" + tensaoFN + " " + tensaoFN + "]"
                                                + ",kvas=[" + rs["PotNom_kVA"].ToString() + " " + rs["PotNom_kVA"].ToString() + "]"
                                                + ",xhl=" + rs["ReatHL_%"]
                                                + ",%loadloss=" + rs["Resis_%"]
                                                + ",%noloadloss=" + perVazioPer + Environment.NewLine;

                                string linha2 = "new RegControl.RC" + rs["CodRegulMT"] + "-" + rs["CodBnc"].ToString()
                                                + " transformer=RT" + rs["CodRegulMT"] + "-" + rs["CodBnc"].ToString()
                                                + ",winding=2"
                                                + ",PTphase=1"
                                                + ",ptratio=" + ptratio
                                                + ",band=2"
                                                + ",vreg=" + vRegVolts + Environment.NewLine;

                                _arqReguladorMT.Append(linha1);
                                _arqReguladorMT.Append(linha2);
                            }
                            else
                            {
                                // TODO testar
                                string faseDSS = AuxFunc.GetFasesDSS(rs["CodFasPrim"].ToString());

                                string linha1 = "new transformer." + rs["CodRegulMT"]
                                                + " Phases=1" + ",windings=2"
                                                + ",buses=[" + "BMT" + rs["CodPonAcopl1"] + faseDSS + " " + "BMT" + rs["CodPonAcopl2"] + faseDSS + "]" //OBBS1
                                                + ",conns=[LN LN]"
                                                + ",kvs=[" + tensaoFN + " " + tensaoFN + "]"
                                                + ",kvas=[" + rs["PotNom_kVA"] + " " + rs["PotNom_kVA"] + "]"
                                                + ",xhl=" + rs["ReatHL_%"]
                                                + ",%loadloss=" + rs["Resis_%"]
                                                + ",%noloadloss=" + perVazioPer + Environment.NewLine;

                                string linha2 = "new RegControl." + rs["CodRegulMT"]
                                                + " transformer=" + rs["CodRegulMT"]
                                                + ",winding=2"
                                                + ",PTphase=1"
                                                + ",ptratio=" + ptratio
                                                + ",band=2"
                                                + ",vreg=" + vRegVolts + Environment.NewLine;

                                _arqReguladorMT.Append(linha1);
                                _arqReguladorMT.Append(linha2);
                            }
                        }
                    }
                }

                //fecha conexao
                conn.Close();
            }
            return(true);
        }
Ejemplo n.º 2
0
        //new transformer.TRF1151404 Phases=1,Windings=3,Buses=[BMT162221270.3 BBT32992241.1.0 BBT32992241.0.2],Conns=[wye wye wye],kvs=[7.97 0.12 0.12],kvas=[15 15 15],Taps=[1.0 1 1],XscArray=[2.124,2.124,1.416],%loadloss=1.766666667 ,%noloadloss=0.433333333
        //new transformer.TRF1174742 Phases = 3, Windings = 2, Buses =[BMT98410048.1.2.3 BBT36975913.1.2.3.0], Conns =[delta wye], kvs =[13.80 0.220], kvas =[75 75], Taps =[1.0 1.0], XHL = 3.72,%loadloss=1.466666667 ,%noloadloss=0.393333333
        //CodBase	CodTrafo	CodBnc	CodAlim	CodPonAcopl1	CodPonAcopl2	PotNom_kVA	MRT	TipTrafo	CodFasPrim	CodFasSecu	CodFasTerc	TenSecu_kV	Tap_pu	Resis_%	ReatHL_%	ReatHT_%	ReatLT_%	PerdTtl_%	PerdVz_%	ClssTrafo	Propr	Descr	CodSubAtrib	CodAlimAtrib	Ordm	De	Para	TnsLnh1_kV	TnsLnh2_kV
        public bool ConsultaBanco(bool _modoReconf)
        {
            _arqTrafo = new StringBuilder();

            using (SqlConnection conn = new SqlConnection(_connBuilder.ToString()))
            {
                // abre conexao
                conn.Open();

                using (SqlCommand command = conn.CreateCommand())
                {
                    command.CommandText = "select Propr,CodTrafo,CodPonAcopl1,CodPonAcopl2,PotNom_kVA,TipTrafo,CodFasPrim,CodFasSecu,CodFasTerc,TenSecu_kV,"
                                          + "Tap_pu,[Resis_%],[ReatHL_%],[ReatHT_%],[ReatLT_%],[PerdVz_%],TnsLnh1_kV,CodBnc,Descr"
                                          + " from dbo.StoredTrafoMTMTMTBT ";

                    // se modo reconfiguracao
                    if (_modoReconf)
                    {
                        command.CommandText += "where CodBase=@codbase and CodAlim in (" + _par._conjAlim + ")";
                        command.Parameters.AddWithValue("@codbase", _par._codBase);
                    }
                    else
                    {
                        command.CommandText += "where CodBase=@codbase and CodAlim=@CodAlim";
                        command.Parameters.AddWithValue("@codbase", _par._codBase);
                        command.Parameters.AddWithValue("@CodAlim", _alim);
                    }

                    using (var rs = command.ExecuteReader())
                    {
                        // verifica ocorrencia de elemento no banco
                        if (!rs.HasRows)
                        {
                            return(false);
                        }

                        while (rs.Read())
                        {
                            //skipa trafos de terceiros
                            if (rs["Propr"].ToString().Equals("TC"))
                            {
                                // Console.Write("trafo de terceiros: " + rs["CodTrafo"].ToString() + Environment.NewLine );
                                continue;
                            }

                            string barraBT = rs["CodPonAcopl2"].ToString();
                            string pot     = rs["PotNom_kVA"].ToString();
                            // double pot2 =Double.TryParse(rs["PotNom_kVA"];


                            //pot = string.Format("{0:.##}}", pot2);

                            string tensaoFF = AuxFunc.GetTensaoFF(rs["TnsLnh1_kV"].ToString());
                            string tensaoFN = AuxFunc.GetTensaoFN(tensaoFF);
                            string faseDSS  = AuxFunc.GetFasesDSS(rs["CodFasPrim"].ToString());

                            string linha;

                            // OBS: verificado que no geoperdas2018, o trafo mono apresenta TipTrafo=1
                            switch (rs["TipTrafo"].ToString())
                            {
                            //monofasico
                            case "1":
                                linha = CriaStringTrafoMonofasico(rs, faseDSS, barraBT, tensaoFN, pot);
                                break;

                            //posto transformador // TODO tipTrafo nao existente no GeoPerdas
                            case "5":
                                linha = CriaStringPostoTransformador(rs, faseDSS, barraBT, tensaoFF, pot);
                                break;

                            default:
                                linha = CriaStringTrafoTrifasico(rs, faseDSS, barraBT, tensaoFF, pot);
                                break;
                            }
                            _arqTrafo.Append(linha);
                        }
                    }
                }

                //fecha conexao
                conn.Close();
            }
            return(true);
        }