How does the CONSTPOUT block work?The CONSTPOUT block uses optimization to servo the input power (starting with the 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. No Format |
---|
Simulation - NLN:CONSTPOUT.AP_HB.$FDOC
1:49:10 PM Begin Simulate
1:49:10 PM Freq - 3 points
1:49:10 PM Netlist - file://C:\My Dropbox\awr\appdata\jomoore\13.0\temp\Curtice_model_gain_expansion\NLN_CONSTPOUT.AP_HB.$FDOC\mwo_aplac_netlist.i
1:49:10 PM Output - file://C:\My Dropbox\awr\appdata\jomoore\13.0\temp\Curtice_model_gain_expansion\NLN_CONSTPOUT.AP_HB.$FDOC\mwo_aplac_output.txt
1:49:11 PM End Simulate (0.50s) |
The file shows the specified output power optimization results for each sweep point. The final output power and input power scaling are shown on the last ITER line of each sweep point. No Format |
---|
SWPVAL 1, INITIAL SCALE = 1.000
ITER = 1, POUT =-18.648 dBm, SCALE = 1.210
ITER = 2, POUT =-17.181 dBm, SCALE = 1.688
.
.
.
ITER = 10, POUT = 7.998 dBm, SCALE = 181.185
SWPVAL 2, INITIAL SCALE = 181.185
ITER = 1, POUT = 7.953 dBm, SCALE = 170.233
ITER = 2, POUT = 7.895 dBm, SCALE = 168.880
ITER = 3, POUT = 8.000 dBm, SCALE = 171.342
SWPVAL 3, INITIAL SCALE = 171.342
ITER = 1, POUT = 8.259 dBm, SCALE = 167.006
ITER = 2, POUT = 8.005 dBm, SCALE = 161.251
|
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 search "gives up" because of the scale limit. No Format |
---|
SWPVAL 1, INITIAL SCALE = 1.000
ITER = 1, POUT =-18.656 dBm, SCALE = 1.208
ITER = 2, POUT =-17.241 dBm, SCALE = 1.665
.
.
.
ITER = 100, POUT = 3.785 dBm, SCALE = 100.000
ITER = 101, POUT = 3.785 dBm, SCALE = 100.000
ITER = 102, POUT = 3.785 dBm, SCALE = 100.000
APLAC 9.10 WARNING: MinMax optimization terminated due to
maximum number of cycles (OPT_CYCLES) at sweep point 1 (Freq=2.2 GHz) |
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 was not sufficient for the optimizer to find the specified output power so the analysis failed. No Format |
---|
SWPVAL 1, INITIAL SCALE = 1.000
ITER = 1, POUT =-1.179 dBm, SCALE = 3.120k
ITER = 2, POUT =-5.655 dBm, SCALE = 2.381k
ITER = 3, POUT =-4.807 dBm, SCALE = 23.691
ITER = 4, POUT =-4.520 dBm, SCALE = 25.017
APLAC 9.10 WARNING: Random optimization terminated due to
maximum number of cycles (OPT_CYCLES) at sweep point 1 (Freq=2.2 GHz) |
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 = 917.6 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. No Format |
---|
SWPVAL 1, INITIAL SCALE = 1.000
ITER = 1, POUT =-18.653649 dBm, SCALE = 1.208210
ITER = 2, POUT =-17.218188 dBm, SCALE = 1.674685
ITER = 3, POUT =-14.970845 dBm, SCALE = 2.778 857
.
.
.
ITER = 4101, POUT =-11 17.848195 dBm, SCALE = 5747.545433
.
.
.
ITER = 100102, POUT = 917.606200 dBm, SCALE = 225742.000745
ITERAPLAC = 101, POUT = 9.606 dBm, SCALE = 225.000
ITER = 102, POUT = 9.606 dBm, SCALE = 225.000 9.10 WARNING: MinMax optimization terminated due to
maximum number of cycles (OPT_CYCLES) at sweep point 1 (Freq=2.2 GHz) |
|