Exemplo n.º 1
0
        // OBS: cargas de MT criadas com PotCOnst
        private string CriaDSSCargaMTcomCurva(SqlDataReader rs, string demanda, string fases, string numFases, string tensaoFF)
        {
            string linha;

            string codCliMT = rs["CodConsMT"].ToString();

            // se cliente MT esta no dicionario de curvas de carga
            if (_curvasTipicasClientesMT.ContainsKey(codCliMT))
            {
                List <string> dadosCliMT = _curvasTipicasClientesMT[codCliMT];

                string fatorkdiario = dadosCliMT[3];

                // recalcula demanda base
                string demandaD = AuxFunc.CalcDemandaPorFatorKdiario(AuxFunc.GetConsumoMesCorrente(rs, _iMes), _iMes, _ano, fatorkdiario);

                // curva de carga
                linha = dadosCliMT[2] + Environment.NewLine;

                linha += "new load." + rs["CodConsMT"].ToString() + "M1"
                         + " bus1=" + "BMT" + rs["CodPonAcopl"] + fases //OBS1
                         + ",Phases=" + numFases
                         + ",kv=" + tensaoFF
                         + ",kW=" + demandaD.ToString()
                         + ",pf=" + dadosCliMT[1]
                         + ",Vminpu=0.93,Vmaxpu=1.5"
                         + ",model=1"
                         + ",daily=" + codCliMT
                         + ",status=variable" + Environment.NewLine;
            }
            else
            {
                linha = CriaDSSCargaPconst(rs, demanda, fases, numFases, tensaoFF);
            }

            return(linha);
        }
Exemplo n.º 2
0
        //modelo
        //new load.3001215463M1 bus1=R9772.1.3.0,Phases=2,kv=0.22,kw=1.29794758726823,pf=0.92,Vminpu=0.92,Vmaxpu=1.5,model=2,daily=arqCurvaNormRES4_11,status=variable
        //new load.3001215463M2 bus1=R9772.1.3.0,Phases=2,kv=0.22,kw=1.29794758726823,pf=0.92,Vminpu=0.92,Vmaxpu=1.5,model=3,daily=arqCurvaNormRES4_11,status=variable
        // CodBase	CodConsBT	CodAlim	CodTrafo	CodRmlBT	CodFas	CodPonAcopl	SemRedAssoc	TipMedi	TipCrvaCarga	EnerMedid01_MWh	EnerMedid02_MWh	EnerMedid03_MWh	EnerMedid04_MWh	EnerMedid05_MWh	EnerMedid06_MWh	EnerMedid07_MWh	EnerMedid08_MWh	EnerMedid09_MWh	EnerMedid10_MWh	EnerMedid11_MWh	EnerMedid12_MWh	Descr	CodSubAtrib	CodAlimAtrib	CodTrafoAtrib	TnsLnh_kV	TnsFas_kV
        public bool ConsultaBanco(bool _modoReconf)
        {
            _arqSegmentoBT = 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 TipTrafo,TenSecu_kV,CodConsBT,CodFas,CodPonAcopl,TipCrvaCarga,EnerMedid01_MWh,EnerMedid02_MWh,EnerMedid03_MWh,EnerMedid04_MWh,EnerMedid05_MWh,EnerMedid06_MWh,EnerMedid07_MWh," +
                                              "EnerMedid08_MWh,EnerMedid09_MWh,EnerMedid10_MWh,EnerMedid11_MWh,EnerMedid12_MWh from " +
                                              "dbo.StoredCargaBT as car inner join dbo.StoredTrafoMTMTMTBT as tr on tr.CodTrafo = car.CodTrafo " +
                                              "where car.CodBase=@codbase and tr.CodBase=@codbase and car.CodAlim in (" + _par._conjAlim + ")";
                        command.Parameters.AddWithValue("@codbase", _par._codBase);
                    }
                    else
                    {
                        command.CommandText = "select TipTrafo,TenSecu_kV,CodConsBT,CodFas,CodPonAcopl,TipCrvaCarga,EnerMedid01_MWh,EnerMedid02_MWh,EnerMedid03_MWh,EnerMedid04_MWh,EnerMedid05_MWh,EnerMedid06_MWh,EnerMedid07_MWh," +
                                              "EnerMedid08_MWh,EnerMedid09_MWh,EnerMedid10_MWh,EnerMedid11_MWh,EnerMedid12_MWh from " +
                                              "dbo.StoredCargaBT as car inner join dbo.StoredTrafoMTMTMTBT as tr on tr.CodTrafo = car.CodTrafo " +
                                              "where car.CodBase=@codbase and tr.CodBase=@codbase and car.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 fases          = AuxFunc.GetFasesDSS(rs["CodFas"].ToString());
                            string numFases       = AuxFunc.GetNumFases(rs["CodFas"].ToString());
                            string prefixoBarraBT = GetPrefixoBarraBT(rs["CodConsBT"].ToString());

                            // obtem tensao base de acordo com tipo da carga (mono, bi ou tri) e o nivel de tensao do tipo do trafo
                            string Kv = GetTensaoBase(numFases, rs["TipTrafo"].ToString());

                            //obtem o consumo de acordo com o mes
                            string consumoMes = AuxFunc.GetConsumoMesCorrente(rs, _iMes);

                            // se consumo nao eh vazio, transforma para double
                            // OBS: optou-se por esta funcao visto que o banco pode retornar: "0","0.00000" e etc...
                            if (!consumoMes.Equals(""))
                            {
                                double dConsumoMes = double.Parse(consumoMes);

                                // skipa consumo = 0
                                if (dConsumoMes == 0)
                                {
                                    continue;
                                }
                            }
                            else
                            {
                                continue;
                            }

                            string demanda = AuxFunc.CalcDemanda(consumoMes, _iMes, _ano, rs["TipCrvaCarga"].ToString(), _numDiasFeriadoXMes, _somaCurvaCargaDiariaPU);

                            string linha = "";

                            // se modelo de carga ANEEL
                            switch (_SDEE._modeloCarga)
                            {
                            case "ANEEL":

                                // carga model=2
                                linha = "new load." + rs["CodConsBT"].ToString() + "M2"
                                        + " bus1=" + prefixoBarraBT + rs["CodPonAcopl"] + fases //OBS1
                                        + ",Phases=" + numFases
                                        + ",kv=" + Kv
                                        + ",kW=" + demanda
                                        + ",pf=0.92,Vminpu=0.92,Vmaxpu=1.5"
                                        + ",model=2"
                                        + ",daily=" + rs["TipCrvaCarga"].ToString()
                                        + ",status=variable";

                                // carga model=3
                                linha += "new load." + rs["CodConsBT"].ToString() + "M3"
                                         + " bus1=" + prefixoBarraBT + rs["CodPonAcopl"] + fases //OBS1
                                         + ",Phases=" + numFases
                                         + ",kv=" + Kv
                                         + ",kW=" + demanda
                                         + ",pf=0.92,Vminpu=0.92,Vmaxpu=1.5"
                                         + ",model=3"
                                         + ",daily=" + rs["TipCrvaCarga"].ToString()
                                         + ",status=variable";
                                break;

                            // modelo P constante
                            case "PCONST":

                                double demandaD = double.Parse(demanda) * 2;

                                linha = "new load." + rs["CodConsBT"].ToString() + "M1"
                                        + " bus1=" + prefixoBarraBT + rs["CodPonAcopl"] + fases //OBS1
                                        + ",Phases=" + numFases
                                        + ",kv=" + Kv
                                        + ",kW=" + demandaD.ToString()
                                        + ",pf=0.92,Vminpu=0.92,Vmaxpu=1.5"
                                        + ",model=1"
                                        + ",daily=" + rs["TipCrvaCarga"].ToString()
                                        + ",status=variable";

                                break;
                            }

                            // alterar numCust=0 p/ cargas do tipo IP (iluminacao publica)
                            if (rs["TipCrvaCarga"].ToString().Equals("IP"))
                            {
                                linha += ",NumCust=0" + Environment.NewLine;
                            }
                            else
                            {
                                linha += Environment.NewLine;
                            }

                            _arqSegmentoBT.Append(linha);
                        }
                    }
                }

                //fecha conexao
                conn.Close();
            }
            return(true);
        }
Exemplo n.º 3
0
        //modelo
        // new load.3009011004M1 bus1=BMT145105559.1.2.3.0,Phases=3,kv=13.8,kw=8.74290521528275,pf=0.92,Vminpu=0.93,Vmaxpu=1.5,model=2,daily=arqCurvaNormA4-3,status=variable
        // CodBase	CodConsMT	CodAlim	CodFas	CodPonAcopl	SemRedAssoc	TipCrvaCarga	EnerMedid01_MWh	EnerMedid02_MWh	EnerMedid03_MWh	EnerMedid04_MWh	EnerMedid05_MWh	EnerMedid06_MWh	EnerMedid07_MWh	EnerMedid08_MWh	EnerMedid09_MWh	EnerMedid10_MWh	EnerMedid11_MWh	EnerMedid12_MWh	Descr	CodSubAtrib	CodAlimAtrib	TnsLnh_kV	TnsFas_kV
        public bool ConsultaBanco(bool _modoReconf)
        {
            _arqSegmentoBT = new StringBuilder();

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

                // TODO add TnsLnh_kV
                using (SqlCommand command = conn.CreateCommand())
                {
                    command.CommandText = "select CodConsMT,CodFas,CodPonAcopl,TipCrvaCarga,TnsLnh_kV,EnerMedid01_MWh,EnerMedid02_MWh,EnerMedid03_MWh,EnerMedid04_MWh," +
                                          "EnerMedid05_MWh,EnerMedid06_MWh,EnerMedid07_MWh," +
                                          "EnerMedid08_MWh,EnerMedid09_MWh,EnerMedid10_MWh,EnerMedid11_MWh,EnerMedid12_MWh from ";

                    // se modo reconfiguracao
                    if (_modoReconf)
                    {
                        command.CommandText += "dbo.StoredCargaMT where CodBase=@codbase and CodAlim in (" + _par._conjAlim + ")";
                        command.Parameters.AddWithValue("@codbase", _par._codBase);
                    }
                    else
                    {
                        command.CommandText += "dbo.StoredCargaMT 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())
                        {
                            // Obtem o consumo de acordo com o mes
                            string consumoMes = AuxFunc.GetConsumoMesCorrente(rs, _iMes);

                            // se consumo nao eh vazio, transforma para double para verificar se zero
                            // OBS: optou-se por esta funcao visto que o banco pode retornar: "0","0.00000" e etc...
                            if (!consumoMes.Equals(""))
                            {
                                double dConsumoMes = double.Parse(consumoMes);

                                // skipa consumo = 0
                                if (dConsumoMes == 0)
                                {
                                    continue;
                                }
                            }
                            else
                            {
                                continue;
                            }

                            string fases    = AuxFunc.GetFasesDSS(rs["CodFas"].ToString());
                            string numFases = AuxFunc.GetNumFases(rs["CodFas"].ToString());
                            string tensaoFF = AuxFunc.GetTensaoFF(rs["TnsLnh_kV"].ToString());

                            //
                            string demanda = AuxFunc.CalcDemanda(consumoMes, _iMes, _ano, rs["TipCrvaCarga"].ToString(), _numDiasFeriadoXMes, _somaCurvaCargaDiariaPU);

                            string linha = "";

                            //
                            if (_SDEE._utilizarCurvaDeCargaClienteMTIndividual)
                            {
                                // se modelo de carga ANEEL
                                switch (_SDEE._modeloCarga)
                                {
                                case "ANEEL":

                                    linha = CriaDSSCargaMTcomCurvaAneel(rs, demanda, fases, numFases, tensaoFF);

                                    break;

                                case "PCONST":

                                    linha = CriaDSSCargaMTcomCurva(rs, demanda, fases, numFases, tensaoFF);

                                    break;
                                }
                            }
                            else
                            {
                                // se modelo de carga ANEEL
                                switch (_SDEE._modeloCarga)
                                {
                                case "ANEEL":

                                    linha = CriaDSSCargaMTAneel(rs, demanda, fases, numFases, tensaoFF);

                                    break;

                                case "PCONST":

                                    linha = CriaDSSCargaPconst(rs, demanda, fases, numFases, tensaoFF);

                                    break;
                                }
                            }

                            _arqSegmentoBT.Append(linha);
                        }
                    }
                }

                //fecha conexao
                conn.Close();
            }
            return(true);
        }
Exemplo n.º 4
0
        public bool ConsultaBanco(bool _modoReconf)
        {
            _arqGeradorMT = new StringBuilder();

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

                using (SqlCommand command = conn.CreateCommand())
                {
                    //
                    command.CommandText = "select CodGeraMT,CodAlim,CodFas,CodPonAcopl,TnsLnh_kV," +
                                          "EnerMedid01_MWh,EnerMedid02_MWh,EnerMedid03_MWh,EnerMedid04_MWh,EnerMedid05_MWh,EnerMedid06_MWh," +
                                          "EnerMedid07_MWh,EnerMedid08_MWh,EnerMedid09_MWh,EnerMedid10_MWh,EnerMedid11_MWh,EnerMedid12_MWh,Descr ";

                    // se modo reconfiguracao
                    if (_modoReconf)
                    {
                        command.CommandText += "from dbo.StoredGeradorMT where CodBase=@codbase and CodAlim in (" + _par._conjAlim + ")";
                        command.Parameters.AddWithValue("@codbase", _par._codBase);
                    }
                    else
                    {
                        command.CommandText += "from dbo.StoredGeradorMT 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 fasesDSS  = AuxFunc.GetFasesDSS(rs["CodFas"].ToString());
                            string CodGeraMT = rs["CodGeraMT"].ToString();

                            // curva PU
                            string linha = "new loadshape.c" + CodGeraMT + " npts=24,interval=1.0,mult=" + rs["Descr"].ToString() + Environment.NewLine;

                            // Obtem a geracao de acordo com o mes
                            string geracaoMes = AuxFunc.GetConsumoMesCorrente(rs, _iMes);

                            // usina
                            linha += "new generator." + CodGeraMT
                                     + " bus1=" + "BMT" + rs["CodPonAcopl"] + ".1.2.3"
                                     + ",Phases=3"
                                     + ",kv=" + rs["TnsLnh_kV"].ToString()
                                     + ",kW=" + geracaoMes
                                     + ",pf=0.95"
                                     + ",model=1"
                                     + ",daily=c" + CodGeraMT
                                     + ",status=Fixed" + Environment.NewLine;

                            _arqGeradorMT.Append(linha);
                        }
                    }
                }

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