/* * Power flow test script */ void power_flow_test() { //Eigen::initParallel(); //Circuit model = circuit_Gutierrez_Castillejos(); Circuit model = circuit_Lynn_Powell(true); //Circuit model = ieee_30_bus_noPV(); //Circuit model = ieee_30_bus(); bool estimate_angles = false; model.compile(estimate_angles); model.printCXMat(model.Y, "Ybus:"); model.print_buses_state(); //cout << "Ybus:\n" << model.Y << endl; //model.printCXMat(model.Zred, "Zbus:"); Solver_State state; solution prev_sol; /* std::cout << "\n\n\n NEWTON-RAPHSON POLAR\n\n " << std::endl; //New solution Solver_NRpolar nrs(model); Solver_State state = nrs.solve(); //nrs.Model.print(); if (state == Solver_State::Converged) { std::cout << "Converged in " << nrs.Iterations << " iterations." << std::endl; //nrs.Model.check_solution(); prev_sol = nrs.Model.get_initial_solution(); prev_sol.print("Solution:"); } else { std::cout << "NOT Converged " << std::endl; } std::cout << "\n\n\n NEWTON-RAPHSON RECTANGULAR \n\n " << std::endl; //New solution Solver_NRrect nrr(model); state = nrr.solve(); //nrs.Model.print(); if (state == Solver_State::Converged) { std::cout << "Converged in " << nrr.Iterations << " iterations." << std::endl; //nrs.Model.check_solution(); prev_sol = nrr.Model.get_initial_solution(); prev_sol.print("Solution:"); } else { std::cout << "NOT Converged " << std::endl; } std::cout << "\n\n\n JACOBI \n\n " << std::endl; Solver_Jacobi js(model); js.Max_Iter = 100; js.EPS = 1e-9; state = js.solve(); if (state == Solver_State::Converged) { std::cout << "Converged in " << js.Iterations << " iterations." << std::endl; prev_sol = js.Model.get_initial_solution(); prev_sol.print("Solution:"); } else { std::cout << "NOT Converged " << std::endl; } std::cout << "\n\n\n IWAMOTO \n\n " << std::endl; Solver_Iwamoto Iws(model); Iws.Max_Iter = 6; Iws.EPS = 1e-9; state = Iws.solve(); if (state == Solver_State::Converged) { std::cout << "Converged in " << Iws.Iterations << " iterations." << std::endl; prev_sol = Iws.Model.get_initial_solution(); prev_sol.print("Solution:"); } else { std::cout << "NOT Converged " << std::endl; }*/ std::cout << "\n\n\n NR CURRENT \n\n " << std::endl; Solver_NRcurrent NRcs(model); NRcs.Max_Iter = 6; NRcs.EPS = 1e-9; state = NRcs.solve(); if (state == Solver_State::Converged) { std::cout << "Converged in " << NRcs.Iterations << " iterations." << std::endl; prev_sol = NRcs.Model.get_initial_solution(); prev_sol.print("Solution:"); } else { std::cout << "NOT Converged " << std::endl; } }