Main Content

createSankeyPlot

Create Sankey diagram

Since R2024b

Description

The createSankeyPlot(PlantInfoObj) method creates a Sankey diagram of the energy in a system or subsystem. Use the autoblks.pwr.PlantInfo object to evaluate and report power and energy for component-level blocks and system-level models.

createSankeyPlot(___,Name=Value) allows specified name-value arguments to set a plot title, specify subsystem that you want to analyze, and remove losses below a threshold.

After you use the findChildSys method to retrieve the autoblks.pwr.PlantInfo object for the system that you want to analyze, use the createSankeyPlot(SubSystem) method to create a Sankey diagram to visualize total energy input, output, and losses.

example

Examples

collapse all

Analyze the power and energy in the conventional vehicle reference application. Use the createSankeyPlot method to visualize power loss.

Open the conventional vehicle reference application. By default, the application has a mapped 1.5 L spark-ignition (SI) engine and a dual clutch transmission. Project files open in a writable location.

Set the system name to ConfiguredConventionalVirtualVehicle.

Create the autoblks.pwr.PlantInfo object.

Use the PwrUnits and EnrgyUnits properties to specify the units.

SysName = 'ConfiguredConventionalVirtualVehicle';
VehPwrAnalysis = autoblks.pwr.PlantInfo(SysName);
VehPwrAnalysis.PwrUnits = 'kW';
VehPwrAnalysis.EnrgyUnits = 'kW*h';

Use the run method to turn on logging, run simulation, and add logged data to the object.

run(VehPwrAnalysis);

Use the dispSysSummary method to display the results.

dispSysSummary(VehPwrAnalysis);

Use the xlsSysSummary method to write the results to a spreadsheet.

xlsSysSummary(VehPwrAnalysis,'EnergySummary.xlsx');

Use the findChildSys method to retrieve the autoblks.pwr.PlantInfo object for the Engine subsystem.

To display the results, use the dispSignalSummary method.

Use the histogramEff method to display a histogram of the time spent at each engine plant efficiency.

EngSysName = SysName+"/Vehicle/ConfiguredSimulinkPlantModel/Engine";
EngPwrAnalysis = VehPwrAnalysis.findChildSys(EngSysName);
dispSignalSummary(EngPwrAnalysis,EngSysName);
histogramEff(EngPwrAnalysis);

Use the findChildSys method to retrieve the autoblks.pwr.PlantInfo object for the Transmission subsystem.

To display the results, use the dispSignalSummary method.

TransSysName = SysName+"/Vehicle/ConfiguredSimulinkPlantModel/Transmission";
TransPwrAnalysis = findChildSys(VehPwrAnalysis,TransSysName);
dispSignalSummary(TransPwrAnalysis,TransSysName);

To plot the results, use the sdiSummary method.

sdiSummary(VehPwrAnalysis,{EngSysName,TransSysName})

To create a Sankey diagram, use the createSankeyPlot method.

VehOnlyAnalysis = VehPwrAnalysis.findChildSys(SysName + "/Vehicle");
SankeySubsystems = string({VehOnlyAnalysis.Children.SysName});
createSankeyPlot(VehPwrAnalysis,ChildSys=SankeySubsystems);

Input Arguments

collapse all

autoblks.pwr.PlantInfo object for the system that you want to analyze.

Data Types: function_handle

Name-Value Arguments

collapse all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: ChildSys=SankeySubsystems

Sankey diagram title, specified as a string or character vector.

Example: Title="Sankey Diagram"

Data Types: string | char

Subsystems that you want to visualize on a Sankey diagram, specified as a string or character vector.

Example: ChildSys="ConfiguredConventionalVirtualVehicle/Vehicle/ConfiguredSimulinkPlantModel/Engine"

Data Types: string | char

Threshold percentage to remove input, output, and loss errors, specified as a scalar.

Example: PctThreshold=5

Data Types: double

Version History

Introduced in R2024b