CONSTPOUT - Constant Output Power

How does the CONSTPOUT block work?

The CONSTPOUT block uses optimization to servo the input power (starting with the input power level specified in the schematic) to find the specified output power

That CONSTPOUT stuff sounds simple, so why am I having problems?

There are three common issues that users find with the CONSTPOUT block:

It is important to not sweep input power when using the CONSTPOUT block. The CONSTPOUT block will automatically servo the input power to find the specified output power. Thus, the extra sweep points all have the same answers but cause the simulation to take extra time.

During the optimization, the input power is limited by the CONSTPOUT block MAX parameter which specifies that the maximum input source scale factor (in W or V depending on the specified source).

For example, if the input power level specified on the schematic is 0 dBm and MAX=100 then the input power level is limited to 20 dBm when searching for the specified output power (0 dBm → 1 mW, 1 mW * 100 = 100 mW, 100 mW → 20 dBm).

The optimization does not find the desired output power before hitting the XDB block MAX_ITER number of iterations

This can be caused by the optimization getting limited by MAX as discussed above, or, like any optimization, simply not having enough iterations to converge on the specified answer, or, because the specified output power is not achievable.

The good news is that all of these are easy to diagnose by inspecting the simulation output file link in the Status Window.

How do I read the CONSTPOUT simulation output file?

First, find the link to the output file in the Status Window (the Output - file link below) and click on it which will open the output file in AWRDE.

How do I spot problems in the CONSTPOUT simulation output file?

If the CONSTPOUT block fails to converge one of the likely causes is that the input power scaling is limited. This is easy to see in the simulation output file as the optimizer will get "stuck" trying to raise the scale value higher than allowed by the CONSTPOUT block MAX parameter value. In the example below POUT = 8 dBm and MAX = 100. As can be seen in the data, the output power search "gives up" because of the scale limit.

Another likely cause is that the optimizer stopped before finding the specified answer due to the CONSTPOUT block MAX_ITER parameter limiting the number of iterations such that the optimizer has not yet had time to find the user specified output power. In the example below POUT = 8 dBm, MAX = 10000, and MAX_ITER = 4. As can be seen in the data, 4 iterations were not sufficient for the optimizer to find the specified output power so the analysis failed.

The last likely cause is that optimizer stopped before finding the specified answer because the specified output power is not achievable for one of the sweep points. In the example below POUT = 20 dBm but the DUT has a PSAT = 17.2 dBm. As can be seen in the data, the optimizer tried until it reached the maximum number of iterations and scaled the input power to a high value but could not reach the specified output power.

XDB - User Specified Compression Point

How does the XDB block work?

The XDB block performs several different analyses. The first analysis subtracts the specified XDB block GAIN_BACKOFF parameter from the input power level to compute the linear gain at every sweep point. If compression is defined from maximum gain rather than linear gain then the next analysis uses optimization to find the maximum gain. During the optimization, the input power starts at the input power level specified on the schematic and ramps up to find the maximum gain. The last analysis uses optimization to find the specified compression. During the optimization, the input power ramps up from the input power level specified on the schematic when compression is relative to linear gain and ramps up from the maximum gain point when compression is defined relative to the maximum gain.

That XDB stuff sounds simple, so why am I having problems?

There are three common issues that users find with the XDB block:

It is important to not sweep input power when using the XDB block. The XDB block will automatically servo the input power to find the linear gain, max gain, and specified compression points. Thus, extra sweep points that all have the same answers is the best possible result when sweeping input power with an XDB block. Setting up a simulation that converges poorly (due to the initial input power level - see the Implementation Details of the XDB help page for additional details) at some power levels is likely to result when sweeping input power with an XDB block.

During each optimization, the input power is limited by the XDB block MAX parameter which specifies that the maximum input source scale factor (in W or V depending on the specified source).

For example, if the input power level specified on the schematic is 0 dBm and MAX=100 then the input power level is limited to 20 dBm when searching for the maximum gain or specified compression point (0 dBm → 1 mW, 1 mW * 100 = 100 mW, 100 mW → 20 dBm).

The second is that the optimization does not find the desired compression point before hitting the XDB block MAX_ITER number of iterations

This can be caused by the optimization getting limited by MAX as discussed above; or, like any optimization, simply not having enough iterations to converge on the specified answer.

The good news is that all of these are easy to diagnose by inspecting the simulation output file link in the Status Window.

How do I read the XDB simulation output file?

First, find the link to the output file in the Status Window (the Output - file link below) and click on it which will open the output file in AWRDE.

The first section of the file shows the input power used to find the linear gain and the linear gain values computed for each sweep point. Any simulation warnings will appear only under the first sweep point.

The next section of the file shows the maximum gain optimization results if the XDB block is calculating compression from maximum gain. If the XDB block is set up to calculate compression from linear gain that this section will not be in the output file. Note that the maximum gain point and input power scaling (from the input power defined on the schematic) that generates the maximum gain are shown on the last ITER line of each sweep point.

The last section of the file shows the specified gain compression optimization results. If the XDB block is set up to calculate compression from linear gain then the linear gain for each sweep point will be displayed on the SWPVAL line. Similarly, If the XDB block is setup to calculate gain compression from maximum gain then the maximum gain for each sweep point will be displayed on the SWPVAL line. The DELTA value on each ITER line shows the difference between the maximum gain or linear gain for the current input power (i.e. the amount of compression). As with the maximum gain optimization results above the final gain, amount of compression and input are shown on the last ITER line of each sweep point.

How do I spot problems in the XDB simulation output file?

If the XDB results are unrealistic the most likely cause is that the input power scaling is limited. This is easy to see in the simulation output file as the optimizer will get "stuck" trying to raise the scale value higher than allowed by the XDB block MAX parameter value. In the example below MAX=500 and, as can be seen in the data, the max gain search "gives up" because of the scale limit.

If the XDB simulation gives warnings about optimization terminated due to maximum number of cycles then it is important to look at the gain compression optimization section of the output file and see if the maximum number of cycles has been reached because the XDB block MAX parameter is limiting the input power scaling or if the optimizer simply needs more iterations to converge (as shown below). The maximum number of iterations is controlled by the XDB block MAX_ITER parameter.