6.6.2 Using the ArbitraryCurve() Function

The ArbitraryCurve() function allows you to generate a curve from an arbitrary mathematical expression of node-voltage and branch-current waveforms. Additionally, the arbitrary mathematical expression can include built-in vector functions, which are all described in Function Reference.

The syntax of the ArbitraryCurve() function has the following syntax with the arguments explained in the table below:

ArbitraryCurve(vector_expression, vectors_to_keep, curve_name, graph_name, grid_index, axis_name, OPTIONAL_PARAMETER_STRING)
Argument Description
vector_expression A mathematical expression of node-voltage and branch-current waveforms. This expression can include built-in vector functions.
vectors_to_keep A space-delimited list of vectors from the vector expression that the program produces in the .PRINT statements for each vector during SIMPLIS simulations and in the .KEEP statements during SIMetrix simulations. This ensures that the vectors supplied in vector expressions are available for plotting after the simulation is complete.
curve_name Name of the curve as it appears in the report.
Note: For your curve to appear in the report, you must prefix the curve name with "DVM".
graph_name Name of the graph for the new test report*
grid_index Grid on which to place the curve*
axis_name Axis on a particular grid*
OPTIONAL_PARAMETER_STRING A space-separated set of KEY=VALUE pairs that defines additional formatting parameters**

* For additional information about graph_name, grid_index, and axis_name, see Graph Address System.

** For additional information about OPTIONAL_PARAMETER_STRING, see Optional Parameters.

To plot the AC-coupled output voltage for a converter, follow these steps:

  1. Open the schematic from  SIMPLIS_dvm_tutorial_examples.zip at this path: LTC3406B/4.1_LTC3406B - DVM ADVANCED.sxsch.
  2. To assign a net name to the converter output, use the keyboard shortcut y, or from the parts selector, choose Connectors|Terminal.
  3. Place the terminal to the right of the DVM OUT probe and add a connecting line.
    Result: After making this schematic change, the output voltage net will be named #VOUT. The schematic should now look similar to the following, which is available from SIMPLIS_dvm_tutorial_examples.zip at this path: LTC3406B/6.6.2_LTC3406B - DVM ADVANCED.sxsch.

To set up the testplan to generate a curve during a steady-state test objective that runs a POP simulation, follow these steps:

  1. Open the testplan from  SIMPLIS_dvm_tutorial_examples.zip at this path: testplans/6.6.1_arbitrary_curve_start.testplan.
    Result: This testplan has one test from the built-in sync buck testplan ad looks like the following:
    ***
    *** modified testplan for arbitrarycurve DVM tutorial section 6.6.1
    ***
    *?@ Analysis Objective Source Load Label
    ***
    Steady-State Steady-State SOURCE(INPUT:1, Maximum) LOAD(OUTPUT:1, 100%) Steady-State|Steady-State|Vin Maximum|100% Load
    Note: Although this testplan has only one test, after you define the curve function, you can copy it to other tests and to other testplans.
  2. In this testplan, add another column and in the header row of the new column, type Create.
  3. Enter the following function into the new Create column, noting the parameters and values in the table below:
    ArbitraryCurve(#VOUT-mean(#VOUT), #VOUT, DVM VOUT-AC, default, A4, VOUT-AC)
    Argument Value / Notes
    vector_expression #VOUT - Mean(#VOUT)

    This is the mathematical expression for the AC coupled output voltage that uses the Mean() vector function to return the average value of the supplied vector over the entire simulation time.

    vectors_to_keep #VOUT
    curve_name DVM VOUT-AC
    graph_name default
    axis_name VOUT-AC: (or any other name you prefer)
    Result: The testplan should now look like the following with the changes in red . This testplan is available from SIMPLIS_dvm_tutorial_examples.zip at the following path: 6.5.1_arbitrary_curve_final.testplan.
***
*** final testplan for arbitrarycurve DVM tutorial section 6.6.1
***
*?@ Analysis Objective Create Source Load Label
***
Steady-State Steady-State ArbitraryCurve(#VOUT-mean(#VOUT), #VOUT, DVM VOUT-AC, default, A4, VOUT-AC ) SOURCE(INPUT:1, Maximum) LOAD(OUTPUT:1, 100%) Steady-State|Steady-State|Vin Maximum|100% Load

To run the testplan from the schematic, follow these steps:

  1. Open the schematic from  SIMPLIS_dvm_tutorial_examples.zip at this path: LTC3406B/6.6.2_LTC3406B - DVM ADVANCED.sxsch
  2. Select DVM > Run > Choose Testplan... from the main menu of the schematic editor.
  3. Navigate to the testplans directory where you extracted SIMPLIS_dvm_tutorial_examples.zip , and select 6.6.1_arbitrary_curve_final.testplan.

    Result: The test report shows a fourth curve on the default graph with the same amplitude and frequency as the VOUT curve, but the vertical axis has a different scale and is centered on zero.

This is one example of the ArbitraryCurve() function. Another version of the function generates X-Y plots. The testplan syntax documentation includes an example where the forward current and forward voltage of a diode are plotted against each other. For more information, see ArbitraryCurve() in the DVM testplan documentation.