Agile is a microwave/RF harmonic balance simulator. It can analyze linear as well as steady-state non-linear circuits and networks. Beyond analysis there are features for optimization and statistical analysis and design.
See this wiki page on harmonic balance if you are not familiar with it -- but its a lot simpler conceptually than it appears there, basically harmonic balance assigns a complex-valued (magnitude and phase) voltage at each node for each frequency (harmonic) in the simulation. Given these voltages the resultant currents (at each harmonic) from the linear and non-linear side is computed to determine an error value (some form of difference between the linear and non-linear sides). The voltages are then adjusted until the currents agree, that is the balance. Of course there may be multiple, or no, solutions; and solutions may exist but not be found.
In Agile, non-linear devices can be embedded into subnetworks, and these are elaborated (expanded) into an overall structure as in the figure for the analysis. Although Agile allows harmonic balance simulation, it's probably more used for linear analysis.
It provides the following features:
In the example here, a circuit named wba is defined in Agile, along with a depiction of the circuit. The example defines some frequency points, ports and components. A component named Bipolar uses a submodel called nec in the description; in this case nec is a linear model for a device, but it could be a nonlinear one as well. The output port (#2) uses a port termination network (dload which happens to be a load of 25 ohms), while the input port (#1) has the default system impedance load (50 ohms). Z-parameter and input impedance outputs are requested, along with VSWR at port 1. This example is very simple; of course, any of the many outputs could be used, and these can be combined using expressions to form new outputs.
Some of the results from this circuit are shown here. We see the input impedance charted in polar form and the VSWR in rectangular form.
Here's another example that shows more of Agile's expressive capabilities. In this example, we see a non-linear FET model with biasing and input and output circuitry. A RF signal, p_in, is applied at the input and we examine various outputs and signals at various points in the circuit. We see a small sampling of use of expressions in Agile's descriptions here.
the example outputs, we see the power in the fundamental versus input power; this shows compressive effects.
Another graph shows the power in the fundamental versus drain bias (DC).
And another graph shows the `op-cycle' which is the voltage and current as they vary in time over an analysis cycle.
This graph is for the sum of all harmonics (here we have the fundamental and the second and third harmonic),
but you can also look at just a particular harmonic.
There's lots more that you can do and more in the User Manual too, but here are some more quick examples. All of the graphs were generated using the tool.
In one figure, we see the noise figure for a linear circuit across a frequency range. In the other one, we see the voltage at the drain of an FET amplifier in a non-linear circuit in the time domain. In this case, we see only one cycle of the output but there are settings to see multiple cycles if desired. Of course, since the analysis takes place in the frequency domain, each of these cycles is the same.
Optimization goals can be defined using upper and lower bounds. In that case shown here, the goal is not being met since it is not completely contained within the required bounds. Optimization goals can be defined in the complex domain as well as seen in the other graph. In this case, the goal error reflects the difference between the desired points and the actual points in the complex plane. The optimization goal, the figure of merit, can be very flexibly defined using the algebraic features of the program to combine goals like these as well as other expressions.
Sensitivity analysis, tolerance analysis (via Monte-Carlo methods) and tolerance design (optimization of tolerance analyses) are features of the program. Just as a generalized expression can be used to define a figure of merit for optimization purposes, a generalized expression can be used to define cost which is the target for tolerance design. In one figure, we see a 'manual' means of seeing the effect of changing a variable on a reflection coefficient result. In the other figure, we see the resultant VSWR histogram after a tolerance analysis run.
To download Agile for Windows or Linux, go to the download page. There you can also download just the User Manual if you wish.