1. Field of the Invention
This invention relates to method and apparatus for the analysis of electrical circuits, and particularly to the analysis of circuits utilized in a telecommunications system.
2. Related Art and Other Considerations
In various fields of technical endeavor it is often important to determine a transfer function between two arbitrary points of an electrical circuit or to analyze an electrical circuit for purposes such as, for example, optimizing component values. To this end various software products purport to model and analyze analogue electronic circuits.
Some of these circuit analysis products make use of a general method, known as modified nodal analysis, for constructing and solving the circuit equations. Raymond A. DeCarlo and Pen-Min Lin, “Linear Circuit Analysis”, Oxford University Press, 2001, ISBN 0-19-51366-7. Nodal Analysis is based on Kirchoff's Current Law (KCL), i.e., the sum of all currents entering and leaving a node is zero. Each entering/leaving current depends on the branch conductance. A set of nodal equations is obtained by applying KCL to each node. Solving these equations yields the potentials of all branches in the circuit. A number of elements, such as dependent voltage/current sources require auxiliary equations for determining their unknown voltages or currents. KCL applies not only for nodes, but also for the closed curves or surfaces, as Gaussian curves, Gaussian surfaces or supernodes. For lumped circuits, this implies that the sum of the currents leaving a supernode (which has a distinctly separated inside and outside) is zero.
Among the software products which model and analyze analogue electronic circuits is Analog Insydes, a Mathematica toolbox, which has been employed for custom design of analog integrated circuits. Analog Insydes lends itself to analysis of non-linear devices, symbolic approximation strategies, and especially to approximations of non-linear differential equations.
Analyzing electrical circuits in the telecommunications industry has special considerations and requirements which are not fully satisfied by existing analysis products. But whereas some existing analysis products are particularly applicable for non-linear devices, in telecommunications circuits the non-linearity of certain devices (such as line drivers, for example) is generally quite small and of negligible influence on the overall telecommunications system. In telecommunications systems, other factors such as the value spread of components incorporated in the circuitry of the system is of significantly greater importance and can cause severe problems (e.g., for high-speed data transceivers).
Moreover, existing circuit analysis products such as Analog Insydes do not provide support for some devices which are often employed in telecommunications environments, such as cables/communication channels, non-ideal transformers with several windings, digital filters, etc. For example, transformers with more than two windings are very difficult to model and analyze. Yet transformers with three, four, or even more windings are commonly utilized in telecommunications applications. Thus, non-support for such telecommunications devices drastically curtails employment of the existing circuit analysis products in the telecommunications environment.
Some circuit analysis products function essentially as simulators and analyze signals in the time domain. Included among such simulators are products known as PSpice, TINA, Saber, Cossap, and Eldo. These simulators lack full suitability for analysis of telecommunication circuits.
Analysis of an electrical circuit is performed using a computer program product and a method. In accordance with the program and the method, an electrical circuit analyzer generates an admittance matrix for an electrical circuit which is being analyzed. The admittance matrix is part of an equation system YV=I, where I is a current vector, Y is the admittance matrix, and V is the potential (voltage) vector.
Whereas conventional admittance matrices includes numerical expressions for components of the electrical system, in accordance with the program and method herein described the admittance matrix includes symbolic expressions rather than numerical expressions for at least some components of the electrical circuit, and in some cases for all components of the electrical circuit. The electrical circuit analyzer linearly and algebraically solves an equation system including the admittance matrix for analyzing at least a part of the electrical circuit. That is, the electrical circuit analyzer uses symbolic computation to solve the equation system.
By using the symbolic processing of the electrical circuit analyzer, a signal is represented as a formula, instead of a stream of numbers. The required function is expressed in terms of symbols until it becomes convenient to compute it numerically. Thus, the electrical circuit analyzer uses symbolic matrix formulations of electrical circuits and formal techniques to solve equations resulting in closed-form symbolic expressions. There is no need to use sophisticated techniques for integrating differential equations.
The equation system including the admittance matrix can be applied or utilized in various types of analyses, including (1) determining a transfer function between specified nodes of the electrical circuit; (2) optimizing a component of the electrical circuit, (3) perturbation/sensitivity analysis, and (4) general circuit design.
The electrical circuit analyzer sets up the admittance matrix Y by following a set of “rules”. There is a different rule for each different type of component included in the electrical circuit. The column and row positions of the admittance matrix Y affected by the inclusion of the circuit element are typically related to the particular nodes of the circuit to which the circuit component is connected. Special rules are provided for certain telecommunications components, such as multi-winded transformers, loading coils, line-drivers, analogue cables, and filters. Inclusion of these special rules for telecommunications components enables the electrical circuit analyzer to be more applicable to telecommunications circuits than conventional analyzers.
In general, matrix equations can become increasingly time-consuming and especially memory-consuming when dealing with very large circuits containing many components. Additionally, some components require extensive use of auxiliary equations, which may also contribute to memory deficiencies. In order to minimize these factors, as one of its aspects the electrical circuit analyzer implements a block matrix approach rooted in Krakovian algebra, which is related to matrix algebra. Then, using standard programs (such as, for instance, those implemented in Matlab), the Krakovian algorithm can be easily executed.
In accordance with the block/subcircuit approach, an overall circuit can be divided into plural subcircuits, for example a subcircuit and a main circuit, the main circuit being exterior to the subcircuit. In such case, the admittance matrix can comprise separate admittance blocks for each of plural subcircuits, e.g., a separate subcircuit admittance block for the subcircuit and a main circuit admittance block for the main circuit. The admittance blocks for the plural subcircuits are situated on a main diagonal of the admittance matrix. Moreover, connectivity blocks which represent connectivity between the plural subcircuits are situated symmetrically across the main diagonal. The admittance matrix can then be conveniently utilized for analyzing at least a part of the electrical circuit.
In one mode, the generation of the subcircuit admittance block for the subcircuit comprises generating a subblock for the subcircuit; generating an internal voltage subblock for the subcircuit; and, generating a surface connectivity sub block for the subcircuit. The subblock for the subcircuit can be one of an impedance subblock, a chain matrix, a scattering matrix, etc.
In one mode, generation of the connectivity blocks comprises generating a current exchange connectivity block which describes how currents are exchanged between the main circuit and the subcircuit; generating a voltage potential connectivity block which describes voltages at common nodes between the main circuit and the subcircuit; and, inserting the current exchange connectivity block and the voltage potential connectivity block in the admittance matrix.
The subcircuit can be of any configuration and can comprise a telecommunication component such as a multi-winded transformer, a loading coil, a line-driver, an analogue cable, and a filter.
According to an advantage this block/subcircuit approach, the size of the entire admittance matrix comprising block Krakovians corresponding to the subcircuits can be recursively reduced, working only with those matrix blocks that are relevant for a specific application. Moreover, the resulting admittance matrix Y dynamically changes its dimensions depending on the number of equations required to describe a subcircuit. Therefore, the solution matrix has approximately the same dimension as the number of relevant equations.
Expressing a large circuit in terms subcircuits makes the circuit description easier to interpret. The subcircuit concept can be used many times without creating an excessive amount of equations. The subcircuit concept can also save the number of arithmetical operations.
The foregoing and other objects, features, and advantages of the invention will be apparent from the following more particular description of preferred embodiments as illustrated in the accompanying drawings in which reference characters refer to the same parts throughout the various views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
In the following description, for purposes of explanation and not limitation, specific details are set forth such as particular architectures, interfaces, techniques, etc. in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details. In other instances, detailed descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail. Moreover, individual function blocks are shown in some of the figures.
1.0 Circuit Analysis Workstation
The circuit analysis workstation 20 performs analyses of electrical circuits by execution and under control of an electrical circuit analyzer computer program (PROG) product 60. The electrical circuit analyzer computer program product 60 is also referred to herein more briefly as the electrical circuit analyzer or, in some instances, “Formulae”. The electrical circuit analyzer computer program product 60 may be stored on mass storage device 48 and/or another storage media (e.g., an optical or magnetic disk or compact disk, not shown) provided via one of the drives 50, and loaded into executable memory for execution by microprocessor 40.
A communications connection 52 between computer 22 and a network 54 (e.g., the Internet) may be provided to allow the user to access information from the network and/or exchange information with another computer also connected to the network. It should be understood that the illustration provided in
2.0 Electrical Circuit Analyzer: Overview
The electrical circuit analyzer 60 performs symbolic analysis and/or computation for an electrical circuit. The analysis and/or computation may be, for example, to determine a transfer function for or within the circuit. In symbolic processing, a signal is represented as a formula, instead of a stream of numbers. The required function is expressed in terms of symbols and manipulated until it becomes convenient to compute it numerically.
In addition to determining transfer functions, the electrical circuit analyzer 60 can be utilized to optimize a particular component(s) when working in conjunction with other programs or tools. As such, the electrical circuit analyzer 60 can assist the circuit designer to formally express an optimization problem. The inherent complexity of most telecommunication circuits makes this goal very demanding and time-consuming. The electrical circuit analyzer 60 facilitates analysis of very large and complex circuits symbolically, which are otherwise an almost impossible task.
The electrical circuit analyzer computer program product 60 performs the symbolic analysis under the general assumption that the circuit being analyzed is linear and time-invariant. Symbolic analysis gives an insight in the circuit properties, in the behavior and interrelations between various circuit parameters and/or for analyzing transfer-functions. The calculation of the transfer-function(s) is fully automated by electrical circuit analyzer computer program product 60 and several input-output pairs can be defined simultaneously. The transfer function is determined as an expression in terms of circuit elements, frequency, z-variable and constants such as gain, filter coefficients, etc. Hence, the electrical circuit analyzer 60 can be used to evaluate, validate existing circuits or/and to generate functions, which can be used for analyzing the actually developed circuits. In fact, electrical circuit analyzer 60 generates a symbolic expression that would otherwise require an entire program for specific application.
2.1 Electrical Circuit Analyzer: Architecture
The circuit analysis program 62 receives numerous inputs, including (but not limited to) a netlist file. The netlist file, often referenced as the “netlist” is described in more detail subsequently. The netlist file is a specially formatted listing of components of an electrical circuit which is subject to analysis. The netlist file can be obtained in either of two ways. In a first way, the netlist file is obtained from the user as a user-defined input (user defined inputs being represented by symbol 68 in
The circuit analysis program 62 outputs a list of transfer functions to the program 73 (e.g., applications, analysis, etc.) in conjunction with which circuit analysis program 62 operates. As illustrated in
2.2 Electrical Circuit Analyzer: Example Implementation: Matlab Program Run from a Script File
In one example specific implementation illustrated in
The variable initializer program 64 is an application interface that sets all initial variables for an optimization which is to be performed by optimization program 74. Variable initializer program 64 requires that circuit analysis program 62 has been run (and of course that the memory has not been cleared after it has been run). The variable initializer program 64 automatically goes through the netlist, searches for all components that are variable, and asks the user to enter component start values, as well as lower and upper bounds. These values are then passed into a file for use in optimization/further analysis.
In the same example, and as further shown by
Since the PSpice component library does not include models specific for telecommunication applications, such as models for cables/communication channels, and since the components that the electrical circuit analyzer 60 can handle are limited, the PSpice component library FORMULALIB 90 has been created so the user will know which components are allowed and which are not. The FORMULALIB 90 component library has been adapted only for the electrical circuit analyzer 60
3.0 Script Files
The functions of electrical circuit analyzer 60 can be illustrated in the example of the optimization program 74 and are subsequently described in more detail, as well as their input and output parameters. The programs and functions described herein can be implemented in accordance with any of several different programming techniques. For example, in the illustrated embodiment the electrical circuit analyzer 60 works as a script (not as a function) and, for simplicity, has created in a global fashion, thereby allowing all variables to be shared between the programs.
There are different ways to design a script file for calling electrical circuit analyzer 60, depending on how the electrical circuit analyzer 60 and various applications, e.g. optimization program 74 are going to be used. In general a script file which calls these programs will have a structure including path declarations; a display settings section; an optimization preparation section; and an optimization section. In terms of path declarations, usually a script file starts by loading the paths of all files it might need in Matlab's workspace. When running the electrical circuit analyzer 60 main program, there are different options for display settings. The display settings section holds Boolean flags which indicate what information will be written out to the screen when running circuit analysis program 62. For the optimization to work, a criterion file has to be defined, which (as hereinafter described) is done in the variable func_name.
4.0 Netlists
The “netlist” for a circuit is an ordered sequence of circuit's elements, corresponding node numbers together with symbolic or numeric values. As indicated above, there are two different ways or manners in which netlists can be created. A first way to create the netlist is manual creation by a user in an ASCII file (see symbol 68 in
In general, a netlist which is utilized by the electrical circuit analyzer 60 is arranged in a predetermined manner, such as the format represented in Table 1. As shown in Table 1, each row of a netlist is formatted with fields. Some of the fields are branch conductivity fields (node1, node2, node3, node4) which specify the nodes to which the terminals of a component are connected. Another field is the “element” or “component” field, which identifies the particular circuit component (e.g., resistor, capacitor). Another field is a “value” or “name” field which specifies the symbolic or numerical value of a circuit component. Optional fields may include various data, for example additional branch conductivity (e.g., more than terminals) or component parameters (e.g., controlled sources). As described more fully herein, netlist can also contain entries which are referred to as subcircuits.
Table 1 is a general description of the netlist format which illustrates two example circuit elements. The first example represented by the first non-heading row is for a resistor; the second example represented by the second non-heading row is for an ETSI40 cable type.
In Table 1, the columns bearing headers “node 1”, “node 2”, “node 3”, and “node 4” respectively specify to which nodes the terminals of the element are connected. For two port components, such as resistors, a zero at position node 3 and node 4 is a void value. The “element” column of Table 1 identifies the particular circuit element. The “value” column of Table 1 specifies the symbolic or numerical value of a circuit element. Note that “0” at positions node 3 and node 4 is the same as void in the resistor case, while “0” in the cable case implies that a branch is connected to ground.
In Table 1, the columns “A” and “B” are optional fields which are reserved for cables. Column A holds the length of the cable (in km) while column B holds the value U/D denoting if the signal is transmitted upstreams or downstreams.
More information on how netlists are constructed is provided in subsequent examples, including netlist formats for various component types as described in Section 6.0.
5.0 Admittance Matrix
In order for the electrical circuit analyzer 60 to deliver a transfer function, it first has to calculate the potential at every node in the circuit. In the course of doing so, the electrical circuit analyzer 60 generates an equation system YV=I (see
In actuality, the admittance matrix Y may not strictly comprise admittance values. That is, although most of the elements of the matrix Y are indeed admittances, the matrix Y may contain entities other than admittances, depending on what components are present in the circuit. The reader will therefore understand that the “admittance matrix Y” as used herein does not have to include only admittances.
Each circuit component, e.g., circuit element, included in an electrical circuit which is analyzed by electrical circuit analyzer 60 affects the admittance matrix Y. Specifically, inclusion of a circuit component involves concomitant inclusions of terms at various positions of the admittance matrix Y, e.g., at various column and row positions. These terms are dictated in accordance with a set of “rules”. That is, the electrical circuit analyzer 60 sets up the admittance matrix Y entries by following a set of “rules”. There is a different rule for each different type of component. The column and row positions of the admittance matrix Y entries affected by the inclusion of the circuit element are typically related to the particular nodes of the circuit to which the circuit component is connected. Some row and columns of the admittance matrix Y entries are not specific to nodes per se, but serve other functions.
Whereas typically in other circuit analysis programs the matrix formulation of electrical circuit equations comprises implicit differential equations, such does not occur for 60. Rather, electrical circuit analyzer 60 sees the electrical circuit as expressed in terms of the frequency domain, Laplace transform domain, or z-transform domain, or as a mixture of these. In general, electrical circuit analyzer 60 reduces the circuit description to a linear and purely algebraic problem which advantageously can be solved straightforwardly. This reduction to a linear and purely algebraic problem results simply from the formation of the problem as a symbolic matrix problem. The admittance matrix comprises symbolic variables or expressions which are thereafter manipulated.
6.0 Component Types
What follows now is a discussion of various types of telecommunications circuit components. For some component types, the netlist format for a user-created ASCII netlist file is shown (PSpice uses another netlist format). In addition, for some components reference is made to an appropriate figure for providing a rule for how each component is placed in the admittance matrix Y. For the netlist format, discussion specifically concerns how the parameters of the components are edited in the FORMULALIB 90 component package of the particular schematic editor PSpice.
Before discussing individual components, is should be noted that when a resistor, inductor, or capacitor is placed in a schematics, schematic editor program 84 (e.g., PSpice) may automatically assign them a name and a value.
6.1 Component Type: Input/Output Terminals
The input and output terminals define the input and output nodes for measuring the transfer function. It is possible to define several transfer functions for one circuit by indexing each input/output pair (just double click on the component in schematic editor program 84, and enter a numeric value). Although these two components will be included in the netlist, they are only markers for electrical circuit analyzer 60, and do not affect the physics of the circuit.
An input terminal is an identifier that specifies the input node. An output terminal is an identifier that specifies output node. It is possible to mark multiple input-output pairs.
The netlist format for an output terminal is as follows:
The netlist format for an input terminal is as follows:
6.2 Component Type: Resistor, Open End
6.3 Component Type: Capacitor
6.4 Component Type: Inductor
6.5 Component Type: Gain
6.6 Component Type: Adder
6.7 Component Type: Operational Amplifier
6.8 Component Type: CCCSource
6.9 Component Type: CCVSource
6.10 Component Type: VCCSource
6.11 Component Type: VCVSource
6.12 Component Type: Power Supply (DC)
6.13 Component Type: Voltage Source
6.14 Component Type: GCable or a FCable
A cable is a two-input-two-output component represented by a chain matrix. The grounded cable has one input and one output connected to the ground. The numerical values are calculated using elementary cable types, multi section loops or user defined loops. The numerical values of the respective chain matrices are calculated using ITU recommended physical parameters.
There are two different cable models: G(rounded)cable and F(ree)Cable. These cable models are basically the same. The only difference is that Fcable requires that cnode2=node2=0 (ground). Currently electrical circuit analyzer 60 supports both elementary cable types, composed cable loops and allows balanced and unbalanced configuration. The allowed elementary cable types include ETSI32, ETSI40, ETSI50, ETSI63, ETSI90, AWG24, AWG26, DW10, Category5, FP. The allowed composed cable loops include T1.601-Loop1, T1.601-Loop2, T1.601-Loop5, T1.601-Loop7, T1.601-Loop8, T1.601-Loop9, T1.601-Loop13, CSA-Loop4, CSA-Loop6, CSA-Loop7, CSA-Loop8, mid-CSA-Loop, ETSI-Loop1, ETSI-Loop2, ETSI-Loop3, ETSI-Loop4, ETSI-Loop5, ETSI-Loop6, ETSI-Loop7, ETSI-Loop8, VDSL-Loop5, VDSL-Loop6, VDSL-Loop7. All of the above cables may be in the Cable Toolbox except for the ETSI loops and the elementary cables have standardized lengths. Nonetheless, schematic editor program 84 (e.g., PSpice) requires the user to enter a cable length in order to deliver a netlist. However, this value is neglected for those cables with standardized lengths (any value on the length can be entered for those that are not ETSI). The length unit is km.
6.15 Component Type: Ideal Transformer
An ideal transformer is a two-input-two-output component. The purpose of the ideal transformer is to ‘isolate’ the input and output ports, while satisfying the algebraic equations for voltage-current at its terminals. The ideal transformer is characterized by the number of turns of the primary and secondary coil. That is, an ideal transformer is defined by the numbers N1 and N2 corresponding to number of turns of the primary and secondary coil in figure above. The coils have infinite inductances and coupling coefficient equal to one, i.e. no leakage inductance, and the transformation depends only on turns ratio K=N2/N1. Although an ideal transformer doe not exists in the real world, it can be represented as a practical transformer approximately by an ideal transformer and some additional elements. Otherwise, it can be modeled using CCVSs.
6.16 Component Type: Coupled Inductors Aka Transformer
The transformer is a multiple-input-multiple-output component of magnetically coupled inductors. It is characterized by finite inductances of the windings and coupling factors. The coupling between any of the involved inductors is less than one; otherwise the inductance matrix is singular.
In
6.17 Component Type: Transfer Function/File Read Transfer Function
The transfer function is single-input-single-output component that multiplies its input by a given expression. The expression can be symbolic polynomial expression or data imported from a file. Data files are automatically interpolated/extrapolated if necessary. The electrical circuit analyzer 60 handles two different types of transfer functions: the ordinary transfer function (which takes a mathematical formula as parameter) and the transfer function from file (which takes a filename as argument).
The ordinary transfer function can be entered as a function of the frequency, the Laplace, the z-transform or any other user defined variable. All these variables should in some way be defined as function of the frequency in order for the optimization to work properly.
The transfer function from file reads the transfer function from a file. This option is useful if the user wants to optimize a filter containing a “black box”, whose internal components might be unknown. Then the transfer function across the black box can be measured at certain frequencies, after which these data are placed in a file. The electrical circuit analyzer 60 will then interpolate this data to fit the frequencies that are specified for analysis of the entire filter.
The gain element, the transfer function, and the file Transfer Function are basically essentially similar components. The primary difference is that the gain takes a constant gain factor (either a numerical constant, or a variable), while the transfer function takes a function as argument. The transfer function can be described as a function of frequency (f), Laplace transform (s), z-transform (z) or any other user defined variable. More than one of these variables may also exist in the transfer expression simultaneously; electrical circuit analyzer 60 will automatically substitute, and make the expression a function of frequency.
The netlist format for a ordinary transfer function is as follows:
The netlist format for a file read transfer function is as follows:
6.18 Component Type: Delay
A delay is a single-input-single-output component that delays its input by a constant number of samples.
6.19 Component Type: Subcircuit
A subcircuit is defined as a multiple-input-multiple-output separate electrical circuit, which comprises of a number of the above-mentioned components and/or subcircuits connected together. External nodes couple the subcircuit to the circuit on the higher level (main circuit) whereas internal nodes connect elements and/or subcircuits on the lower level. The subcircuit is represented by block matrix (block Krakovian), which allows its inclusion in the admittance matrix (Krakovian) at the higher level. In the case of several levels the subcircuits are successively involved in the computations
The above components are defined as graphical objects in dedicated libraries in schematic editor program 84 (e.g., PSpice), whose main purpose is to assemble a netlist to be imported in the electrical circuit analyzer 60. When one of these components is placed in the schematics, it will automatically be assigned a category, e.g. resistor (R), capacitor (C), etc., and default value, e.g. 1. The value may be reassigned an either numerical or symbolic value.
The electrical circuit analyzer 60 combines symbolic and numerical analysis. It automatically identifies if the variables in the symbolic expressions have some predefined numerical values, evaluates these expressions, and replaces them with numerical values in an early stage. This allows reducing the number of arithmetic operations.
7.0 Main Circuit Analysis Program: Basic Functions
The circuit analysis program 62 performs, e.g., a calculation of the voltage potential at any arbitrary node of the circuit and synthesizes the transfer functions. Basic, representative steps involved in circuit analysis program 62 are illustrated
7.1 Main Circuit Analysis Program: Input Variable/Parameters
The circuit analysis program 62 receives various inputs, some of which are described above. Unless separately illustrated, these inputs are subsumed in the arrow “other inputs” in
The variable netlist_file is of a type string, and contains the name of the netlist. As mentioned above, this netlist can be either created manually (see symbol 68 in
The variable show_netlist is of type Boolean, which means that it takes values 1 or 0. Setting show_netlist=1 will make circuit analysis program 62 show the processed netlist. This function is thought of as a control function at suspicions of errors, to see if circuit analysis program 62 has processed the netlist correctly.
The variable show_list_of_tfunctions is of type Boolean, and determines if circuit analysis program 62 is to display the transfer functions on the display screen 28 or not.
The variable show_node_potentials is of type Boolean, and determines if circuit analysis program 62 is to display a list of all node potentials or not.
The variable show_admittance_matrix is of type Boolean, and determines if circuit analysis program 62 is to display the Admittance matrix on the display screen 28 or not. The admittance matrix contains the node potential equation system, which circuit analysis program 62 will solve before producing the transfer function.
The frequency vector f is of type double, and needs to be initialized if the circuit is going to be optimized, or if the circuit contains cables or transfer functions. If only circuit analysis program 62 is used only for obtaining a netlist that does not contain any of these components, f does not need to be defined.
7.2 Main Circuit Analysis Program: Output Variables/Parameters
The inputs to circuit analysis program 62 specifically described herein are tfunction, tfunction_*, node_potential, ndlist, AdmittanceMatrix, and NewAdmittanceMatrix.
The matrix tfunction is of type sym, and contains all transfer functions. The matrix tfunction has two columns, where at each row the transfer function is written in the first column, and the index of that function as defined in PSpice or manually is written in the second column.
The variable tfunction_* is of type string, and contains the string expression of transfer function with index *. For example, the string expression of transfer function number 5 will be held in variable tfunction_5. The reason for using string expressions is to preserve the dot multiplication in all transfer functions. Evaluation of the transfer function number 5 (in for example a criterion function etc.) is easily done by using the command eval(tfunction_5).
The vector node_potential is of type sym, and contains the node potentials of all nodes in the circuit. To retrieve the symbolic node potential of a node, the user enters (e.g., types) “node_potential(n)”, where n is the node number.
The variable ndlist is a matrix of type sym, and contains the interpreted netlist from circuit analysis program 62. The syntaxes follow the same patterns used when entering manual netlists.
Both AdmittanceMatrix and NewAdmittanceMatrix are matrices of type sym, and represent the admittance matrix (the equation system that circuit analysis program 62 solves in order to find the node potentials). AdmittanceMatrix holds a linearly dependent singular system of rank dim(AdmittanceMatrix)-1. This is because the node for ground has not been defined, and the entire system is “floating”. NewAdmittanceMatrix, however, contains an invertible system after the node for ground has been eliminated. If ground has not been defined in schematic editor program 84 (e.g., PSpice), electrical circuit analyzer 60 will prompt for ground.
8.0 Netlist Generation Example
As indicated previously, the “netlist” is the means by which electrical circuit analyzer 60 receives information on how the components in an electrical circuit are interconnected, and what properties are assigned to each component. One can think of the netlist as a pure (one way) communication channel between the user (GUI or user written netlist) and the electrical circuit analyzer 60. Each row in the netlist, which is presented to the electrical circuit analyzer 60 as an ASCII file when user input is involved, represents one component in the circuit. The netlist does also provide the electrical circuit analyzer 60 with information on which nodes the user has defined as relevant for transfer function analysis.
As previously indicated, the electrical circuit analyzer 60 can read circuit information (such as information about the example electrical circuit of
For the example electrical circuit of
Alternatively, the way an equivalent netlist would be written in a ASCII file by a user for use in the electrical circuit analyzer 60 format is presented in Table 3 below.
Whether user-generated or generated by schematics editor 84 (e.g., PSpice), the user-created netlist file as imported into electrical circuit analyzer 60 (and into circuit analysis program 62 in particular) could have the name “test1.net”, for example. The syntaxes defined above are applied to each row (component) in the netlist.
When either the netlist of Table 2 (from schematics editor 84) or the netlist of Table 3 (user-created) is imported to the electrical circuit analyzer 60, the imported netlist will reinterpret them into an internal symbolic matrix structure in the Matlab environment. When running the first example electrical circuit of
9.0 Generation of Admittance Matrix: Example
The electrical circuit analyzer 60 must convert the netlist into a set of (linear) equations in order to algebraically analyze a circuit. As previously described, for most of the components of the electrical circuit being analyzed by circuit analysis program 62 entries are made in admittance matrix Y (see
Each different type of component in the electrical circuit has its own rule table. Consider the resistor R3a in the example electrical circuit of
For the resistor R3a in the example electrical circuit of
Table 6 indicates that to the matrix position (node N1, node N1) the value 1/(R3a) is to be added; to the matrix position (node N1, node N4) the value −1/(R3a) is to be added; to the matrix position (node N1, node N4) the value −1/(R3a) is to be added; and to the matrix position (node N4, node N1) the value 1/(R3a) is to be added. In other words, from Table 6 it can be seen that 1/R1 should be sent to position (4,4) and (1,1) in the admittance matrix (additively) and that −1/R1 should be sent to position (4,1) and (1,4) in the admittance matrix (additively).
For each component in the electrical circuit (e.g., the example electrical circuit of
The “RHS” column of the tables stands for “Right Hand Side”, and denotes the mapping to the current vector I. In the case of a resistor, the current vector is left unaffected (only the Voltage Source and the Power Supply (DC) add elements to the current vector.) For some circuit components such as the operational amplifier and the voltage source, auxiliary branches are introduced in the admittance matrix (extra rows and columns, which do not correspond to any node in the circuit). The electrical circuit analyzer 60 automatically adds these nodes to the admittance matrix as the electrical circuit analyzer 60 successively process each row of the netlist. The complete matrix for the example electrical circuit of
Using the admittance matrix and the current vector, it is possible for the electrical circuit analyzer 60 to calculate the potentials at any node in the circuit. Introducing auxiliary equations will yield extra variables, but these are disregarded in the analysis. Additionally, the electrical circuit analyzer 60 will automatically remove the row and column in the admittance matrix corresponding to node 0= ground (this is required since the system is over determined otherwise).
10.0 Calculation of Transfer Function: Example
As a prerequisite to analysis of an electrical circuit by electrical circuit analyzer 60, a small script is created. As mentioned above, e.g., in conjunction with Section 2.2, both electrical circuit analyzer 60 and various applications e.g. optimization program 74 are independent programs which are run from a script file created in the Matlab program 80. Creation of the script can involve the user typing “Edit” in the Matlab command window, and then entering the following lines in the editor:
The script file should be saved, under the title “test1_script.m”, for example. The script file is executed or run by typing test1_script in the Matlab command window. The line “get_tfunction” of the script file serves to run the circuit analysis program 62.
When the program script file causes running or execution of circuit analysis program 62, the netlist for the electrical circuit is imported as step 7-1. As mentioned several times previously, the electrical circuit analyzer 60 can read or import circuit information (such as information about the example electrical circuit of
As step 7-4, the circuit analysis program 62 places the components of the electrical circuit into the admittance matrix Y. Placement of electrical components into admittance matrix Y is performed in accordance with the placement rules which accompany the discussion of component types set forth in Section 5.0. How the admittance matrix Y is generated for the specific example electrical circuit of
At step 7-5, circuit analysis program 62 defines a current vector (shown as vector i in
On the other hand, if electrical ground has not been defined, the entire system is “floating”. Accordingly, if electrical ground has not been defined, as step 7-7 the netlist is displayed for the user on display screen 28, so that (as step 7-8) the user is given the opportunity to input a ground node. After the user has defined the ground node, the ground is removed from the full size admittance matrix Y at step 7-9 (resulting in the new matrix NewAdmittanceMatrix).
At step 7-10, the circuit analysis program 62 solves the equation system resulting from the admittance matrix Y for all node potentials. In other words, at step 7-10 the circuit analysis program 62 determines the voltage vector V in the matrix equation system of
As step 7-11, circuit analysis program 62 checks whether at least one transfer function has been defined for the electrical circuit undergoing analysis. Circuit analysis program 62 knows whether a transfer function has already been defined by going through the netlist to check whether there already exists at least one input/output pair (since an input/output pair indicates existence of a corresponding transfer function).
If a transfer function for the electrical circuit has already been defined as determined at step 7-11, at step 7-13 the circuit analysis program 62 returns a symbolic expression of the transfer function, which (as step 7-14) is then displayed on a screen of display monitor 28. When the program script comes to the last line, plot_tfunction, it will prompt for some values and invoke the transfer function plotter program 76 to plot the transfer function.
On the other hand, if a transfer function for the electrical circuit has not been defined, then at step 7-12 the circuit analysis program 62 prompts the user to enter (via keyboard 24 or other input means) information indicative of the nodes between which the electrical circuit analyzer 60 is to calculate the transfer function. The transfer function is defined as the output potential divided by the input potential, e.g., the potential at the output node (node N5 of the example electrical circuit of
At step 7-12 the circuit analysis program 62 can prompt the user to enter more than one pair of input nodes for determination of a transfer function. For example, the user may enter a first set of nodes for determination of a first transfer function; a second set of nodes for determination of a second transfer function; and so forth. In such case, the return of the symbolic transfer function at step 7-13 is actually output of a symbolic matrix (“tfunction”) that contains all user-requested (or otherwise prompted) transfer functions.
11.0 Subcircuits: Overview
The matrix equations for electrical circuit analyzer 60 can become increasingly time-consuming and especially memory-consuming when dealing with very large circuits containing many components. Additionally, some components require extensive use of auxiliary equations, which may also contribute to memory deficiencies. In order to minimize these factors, as one of its aspects the electrical circuit analyzer 60 implements a subcircuit matrix approach rooted in Krakovian calculus.
In essence, according to an advantage this block/subcircuit matrix approach, the size of the matrices including the admittance matrix Y is recursively reduced as subcircuits are added to the admittance matrix Y, working only with those matrix blocks that are relevant for a specific application. Thus, the admittance matrix Y dynamically changes its dimensions depending on the number of equations required to describe a subcircuit. Moreover, the solution matrix has approximately the same dimension as the number of relevant equations. For example, if a transfer function is to be calculated between a first node and a second node, the matrix blocks corresponding to the first node and the second node are considered relevant.
Thus, expressing a large circuit in terms subcircuits makes the circuit description easier to interpret. The subcircuit concept can be used many times without creating an excessive amount of equations. The subcircuit concept can also save the number of arithmetical operations.
Modified nodal analysis (MNA) has heretofore limited practical implementation of symbolic computation for large matrices. Since a telecommunication circuit typically contains a large number of components, the matrix calculations are extensively time and memory-consuming and complex. The complexity is due in part to the fact that the equations involved imply or require matrix inversion. It is possible, however, to reformulate the result involving the inverse of a matrix applying the Krakovian algorithm. In general, the electrical circuit analyzer 60 partitions the admittance Krakovian to define the block crucial for a specific application. The block corresponding to subcircuits are successively included in computations.
11.1 Subcircuits: Krakovian Principles
The block/subcircuit matrix approach implemented by electrical circuit analyzer 60 is exemplified by the illustration and derivation described below. The block/subcircuit matrix approach applies principles of Gussian surfaces and conservation law to yield a method of creating an admittance matrix comprising two interconnected subcircuits. There are several advantages of the block/subcircuit matrix approach. As a first advantage, the Krakovian method allows recursively inclusion of consecutive subcircuits into the admittance matrix. Specifically, the admittance matrix can be combined from several individual admittance matrices completed with simple connectivity matrices, one after another. In particular, the admittance matrix can be generated directly from the respective netlists. As a second advantage, the block/subcircuit matrix approach allows splitting admittance matrix into arbitrary smaller block matrices, not necessarily bounded to any physical or electrical structure, in order to perform computations more effectively. The objective may be to separate numerical and symbolic variables or to move certain variables to the top (alternatively to the bottom) of the potential vector, which can be accomplished by an appropriate permutation.
One objective of electrical circuit analyzer 60 is to solve the node potentials in an electric circuit being analyzed.
YV=I (Expression 1)
In order to determine node potentials of the vector V, the admittance matrix Y must be inverted, i.e., V=Y1I .
The electrical circuit analyzer 60 permits the circuit undergoing analysis to be conceptualized as plural subcircuits, which streamlines determination of the node potentials as explained below. Or perhaps the user is interested in determining only a few node potentials of a circuit. In either case, it is not necessary to invert the entire admittance matrix Y to solve for the node potential(s). Moreover, all but one of the elements of the current vector I will be zero. One of the elements of the current vector I which corresponds to the “source node equation” has the value of “1”. In other words, the “source node equation” is the equation whose corresponding element in the current vector I has the value of “1”.
The block/subcircuit matrix approach implemented by the electrical circuit analyzer of
As now more generally described, the block/subcircuit matrix approach enables the admittance Krakovian to dynamically change its dimensions depending on the number of equations required to describe a subsequent subcircuit k and having the same dimension as the subcircuit. The dimension of the resulting Krakovian will be bounded above by the size of the main circuit. Furthermore, only the first row of the inverse of the reduced Krakovian is necessary for the solution.
Consider Krakovian Y represented as block Krakovian consisting of Krakovians A, B, C and D. It is assumed that the Krakovians are consistently dimensioned and that the required inverse A−1 exists. Then Expression 2 holds true:
where
D1=D−CA−1τB.
The inverses of triangular Krakovians in Expression 2 can be simply obtained as shown in Expression 3.
Noting that inverse of Krakovian product equals product of the inverses results in Expression 4.
By appropriately defining subcircuits and sorting Krakovian Y, the equations can be arranged in such a way that the relevant subcircuit equations are represented by the Krakovian A. In this regard, see
The first row of the following Krakovian expression is a desirable solution
Ã−1=A−1+(A−1C)τD1−1(τA−1B) (Expression 5)
assuming that after appropriate permutations the “source node equation” which has the value of “1” was moved to the top of equation system.
Those results lead us to the formulation of recursive algorithm
D1,k=Dk−CkAk−1−1τBk (Expression 6)
Ak−1=Ak−1−1+(Ak−1−1Ck)τD1,k−1(τAk−1−1τBk) (Expression 7)
Observe that the method does not require all equations to be simultaneously available for the computations. The procedure of Expression 7 is repeated for each successive subcircuit until the last calculated Krakovian Ak−1 is substituted in Expression 6.
The algorithm derived above plays a central role in symbolic computation in the electrical circuit analyzer 60 because its efficiency, reliability and flexibility.
As mentioned above, vector I is equal to one at only one position and is equal to zero at all other positions. Through suitable permutations of the admittance matrix Y, this element is relocated to be the last element in I, e.g., the first equation in the equation system.
Basic, representative steps involved in the block/subcircuit matrix approach and its technique for inverting partitioning matrices are illustrated in
Thus, the initial equation system is greatly simplified. Inverses are taken of small matrices (A above) whose sizes, can be set arbitrarily. This is a great advantage of the block/subcircuit matrix approach.
As step 9-4, the admittance matrix Y (and the entire equation system) is rearranged through one or more permutations. These permutations do not substantively affect the equation system as a whole, but only change the order in which the equations occur in the system. One example of the rearranging of the admittance matrix Y in the manner of step 9-4 is illustrated in
As substep 9-4B, all “interesting nodes” and their corresponding equations are stacked above the “source node equation”, as shown in
As step 9-5, the admittance Krakovian Y is partitioned. The partitioning occurs along lines of demarcation of the “interesting nodes” and the “uninteresting nodes”. The “source node equation” is included in the same matrices as the “interesting nodes”. For the illustrated example of
In the partitioning of Expression 7, A and D are square Krakovians of size p×p and s×s (p+s=N) respectively. So, in accordance with step 9-5, square Krakovians B and D include the equations for the interesting nodes and the source node equation.
By inverting Krakovian A, as step 9-6 a simplified equation system is generated. The simplified equation system disregards the portions of the equation system which included the equations for the uninteresting nodes. So in the Example of
In generating the simplified equation system, the inverse of admittance Krakovian Y, e.g., Krakovian Y1, is partitioned in the same manner as was admittance Krakovian Y. Expression 8 represents the partitioning of the inverse of admittance Krakovian Y.
The block Krakovians of the Krakovian Y1, i.e., Ã, {tilde over (B)}, {tilde over (C)}, {tilde over (D)}, have the same dimensions as block Krakovians A, B, C, D respectively. Moreover, block Krakovians Ã, {tilde over (B)}, {tilde over (C)}, {tilde over (D)}, can be found from Expression 9:
where Vn, Vy and current vector I are appropriately partitioned, and respectively
In=τ(0 . . . 0)
Iy=τ(0 . . . 1)
where D1=D−CA−1τB
Only one Krakovian equation is considered in step 9-6, namely
since, as above mentioned, the other part contains no relevant equations in view of the permutations carried out in step 9-1. Upon disregarding the product {tilde over (C)}*In, which is equal to zero, Expression 10 is obtained.
As observed in Expression 10, the contribution of the block Krakovians B disappears due to the zero vector In. The equation system Y1Vy=Iy, which is of exactly the same form as Expression 1, and contains all the information required to solving the relevant part of the equation system. However, it has been reduced with the size of A, to now only comprise s=N−p equations. The elements of Y1 will naturally be functions of elements of Y. In order to save memory in the program within which electrical circuit analyzer 60 executes (e.g., Matlab), the elements of Y1 are now renamed to a new set of variables, which are functions of elements of Y. These functions are written to a file, and can be evaluated during the analysis.
Thus, as step 9-6, the simplified equation system of Expression 11 (which forms part of Expression 10) has been generated.
(D−CA−1τB)−1Iy=VY (Expression 11)
As step 9-7, circuit analysis program 62 solves the simplified equation system generated at step 9-6 to obtain the node potentials of the relevant part of the circuit or the subcircuit currently identified for analysis (e.g., identified at step 9-0, for example). This procedure can be repeated a numerous times, which results in a recursive algorithm. The matrix D1=(D−CA−1τB) will be subsequently partitioned in the same manner until minimum dimension will be achieved, i.e.
Dk=Dk−1−Ck−1Ak−1−1τBk−1 (Expression 12)
11.2 Subcircuits: Basic Program Steps
The block/subcircuit matrix approach thus separates a subcircuit from the reminder of the circuit, in which case the remainder of the circuit can be referred to as an “main circuit” from the perspective of the subcircuit. On the other hand, from the perspective of the overall circuit, both the subcircuit and the main circuit can be considered as “subcircuits” of the overall circuit, e.g., first and second subcircuits. The subcircuit can be treated as a building block, or component, which can be used in many different circuit analyses. Often, for example, magnetically coupled windings are assembled in a system comprising a transformer, thus being a natural subcircuit application.
The first step in generation of the Admittance matrix of
As step 11-2, electrical circuit analyzer 60 generates an admittance block for the main circuit, and inserts the admittance block on a main diagonal dM of the admittance matrix. In the illustration of the Admittance matrix of
As step 11-3, electrical circuit analyzer 60 generates an admittance block D for the subcircuit. Further, the admittance block D for the subcircuit is inserted in the Admittance matrix of
As step 11-4, electrical circuit analyzer 60 generates a first of two connectivity blocks, particularly a current exchange connectivity block C. The current exchange connectivity block C is inserted in Admittance matrix of
As step 11-5, electrical circuit analyzer 60 generates a second connectivity block, i.e., voltage potential connectivity block B. The voltage potential connectivity block B is inserted on the cross diagonal dC to the left of the admittance block D for the subcircuit and below the admittance block A for the main circuit.
The current exchange connectivity block C and the voltage potential connectivity block B of the Admittance matrix of
Therefore, as substep 11-3A illustrates, electrical circuit analyzer 60 generates, for inclusion in the admittance block D, a subblock Z for the subcircuit. The subblock Z need not be an admittance matrix, but could as well be a chain matrix or a scattering matrix or any kind of matrix representing a subcircuit. The “surface connectivity Krakovian” may have a complex structure, and depends on how the nodes of the main circuit are connected to the subcircuit and on the formal description of the subcircuits. The square Krakovian to the left of subblock Z is always −τ.
Thus, from the foregoing it can be seen that, in general, block matrices (block Krakovians) corresponding to subcircuits are respective elements on the main diagonal. That is, block D for the subcircuit 100 and block A for the main circuit which is external to subcircuit 100 are on the main diagonal dM. These blocks describe the internal structure of the respective subcircuits. The off-diagonal or cross-diagonal block elements and/or auxiliary blocks represent connectivity between each pair of the subcircuits (e.g., as a Gaussian surface).
The sequence of nodes is irrelevant as long as they are properly assigned within subcircuit and connectivity matrices (Krakovians). This means that the resulting admittance matrix (Krakovian) can be arbitrarily permutated.
The current vector I (see
Moving the interesting elements to the top of current vector corresponds to moving the analogous rows of admittance Krakovian to the top. This naturally constitutes block Krakovian A. Referring to Equation (3) the inverse problem is reduced to recursively inverting smaller matrices. The most obvious advantage occurs during transfer function computation when one of matrices (Krakovian) is a trivial 1×1 matrix.
Thus, the idea of partitioning the admittance Krakovian or matrix can be used for two basic purposes. A first purpose is to include (incorporate) an equation or matrix for subcircuit/subsequent subcircuits into an equation system which already includes the main circuit. In this case, the “source node equation ” should preferably be the first equation in the equation system, and it certainly must be part of the equations or matrix for the main circuit. If it is first equation, then the solution is given as the first row of Krakovian expression 5, if it is the second equation, then by the second row etc. The source node equation must, however, be among the equations describing the main circuit in order to obtain a solution. In so doing, a Krakovian is obtained that represents main circuit with all connected subcircuits. The Krakovian still has the size of main circuit. An advantage is that the circuit analysis program 62 may import all those subcircuits in the netlist form and utilize the information into circuit design at any stage. A second purpose for partitioning applies since, even if the resulting admittance matrix is relatively small, it may be still too big to evaluate numerically within a reasonable time. So essentially the same method is employed to reduce the admittance matrix only to relevant (interesting) equations. In this case “source node equation” should be the last equation., which means that circuit analysis program 62 symbolically inverts smaller krakovians extracted from the upper left corner; defines its elements as new matlab functions, and include the functions as entries of the remaining Krakovian. If the admittance matrix is still too big, the process will be repeated or will be repeated until only interesting equations remain. Consistent with this second purpose, the circuit analysis program 62 obtains a Krakovian which is smaller than a Krakovian representing the main circuit, and the elements of the smaller Krakovian are functions that can be easily evaluated numerically.
Subcircuits: Example
The example electrical circuit of
The electrical circuit analyzer 60 creates the admittance matrix of
As explained previously,
The generalized equation system of
A main circuit and a subcircuit share one or more nodes, herein called “common” nodes. It is required that the potentials on the common nodes be the same and that currents entering/leaving common nodes also be the same. These requirements are also reflected in the admittance matrix of
Inclusion of an electrical component within a simple circuit involves adding an admittance for the component to appropriate coordinates (e.g., matrix positions) in an admittance matrix such as admittance matrix Y of
For the particular example electrical circuit of
The subblock labeled as “Z” in
Block B of the admittance matrix of
The subblock below the subcircuit equations in the admittance matrix of
The example electrical circuit of
From the foregoing it can be seen that, according to the block/subcircuit matrix approach, the concept of a simple two-terminal (one-port) element can be generalized to an elementary subcircuit. The simple two-terminal (one-port) element satisfies the conservation law, i.e. for any voltage applied across terminals, the current entering one terminal equals the current leaving second terminal. A resistor, a capacitor and an inductance are example of such simple two-terminal (one-port) elements. A general one-port element contains an arbitrary number of interconnected devices also satisfying the conservation law. As a rule, a diagonal element k,k in an admittance matrix is the sum of branch admittances attached to node k, while off-diagonal elements k,j and j,k of the admittance matrix are the sum of admittances of all the branches joining nodes j and k multiplied by −1.
Likewise, there can be defined analogous rules for elements having multiple terminals and satisfying particular properties. An operational amplifier is such element.
For example, two-ports networks have two pairs of terminals, each of pair behaving as one port, i.e. the current entering one terminal equals the current leaving the second terminal. The relationships between terminal voltages and currents of the two-ports are usually expressed in matrix form. The internal variables are not considered. Depending on the grouping of currents and voltages variables, there are some commonly used parameters, e.g. impedance parameters, scattering parameters, chain matrices, etc. The controlled sources, ideal transformer and transmission line are also two-ports. Two-ports obey the rules depicted in
Multi-ports networks have multiple pairs of terminals, each of pair behaving as one-port and relationships between current and voltage variables are described by set of linear equations. The multi-windings transformers (coupled inductances) are multi-ports. They follow the same rules as two-ports except that number of variables increases.
There are a variety of ways of including subcircuit into admittance matrix depending on its representation, i.e. whether z-parameters (impedance) are used or y-parameters (admittance), h-parameters (hybrid), chain matrices(transmission), etc.
A circuit described by the modified nodal equations can be connected to other circuits by the arbitrary number of nodes. The potentials on each of the common nodes are identical and the sum of the currents leaving/entering each common node is zero. Blocks matrices describing the connectivity between the subcircuits augment the block diagonal admittance matrix. In this case, the surface connectivity Krakovian is represented by concatenation of unity Krakovians τ and −τ.
12.0 Epilogue
Historically, traditional circuit simulators have been built around solvers of ordinary differential equations. The system to be simulated is traditionally typically described by a time-dependent mathematical relationship between the systems inputs, outputs, states, etc. The simulator calculates system behavior over a specified time span. The step size (time interval) is chosen either manually or automatically depending on numerical accuracy of differential equations solved in the process. The result is a numerically approximated time function.
In contrast, the electrical circuit analyzer 60 provides the formal description of analyzed circuit, e.g., admittance matrix, transfer function etc. This formal, symbolic description can be used in various analyses, among others, to generate time signals. Hence the entire calculation (performed on numbers) can be represented as a single algebraic formula. Furthermore, the formula can be manipulated according to certain rules to produce another formula. This new formula may describe/represent another property of the system or may be used to produce time signals without rerunning a simulation.
Reducing a circuit description to linear and purely algebraic problem is an advantage in the sense that it opens new ways to analyze the circuit. This reduction to a linear and purely algebraic problem results from the formulation of problem as a symbolic matrix problem. Hence, the admittance matrix comprises symbolic variables or expressions, which are thereafter manipulated appropriately.
The electrical circuit analyzer 60 uses symbolic matrix formulations of electrical circuits and formal techniques to solve equations resulting in closed-form symbolic expressions. There is no need to use sophisticated techniques for integrating differential equations. The electrical circuit analyzer 60 combines symbolic and numerical analysis. The formal expressions can be evaluated and advanced numeric analysis such as zero-pole analysis, frequency performed using standard software packages, toolboxes, for advanced mathematical, graphical and signal processing routines.
The electrical circuit analyzer 60 is software for symbolic computation using standard Matlab commands and Matlab's Extended Symbolic Toolbox. It performs symbolic analysis under the general assumption that the circuit is linear and time-invariant. The generation of symbolic transfer functions are fully automated and several input-output pairs can be defined simultaneously. The transfer function is determined in terms of circuit elements, frequency, z-variable and constants such as gain, filter coefficients, etc.
By using the symbolic processing of the electrical circuit analyzer 60, a signal is represented as a formula, instead of a stream of numbers. The required function is expressed in terms of symbols until it becomes convenient to compute it numerically (explicitly). Matrix approach to circuit analysis, combined with Matlab's software packages allow analysis of very large and complex circuits, tasks that are otherwise merely impossible for the human hand. The electrical circuit analyzer 60 is an attractive alternative to programming, since the generated formulae represents the entire calculation.
One of the objectives of the electrical circuit analyzer 60 is to support electrical engineers with a tool that allows automatic analysis of an electrical circuit. The electrical circuit analyzer 60 is an attractive alternative to the programming job, as it provides a formula that represent the entire calculation. It makes it possible to analyze very large and complex circuits, which in general is a very demanding and time-consuming task.
The electrical circuit analyzer 60 sets up and solves linear equation systems that fully describe the electrical circuits in frequency domain, as well as automated computation of multiple transfer-functions. Further, it has the capability to study circuits including both time-continuous and digital elements. Moreover, it is a tool that requires no programming from the user, but only simple modifications of the script file. Advantageously, it is integrated with Matlab, which provides access to numerous advanced mathematical routines, and implements a user-friendly graphics interface—PSpice.
The electrical circuit analyzer 60 provides realistic models for components of telecommunications circuits, including (for example) multi-winded transformers, as well as analogue (cables) and digital (filter) elements. It allows symbolic analysis of cables as chain matrices, until it becomes convenient to make numerical computations.
A general concept of Gaussian surfaces or supernodes applied by electrical circuit analyzer 60 allows expression of a large circuit in terms of subcircuits. This makes the circuit description hierarchical and easier to interpret. The subcircuit concept can be utilized many times without creating an excessive amount of equations. The block/subcircuit matrix approach permits recursive update of the required parameters, and also limits the size of inverted Krakovian/matrices to the number of analyzed variables. Hence, the electrical circuit analyzer 60 saves the number of arithmetical operations and is thereby widely usable despite a large number of components in a circuit.
While the invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not to be limited to the disclosed embodiment, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.