コード例 #1
0
ファイル: Compuesto.java プロジェクト: Jose-/PD
 @Override
 public void view(String cabecera) {
   IO.out.println(cabecera + "-" + this.getNombre() + ":");
   for (Componente item : lista) {
     item.view(cabecera + " ");
   }
 }
コード例 #2
0
 public static float getCustoTotalComponentes(ProdutoViewModel produto) {
   float valor = 0;
   if (produto != null && produto.getProdutoComponentes() != null) {
     for (ProdutoComponenteViewModel pc : produto.getProdutoComponentes()) {
       if (pc != null) {
         Componente c = pc.getComponente();
         if (c != null) {
           valor += c.getValorUnitario() * pc.getQuantidade();
         }
       }
     }
   }
   return valor;
 }
コード例 #3
0
  private boolean llenarMatrizDiagonal() {
    /*
     * recorre la lista de Barras, por cada barra, pide la impedancia
     */

    for (Componente miComponente : barras) {
      double admitancia = 0;
      int fil = barraPos.get(miComponente);
      double sumaImpedancia = miComponente.getImpedancia();
      System.out.println(fil + "impedan" + sumaImpedancia);
      admitancia = 1 / sumaImpedancia;
      matrizAdmitancia[fil][fil] = admitancia;
    }
    return true;
  }
コード例 #4
0
  private void paint(Graphics g, Componente componente) {
    if (componente instanceof InstanciaComponente) {
      if (touchedBlocks.contains(componente)) {
        if (isCurrentState(componente)) {
          setComponentePalette(componente, Cor.CURRENT_BLOCK, Cor.CURRENT_BLOCK);
          componente.getPalette().setFont(componente.getPalette().getFont(Fonts.Tipo_8_Bold));
          if (glow != null) {
            Image offsetImg = ((InstanciaComponente) componente).C_B.funcao_Desenho;

            int x =
                ((InstanciaComponente) componente).Posicao_X
                    + (offsetImg.getWidth(this) / 2)
                    - (glow.getWidth(this) / 2);

            int y =
                ((InstanciaComponente) componente).Posicao_Y
                    + (offsetImg.getHeight(this) / 2)
                    - (glow.getHeight(this) / 2);

            g.drawImage(glow, x, y, this);
          }
        } else {
          setComponentePalette(componente, Cor.TOUCHED_BLOCK, Cor.TOUCHED_BLOCK);
        }
      } else {
        setComponentePalette(componente, Cor.UNTOUCHED_BLOCK, Cor.UNTOUCHED_BLOCK);
      }
    } else {
      if (touchedLines.contains(componente)) {
        setComponentePalette(componente, Cor.TOUCHED_LINE, Cor.TOUCHED_LINE);
      } else {
        setComponentePalette(componente, Cor.UNTOUCHED_LINE, Cor.UNTOUCHED_LINE);
      }
    }
    componente.paint(g);
  }
コード例 #5
0
  private void llenarMatrizAdmitancia() {
    // traer lista en el constructor
    // crea un hashMap con solo las barras
    int cont = -1;
    barras.clear();
    barraPos.clear();
    for (Componente i : listComponentes) {
      // si es barra lo agrega en lista barras
      if ("domain.Barra" == i.getClass().getName()) {
        // OJO VER N0TA barra-BarraPos:
        barras.add(i);
        // guarda las dupla "barra - posicion en arreglo" en un HashMap
        cont += 1;
        barraPos.put(i, cont);
      }
    }
    // define tamaño de matriz
    crearMatriz(barras.size());

    // llenar matriz diagonal principal
    llenarMatrizDiagonal();

    // llenar matriz todo menos diagonal principal
    llenarMatrizNoDiagonal();

    // FALTA
    // Cargar matriz en JAMA

    // imprime matriz
    for (int filM = 0; filM < matrizAdmitancia.length; filM++) {
      for (int colM = 0; colM < matrizAdmitancia.length; colM++) {
        System.out.print("\t" + matrizAdmitancia[filM][colM] + "  ");
      }
      System.out.println();
    }
  }
コード例 #6
0
 private void setComponentePalette(Componente comp, Color component, Color invalido) {
   // comp.getPalette().setColor(Colors.Activo, Color.blue);
   comp.getPalette().setColor(Colors.Componente, component);
   comp.getPalette().setColor(Colors.Invalido, invalido);
 }
コード例 #7
0
 @Test
 public void verifyBasicOperation() {
   String result = componente.basicOperation();
   assertEquals("flujo Normal", result);
 }
コード例 #8
0
  private boolean llenarMatrizNoDiagonal() {
    /*recorre la lista, si no es barra, carga en un lista los componentes (padres ó hijos) que son barras
     * es decir, las barras que estan relacionadas directo al componente actual
     * luego toma la lista de barras y por cada barra busca las posiciones de las otras barras y agrega el valor
     * en la matriz, por medio de un bucle dentro de otro bucle
     */
    Iterator<Componente> componenteIt = listComponentes.iterator();
    List<Componente> hijos = new ArrayList<Componente>();
    List<Componente> conexionBarras = new ArrayList<Componente>();
    double admitancia;

    while (componenteIt.hasNext()) {
      conexionBarras.clear();
      Componente miComponente = componenteIt.next();
      // busca conexiones de directa barra - linea - barra
      // es decir, si es linea busca padre barra, ó hijos barra
      if ("domain.Barra" != (miComponente.getClass().getName())) {
        admitancia = miComponente.getAdmitancia();
        // padre es barra?
        if (miComponente.getPadre() != null) {
          if ("domain.Barra" == (miComponente.getPadre().getClass().getName())) {
            conexionBarras.add(miComponente.getPadre());
          }
        }
        // trae los hijos y filtra solo las barras
        hijos = miComponente.getHijos();
        if (hijos != null) {
          for (Componente miHijo : hijos) {
            if ("domain.Barra" == (miHijo.getClass().getName())) {
              conexionBarras.add(miHijo);
            }
          }
        }

        // recorre la lista y dentro del bucle recorre de nuevo para las
        // conexiones
        if (conexionBarras != null) {
          for (Componente conHijoPri : conexionBarras) {
            int barraPriPos = barraPos.get(conHijoPri);
            for (Componente conHijoSec : conexionBarras) {
              if (!conHijoPri.equals(conHijoSec)) {
                int barraSecPos = barraPos.get(conHijoSec);
                System.out.println("completa hijo: " + barraPriPos + "-" + barraSecPos);
                matrizAdmitancia[barraPriPos][barraSecPos] = admitancia;
              }
            }
          }
        }
      }
    }
    return true;
  }
コード例 #9
0
  public double calcularCC(Componente barra, HashMap<Componente, Double> barraTensionCC) {
    /*
     * Busca el valor de cc de la barra seleccionda, y los voltaje de cada
     * barra directamente relacionada a la barra seleccionda
     */

    // calcular matrizAdmitancia
    llenarMatrizAdmitancia();

    double calculoCC = 0;
    // El sistema busca el valor de la barra seleccionada en la matriz
    // inversa.
    int posBarra = barraPos.get(barra);
    System.out.println("posBarra" + posBarra);

    // carga matriz inversa con JAMA
    Matrix matrizCalculo = new Matrix(matrizAdmitancia);
    // double det = matrizCalculo.det();
    // System.out.println("DET: "+det);

    Matrix matrizInv = matrizCalculo.inverse();
    System.out.println("inversa:");
    matrizInv.print(5, 3);

    double matrizInversa[][] = matrizInv.getArray();

    /*
     * El sistema aplica esta formula para conocer la corriente de
     * cortocircuito en esa barra: If=Vref/Zkk, donde Vref es el voltaje de
     * referencia de la barra seleccionada, y Zkk es el elemento de la
     * matriz inversa que representa la barra.
     */
    double vref = ((Barra) barra).getVoltajeReferencia();
    double zkk = matrizInversa[posBarra][posBarra];
    double valorIf = vref / zkk;
    calculoCC = valorIf;
    System.out.println(
        "Calculo de CC en barra " + barra.getId() + ": " + valorIf + " = " + vref + "/" + zkk);

    /*
     * Por cada barra que esta directamente conectada a la barra
     * seleccionada,el sistema aplica esta formula para conocer el voltaje
     * de la barra: Vj=Vref-Zjk*If,donde Vref es el voltaje de referencia de
     * la barra seleccionada,Zjk es el elemento de la matriz inversa que
     * representa la barra que esta conectada a la barraseleccionada, e If
     * es la corriente de cortocircuito de la barra seleccionada (calculada
     * en el paso anterior).
     */
    double vj = 0;
    double zjk = 0;

    // recorre la matriz de admitancia en la columna de la barra seleccionada,
    // en cada valor <>0 indica que hay una barra directamente conectada
    for (int cont = 0; cont < matrizAdmitancia.length; cont++) {
      if ((matrizAdmitancia[posBarra][cont] != 0) && (posBarra != cont)) {
        zjk = matrizInversa[posBarra][cont];
        Componente barraConectada = barras.get(cont); // ojo		
        vj = vref - (zjk * valorIf);
        barraTensionCC.put(barraConectada, vj);
      }
    }
    return calculoCC;
  }