TABLEAU NETWORK DESIGN SYSTEM
First Claim
1. An automated process for analysis and design of a dynamic system expressed as a set of algebraic and differential equations which include a design objective function of said system, whereby said system of equations is represented by a set of data that is identifiable to an automatic data processor, said process comprising the following steps each of which are executed by an automatic data processor:
- reading said data into said data processor store and automatically generating a tableau vector;
generating a sparse tableau matrix from said tableau vector and storing a representation of said matrix;
compiling said data, tableau vector and tableau matrix into a plurality of computer instruction representations for deriving the state of the system;
arranging said plurality of computer instruction representations in a hierarchical ordered sequence;
selecting an initial value of a design parameter and integrating said tableau vector with respect to a swept variable, t, from an initial value TI to final value TF;
performing an iteration for each value of t to find the convergent roots of said tableau vector;
storing representations of said convergent roots;
obtaining said design objective function from said tableau matrix and testing to see if said selected design parameter value optimizes said design function;
repeating said integration iteration with an incremented value of said design parameter until an optimum is reached.
0 Assignments
0 Petitions
Accused Products
Abstract
An automated process for network optimization which fully incorporates sparse matrix techniques. The system has further application to any generalized system which may be described mathematically by a set of algebraic and differential equations. Operating on a user input which defines X electrical network, the system generates lists of formated data representing a set of algebraic and differential equations. The variables in the equations are solved for by a process of Crout elimination, and each resulting operation in the Crout algorithm is identified in accordance with one of a plurality of variablility types. Then, a separate Solve program code for each variability type is compiled by the system. The individual Solve programs are then executed in a hierarchical loop sequence during the solution of the network design problem by means of a Newtonian iteration which is expressed as delta A(X)/ delta X Delta X -A(x). Where A(x) represents a tableau vector consisting of a set of algebraic and differential equations for the electrical network.
22 Citations
18 Claims
-
1. An automated process for analysis and design of a dynamic system expressed as a set of algebraic and differential equations which include a design objective function of said system, whereby said system of equations is represented by a set of data that is identifiable to an automatic data processor, said process comprising the following steps each of which are executed by an automatic data processor:
- reading said data into said data processor store and automatically generating a tableau vector;
generating a sparse tableau matrix from said tableau vector and storing a representation of said matrix;
compiling said data, tableau vector and tableau matrix into a plurality of computer instruction representations for deriving the state of the system;
arranging said plurality of computer instruction representations in a hierarchical ordered sequence;
selecting an initial value of a design parameter and integrating said tableau vector with respect to a swept variable, t, from an initial value TI to final value TF;
performing an iteration for each value of t to find the convergent roots of said tableau vector;
storing representations of said convergent roots;
obtaining said design objective function from said tableau matrix and testing to see if said selected design parameter value optimizes said design function;
repeating said integration iteration with an incremented value of said design parameter until an optimum is reached.
- reading said data into said data processor store and automatically generating a tableau vector;
-
2. The process as defined in claim 1 further comprising the steps of:
- compiling additional data and representations of machine code for deriving the sensitivity of the state of said system and the sensitivity of said design objective function with respect to variations in said design parameters;
integrating the adjacent equations given bY the transpose of said tableau matrix, with respect to said swept variable, t, from said value TF to said value TI;
said integrating step resulting in the gradient of said design objective function and parameters;
testing said gradient for a zero value, repeating said process with a new design parameter if said gradient is not zero.
- compiling additional data and representations of machine code for deriving the sensitivity of the state of said system and the sensitivity of said design objective function with respect to variations in said design parameters;
-
3. The process as defined in claim 1 wherein said step of compiling computer code representations comprises:
- factoring said tableau matrix into a lower and upper triangular factored element matrix;
combining said upper and lower matrices into a compacted matrix;
storing only the non-zero elements of said matrix in a computer data store;
compiling a set of computer code statements for calculating each of said non-zero compacted matrix elements;
executing said computer code statements in a hierarchical order;
whereby only values which vary with respect to a given calculation will be computed and all values which are not variant during said calculation are re-used as previously calculated.
- factoring said tableau matrix into a lower and upper triangular factored element matrix;
-
4. The process as defined in claim 3 wherein said step of grouping computer code representations comprises the steps of:
- examining said computer code statements and categorizing them in accordance with their variability type;
storing all code statements of a parameter variability type into a first buffer;
storing all computer code statements of a time variability type into a second buffer;
storing said computer code statements of a state of the system variability type into a third buffer.
- examining said computer code statements and categorizing them in accordance with their variability type;
-
5. The process as defined in claim 4 further comprising the steps of:
- executing said compiled program code in said first, second and third buffers sequentially as they are needed in the iterative loops;
whereby said parameter variability type code in said first buffer is executed only when there is an increment of said design parameter and said computer code statements in said second buffer are executed only when there is an increment of swept variable t, and said computer code statements in said third buffer are executed once for every increment in the state of the system.
- executing said compiled program code in said first, second and third buffers sequentially as they are needed in the iterative loops;
-
6. The process as defined in claim 5 wherein said step of combining said lower and upper matrices into a compacted matrix comprises the steps of:
- combining all corresponding elements of said lower and upper matrices so as to form a single matrix;
storing in computer store certain non-zero matrix element values in a compact sequence until every matrix element has been stored.
- combining all corresponding elements of said lower and upper matrices so as to form a single matrix;
-
7. The process as defined in claim 6 further comprising the steps of:
- arranging certain non-zero element values of said matrix in sequential computer storage locations;
generating a set of pointers which identify where in storage said matrix element values may be found;
generating a list of column locations and variability type values for each non-zero element in said matrix.
- arranging certain non-zero element values of said matrix in sequential computer storage locations;
-
8. An automatic program process for analysis of an electrical network and determining and optimizing a design objective function for said network wherein said function may have one or more design parameters which can be controlled by the user of the process said network being identifiable to an automatic data processor by representation corresponding to the network brand elements and interconnection nodes, said process comprising the following steps each of which are executed by an automatic data processor:
- generating a plurality of virtual circuit elements to augment said network to include said design objective function and parameters as part of said network;
generating a set of data that defines said augmented network and all user control input;
reading said data into said data processor store and automatically generating a tableau vector;
generating a sparse tableau matrix from said tableau vector and storing a representation of said matrix;
compiling said data, tableau vector, and tableau matrix into a plurality of computer instruction code statements which when executed iteratively compute the state of the network;
arranging said plurality of instruction code statements in a hierarchical ordered sequence;
selecting an initial value of said design parameters and integrating said tableau vector with respect to a swept variable, t, from an initial value TI to a final value TF;
performing an iteration for each value of t to find the convergent roots of said tableau vector;
storing representations of said convergent roots;
obtaining said design objective function from said tableau matrix and testing to see if said selected design parameter value optimizes said design function;
repeating said integration iteration with an incremented value of said design parameter until an optimum is found.
- generating a plurality of virtual circuit elements to augment said network to include said design objective function and parameters as part of said network;
-
9. The process as defined in claim 8 further comprising the steps of:
- compiling additional data and machine code statements which when executed iteratively with said compiled computer instruction code, compute the sensitivity of the state of said network and the sensitivity of said design objective function with respect to variations in said design parameters;
executing all compiled computer code statements;
integrating the adjoint equations given by the transpose of said tableau matrix, with respect to said swept variable, t, from said value TF to said value TI;
said integrating step resulting in the gradient of said design function appearing as the state of said virtual circuit elements;
testing said gradient for a zero value;
repeating said process with a new design parameter if said gradient is not zero.
- compiling additional data and machine code statements which when executed iteratively with said compiled computer instruction code, compute the sensitivity of the state of said network and the sensitivity of said design objective function with respect to variations in said design parameters;
-
10. The process as defined in claim 8 wherein said step of compiling computer code statements comprises:
- factoring said tableau matrix into a lower and upper triangular factored element matrix;
combining said upper and lower matrices into a compacted matrix;
storing only the non-zero elements of said matrix in a computer data store;
compiling a set of computer code statements for calculating each of said non-zero compacted matrix elements;
executing said computer code statements in a hierarchical order;
whereby only element values which vary with respect to a given calculation will be computed and all element values which are not variant during said calculation are re-used as previously calculated.
- factoring said tableau matrix into a lower and upper triangular factored element matrix;
-
11. The process as defined in claim 10 wherein said step of grouping computer code statements comprises the steps of:
- examining said computer code statements and categorizing them in accordance with their variability type;
storing all code statements of a constant variability type into a first buffer;
storing all computer code statements of a time variability type into a second buffer;
storing said computer code statements of a state of the network variability type into a third buffer.
- examining said computer code statements and categorizing them in accordance with their variability type;
-
12. The process as defined in claim 11 further comprising the steps of:
- executing said compiled program code in said first, second and third buffers sequentially as they are needed in the iterative loop;
whereby said constant variability type code in said first buffer is executed only when there is an increment of said design parameter and said computer code statements in said second buffer are executed only when there is an increment of swept variable t, and said computer code statements in said third buffer are executed once for every increment in the state of the network.
- executing said compiled program code in said first, second and third buffers sequentially as they are needed in the iterative loop;
-
13. The process as defined in claim 12 wherein said step of combining said lower and upper matrices into a compacted matrix comprises the steps of:
- combining all corresponding elements of said lower and upper matrices so as to form a single matrix;
storing in computer store certain non-zero matrix element values in a compact sequence until every matrix element has been stored.
- combining all corresponding elements of said lower and upper matrices so as to form a single matrix;
-
14. The process as defined in claim 13 further comprising the steps of:
- arrangiNg certain non-zero element values of said matrix in sequential computer storage locations;
generating a set of pointers which identify where in storage said matrix element values may be found;
generating a list of column location and variability type values for each non-zero element in said matrix.
- arrangiNg certain non-zero element values of said matrix in sequential computer storage locations;
-
15. An automatic program process for repetitively solving a system of linear algebraic equations expressed as Ax b, where A consists of a matrix whose elements may vary at different rates, represented in a computer by a data structure, said process comprising the following steps each of which are executed by an automatic data processor:
- determining the optimal pivot points of said matrix subject to weighted considerations;
factoring said matrix into a lower and upper factored element matrix in accordance with said optimal pivot point ordering, combining said upper and lower matrices into a compacted matrix;
compiling said data into a plurality of computer instruction code statements which when executed compute the element values in said factored matrix;
iteratively executing said code statements for carrying out the factorization and back substitution for determining the state, x, of said system;
arranging said compiled computer code statements in a hierarchical order dependent on the variation which the particular matrix elements exhibits with respect to variations in said matrix elements.
- determining the optimal pivot points of said matrix subject to weighted considerations;
-
16. The process as defined in claim 15 wherein said step of combining said lower and upper matrices into a compacted matrix comprises the steps of:
- combining all corresponding elements of said lower and upper matrices so as to form a single matrix;
storing in a computer store certain non-zero matrix element values in a compact sequence until every matrix element has been stored.
- combining all corresponding elements of said lower and upper matrices so as to form a single matrix;
-
17. The process as defined in claim 16 wherein said step of compiling computer code statements comprises:
- factoring said matrix into a lower and upper triangular factored element matrix;
combining said upper and lower matrices into a compacted matrix;
storing only the non-zero, elements of said matrix in a computer data store;
compiling a set of computer code statements for calculating each of said non-zero compacted matrix elements;
executing said computer code statements in a hierarchical order;
whereby only element values which vary with respect to a given calculation will be computed and all element values which are not variant during said calculation are re-used as previously calculated.
- factoring said matrix into a lower and upper triangular factored element matrix;
-
18. The process as defined in claim 17 further comprising the steps of:
- arranging certain non-zero element values of said matrix in sequential computer storage locations;
generating a set of pointers which identify where in storage said matrix element values may be found;
generating a list of column location and variability type values for each non-zero element in said matrix.
- arranging certain non-zero element values of said matrix in sequential computer storage locations;
Specification