PDA

View Full Version : Network solvers



nh3simman
24-03-2007, 05:27 PM
Anyone seen new methods of solving networks.

I'm talking about pipe systems, duct systems, refrigeration systems, electrical networks...

They all have a common basis: Nodes and Links.

The rules are simple: Conservation of flow into each node and conservation of loop potential difference.

The methods I have explored are:

1. Potential method

Adjust the potential of the worst node until solved.
Easy to implement but needs lots of iterations.

2. Loop method

Adjust the flow in the closed (independant) loop with the biggest error until solved.
Difficult to find independant loops but solves quicker for non-linear systems.

= = = = = = = = = = = = = = = = = = = = = =

With all of the advances in computer systems, especially big networks (like the internet), I would expect that there must be plenty of new ideas.


Any suggestions?

autt
29-03-2007, 05:59 PM
Hi nh3simman

My network include different types of link, for example, air flow, liquid flow, electricity flow and fixed data transfer etc at the same network.

This makes it complex to calculate loop potential, for my application, a platform manages the network, but the platform is designed aims at being independent to node component, which is loaded from another library file, so that it can accept different industry packages from different companies, namely it doesn't care if the link types follows the rules you mentioned above, and, not all links follow the rules.

You are experienced at this, maybe you have ideas.

nh3simman
30-03-2007, 10:31 AM
Hi autt


...namely it doesn't care if the link types follows the rules you mentioned above...

One way or the other, your network solver must follow these rules:

conservation at each node
flow into node = flow out of node

conservation around every independant cycle
sum of losses around cycles is zero


In your case, I understand that you are writing the component models that govern the rules. For example the pressure drop due to friction
dP = rho f L V^2 / 2d

In principle, the library solver is great since you don't have to worry about the solution of the network. But on the other hand, you loose the ability to accomodate special problems.

What is your network solver called?

autt
31-03-2007, 07:47 AM
Hi nh3simman

I understand the rules you pointed, from Kirchhoff Rule, my problem is more than one type of link in the network, so I need to handle that.

I still use a original solver method by now, it is simple and works but is some slow.

Outputs from one node are gradually averaged by comparing with old values, then inputed to next linked node.

The conservation rules are executed in both solver and node components, for example, a duct "Splitor" model has to give a gradually output to 2 output links, this cause a non-modular process. I'm trying to eliminate it.

So I didn't use a certain known solver, but using a solver will probably be more simple and clear.

nh3simman
01-04-2007, 12:32 PM
Hi nh3simman

I still use a original solver method by now, it is simple and works but is some slow.

Outputs from one node are gradually averaged by comparing with old values, then inputed to next linked node.

So I didn't use a certain known solver, but using a solver will probably be more simple and clear.

But then you are using successive substitution. This is prone to many iterations and often diverges. In addition, you seem to be hard coding the type of branch into the network.

Do yourself a big favor here.

Download the pdf's from the numerical recipes web site. You need chapter 9.7 "Globally Convergent Methods for Nonlinear Systems of Equations". The code is in C so you should need minimum effort to make yourself a general purpose solver.

Next, write your own routines to make input for the solver (matrix A and vector b).

You will then have the fastest and most reliable method for all flow applications.

If you are using C++, then you have a big advantage. The solve methods must be written to use an abstract class. In this way, the actual implementation can be whatever you want (pipes with water flow, ducts with airflow, wires with electrical flow...).

If you plan to solve very big sparse systems like I did for deep mine ventilation (up to 1000 branches), then you need to rather store the data in a sparse array. You can still apply the above techniques but will need to modify the matrix routines to deal with the sparse array.

autt
02-04-2007, 05:15 PM
My solver looks like a step of iteration, from begining I need to make sure if the program is realizable, at that time I planed to add more solver for selecting at run time, and had made some structures for future.

I plan to add a routine to process network scan and generate different matrix for different type of links, then call the solver to check each matrix, this need some time.

For some models like evaporator and condenser, there are iterations in its code and cause some noncontinuous effect, is it matter if use the newton-rapson and sucessive solver? I saw there has condition of second derivative continuous.

Here is my site - although updated very slow - , you will see what my network looks like:
http://www.flycarpet.net

autt
02-04-2007, 05:32 PM
At the bottom of "Feature" tab, there has a 4 stage refrigeration system design/optimization network. It takes at least minutes to complete one optimizing cycle.

I saw your review on optimization, but I think I have the refrigeration optimization software and it works, although it works slowly.

This is not suitable for this topic, I will turn to there to talk about.

nh3simman
02-04-2007, 05:36 PM
Hi autt, I took a look at your flycarpet system solver and I must tell you. From our discussion in this forum you under-rate yourself. The program, particularly the optimization feature, looks very promising.

If you have been following the optimization thread started by USIceman, I think that you could probably make a significant contribution.

US Iceman
02-04-2007, 06:51 PM
Hi guys,

Please feel free to start a new thread on perhaps "optimization algorithms" in the Optimization forum.

That was the purpose of starting the sub-forum.

This is a very interesting topic because I feel this essentially starts to get into control theory, if properly applied models are developed.

AND,

It also crosses over into the initial system design.