WO2000067082A1 - Simulation method and computer program for simulating a physical model - Google Patents

Simulation method and computer program for simulating a physical model Download PDF

Info

Publication number
WO2000067082A1
WO2000067082A1 PCT/DE2000/000996 DE0000996W WO0067082A1 WO 2000067082 A1 WO2000067082 A1 WO 2000067082A1 DE 0000996 W DE0000996 W DE 0000996W WO 0067082 A1 WO0067082 A1 WO 0067082A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
error
simulation method
solution
simulation
Prior art date
Application number
PCT/DE2000/000996
Other languages
German (de)
French (fr)
Inventor
Reinhold Altpeter
Gustav LÖBEL
Wolfram Klein
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO2000067082A1 publication Critical patent/WO2000067082A1/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric

Definitions

  • the invention relates to a simulation method and a computer program for simulating a physical model.
  • the invention relates to a simulation method for simulating power plants and a computer program for such a simulation method.
  • the invention is based on the object of developing the above-mentioned simulation method in such a way that a solution can be found for most models which have hitherto not been able to be solved, the finding of solutions for problematic models being made considerably easier.
  • the object is achieved by a simulation method with the features of claim 1 and by a computer program for such a simulation method with the features of claim 18.
  • the method according to the invention is characterized by an error diagnosis.
  • the error diagnosis when an error occurs (singularity, no convergence), the matrix is transformed by permutations in such a way that at least one or more subregions of the matrix can be found in which the matrix elements causing the error are located. This considerably simplifies the error analysis of the matrix, since only a preferably small area of the matrix is to be examined.
  • the portion of the matrix in which the matrix elements causing the error are located can be displayed to the user, whereby he can eliminate the error or errors by correcting the inputs relating to these portions.
  • the partial area or areas of the matrix are automatically solved by means of a further numerical method, the error (singularity or no convergence) of which does not occur when used.
  • attempts are made to first automatically remove such partial areas containing such matrix elements that cause errors, and only to show the user the corresponding partial area (s) of the matrix so that it cannot be found if no solution can be found can set up a revised matrix for a new simulation.
  • the simulation method according to the invention is intended in particular for the simulation of power plants, since these often have to be simulated under considerable time pressure, with the problems described at the beginning such as, for example, incorrect entries, input of unfavorable starting values or ranges which cannot be solved by the selected numerical method.
  • the invention can be carried out on a processor unit or a conventional computer.
  • a computer has a microprocessor, an input / output interface and a memory, which are preferably coupled to one another via a bus.
  • the output on a monitor and / or a printer can be made possible via a graphic interface.
  • a keyboard and a mouse are preferably suitable as input devices. Additional devices such as mass storage devices, e.g. a hard drive or scanner can be connected.
  • Fig.l is a simplified, schematic representation of a
  • a diagnostic program which can be called by the main program, in a flow chart, 4 shows a program for the solution of the irreducible n-dimensional blocks of the Jacobi matrix to be solved, which cannot be solved in the main program.
  • 5a to 5c schematically show a Jacobian matrix of dimensions 113 x 113 in the initial state, after a permutation on the main diagonal shape and after a permutation on the lower block triangular shape.
  • the simulation method according to the invention is described below using an exemplary embodiment for simulating power plants.
  • a steam generator of a gas and steam turbine power plant is shown schematically in simplified form in FIG. 1.
  • the steam generator comprises a section of the water circuit 1 of the power plant and a gas line system 2.
  • An inlet 3 is provided on the water circuit 1, at which condensed water is fed to the steam generator.
  • the water circuit leads to a first heating surface 4, on which the water located in the lines of the water circuit 1 is heated.
  • a heating surface 4 is usually designed with 40 to 50 turns of the water pipe. Heated gas flows around these windings.
  • the water circuit leads from the first heating surface 4 to a drum 5, at the upper region of which the heated water is fed to the drum 5.
  • the drum 5 is supercooled to a certain level 6. Water filled and above this level 6 there is water vapor.
  • a further line 7 of the water circuit 1 is connected, which leads to a second heating surface 8, on which the condensed water discharged from the drum 5 is heated to a water vapor mixture. From the second heating surface 8, the line 7 leads again to the drum 5 to the water vapor mixture Feed drum 5.
  • This line 9 leads to a third heating surface 10, on which the steam is heated further and then leaves the steam generator at an outlet 11 in order to be fed to a steam turbine (not shown).
  • the gas line system 2 serves to supply heating gas, which is used on the heating surfaces 4, 8 and 10 for heating the water carried in the water circuit 1.
  • each of the water nodes has three degrees of freedom, namely the mass flow m, the pressure p and the enthalpy h, and each of the gas nodes has two degrees of freedom, namely the mass flow m and the enthalpy h.
  • this gives a total of 26 degrees of freedom.
  • An equation system for the solution of this steam generator must therefore comprise 26 equations.
  • Drum 5 one equation for five boundary conditions and one equation for the so-called pinch pomt, for the approach point and for the rolling factor.
  • the pinch point and the approach point are temperature differences that are specified by the operator of the power plant and the circulation factor describes the ratio of the forced circulation to the area of the water circuit 1 leading to the drum 5 and the line 7 leading to the second heating surface 8 Water cycle 1.
  • the circulation factor describes the ratio of the forced circulation to the area of the water circuit 1 leading to the drum 5 and the line 7 leading to the second heating surface 8 Water cycle 1.
  • another system of equations can be set up, which includes, for example, five equations for the three heating surfaces 4, 8, 10, six equations for the drum, one equation for each four boundary conditions and one equation for the forced circulation, so that again there are 26 equations to solve the 26 degrees of freedom.
  • the simulation method according to the invention can be implemented as a computer program.
  • a computer program provides the user for the individual units, e.g. predefined equation subsystems are available for the piping system, the heating surfaces, the drum, etc., which only need to be put together and configured by the user according to the actual structure of the power plant to be simulated.
  • equation subsystems are already known from the conventional programs for simulating power plants and are therefore not explained in more detail.
  • the computer program for simulating a model can be implemented in the form of a main program and several subroutines.
  • FIG. 2 A main program of the simulation method according to the invention shown in FIG. 2 is explained in more detail below.
  • a step S1 the user creates the system of equations m in the manner indicated above or the matrix corresponding to the system of equations (FIG. 5a).
  • the execution of the Newton method is started in the subsequent step S2.
  • the Newton method is an iterative method using the following iteration formula:
  • step S3 it is checked in step S3 whether an error has occurred in the Newton iteration.
  • step S3 If it is determined in step S3 that an error has occurred in the Newton iteration, the program flow branches to step S6, which carries out a diagnostic process for the Jacobi matrix.
  • Such an error occurs, for example, if there is a zero in the denominator of one of the matrix elements, that is to say if one of the functions f n has a constant range, as a result of which its derivative becomes zero and the corresponding matrix element cannot be calculated.
  • Another error is when the Newton iteration does not converge to a zero. This can have different causes. Such non-convergence is determined, for example, by restricting the max. Number of Newton iterations to a predetermined number.
  • Such errors can be caused by incorrect input by the user for the boundary conditions to be entered when setting up the matrix or by swapping the variables. However, the user does not always have to make such an incorrect entry for such an error to occur.
  • step S5 the program flow branches to step S5 in step S3.
  • the Jacobian matrix is deformed by permutation in such a way that one or more subregions of the matrix can be determined in which the matrix elements causing the error are located.
  • the diagnostic method can be implemented as a subroutine in which the error handling is integrated. It is also possible to design the error handling as a program unit separate from the diagnostic method.
  • Such an error correction can be the use of a numerical solution method alternative to the Newton method, or the Jacobian matrix can be corrected automatically.
  • the correction of the error can include the complete solution of the system of equations or only a correction of the Jacobian matrix. In the event of such a correction of the Jacobian matrix, the Newton method is continued by transferring the program sequence back to the Newton iteration in step S2 via the query in step S4. If the system of equations is completely solved, the main program is ended via the query in step S4 in the subsequent step S5.
  • the exact physical parameter causing the error can be output, such as, for example, that the third heating surface is occupied with an incorrect temperature value. This makes it much easier for the user to correct the system of equations, since he is pointed exactly to the point in the equation system that caused the error.
  • step S6 A possible exemplary embodiment of the diagnostic method specified in step S6 is shown in FIGS. 3a and 3b. This diagnostic procedure is called up as a subroutine by the main program when step S6 is reached and begins with step S9.
  • step S10 the Jacobi matrix originally set up (FIG. 5a) is permuted to a main diagonal shape (FIG. 5b).
  • the permutation is only carried out by one or more line swaps.
  • step S11 it is queried whether the permutation on the main diagonal form could be carried out successfully.
  • a successful permutation in the main diagonal form means that each matrix element lying on the main diagonal of the matrix has a value other than 0. If a single one of the matrix elements lying on the main diagonal is 0, the system of equations cannot be solved and the program flow branches to step S12.
  • step S12 a first fault diagnosis is carried out, in which it is determined which matrix elements the main diagonals are equal to 0.
  • the rows each containing such a matrix element form a 1-dimensional subarea or block of the matrix which contains a matrix element which causes an error in an attempt to solve the Jacobian matrix.
  • These partial areas are recorded in step S12 and it is determined that an automatic correction of the error is not possible since the matrix cannot be solved in principle.
  • the program sequence is passed back to the main program, with the corresponding subareas being displayed in step S8.
  • step S14 a permutation on the lower block triangular shape of the Jacobian matrix (FIG. 5c).
  • the block triangular shape means that the matrix on one side of the main diagonal is thinned out as much as possible, so that only 1-dimensional sub-areas and n-dimensional sub-areas arranged symmetrically around the main diagonal remain. This permutation is done by swapping rows and columns.
  • This permutation to the lower block triangular shape results in several mutually independent partial areas of the Jacobi matrix.
  • the independent subregions consist of two n-dimensional blocks 12, 13 (n> 1) of size 47 x 47 and 5 x 5 and from the further 61 lines that each form a separate 1-dimensional block.
  • step S15 beginning with the upper left end of the main diagonals, all lines above the upper block of size 47 x 47 (1-dimensional partial areas before) solved separately.
  • the 1-dimensional Newton method is used for this.
  • the upper block 12 of size 47x47 is released using the multi-dimensional Newton method.
  • the lines in the area between the upper and lower blocks 13 are then resolved.
  • the lower block 13 of size 5 ⁇ 5 is again loosened using the Newton method.
  • the lines below the lower block of size 5 x 5 are then solved using the 1-dimensional Newton method. If an error occurs in one of these solution steps, which is probable because the original matrix could not be solved using the Newton method, the solution of the partial areas is terminated and a query is made in step S16 as to whether the error occurred in a one-dimensional partial area .
  • step S17 If the error has occurred in a 1-dimensional subarea, the program flow branches to step S17 by executing a second error diagnosis.
  • another solution method for solving this 1-dimensional sub-area e.g. a secant method was used. If the error lies in a specific problem of the Newton method, a correct solution can be obtained with another numerical method.
  • step S18 a query is made as to whether a solution for the 1-dimensional subarea could be found. If this is not the case, the program flow is transferred back to the main program in step S19 and the 1-dimensional subarea that caused the error is specified in step S8. If the query in step S18 determines that this 1-dimensional subarea could be solved, the program flow is transferred to step S20 (FIG. 3b).
  • step S20 The program flow goes to step S20 if it is determined in the query in step S16 that there is no error in the 1-dimensional subareas. It is checked whether there is an error in one of the n-dimensional sub-areas (n> 1). These n-dimensional partial areas are shown in FIG. 5c as blocks 12, 13.
  • step S20 If it is determined in the interrogation of step S20 that there is an error in the n-dimensional blocks, the program flow goes to step S21, with which a third error diagnosis is carried out.
  • the third error diagnosis the current, “problematic” block is compared with a block that was “benign” earlier than the Newton iteration. On the one hand, this comparison enables the "problematic” block to be corrected so that the solution process can be continued, or it can be automatically determined that there is a fundamental error that cannot be solved with either the Newton method or an alternative method.
  • step S22 it is queried whether the error caused by this “problematic” block cannot be solved in principle. If the result of the query is yes, the program sequence is transferred to the main program in step S23 and the program sequence is transferred in step S8 output in step S21, localized, causing the error.
  • step S24 becomes another Subroutine called to solve the block. This subroutine is explained in more detail below.
  • step S25 The program sequence then goes to the query of step S25, with which it is checked whether all 1-dimensional and n-dimensional subareas of the Jacobian matrix have already been processed. If the result of this query is no, the program flow goes back to step S15, with which the further subregions of the Jacobian matrix are solved.
  • step S20 If no error has occurred in solving the n-dimensional blocks, the program flow passes from the query in step S20 to the query in step S25. If the query in step S25 reveals that all blocks have been processed, then the program flow goes back to the main program S26, with which the function values are checked in step S4 and if these are within the desired range in step S5 the program ends.
  • step S24 The subroutine called in step S24 for solving the n-dimensional block is explained in more detail below.
  • the subroutine for solving the block is started with step S27.
  • step S28 an attempt is made to solve the “problematic” block with a first solution method.
  • a Newton method with global damping is used here.
  • the global damping means that with each iteration process the Jacobian matrix is multiplied by a damping factor ⁇ which is in the range is between 0 and 1, which reduces the change in the solution vector x that arises with each iteration process.
  • Jacobi matrices can often be solved that cannot be solved with the undamped Newton method.
  • the speed of the solution is slowed down by the damped solution method, that is to say that in the
  • step S29 it is checked whether a solution has been found. If a solution has been found, the program flow is transferred to step S30, with which the program flow is forwarded back to the subroutine of the diagnostic method, which then resolves the further subareas via steps S25 and S15 or comes back to the main program via step S26, in which the program is ended via steps S4 and S5.
  • step S29 If it is determined in step S29 that no solution has been found, a branch is made to step S31, with which a Newton method with local damping is carried out.
  • the individual matrix elements of the block are multiplied by different damping factors, as a result of which the solution behavior of the Newton method can be influenced in specific areas.
  • a query S32 is used to check whether a solution has been found. If the query shows that a solution has been found, the program flow goes back to step S30, otherwise it branches to step S33, with which a gradient method with global damping is carried out instead of the Newton method.
  • a query S34 is then used to check whether a solution has been found. If a solution has been found, the program flow goes back to step S30, otherwise the program branches to step S35, in which a gradient method with local damping is carried out.
  • step S36 it is again checked whether a solution has been found. If the query shows that a solution has been found, the program flow goes to step S30, otherwise it branches to step S37.
  • Step S37 executes a sequential solving method that solves each function of the current block or each variable one after the other. There are different strategies for doing this, but they are all based on a common triangular pattern:
  • a solution step is carried out for a variable Xi of the current block, a solution step is then carried out for the variables Xi and x 2 of the current block, a solution step is then carried out for the variables xi, x 2 and x of the current block, a solution step for the variables x lr x 2 , x 3 and x of the current block is then carried out, etc.
  • step S38 A check is made in step S38 as to whether this method yields a solution. If a solution is found, the program flow is transferred to step S30, otherwise the program flow is branched to step S39. With step S39, a further sequential method is carried out, which differs from that according to step S37 in that the absolutely smallest entry in the main diagonal of the current block is processed first and the absolutely largest entry in the main diagonal is processed last. The smaller the entry in the main diagonal, the greater its impact on the corresponding variable Xi, which is why the smaller entries are processed first.
  • step S40 it is checked whether a solution to the block has been found in step S39. If the result of the query is yes, the program flow is transferred to step S30, otherwise the program branches to step S41, with which the program flow is transferred to step S6 of the main program with the proviso that branching to step S8 takes place by the elements of the Jacobian matrix causing the error are displayed.
  • the matrix elements that caused the error are localized. It is checked whether an automatic correction and correction of the error is possible and if necessary carried out. Otherwise, the area in which the error causing Elements are displayed to the user. In this case, the corresponding physical meaning of the individual matrix elements is preferably also output, which considerably simplifies troubleshooting for the user.
  • An essential aspect of the invention is that in the event of an error in the solution method for solving the equation system, the error is localized by permutation of the matrix used in the solution method. This makes it considerably easier for the user to carry out a corresponding correction, or it is even possible to automatically correct the error by correcting the matrix or by using a further solution method. In the exemplary embodiment described above, this further solution method is only carried out for the sub-area of the Jacobian matrix which is subject to the error. Likewise, it is also possible within the scope of the invention to replace the solution method used in the main program (here the Newton method) with an alternative method when a corresponding error occurs. The individual substeps can also be replaced by known alternative method steps, such as the criterion (f n (x) ⁇ r) specified in step S4. There are alternative termination criteria for this in the prior art.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The invention relates to a simulation method with which a non-linear equation system that describes a model, especially a model of a power plant, is solved by means of the Newton's method. If an error occurs during said Newton's method, the Jacobi matrix is modulated by permutation in such a manner that at least a subdomain of the matrix can be determined that contains the matrix elements that cause the error. Said subdomain is either indicated to the user or an attempt is made to solve this subdomain by way of alternative numerical solutions.

Description

Beschreibungdescription
Simulationsverfahren und Computerprogramm zum Simulieren eines physikalischen ModellsSimulation method and computer program for simulating a physical model
Die Erfindung betrifft ein Simulationsverfahren und ein Computerprogramm zum Simulieren eines physikalischen Modells. Insbesondere betrifft die Erfindung ein Simulationsverfahren zur Simulation von Kraftwerken und ein Computerprogramm für ein derartiges Simulationsverfahren.The invention relates to a simulation method and a computer program for simulating a physical model. In particular, the invention relates to a simulation method for simulating power plants and a computer program for such a simulation method.
Zur Simulation von Kraftwerken sind Verfahren bekannt, bei welchen ein mathematisches Modell des Kraftwerkes in Form von einem nichtlinearen Gleichungssystem erstellt wird. Dieses Gleichungssystem kann als Matrix dargestellt werden, die nachfolgend als Jacobimatrix bezeichnet wird. Zur Lösung derartiger Matrizen bzw. Gleichungssysteme gibt es unterschiedliche Verfahren. Bei der Simulation von Kraftwerken hat sich das mehrdimensionale Newton-Verfahren bewährt.Methods are known for the simulation of power plants, in which a mathematical model of the power plant is created in the form of a nonlinear system of equations. This system of equations can be represented as a matrix, which is referred to below as the Jacobian matrix. There are different methods for solving such matrices or systems of equations. The multi-dimensional Newton method has proven itself in the simulation of power plants.
Für die Anwender gibt es komplette Programmpakete, bei welchen für die einzelnen Kraftwerkskomponenten vorbereitete Blöcke von Gleichungssystemen vorhanden sind, die entsprechend dem Aufbau des zu simulierenden Kraftwerks kombiniert werden. Ferner sind die Rahmenbedingungen der einzelnen Gleichungen, die jeweils ein physikalisches Teilsystem des Kraftwerkes beschreiben, und die Startwerte einzugeben. Das Programm ermittelt dann automatisch die Lösung dieses Gleichungssystems .There are complete program packages for users, in which there are blocks of equation systems prepared for the individual power plant components, which are combined according to the structure of the power plant to be simulated. The basic conditions of the individual equations, each of which describes a physical subsystem of the power plant, and the starting values must also be entered. The program then automatically determines the solution to this system of equations.
Da das Gleichungssystem jedoch in der Regel äußerst komplex ist werden bei der Eingabe häufig Fehler gemacht. Diese Fehler können Tippfehler sein, wenn sich der Anwender beim Eingeben der Zahlen vertippt oder auf Denkfehlern beruhen, wobei z.B. zwei Variablen vertauscht werden und die entsprechendenHowever, since the system of equations is usually extremely complex, mistakes are often made when entering data. These errors can be typing errors if the user makes a mistake when entering the numbers or is based on thinking errors, whereby Eg two variables are swapped and the corresponding ones
Werte falsch eingegeben werden. Durch die Eingabe derartigerValues entered incorrectly. By entering such
Fehler wird die Matrix oft singulär und es kann kein Ergebnis ermittelt werden. Ferner können bei der Durchführung des New- ton-Verfahrens singuläre Zustände entstehen, z.B. wenn eineErrors often make the matrix singular and no result can be determined. Furthermore, singular states can arise when the Newton method is carried out, e.g. when a
Funktion über einen bestimmten Bereich konstant ist, wodurch die Steigung dieser Funktion null ist. Im eindimensionalenFunction is constant over a certain range, whereby the slope of this function is zero. In one-dimensional
Fall kommt die Steigung bzw. erste Ableitung der Funktion imFall comes the slope or first derivative of the function in
Nenner der Iterationsformel des Newton-Verfahrens vor, so daß das Newton-Verfahren an dieser Stelle nicht ausführbar ist.Denominator of the iteration formula of the Newton method, so that the Newton method cannot be carried out at this point.
Entsprechendes gilt für den mehrdimensionalen Fall.The same applies to the multidimensional case.
Die oben beschriebenen und weitere Probleme führen zu Singularitäten, wodurch eine Lösung des Gleichungssystems und da- mit eine Simulation des Kraftwerkes nicht möglich ist. Das umfangreiche Gleichungssystem bzw. die dazugehörige Jacobima- trix muß dann vom Anwender auf Fehler untersucht werden. Dies ist ein schwieriges Unterfangen, das insbesondere von einem im Lösen von umfangreichen Gleichungssystemen unerfahrenen Anwender kaum erledigt werden kann.The problems described above and other problems lead to singularities, which means that it is not possible to solve the system of equations and thus to simulate the power plant. The extensive system of equations and the associated Jacobi matrix must then be examined by the user for errors. This is a difficult undertaking, which can hardly be done by a user who is inexperienced in solving extensive systems of equations.
Ferner ist zur Eingabe geeigneter Startwerte eine erhebliche Erfahrung bei der Simulation von Kraftwerken mittels nichtlinearen Gleichungssystemen notwendig. Durch die Eingabe ungün- stiger Startwerte kann es sein, daß das Newton-Verfahren für ein an sich lösbares Gleichungssystem nicht konvergiert. Wenn ein derartiger Fall auftritt, muß das Gleichungssystem erneut mit anderen Startwerten gestartet werden.Furthermore, considerable experience in the simulation of power plants using nonlinear systems of equations is necessary to enter suitable starting values. By entering unfavorable starting values it may happen that the Newton method does not converge for a system of equations that can be solved per se. If such a case occurs, the system of equations must be started again with different starting values.
Zur Lösung derartiger Gleichungssysteme gibt es umfangreiche Literatur. Im folgenden sind Beispielhaft einige Veröffentlichungen angegeben: I.S. Duff: Direct Methods for Sparse Matrices; Oxford Science Publications, 1986There is extensive literature on solving such systems of equations. Some publications are given as examples below: IS Duff: Direct Methods for Sparse Matrices; Oxford Science Publications, 1986
M. Berz et alii: Computational Differentiation, SLAM, 1996 Dennis: Numerical Methods for unconstrained optimization and nonlinear equations, Prentice Hall Series, 1983M. Berz et alii: Computational Differentiation, SLAM, 1996 Dennis: Numerical Methods for unconstrained optimization and nonlinear equations, Prentice Hall Series, 1983
Ph. Gill (Stanford University) : Pracitcal Optimization, Seiten 338 ff; Acade ic Press, 1981Ph. Gill (Stanford University): Pracitcal Optimization, pages 338 ff; Acade ic Press, 1981
Der Erfindung liegt die Aufgabe zugrunde, das eingangs ge- nannte Simulationsverf hren derart weiterzubilden, daß für die meisten bisher nicht losbaren Modelle eine Losung gefunden werden kann, wobei das Auffinden von Losungen für problematische Modelle wesentlich vereinfacht wird.The invention is based on the object of developing the above-mentioned simulation method in such a way that a solution can be found for most models which have hitherto not been able to be solved, the finding of solutions for problematic models being made considerably easier.
Die Aufgabe wird durch ein Simulationsverfahren mit den Merkmalen des Anspruchs 1 und durch ein Computerprogramm für ein solches Simulationsverfahren mit den Merkmalen des Anspruchs 18 gelost.The object is achieved by a simulation method with the features of claim 1 and by a computer program for such a simulation method with the features of claim 18.
Bei dem erfmdungsgemaßen Simulationsverfahren wird ein ein Modell beschreibendes nichtlineares Gleichungssystem gelost, wobei das Gleichungssystem mit Hilfe einer Matrix dargestellt wird.In the simulation method according to the invention, a nonlinear system of equations describing a model is solved, the system of equations being represented with the aid of a matrix.
Das erfindungsgemäße Verfahren zeichnet sich durch eine Feh- lerdiagnose aus. Gemäß der Fehlerdiagnose wird die Matrix beim Auftreten eines Fehlers (Singularität, keine Konvergenz) durch Permutationen derart umgeformt, daß zumindest ein oder mehrere Teilbereiche der Matrix festgestellt werden können, in dem bzw. denen sich die den Fehler verursachenden Matrixelemente befinden. Hierdurch wird die Fehleranalyse der Matrix erheblich erleichtert, da lediglich ein vorzugsweise möglichst kleiner Teilbereich der Matrix zu untersuchen ist.The method according to the invention is characterized by an error diagnosis. According to the error diagnosis, when an error occurs (singularity, no convergence), the matrix is transformed by permutations in such a way that at least one or more subregions of the matrix can be found in which the matrix elements causing the error are located. This considerably simplifies the error analysis of the matrix, since only a preferably small area of the matrix is to be examined.
Zur Behebung des Fehlers gibt es grundsätzlich zwei Möglichkeiten. Der Teilbereich der Matrix, m dem sich die den Fehler verursachenden Matrixelemente befinden, können dem Anwender angezeigt werden, wodurch er durch eine Korrektur der diese Teilbereiche betreffenden Eingaben den bzw. die Fehler beseitigen kann. Gemäß der zweiten Möglichkeit der Beseitigung des Fehlers werden der bzw. die Teilbereiche der Matrix mittels eines weiteren numerischen Verfahrens automatisch gelost, bei dessen Anwendung der Fehler (Singularität, bzw. keine Konvergenz) nicht auftritt.There are basically two ways to correct the error. The portion of the matrix in which the matrix elements causing the error are located can be displayed to the user, whereby he can eliminate the error or errors by correcting the inputs relating to these portions. According to the second possibility of eliminating the error, the partial area or areas of the matrix are automatically solved by means of a further numerical method, the error (singularity or no convergence) of which does not occur when used.
Bei der bevorzugten Ausfuhrungsform der Erfindung wird versucht, derartige fehlerverursachende Matrixelemente enthaltende Teilbereiche zunächst mittels einem oder mehreren alternativen numerischen Losungsverfahren selbsttätig zu losen und nur, wenn keine Losung gefunden werden kann, dem Anwender den bzw. die entsprechenden Teilbereich der Matrix anzuzeigen, so daß er eine überarbeitete Matrix für eine neue Simulation aufstellen kann.In the preferred embodiment of the invention, attempts are made to first automatically remove such partial areas containing such matrix elements that cause errors, and only to show the user the corresponding partial area (s) of the matrix so that it cannot be found if no solution can be found can set up a revised matrix for a new simulation.
Das erfmdungsgemaße Simulationsverfahren ist insbesondere zur Simulation von Kraftwerken vorgesehen, da diese oftmals unter erheblichen Zeitdruck simuliert werden müssen, wobei häufig die eingangs beschriebenen Probleme wie z.B. Falscheingaben, Eingabe ungünstiger Startwerte oder Bereiche, die vom gewählten numerischen Verfahren nicht gelost werden können, auftreten. Durch das erfindungsgemäße Verfahren zum Simulieren vonThe simulation method according to the invention is intended in particular for the simulation of power plants, since these often have to be simulated under considerable time pressure, with the problems described at the beginning such as, for example, incorrect entries, input of unfavorable starting values or ranges which cannot be solved by the selected numerical method. By the inventive method for simulating
Kraftwerken wird das Auffinden einer Lösung dem Anwender wesentlich erleichtert, da auftretende Fehler, wie z.B. Singularitäten oder nicht konvergierende Bereiche, automatisch behoben bzw. die Teilbereiche der Matrix, die die Fehler verursachenden Matrixelemente enthalten, angezeigt werden, wodurch der Anwender wesentlich leichter den Fehler durch eine Neueingabe der entsprechenden Randwerte und Startbedingungen beheben kann.Power plants will find it much easier for the user to find a solution because errors such as Singularities or non-converging areas are automatically corrected or the sub-areas of the matrix containing the matrix elements causing the errors are displayed, which makes it much easier for the user to correct the error by re-entering the corresponding boundary values and start conditions.
Insbesondere kann die Erfindung auf einer Prozessoreinheit bzw. einem üblichen Rechner ausgeführt werden. Solch ein Rechner verfügt über einen Mikroprozessor, eine Ein-/Ausgabe- Schnittstelle und einen Speicher, die vorzugsweise über einen Bus miteinander gekoppelt sind. Über eine Grafikschittstelle kann die Ausgabe auf einen Monitor und/oder einen Drucker ermöglicht werden. Als Eingabegeräte eignen sich bevorzugt eine Tastatur und eine Maus. Ferner können an den Bus zusätzliche Geräte wie Massenspeicher, z.B. eine Festplatte, oder Scanner angeschlossen werden.In particular, the invention can be carried out on a processor unit or a conventional computer. Such a computer has a microprocessor, an input / output interface and a memory, which are preferably coupled to one another via a bus. The output on a monitor and / or a printer can be made possible via a graphic interface. A keyboard and a mouse are preferably suitable as input devices. Additional devices such as mass storage devices, e.g. a hard drive or scanner can be connected.
Die Erfindung wird nachfolgend beispielhaft anhand der beigefügten Zeichnungen näher erläutert. In denen zeigen:The invention is explained in more detail below by way of example with reference to the accompanying drawings. In which show:
Fig.l eine vereinfachte, schematische Darstellung einesFig.l is a simplified, schematic representation of a
Dampferzeugers eines Gas- und Dampfturbinenkraftwerkes,Steam generator of a gas and steam turbine power plant,
Fig.2 das Hauptprogramm des erfindungsgemäßen Simulations- Verfahrens in einem Flußdiagramm,2 shows the main program of the simulation method according to the invention in a flow chart,
Fig.3a und 3b ein Diagnoseprogramm, das vom Hauptprogramm aufgerufen werden kann, in einem Flußdiagramm, Fig.4 ein Programm zur Losung vom im Hauptprogramm nicht losbaren Irreduziblen n-dimensionalen Blocken der zu losenden Jacobimatrix.3a and 3b a diagnostic program, which can be called by the main program, in a flow chart, 4 shows a program for the solution of the irreducible n-dimensional blocks of the Jacobi matrix to be solved, which cannot be solved in the main program.
Fig.5a bis 5c schematisch eine Jacobimatrix der Dimension 113 x 113 im Ausgangszustand, nach einer Permutation auf Hauptdiagonalenform und nach einer Permutation auf die untere Blockdreiecksgestalt .5a to 5c schematically show a Jacobian matrix of dimensions 113 x 113 in the initial state, after a permutation on the main diagonal shape and after a permutation on the lower block triangular shape.
Das erfmdungsgemaße Simulationsverfahren wird nachfolgend anhand eines Ausfuhrungsbeispieles zum Simulieren von Kraftwerken beschrieben.The simulation method according to the invention is described below using an exemplary embodiment for simulating power plants.
Ein Dampferzeuger eines Gas- und Dampfturbinenkraftwerkes ist in Fig. 1 schematisch vereinfacht dargestellt. Der Dampferzeuger umfaßt einen Abschnitt des Wasserkreislaufes 1 des Kraftwerkes und ein Gasleitungssystem 2. Am Wasserkreislauf 1 ist ein Einlaß 3 vorgesehen, an dem kondensiertes Wasser dem Dampferzeuger zugeführt wird. Vom Einlaß 3 fuhrt der Wasser- kreislauf zu einer ersten Heizfläche 4, an der das den Leitungen des Wasserkreislaufs 1 befindliche Wasser erhitzt wird. Eine solche Heizflache 4 ist üblicherweise mit 40 bis 50 Windungen der Wasserleitung ausgeführt. Diese Windungen werden von erhitztem Gas umströmt. Von der ersten Heizfläche 4 fuhrt der Wasserkreislauf zu einer Trommel 5, an deren oberen Bereich das erhitzte Wasser der Trommel 5 zugeführt wird. Die Trommel 5 ist bis zu einem bestimmten Niveau 6 mit unterkühlten. Wasser gefüllt und über diesem Niveau 6 befindet sich Wasserdampf. Am unteren Bereich der Trommel 5 ist eine weite- re Leitung 7 des Wasserkreislaufes 1 angeschlossen, die zu einer zweiten Heizflache 8 fuhrt, an der das aus der Trommel 5 abgeführte kondensierte Wasser zu einem Wasserdampfgemisch erhitzt wird. Von der zweiten Heizfläche 8 fuhrt die Leitung 7 wieder zur Trommel 5, um dieses Wasserdampfgemisch der Trommel 5 zuzuführen. Eine weitere Leitung 9 mundet im oberenA steam generator of a gas and steam turbine power plant is shown schematically in simplified form in FIG. 1. The steam generator comprises a section of the water circuit 1 of the power plant and a gas line system 2. An inlet 3 is provided on the water circuit 1, at which condensed water is fed to the steam generator. From the inlet 3, the water circuit leads to a first heating surface 4, on which the water located in the lines of the water circuit 1 is heated. Such a heating surface 4 is usually designed with 40 to 50 turns of the water pipe. Heated gas flows around these windings. The water circuit leads from the first heating surface 4 to a drum 5, at the upper region of which the heated water is fed to the drum 5. The drum 5 is supercooled to a certain level 6. Water filled and above this level 6 there is water vapor. At the lower area of the drum 5, a further line 7 of the water circuit 1 is connected, which leads to a second heating surface 8, on which the condensed water discharged from the drum 5 is heated to a water vapor mixture. From the second heating surface 8, the line 7 leads again to the drum 5 to the water vapor mixture Feed drum 5. Another line 9 mouths in the upper
Bereich der Trommel 5, mit welcher der reine Dampfanteil aus der Trommel 5 abgezogen wird. Diese Leitung 9 fuhrt zu einer dritten Heizfläche 10, an der der Wasserdampf weiter erhitzt wird und dann den Dampferzeuger an einem Auslaß 11 verlaßt, um einer Dampfturbine (nicht dargestellt) zugeführt zu werden.Area of the drum 5 with which the pure steam portion is drawn off from the drum 5. This line 9 leads to a third heating surface 10, on which the steam is heated further and then leaves the steam generator at an outlet 11 in order to be fed to a steam turbine (not shown).
Das Gasleitungssystem 2 dient zum Zufuhren von Heizgas, das an den Heizflachen 4, 8 und 10 zum Erhitzen des im Wasserkreislauf 1 geführten Wassers verwendet wird.The gas line system 2 serves to supply heating gas, which is used on the heating surfaces 4, 8 and 10 for heating the water carried in the water circuit 1.
Zur mathematischen Beschreibung des Dampferzeugers werden sechs Wasserknoten WO bis W5 und vier Gasknoten G0 bis G3 festgelegt. Jeder der Wasserknoten weist drei Freiheitsgrade, nämlich den Massenstrom m, den Druck p und die Enthalpie h, und jeder der Gasknoten zwei Freiheitsgrade auf, nämlich den Massenstrom m und die Enthalpie h. Dies ergibt für das m Fig. 1 gezeigte Beispiel insgesamt 26 Freiheitsgrade. Ein Gleichungssystem zur Losung dieses Dampferzeugers muß demnach 26 Gleichungen umfassen.For the mathematical description of the steam generator, six water nodes WO to W5 and four gas nodes G0 to G3 are defined. Each of the water nodes has three degrees of freedom, namely the mass flow m, the pressure p and the enthalpy h, and each of the gas nodes has two degrees of freedom, namely the mass flow m and the enthalpy h. For the example shown in FIG. 1, this gives a total of 26 degrees of freedom. An equation system for the solution of this steam generator must therefore comprise 26 equations.
Für die Auslegung eines solchen Dampferzeugers wird z.B. ein Gleichungssystem gewählt, mit jeweils vier Gleichungen für die drei Heizflächen 4, 8, 10, sechs Gleichungen für dieFor the design of such a steam generator, e.g. selected an equation system, each with four equations for the three heating surfaces 4, 8, 10, six equations for the
Trommel 5, jeweils eine Gleichung für fünf Randbedingungen und jeweils eine Gleichung für den sogenannten Pinchpomt, für den Approachpoint und für den Umwalzfaktor . Der Pinchpomt und der Approachpoint sind Temperaturdifferenzen, die vom Betreiber des Kraftwerkes vorgegeben werden und der Umwalzfaktor beschreibt das Verhältnis der Zwangsumwalzung dem zur Trommel 5 fuhrenden Bereich des Wasserkreislaufes 1 und m der zur zweiten Heizfläche 8 fuhrenden Leitung 7 des Wasserkreislaufes 1. Insgesamt ergeben sich somit 26 Gleichungen, mit welchen die 26 Freiheitsgrade berechnet werden können.Drum 5, one equation for five boundary conditions and one equation for the so-called pinch pomt, for the approach point and for the rolling factor. The pinch point and the approach point are temperature differences that are specified by the operator of the power plant and the circulation factor describes the ratio of the forced circulation to the area of the water circuit 1 leading to the drum 5 and the line 7 leading to the second heating surface 8 Water cycle 1. In total there are 26 equations with which the 26 degrees of freedom can be calculated.
Für eine Nachrechnung des Systems kann ein anderes Gleichungssystem aufgestellt werden, das beispielsweise fünf Gleichungen für die drei Heizflachen 4, 8, 10, sechs Gleichungen für die Trommel, jeweils eine Gleichung für vier Randbedingungen und eine Gleichung für den Zwangsumlauf um- faßt, so daß wiederum 26 Gleichungen zur Losung der 26 Freiheitsgrade vorhanden sind.For a recalculation of the system, another system of equations can be set up, which includes, for example, five equations for the three heating surfaces 4, 8, 10, six equations for the drum, one equation for each four boundary conditions and one equation for the forced circulation, so that again there are 26 equations to solve the 26 degrees of freedom.
Das erfmdungsgemaße Simulationsverfahren kann als Computerprogramm realisiert sein. Ein solches Computerprogramm stellt dem Anwender für die einzelnen Aggregate, wie z.B. dem Rohrleitungssystem, den Heizflächen, der Trommel usw. vordefinierte Gleichungsteilsysteme zur Verfugung, die vom Anwender entsprechend dem tatsächlichen Aufbau des zu simulierenden Kraftwerkes lediglich zusammengestellt und konfiguriert wer- den müssen. Derartige Gleichungsteilsysteme sind aus den herkömmlichen Programmen zur Simulation von Kraftwerken bereits bekannt und werden deshalb nicht naher erläutert.The simulation method according to the invention can be implemented as a computer program. Such a computer program provides the user for the individual units, e.g. predefined equation subsystems are available for the piping system, the heating surfaces, the drum, etc., which only need to be put together and configured by the user according to the actual structure of the power plant to be simulated. Such equation subsystems are already known from the conventional programs for simulating power plants and are therefore not explained in more detail.
Das Computerprogramm zur Simulation eines Modells, wie z.B. eines Kraftwerkes, kann m Form eines Hauptprogrammes und mehreren Unterprogrammen realisiert sein.The computer program for simulating a model, e.g. a power plant, can be implemented in the form of a main program and several subroutines.
Nachfolgend wird ein in Fig. 2 gezeigtes Hauptprogramm des erfmdungsgemaßen Simulationsverfahrens naher erläutert.A main program of the simulation method according to the invention shown in FIG. 2 is explained in more detail below.
In einem Schritt Sl erstellt der Anwender das Gleichungssystem m der oben angegebenen Art und Weise bzw. die dem Gleichungssystem entsprechende Matrix (Fig. 5a). In dem nachfolgenden Schritt S2 wird die Ausführung des Newton-Verfahrens gestartet. Das Newton-Verfahren ist ein iteratives Verfahren, bei dem die folgende Iterationsformel angewandt wird:In a step S1, the user creates the system of equations m in the manner indicated above or the matrix corresponding to the system of equations (FIG. 5a). The execution of the Newton method is started in the subsequent step S2. The Newton method is an iterative method using the following iteration formula:
*,+- = * -/(*,) ■ (/'(*, )r = *. -f ,>J- ϊ,\*, + - = * - / ( *, ) ■ ( / ' (*, ) r = *. -F,> J- ϊ, \
wobei der Vektor ^ berechnet wird, für den die Ausgangsmatrix f (x>-j ) =0 gilt. Der rechte Ausdruck in der Iterationsformel bestehend aus f (x- ?/f kann durch die sogenannte Jacobimatrix J^( ) dargestellt werden. Als Jacobimatrix ergibt sich somit:where the vector ^ is calculated, for which the output matrix f (x > - j ) = 0 applies. The right expression in the iteration formula consisting of f (x-? / F can be represented by the so-called Jacobi matrix J ^ (). The Jacobi matrix is:
Figure imgf000011_0001
Figure imgf000011_0001
Während des Ausführens des Newton-Verfahrens wird in Schritt S3 überprüft, ob ein Fehler bei der Newton-Iteration aufge- treten ist.During the execution of the Newton method, it is checked in step S3 whether an error has occurred in the Newton iteration.
Wenn der Schritt S3 ergibt, daß kein Fehler aufgetreten ist, wird im Schritt S4 überprüft, ob die Beträge der einzelnen Funktionen fn (Je) kleiner als ein vorbestimmter Wert r (= Residuum) sind. Falls alle Funktionswerte diese Bedingungen erfüllen gilt das Gleichungssystem als gelöst und das Programm wird beendet. Falls diese Bedingungen nicht erfüllt sind, wird der Programmablauf auf den Schritt S2 verzweigt und eine weitere Newton-Iteration ausgeführt. Andernfalls geht dasIf step S3 shows that no error has occurred, it is checked in step S4 whether the amounts of the individual functions f n (Je) are smaller than a predetermined value r (= residual). If all function values meet these conditions, the system of equations is considered solved and the program will be terminated. If these conditions are not met, the program flow branches to step S2 and another Newton iteration is carried out. Otherwise it works
Hauptprogramm auf den Schritt S5 über, mit dem das Hauptpro- gra m beendet wird.Main program to step S5, with which the main program is ended.
Falls in Schritt S3 festgestellt wird, daß ein Fehler bei der Newton-Iteration aufgetreten ist, wird der Programmablauf auf den Schritt S6 verzweigt, der ein Diagnose-Verfahren der Ja- cobimatrix ausführt.If it is determined in step S3 that an error has occurred in the Newton iteration, the program flow branches to step S6, which carries out a diagnostic process for the Jacobi matrix.
Ein derartiger Fehler liegt z.B. vor, wenn im Nenner eines der Matrixelemente eine Null steht, das heißt, wenn eine der Funktionen fn einen konstanten Bereich aufweist, wodurch des- sen Ableitung gleich Null wird und das entsprechende Matrixelement nicht berechnet werden kann. Ein weiterer Fehler liegt vor, wenn die Newton-Iteration nicht gegen eine Nullstelle konvergiert. Dies kann auf unterschiedlichen Ursachen beruhen. Das Feststellen einer derartigen Nicht-Konvergenz er- folgt beispielsweise durch Beschränkung der max. Anzahl der Newton-Iterationen auf eine vorbestimmte Anzahl. Derartige Fehler können durch eine Falscheingabe des Anwenders für die bei der Aufstellung der Matrix einzugebenden Randbedingungen oder durch eine Vertauschung der Variablen verursacht werden. Der Anwender muß jedoch nicht immer eine derartige Falscheingabe machen, damit ein solcher Fehler auftritt. Es ist z.B. auch möglich, daß ein für die Newton-Iteration ungünstiger Startwert eingegeben worden ist, wodurch es sein kann, daß das Newton-Verfahren gegen ein lokales Minimum konvergiert, wodurch die gewünschte Nullstelle nicht gefunden wird. Eine weitere Fehlermöglichkeit liegt z.B. darin, daß das ursprüngliche Gleichungssystem nicht vollständig mit dem Newton- Verfahren lösbar ist, obwohl es physikalisch korrekt aufge- stellt worden ist. Unabhängig davon, welcher Fehlertyp auftritt, wird der Programmablauf im Schritt S3 auf den Schritt S5 verzweigt.Such an error occurs, for example, if there is a zero in the denominator of one of the matrix elements, that is to say if one of the functions f n has a constant range, as a result of which its derivative becomes zero and the corresponding matrix element cannot be calculated. Another error is when the Newton iteration does not converge to a zero. This can have different causes. Such non-convergence is determined, for example, by restricting the max. Number of Newton iterations to a predetermined number. Such errors can be caused by incorrect input by the user for the boundary conditions to be entered when setting up the matrix or by swapping the variables. However, the user does not always have to make such an incorrect entry for such an error to occur. For example, it is also possible that a starting value that is unfavorable for the Newton iteration has been entered, which may result in the Newton method converging against a local minimum, as a result of which the desired zero is not found. Another possible error is, for example, that the original system of equations cannot be completely solved using the Newton method, even though it is physically correct. has been put. Regardless of which type of error occurs, the program flow branches to step S5 in step S3.
Beim Diagnoseverfahren wird die Jacobimatrix durch Permutation derart ungeformt, daß ein oder mehrere Teilbereiche der Matrix festgestellt werden können, in welchen sich die den Fehler verursachenden Matrixelemente befinden.In the diagnostic method, the Jacobian matrix is deformed by permutation in such a way that one or more subregions of the matrix can be determined in which the matrix elements causing the error are located.
Falls eine automatische Fehlerbehebung möglich ist, wird dies im Schritt S7 durchgeführt. Das Diagnoseverfahren kann als ein Unterprogramm ausgeführt sein, in dem die Fehlerbehandlung integriert ist. Es ist auch möglich, die Fehlerbehandlung als eine vom Diagnoseverfahren getrennte Programmeinheit auszubilden. Eine derartige Fehlerbehebung kann die Anwendung eines zum Newton-Verfahren alternativen numerischen Lösungsverfahrens sein, oder die Jacobimatrix kann automatisch korrigiert werden. Die Behebung des Fehlers kann die vollständige Lösung des Gleichungssystems umfassen oder lediglich eine Korrektur der Jacobimatrix ausführen. Bei einer solchen Korrektur der Jacobimatrix wird das Newton-Verfahren fortgesetzt, indem über die Abfrage im Schritt S4 der Programmablauf wieder auf die Newton-Iteration im Schritt S2 übergeben wird. Ist das Gleichungssystem vollständig gelöst, wird das Hauptprogramm über die Abfrage im Schritt S4 im darauffolgenden Schritt S5 beendet.If automatic troubleshooting is possible, this is carried out in step S7. The diagnostic method can be implemented as a subroutine in which the error handling is integrated. It is also possible to design the error handling as a program unit separate from the diagnostic method. Such an error correction can be the use of a numerical solution method alternative to the Newton method, or the Jacobian matrix can be corrected automatically. The correction of the error can include the complete solution of the system of equations or only a correction of the Jacobian matrix. In the event of such a correction of the Jacobian matrix, the Newton method is continued by transferring the program sequence back to the Newton iteration in step S2 via the query in step S4. If the system of equations is completely solved, the main program is ended via the query in step S4 in the subsequent step S5.
Das Diagnoseverfahren S6 kann hingegen auch ergeben, daß eine automatische Fehlerbehebung nicht möglich ist. In einem sol- chen Fall wird auf den Schritt S8 verzweigt, mit dem dem Anwender der bzw. die Teilbereiche der Jacobimatrix angezeigt werden, deren Matrixelemente den Fehler verursacht haben. Vorzugsweise wird mit der Anzeige in Schritt S8 auch die phy- sikalische Bedeutung dieses Bereichs der Jacobimatrix ausgegeben. Dies ist insbesondere dann möglich, wenn lediglich ein 1-dιmensιonaler Teilbereich (= eine einzige Zeile der Matrix) den Fehler verursacht hat. In einem solchen Fall kann der fehlerverursachende, exakte physikalische Parameter ausgegeben werden, wie z.B., daß die dritte Heizfläche mit einem falschen Temperaturwert belegt ist. Dies erleichtert dem Anwender die Korrektur des Gleichungssystems erheblich, da er exakt auf die den Fehler verursachende Stelle im Gleichungs- System hingewiesen wird.The diagnostic method S6, on the other hand, can also show that automatic troubleshooting is not possible. In such a case, a branch is made to step S8, in which the user is shown the area or areas of the Jacobian matrix whose matrix elements caused the error. With the display in step S8, the phy- sical meaning of this area of the Jacobian matrix. This is particularly possible if only a 1-dimensional portion (= a single line of the matrix) caused the error. In such a case, the exact physical parameter causing the error can be output, such as, for example, that the third heating surface is occupied with an incorrect temperature value. This makes it much easier for the user to correct the system of equations, since he is pointed exactly to the point in the equation system that caused the error.
In den Fig. 3a und 3b ist ein mögliches Ausfuhrungsbeispiel des im Schritt S6 angegebenen Diagnoseverfahrens dargestellt. Dieses Diagnoseverfahren wird vom Hauptprogramm beim Errei- chen des Schrittes S6 als Unterprogramm aufgerufen und beginnt mit dem Schritt S9.A possible exemplary embodiment of the diagnostic method specified in step S6 is shown in FIGS. 3a and 3b. This diagnostic procedure is called up as a subroutine by the main program when step S6 is reached and begins with step S9.
Im Schritt S10 wird die ursprünglich aufgestellte Jacobimatrix (Fig. 5a) auf Hauptdiagonalenform (Fig. 5b) permutiert. Die Permutation wird lediglich durch eine oder mehrere Zei- lenvertauschungen ausgeführt.In step S10, the Jacobi matrix originally set up (FIG. 5a) is permuted to a main diagonal shape (FIG. 5b). The permutation is only carried out by one or more line swaps.
Im folgenden Schritt Sll wird abgefragt, ob die Permutation auf Hauptdiagonalenform erfolgreich ausgeführt werden konnte. Eine erfolgreiche Permutation auf Hauptdiagonalenform bedeutet, daß jedes auf der Hauptdiagonalen der Matrix liegende Matrixelement eine von 0 verschiedenen Wert hat. Ist ein einziges der auf der Hauptdiagonalen liegenden Matrixelemente gleich 0, so kann das Gleichungssystem nicht gelost werden und der Programmablauf wird auf den Schritt S12 verzweigt.In the following step S11 it is queried whether the permutation on the main diagonal form could be carried out successfully. A successful permutation in the main diagonal form means that each matrix element lying on the main diagonal of the matrix has a value other than 0. If a single one of the matrix elements lying on the main diagonal is 0, the system of equations cannot be solved and the program flow branches to step S12.
In Schritt S12 wird eine erste Fehlerdiagnose durchgeführt, bei der festgestellt wird, welche Matrixelemente der Haupt- diagonalen gleich 0 sind. Die jeweils ein solches Matrixelemente enthaltenden Zeilen bilden einen 1-dimensionalen Teilbereich bzw. Block der Matrix, der ein Matrixelement beinhaltet, das bei einem Versuch die Jacobimatrix zu lösen einen Fehler verursacht. Diese Teilbereiche werden im Schritt S12 festgehalten und es wird bestimmt, daß eine automatische Behebung des Fehlers nicht möglich ist, da die Matrix grundsätzlich nicht lösbar ist. Der Programmablauf wird wieder an das Hauptprogramm übergeben, wobei im Schritt S8 die entspre- chenden Teilbereiche angezeigt werden.In step S12, a first fault diagnosis is carried out, in which it is determined which matrix elements the main diagonals are equal to 0. The rows each containing such a matrix element form a 1-dimensional subarea or block of the matrix which contains a matrix element which causes an error in an attempt to solve the Jacobian matrix. These partial areas are recorded in step S12 and it is determined that an automatic correction of the error is not possible since the matrix cannot be solved in principle. The program sequence is passed back to the main program, with the corresponding subareas being displayed in step S8.
Ergibt die Abfrage im Schritt Sll, daß die Permutation auf Hauptdiagonalenform erfolgreich ausgeführt werden konnte, wird im Schritt S14 eine Permutation auf die untere Block- dreiecksgestalt der Jacobimatrix (Fig. 5c) . Die Blockdreiecksgestalt bedeutet, daß die Matrix auf einer Seite der Hauptdiagonalen so weit wie möglich ausgedünnt wird, so daß lediglich 1-dimensionale Teilbereiche und symmetrisch um die Hauptdiagonale angeordnete n-dimensionale Teilbereiche ver- bleiben. Diese Permutation erfolgt sowohl durch Zeilen- als auch Spaltenvertauschungen.If the query in step S11 shows that the permutation on the main diagonal shape was successfully carried out, in step S14 a permutation on the lower block triangular shape of the Jacobian matrix (FIG. 5c). The block triangular shape means that the matrix on one side of the main diagonal is thinned out as much as possible, so that only 1-dimensional sub-areas and n-dimensional sub-areas arranged symmetrically around the main diagonal remain. This permutation is done by swapping rows and columns.
Diese Permutation auf die untere Blockdreiecksgestalt ergibt mehrere voneinander unabhängige Teilbereiche der Jacobima- trix. Bei der in Fig. 5c gezeigten, auf untere Blockdreiecks- gestalt permutierten Jacobimatrix bestehen die unabhängigen Teilbereiche aus zwei n-dimensionalen Blöcken 12, 13 (n>l) der Größe 47 x 47 und 5 x 5 und aus den weiteren 61 Zeilen, die jeweils einen separaten 1-dimensionalen Block bilden.This permutation to the lower block triangular shape results in several mutually independent partial areas of the Jacobi matrix. In the Jacobi matrix shown in FIG. 5c, permutated to the lower block triangular shape, the independent subregions consist of two n-dimensional blocks 12, 13 (n> 1) of size 47 x 47 and 5 x 5 and from the further 61 lines that each form a separate 1-dimensional block.
Im Schritt S15 werden beginnend mit dem linken oberen Ende der Hauptdiagonalen zunächst alle oberhalb des oberen Blockes der Größe 47 x 47 liegenden Zeilen (1-dimensionale Teilberei- ehe) separat gelöst. Hierzu wird das 1-dimensionale Newton- Verfahren angewandt. Danach wird der obere Block 12 der Größe 47x 47 mittels des mehrdimensionalen Newton-Verfahrens gelöst. Nachfolgend werden die Zeilen im Bereich zwischen dem oberen und dem unteren Block 13 gelöst. Danach wird wiederum der untere Block 13 der Größe 5 x 5 mittels des Newton- Verfahrens gelöst. Nachfolgend werden die unterhalb des unteren Blockes der Größe 5 x 5 liegenden Zeilen mittels des 1- dimensionalen Newton-Verfahrens gelöst. Wenn bei einem dieser Lösungsschritte ein Fehler auftritt, was wahrscheinlich ist, da die ursprüngliche Matrix nicht mittels des Newton- Verfahrens gelöst werden konnte, wird die Lösung der Teilbereiche abgebrochen und im Schritt S16 abgefragt, ob der Fehler in einem 1-dimensionalen Teilbereich aufgetreten ist.In step S15, beginning with the upper left end of the main diagonals, all lines above the upper block of size 47 x 47 (1-dimensional partial areas before) solved separately. The 1-dimensional Newton method is used for this. Then the upper block 12 of size 47x47 is released using the multi-dimensional Newton method. The lines in the area between the upper and lower blocks 13 are then resolved. Then the lower block 13 of size 5 × 5 is again loosened using the Newton method. The lines below the lower block of size 5 x 5 are then solved using the 1-dimensional Newton method. If an error occurs in one of these solution steps, which is probable because the original matrix could not be solved using the Newton method, the solution of the partial areas is terminated and a query is made in step S16 as to whether the error occurred in a one-dimensional partial area .
Ist der Fehler in einem 1-dimensionalen Teilbereich aufgetreten, so wird der Programmablauf auf den Schritt S17 verzweigt, indem eine zweite Fehlerdiagnose ausgeführt wird. Mit der zweiten Fehlerdiagnose wird ein anderes Lösungsverfahren zum Lösen dieses 1-dimensionalen Teilbereiches, wie z.B. ein Sekantenverfahren angewandt. Liegt der Fehler in einem spezifischen Problem des Newton-Verfahrens, so kann mit einem anderen numerischen Verfahren eine korrekte Lösung erhalten werden.If the error has occurred in a 1-dimensional subarea, the program flow branches to step S17 by executing a second error diagnosis. With the second error diagnosis, another solution method for solving this 1-dimensional sub-area, e.g. a secant method was used. If the error lies in a specific problem of the Newton method, a correct solution can be obtained with another numerical method.
Im Schritt S18 wird abgefragt, ob eine Lösung für den 1- dimensionalen Teilbereich gefunden werden konnte. Falls dies nicht der Fall ist, wird im Schritt S19 der Programmablauf wieder auf das Hauptprogramm übergeben und im Schritt S8 der 1-dimensionale Teilbereich angegeben, der den Fehler verursacht hat. Wird bei der Abfrage im Schritt S18 festgestellt, daß dieser 1-dimensionale Teilbereich gelöst werden konnte, wird der Programmablauf auf den Schritt S20 (Fig. 3b) übergeben.In step S18, a query is made as to whether a solution for the 1-dimensional subarea could be found. If this is not the case, the program flow is transferred back to the main program in step S19 and the 1-dimensional subarea that caused the error is specified in step S8. If the query in step S18 determines that this 1-dimensional subarea could be solved, the program flow is transferred to step S20 (FIG. 3b).
Der Programmablauf geht auf den Schritt S20 über, wenn bei der Abfrage im Schritt S16 festgestellt wird, daß kein Fehler in den 1-dimensionalen Teilbereichen vorliegt. Hierbei wird geprüft, ob ein Fehler bei einem der n-dimensionalen Teilbereichen (n > 1), vorliegt. Diese n-dimensionalen Teilbereiche sind in Fig. 5c als Blöcke 12, 13 eingezeichnet.The program flow goes to step S20 if it is determined in the query in step S16 that there is no error in the 1-dimensional subareas. It is checked whether there is an error in one of the n-dimensional sub-areas (n> 1). These n-dimensional partial areas are shown in FIG. 5c as blocks 12, 13.
Wird bei der Abfrage des Schrittes S20 festgestellt, daß ein Fehler in den n-dimensionalen Blöcken vorliegt, so geht der Programmablauf auf den Schritt S21 über, mit dem eine dritte Fehlerdiagnose ausgeführt wird. Bei der dritten Fehlerdiagno- se wird der aktuelle, „problematische" Block mit einem bzgl. der Newton-Iteration früheren, noch „gutartigen" Block verglichen. Aufgrund dieses Vergleiches kann zum einen der „problematische" Block korrigiert werden, so daß das Lösungsverfahren fortgesetzt werden kann, oder es kann automatisch festgestellt werden, daß ein grundsätzlicher Fehler vorliegt, der weder mit dem Newton-Verfahren noch einem alternativen Verfahren lösbar ist.If it is determined in the interrogation of step S20 that there is an error in the n-dimensional blocks, the program flow goes to step S21, with which a third error diagnosis is carried out. In the third error diagnosis, the current, “problematic” block is compared with a block that was “benign” earlier than the Newton iteration. On the one hand, this comparison enables the "problematic" block to be corrected so that the solution process can be continued, or it can be automatically determined that there is a fundamental error that cannot be solved with either the Newton method or an alternative method.
In der darauffolgenden Abfrage des Schrittes S22 wird abge- fragt, ob der durch diesen „problematischen" Block verursachte Fehler grundsätzlich nicht lösbar ist. Ist das Ergebnis der Abfrage ja, so wird im Schritt S23 der Programmablauf auf das Hauptprogramm übergeben und im Schritt S8 die im Schritt S21 lokalisierten, den Fehler verursachenden Matrixelemente ausgegeben.In the subsequent query of step S22, it is queried whether the error caused by this “problematic” block cannot be solved in principle. If the result of the query is yes, the program sequence is transferred to the main program in step S23 and the program sequence is transferred in step S8 output in step S21, localized, causing the error.
Ergibt die Abfrage des Schrittes S22, daß ein grundsätzlich lösbarer Fehler vorliegt, so wird im Schritt S24 ein weiteres Unterprogramm zur Lösung des Blockes aufgerufen. Dieses Unterprogramm wird unten näher erläutert.If the query in step S22 reveals that there is a fundamentally solvable error, step S24 becomes another Subroutine called to solve the block. This subroutine is explained in more detail below.
Nachfolgend geht der Programmablauf auf die Abfrage des Schrittes S25 über, mit der geprüft wird, ob bereits alle 1- dimensionalen und n-dimensionalen Teilbereiche der Jacobimatrix abgearbeitet worden sind. Falls das Ergebnis dieser Abfrage nein ist, geht der Programmablauf auf den Schritt S15 zurück, mit dem die weiteren Teilbereiche der Jacobimatrix gelöst werden.The program sequence then goes to the query of step S25, with which it is checked whether all 1-dimensional and n-dimensional subareas of the Jacobian matrix have already been processed. If the result of this query is no, the program flow goes back to step S15, with which the further subregions of the Jacobian matrix are solved.
Ist kein Fehler beim Lösen der n-dimensionalen Blöcke aufgetreten, so geht der Programmablauf von der Abfrage im Schritt S20 unmittelbar auf die Abfrage des Schrittes S25 über. Er- gibt sich bei der Abfrage im Schritt S25, daß alle Blöcke abgearbeitet worden sind, dann geht der Programmablauf wieder auf das Hauptprogramm zurück S26, mit dem im Schritt S4 die Funktionswerte überprüft werden und falls diese innerhalb des gewünschten Bereichs liegen wird im Schritt S5 das Programm beendet.If no error has occurred in solving the n-dimensional blocks, the program flow passes from the query in step S20 to the query in step S25. If the query in step S25 reveals that all blocks have been processed, then the program flow goes back to the main program S26, with which the function values are checked in step S4 and if these are within the desired range in step S5 the program ends.
Nachfolgend wird das mit dem Schritt S24 aufgerufene Unterprogramm zur Lösung des n-dimensionalen Blockes näher erläutert. Mit dem Schritt S27 wird das Unterprogramm zur Lösung des Blockes gestartet. Im Schritt S28 wird mit einem ersten Lösungsverfahren versucht, den „problematischen" Block zu lösen. Hierbei wird ein Newton-Verfahren mit globaler Dämpfung angewandt. Die globale Dämpfung bedeutet, daß bei jedem Iterationsvorgang die Jacobimatrix mit einem Dämpfungsfaktor λ multipliziert wird, der im Bereich zwischen 0 und 1 liegt, wodurch die sich bei jedem Iterationsvorgang sich ergebende Änderung des Lösungsvektors x vermindert wird. Mit dem gedämpften Lösungsverfahren können oftmals Jacobimatrizen ge- löst werden, die mit dem ungedämpften Newton-Verfahren nicht lösbar sind. Durch das gedämpfte Lösungsverfahren wird jedoch die Lösungsgeschwindigkeit verlangsamt, das heißt, daß in derThe subroutine called in step S24 for solving the n-dimensional block is explained in more detail below. The subroutine for solving the block is started with step S27. In step S28, an attempt is made to solve the “problematic” block with a first solution method. A Newton method with global damping is used here. The global damping means that with each iteration process the Jacobian matrix is multiplied by a damping factor λ which is in the range is between 0 and 1, which reduces the change in the solution vector x that arises with each iteration process. With the damped solution method, Jacobi matrices can often be solved that cannot be solved with the undamped Newton method. However, the speed of the solution is slowed down by the damped solution method, that is to say that in the
Regel mehr Iterationsschritte bis zum Erreichen der gewünsch- ten Genauigkeit notwendig sind.Usually more iteration steps are necessary until the desired accuracy is reached.
In der nachfolgenden Abfrage S29 wird geprüft, ob eine Lösung gefunden worden ist. Falls eine Lösung gefunden worden ist, wird der Programmablauf auf den Schritt S30 übergeben, mit dem der Programmablauf zurück zum Unterprogramm des Diagnoseverfahrens weitergeleitet wird, das dann über die Schritte S25 und S15 die weiteren Teilbereich löst oder über den Schritt S26 zurück zum Hauptprogramm kommt, in dem über die Schritt S4 und S5 das Programm beendet wird.In the following query S29 it is checked whether a solution has been found. If a solution has been found, the program flow is transferred to step S30, with which the program flow is forwarded back to the subroutine of the diagnostic method, which then resolves the further subareas via steps S25 and S15 or comes back to the main program via step S26, in which the program is ended via steps S4 and S5.
Wird im Schritt S29 festgestellt, daß keine Lösung gefunden worden ist, wird auf den Schritt S31 verzweigt, mit dem ein Newton-Verfahren mit lokaler Dämpfung ausgeführt wird. Bei der lokalen Dämpfung werden die einzelnen Matrixelemente des Blockes mit unterschiedlichen Dämpfungsfaktoren multipliziert, wodurch das Lösungsverhalten des Newton-Verfahrens bereichsweise gezielt beeinflußt werden kann.If it is determined in step S29 that no solution has been found, a branch is made to step S31, with which a Newton method with local damping is carried out. In the case of local damping, the individual matrix elements of the block are multiplied by different damping factors, as a result of which the solution behavior of the Newton method can be influenced in specific areas.
Danach wird wiederum in einer Abfrage S32 geprüft, ob eine Lösung gefunden worden ist. Ergibt die Abfrage, daß eine Lösung gefunden worden ist, geht der Programmablauf wieder auf den Schritt S30 über, ansonsten verzweigt er auf den Schritt S33, mit dem anstelle des Newton-Verfahrens ein Gradientenverfahren mit globaler Dämpfung durchgeführt wird. Danach wird mit einer Abfrage S34 geprüft, ob eine Lösung gefunden worden ist. Falls eine Lösung gefunden worden ist, geht der Programmablauf wieder auf den Schritt S30 über, ansonsten wird auf den Schritt S35 verzweigt, bei dem ein Gradientenverfahren mit lokaler Dämpfung ausgeführt wird.Then a query S32 is used to check whether a solution has been found. If the query shows that a solution has been found, the program flow goes back to step S30, otherwise it branches to step S33, with which a gradient method with global damping is carried out instead of the Newton method. A query S34 is then used to check whether a solution has been found. If a solution has been found, the program flow goes back to step S30, otherwise the program branches to step S35, in which a gradient method with local damping is carried out.
Bei einer nachfolgenden Abfrage S36 wird wiederum geprüft, ob eine Lösung gefunden worden ist. Ergibt die Abfrage, daß eine Lösung gefunden worden ist, so geht der Programmablauf auf den Schritt S30 über, ansonsten wird er auf den Schritt S37 verzweigt.In a subsequent query S36, it is again checked whether a solution has been found. If the query shows that a solution has been found, the program flow goes to step S30, otherwise it branches to step S37.
Mit dem Schritt S37 wird ein sequentielles Lösungsverfahren ausgeführt, das jede Funktion des aktuellen Blockes bzw. jede Variable nacheinander löst. Hierzu gibt es unterschiedliche Strategien, die jedoch alle auf einen gemeinsamen dreiecks- förmigen Schema beruhen:Step S37 executes a sequential solving method that solves each function of the current block or each variable one after the other. There are different strategies for doing this, but they are all based on a common triangular pattern:
Es wird zunächst ein Lösungsschritt für eine Variable Xi des aktuellen Blockes durchgeführt, es wird danach ein Lösungsschritt für die Variablen Xi und x2 des aktuellen Blockes durchgeführt, es wird danach ein Lösungsschritt für die Variablen xi, x2 und x des aktuellen Blockes durchgeführt, es wird danach ein Lösungsschritt für die Variablen xl r x2, x3 und x des aktuellen Blockes durchgeführt, usw.First a solution step is carried out for a variable Xi of the current block, a solution step is then carried out for the variables Xi and x 2 of the current block, a solution step is then carried out for the variables xi, x 2 and x of the current block, a solution step for the variables x lr x 2 , x 3 and x of the current block is then carried out, etc.
Dies führt zu einem dreiecksförmigen Lösungsschema, bei dem der Lösungsschritt für eine Variable x1+ι die schon vorher ermittelten Variablen Xi , . . . , xx möglicherweise beeinflußt. Deshalb werden diese Variablen xi, ..., xλ durch die weiteren Lösungsschritte korrigiert. Die Reihenfolge mit welcher die Variablen x abgearbeitet werden, hängt davon ab, von wieviel Funktionen fx, ..., fn des aktuellen Blockes die Variable xx abhängt. Diejenige Variable mit den meisten Abhängigkeiten wird zuerst bearbeitet, wohingegen die Variable mit den geringsten Abhängigkeiten zuletzt bearbeitet wird.This leads to a triangular solution scheme, in which the solution step for a variable x 1+ ι the variables Xi,. , , , x x may be affected. Therefore, these variables xi, ..., x λ are corrected by the further solution steps. The order in which the variables x are processed depends on how many functions f x , ..., f n of the current block the variable x x depends on. The variable with the most dependencies is processed first, whereas the variable with the least dependencies is processed last.
Ob dieses Verfahren eine Lösung ergibt, wird im Schritt S38 geprüft. Ergibt sich eine Lösung, so wird der Programmablauf auf den Schritt S30 übergeben, ansonsten wird der Programmablauf auf einen Schritt S39 verzweigt. Mit dem Schritt S39 wird ein weiteres sequentielles Verfahren ausgeführt, das sich von demjenigen gemäß dem Schritt S37 dadurch unterschei- det, daß der absolut kleinste Eintrag in der Hauptdiagonalen des aktuellen Blockes zuerst bearbeitet wird und der absolut größte Eintrag in der Hauptdiagonalen zuletzt bearbeitet wird. Je kleiner der Eintrag in der Hauptdiagonalen ist, desto größer ist seine Auswirkung auf die entsprechende Varia- ble Xi, weshalb die kleineren Einträge zuerst bearbeitet werden.A check is made in step S38 as to whether this method yields a solution. If a solution is found, the program flow is transferred to step S30, otherwise the program flow is branched to step S39. With step S39, a further sequential method is carried out, which differs from that according to step S37 in that the absolutely smallest entry in the main diagonal of the current block is processed first and the absolutely largest entry in the main diagonal is processed last. The smaller the entry in the main diagonal, the greater its impact on the corresponding variable Xi, which is why the smaller entries are processed first.
In einer weiteren Abfrage S40 wird geprüft, ob mit dem Schritt S39 eine Lösung des Blockes gefunden worden ist. Wenn das Ergebnis der Abfrage ja ist, wird der Programmablauf auf den Schritt S30 übergeben, ansonsten wird auf den Schritt S41 verzweigt, mit dem der Programmablauf auf den Schritt S6 des Hauptprogrammes mit der Maßgabe übergeben wird, daß auf den Schritt S8 verzweigt wird, indem die den Fehler verursachen- den Elemente der Jacobimatrix angezeigt werden.In a further query S40, it is checked whether a solution to the block has been found in step S39. If the result of the query is yes, the program flow is transferred to step S30, otherwise the program branches to step S41, with which the program flow is transferred to step S6 of the main program with the proviso that branching to step S8 takes place by the elements of the Jacobian matrix causing the error are displayed.
Mit dem erfindungsgemäßen Verfahren werden bei Auftreten eines Fehlers beim Lösen der Jacobimatrix die Matrixelemente, die den Fehler verursacht haben, bzw. ein Bereich, in dem derartige Matrixelemente enthalten sind, lokalisiert. Es wird geprüft, ob eine automatische Korrektur und Behebung des Fehlers möglich ist und diese gegebenenfalls durchgeführt. Ansonsten wird der Bereich, indem sich die fehlerverursachenden Elemente befinden, dem Anwender angezeigt. Vorzugsweise wird hierbei auch die entsprechende physikalische Bedeutung der einzelnen Matrixelemente ausgegeben, durch die dem Anwender die Fehlerbehebung erheblich erleichtert wird.With the method according to the invention, when an error occurs when the Jacobi matrix is solved, the matrix elements that caused the error, or an area in which such matrix elements are contained, are localized. It is checked whether an automatic correction and correction of the error is possible and if necessary carried out. Otherwise, the area in which the error causing Elements are displayed to the user. In this case, the corresponding physical meaning of the individual matrix elements is preferably also output, which considerably simplifies troubleshooting for the user.
Die Erfindung ist oben anhand eines Ausführungsbeispieles erläutert worden. Sie ist jedoch nicht auf dieses konkrete Aus- führungsbeispiel beschränkt. Im Rahmen der Erfindung ist es z.B. auch möglich, für die in den Schritten S28, S31, S33, S35, S37 und S39 angegebenen Verfahren alternative numerische Verfahren, wie z.B. ein Sekantenverfahren oder dergleichen anzuwenden. Es ist auch möglich, anstelle der Permutation auf die untere Blockdreiecksgestalt, die Matrix auf eine obere Blockdreiecksgestalt umzuformen.The invention has been explained above using an exemplary embodiment. However, it is not limited to this specific exemplary embodiment. In the context of the invention it is e.g. also possible, for the methods specified in steps S28, S31, S33, S35, S37 and S39 alternative numerical methods, e.g. to apply a secant method or the like. Instead of permutation to the lower block triangular shape, it is also possible to convert the matrix to an upper block triangular shape.
Ein wesentlicher Aspekt der Erfindung liegt darin, daß bei einem Fehler im Lösungsverfahren zum Lösen des Gleichungssy- stemes durch Permutation der beim Lösungsverfahren eingesetzten Matrix der Fehler lokalisiert wird. Hierdurch wird es dem Anwender wesentlich erleichtert, eine entsprechende Korrektur auszuführen, oder es ist sogar eine automatische Behebung des Fehlers durch die Korrektur der Matrix oder durch den Einsatz eines weiteren Lösungsverfahrens möglich. Dieses weitere Lösungsverfahren wird bei dem oben beschriebenen Ausführungs- beispiel jeweils nur für den mit dem Fehler behafteten Teilbereich der Jacobimatrix durchgeführt. Gleichermaßen ist es im Rahmen der Erfindung auch möglich, beim Auftreten eines entsprechenden Fehlers, das im Hauptprogramm angewandte Lösungsverfahren (hier Newton-Verfahren) durch ein alternatives Verfahren zu ersetzen. Die einzelnen Teilschritte können auch durch bekannte alternative Verfahrensschritte ersetzt werden, wie z.B. das im Schritt S4 angegebene Kriterium (fn(x) < r) . Hierzu gibt es im Stand der Technik bereits alternative Abbruchkriterien. An essential aspect of the invention is that in the event of an error in the solution method for solving the equation system, the error is localized by permutation of the matrix used in the solution method. This makes it considerably easier for the user to carry out a corresponding correction, or it is even possible to automatically correct the error by correcting the matrix or by using a further solution method. In the exemplary embodiment described above, this further solution method is only carried out for the sub-area of the Jacobian matrix which is subject to the error. Likewise, it is also possible within the scope of the invention to replace the solution method used in the main program (here the Newton method) with an alternative method when a corresponding error occurs. The individual substeps can also be replaced by known alternative method steps, such as the criterion (f n (x) <r) specified in step S4. There are alternative termination criteria for this in the prior art.

Claims

Patentansprüche claims
1. Simulationsverfahren, bei welchem ein ein physikalisches Modell, insbesondere ein Kraftwerk, beschreibendes nicht- lineares Gleichungssystem mittels eines vorbestimmten numerischen Lösungsverfahrens gelöst wird, wobei das Gleichungssystem als Matrix dargestellt wird, g e k e n n z e i c h n e t d u r c h folgenden Schritte: Feststellen eines Fehlers beim Lösen des Gleichungssyste- es,1. Simulation process in which a non-linear system of equations describing a physical model, in particular a power plant, is solved by means of a predetermined numerical solution method, the system of equations being represented as a matrix, the following steps being carried out:
Permutation der Matrix auf eine Form, die ein Lokalisieren des Fehlers erlaubt, und Feststellen des Teilbereichs der Matrix, in dem sich das bzw. die den Fehler verursachenden Matrixelemente befinden.Permutation of the matrix to a form that allows the error to be localized, and determination of the partial area of the matrix in which the matrix element (s) causing the error are located.
2. Simulationsverfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, daß der bzw. die den Fehler verursachenden Matrixelemente enthaltenden Teilbereiche der Matrix ausgegeben werden.2. Simulation method according to claim 1, so that the partial regions of the matrix containing the matrix elements causing the error are output.
3. Simulationsverfahren nach Anspruch 2, d a d u r c h g e k e n n z e i c h n e t, daß das Ausgeben der bzw. die die fehlerhaften Matrixelemente enthaltenden Teilbereiche der Matrix derart erfolgt, daß die Teilbereiche bzw. die den Fehler verursachenden Matrixelemente mit ihrer physikalischen Bedeutung belegt werden und diese dem Anwender angezeigt wird.3. Simulation method according to claim 2, so that the partial regions of the matrix containing the defective matrix elements are output in such a way that the partial regions or the matrix elements causing the errors are assigned their physical meaning and this is displayed to the user.
Simulationsverfahren nach einem der Ansprüche 1 bis 3, d a d u r c h g e k e n n z e i c h n e t, daß das vorbestimmte numerische Lösungsverfahren ein Iterationsverfahren ist.Simulation method according to one of claims 1 to 3, characterized in that the predetermined numerical solution method is an iteration method.
5. Simulationsverfahren nach Anspruch 4, d a d u r c h g e k e n n z e i c h n e t, daß das Iterationsverfahren das Newton-Verfahren ist und die das Gleichungssystem darstellende Matrix eine Jacobimatrix ist.5. Simulation method according to claim 4, so that the iteration method is the Newton method and the matrix representing the system of equations is a Jacobian matrix.
6. Simulationsverfahren nach einem der Ansprüche 1 bis 5, d a d u r c h g e k e n n z e i c h n e t, daß der bzw. die den Fehler verursachende Matrixelemente enthaltenden Teilbereiche mittels eines weiteren Lösungs- verfahrens gelöst werden.6. Simulation method according to one of claims 1 to 5, so that the partial areas containing the matrix elements causing the error are solved by means of a further solution method.
7. Simulationsverfahren nach Anspruch 6, d a d u r c h g e k e n n z e i c h n e t, daß das weitere Lösungsverfahren ein Newton-Verfahren mit globaler Dämpfung, ein Newton-Verfahren mit lokaler Dä p- fung, ein Gradientenverfahren, ein Gradientenverfahren mit globaler Dämpfung, ein Gradientenverfahren mit lokaler Dämpfung, ein Sekantenverfahren und/oder ein sequentielles Verfahren ist.7. Simulation method according to claim 6, characterized in that the further solution method a Newton method with global damping, a Newton method with local damping, a gradient method, a gradient method with global damping, a gradient method with local damping, a secant method and / or is a sequential process.
8. Simulationsverfahren nach einem der Ansprüche 1 bis 7, d a d u r c h g e k e n n z e i c h n e t, daß bei der Permutation der Matrix diese auf Hauptdiagonalenform umgeformt wird (S10) und überprüft wird, ob die Permutation erfolgreich durchgeführt werden konnte (Sll) .8. Simulation method according to one of claims 1 to 7, so that the permutation of the matrix is converted to the main diagonal form (S10) and a check is carried out to determine whether the permutation could be carried out successfully (Sll).
9. Simulationsverfahren nach Anspruch 8, d a d u r c h g e k e n n z e i c h n e t, daß, wenn die Permutation auf die Hauptdiagonalenform nicht erfolgreich durchgeführt werden konnte, ermittelt wird (S12), welche Matrixelemente der Hauptdiagonalen gleich Null sind und die entsprechenden Zeilen der Matrix als die Teilbereiche ausgegeben werden, die den Fehler verursachenden Matrixelemente enthalten.9. Simulation method according to claim 8, characterized in that if the permutation to the main diagonal shape could not be performed successfully, it is determined (S12) which matrix elements of the main diagonals are zero and the corresponding rows of the matrix are output as the partial areas which contain the matrix elements causing the error.
10. Simulationsverfahren nach Anspruch 8 oder 9, d a d u r c h g e k e n n z e i c h n e t, daß , wenn die Permutation auf die Hauptdiagonalenform erfolgreich durchgeführt werden konnte, die Matrix auf Blockdreiecksgestalt umgeformt wird, in der die Matrix 1-dιmensιonale und n-dimensionale Teilbereiche (mit n < 1) aufweist (S14) .10. Simulation method according to claim 8 or 9, characterized in that if the permutation on the main diagonal shape could be carried out successfully, the matrix is converted into a block triangular shape in which the matrix has 1-dimensional and n-dimensional partial areas (with n <1) (S14).
11. Simulationsverfahren nach Anspruch 10, d a d u r c h g e k e n n z e i c h n e t, daß die einzelnen Teilbereiche separat gelost werden (S15) .11. Simulation method according to claim 10, so that the individual partial areas are solved separately (S15).
12. Simulationsverfahren nach Anspruch 11, d a d u r c h g e k e n n z e i c h n e t, daß überprüft wird, ob beim Losen der 1-dιmensιonalen Teilbereiche em Fehler aufgetreten ist (S16) , wobei bei der Feststellung eines Fehlers em alternatives Losungs- verfahren ausgeführt wird.12. The simulation method as claimed in claim 11, so that a check is carried out to determine whether an error has occurred during the loosening of the 1-dimensional portions (S16), an alternative solution method being carried out when a fault is found.
13. Simulationsverfahren nach Anspruch 12, d a d u r c h g e k e n n z e i c h n e t, daß überprüft wird, ob mit dem alternativen Losungsverfahren eine Losung gefunden worden ist, wobei wenn keine Losung gefunden worden ist, der nicht losbare Teilbe- reich als derjenige ausgegeben wird, der den Fehler verursacht hat (S19, S8) .13. Simulation method according to claim 12, characterized in that it is checked whether a solution has been found with the alternative solution method, and if no solution has been found, the non-releasable partial rich is output as the one that caused the error (S19, S8).
14. Simulationsverfahren nach einem der Ansprüche 11 bis 13, d a d u r c h g e k e n n z e i c h n e t, daß überprüft wird, ob beim Lösen der n-dimensionalen Teilbereiche ein Fehler aufgetreten ist (S20) , wobei bei der Feststellung eines Fehlers die den Fehler verursachenden Matrixelemente innerhalb des Blockes durch einen Vergleich mit im numerischen Lösungsverfahren früher erstellten korrespondierenden Blöcken ermittelt werden (S21),wobei dann festgestellt wird ob ein solcher n- dimensionaler Block grundsätzlich nicht lösbar ist.14. Simulation method according to one of claims 11 to 13, characterized in that a check is made as to whether an error has occurred when the n-dimensional subareas have been solved (S20), the matrix elements within the block causing the error being determined by a comparison when an error is detected are determined using corresponding blocks previously created in the numerical solution method (S21), it then being determined whether such an n-dimensional block is fundamentally not solvable.
15. Simulationsverfahren nach Anspruch 14, d a d u r c h g e k e n n z e i c h n e t, daß die den Fehler verursachenden Matrixelemente ausgegeben werden, falls festgestellt worden ist, daß der Block grundsätzlich nicht lösbar ist.15. The simulation method as claimed in claim 14, so that the matrix elements causing the error are output if it has been determined that the block is fundamentally not solvable.
16. Simulationsverfahren nach Anspruch 14 oder 15, d a d u r c h g e k e n n z e i c h n e t, daß der n-dimensionale Block mit einem oder mehreren alternativen numerischen Lösungsverfahren bearbeitet wird (S24), falls festgestellt worden ist, daß er grundsätzlich lösbar ist.16. Simulation method according to claim 14 or 15, so that the n-dimensional block is processed with one or more alternative numerical solution methods (S24) if it has been determined that it is fundamentally solvable.
17. Simulationsverfahren nach Anspruch 16, d a d u r c h g e k e n n z e i c h n e t, daß jeweils nach Ausführung eines der mehreren alternativen numerischen Lösungsverfahren (S28, S31, S33, S35, S37, S39) überprüft wird (S29, S32, S34, S36, S38, S40) , ob eine Lösung gefunden worden ist, wobei falls eine Lösung gefunden worden ist, die weiteren17. Simulation method according to claim 16, characterized in that after execution of one of the several alternative numerical solution methods (S28, S31, S33, S35, S37, S39) is checked (S29, S32, S34, S36, S38, S40) whether a Solution has been found, whereby if a solution has been found, the others
Teilbereiche der Matrix gelöst werden (S30, S15) , oder falls keine weitere Lösung gefunden worden ist, die denSub-areas of the matrix are solved (S30, S15), or if no further solution has been found that the
Fehler verursachenden Teilbereiche ausgegeben werden (S40, S8) .Sub-areas causing errors are output (S40, S8).
18. Computerprogramm zum Simulieren eines physikalischen Modells, insbesondere eines Kraftwerkes, wobei das Computerprogramm das in einem der vorhergehenden Ansprüche angegebene Simulationsverfahren ausführt.18. Computer program for simulating a physical model, in particular a power plant, the computer program executing the simulation method specified in one of the preceding claims.
19. Computerprogramm nach Anspruch 18, d a d u r c h g e k e n n z e i c h n e t, daß das Computerprogramm Gleichungsteilsysteme umfaßt, die jeweils ein Teil des gesamten Modells beschreiben und die zur Aufstellung einer zu lösenden Matrix miteinander kombiniert werden können.19. Computer program according to claim 18, so that the computer program comprises equation subsystems which each describe a part of the entire model and which can be combined with one another to set up a matrix to be solved.
20. Computerprogramm nach Anspruch 19, d a d u r c h g e k e n n z e i c h n e t, daß die Gleichungsteilsysteme jeweils ein Aggregat eines Kraftwerkes, wie z.B. eine Heizfläche, eine Trommel, Rohrleitungen und dgl . , beschreiben. 20.Computer program according to claim 19, d a d u r c h g e k e n n z e i c h n e t that the equation subsystems each an aggregate of a power plant, such as a heating surface, a drum, pipes and the like. , describe.
PCT/DE2000/000996 1999-04-29 2000-04-03 Simulation method and computer program for simulating a physical model WO2000067082A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19919590 1999-04-29
DE19919590.0 1999-04-29

Publications (1)

Publication Number Publication Date
WO2000067082A1 true WO2000067082A1 (en) 2000-11-09

Family

ID=7906336

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2000/000996 WO2000067082A1 (en) 1999-04-29 2000-04-03 Simulation method and computer program for simulating a physical model

Country Status (1)

Country Link
WO (1) WO2000067082A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642271A (en) * 2021-08-20 2021-11-12 南京航空航天大学 Model-based aeroengine performance recovery control method and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748508A (en) * 1992-12-23 1998-05-05 Baleanu; Michael-Alin Method and device for signal analysis, process identification and monitoring of a technical process

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748508A (en) * 1992-12-23 1998-05-05 Baleanu; Michael-Alin Method and device for signal analysis, process identification and monitoring of a technical process

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
P.FELDMANN ET AL: "EFFICIENT FREQUENCY DOMAIN ANALYSIS OF LARGE NONLINEAR ANALOG CIRCUITS", PROCEEDINGS OF THE IEEE 1996 CUSTOM INTEGRATED CIRCUITS CONFERENCE, May 1996 (1996-05-01), USA, pages 461 - 464, XP002066416 *
R-TEWARSON ET AL: "USE OF SPARSE MATRIX TECHNIQUES IN NUMERICAL SOLUTION OF DIFFERENTIAL EQUATIONS FOR RENAL COUNTERFLOW SYSTEMS", COMPUTERS AND BIOMEDICAL RESEARCH, vol. 9, no. 6, December 1976 (1976-12-01), USA, pages 507 - 520, XP000934343 *
ZE-YI WANG ET AL: "AN APPROACH TO CONSTRUCT PRE-CONDITIONING MATRICES FOR BLOCK ITERATION OF LINEAR EQUATIONS", IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN, vol. 11, no. 11, November 1992 (1992-11-01), USA, pages 1334 - 1343, XP000934181 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642271A (en) * 2021-08-20 2021-11-12 南京航空航天大学 Model-based aeroengine performance recovery control method and device
CN113642271B (en) * 2021-08-20 2022-07-01 南京航空航天大学 Model-based aeroengine performance recovery control method and device

Similar Documents

Publication Publication Date Title
DE112016007220T5 (en) Ladder program processing support device and ladder program processing method
DE20321699U1 (en) Computer for performing a simulation method for machining a workpiece by a machine tool
DE4334294C1 (en) Variable length string processor
DE102016013434A1 (en) Sequence control programmer, sequencing program and workstation
DE3851014T2 (en) A system containing a large number of rules with a predicted inference strategy.
DE102017222327A1 (en) Method for the automated process control of a digital printing machine
DE102010042999A1 (en) Method for provision of control menu for field device, involves displaying preset dependent parameters along with specific parameter while calling specific parameter among several parameters displayed in control menu on user interface
DE2245284B2 (en) Data processing system
DE102005045716A1 (en) Method and auxiliary device for creating and checking the circuit diagram for a circuit to be integrated
WO2000067082A1 (en) Simulation method and computer program for simulating a physical model
EP1947567A2 (en) Device and method for automatically testing model-based functions
WO1998001812A1 (en) Computer-assisted process for determining a system consistency function
DE10325513B4 (en) Method and apparatus for creating a behavioral aspect of a formal verification circuit
WO2002097679A2 (en) Method for providing error information concerning inconsistencies in a system of differential equations
DE10322837A1 (en) Process for configuring an automation system
EP0662226B1 (en) Method of processing an application program on a parallel-computer system
WO2008074610A1 (en) Computer-aided method for online configuration and ordering of an appliance
EP1483633B1 (en) Method for simulating a technical system and simulator
DE3613740C2 (en)
EP4014111B1 (en) Method and device for supporting a robotic process automation
DE102005010027B4 (en) Method for the computer-aided operation of a technical system
DE1424753C (en) Control device for digital computing devices
EP1647676B1 (en) Method for simulating the operating characteristics of a steam turbine plant
DE102022209080A1 (en) Method for calibrating a sensor, computing unit and sensor system
DE102020111780A1 (en) Method and data processing device for recognizing an incorrectly entered command and a computer program

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase