# autoblks.pwr.PlantInfo

Analyze powertrain power and energy

## Description

To assess powertrain efficiencies, use the `autoblks.pwr.PlantInfo` object to evaluate and report power and energy for component-level blocks and system-level reference applications.

## Creation

### Syntax

``VehPwrAnalysis = autoblks.pwr.PlantInfo(SysName)``

### Description

example

```MATLAB creates an `autoblks.pwr.PlantInfo` object for the system that you specify. `VehPwrAnalysis = autoblks.pwr.PlantInfo(SysName)` where `SysName` is the name of the model or subsystem that you want to analyze.```

### Input Arguments

expand all

Model that you want to analyze.

Example: `'SiCiPtReferenceApplication'`

Data Types: `char`

## Properties

expand all

Average efficiency, dimensionless.

Efficiency, η, dimensionless. To calculate the efficiency, the `Eff` property implements this equation.

`$\eta =|\frac{\sum {P}_{output}-{\sum }^{\text{​}}{P}_{store}\left({P}_{store}>0\right)}{{\sum }^{\text{​}}{P}_{input}-{\sum }^{\text{​}}{P}_{store}\left({P}_{store}<0\right)}|$`

The equation uses these variables.

 Pstore Stored power Pinput, Poutput Input and output power logged by Power Accounting Bus Creator block

Energy balance absolute tolerance, EnrgyBalAbsTol.

To determine if the system conserves energy, the `isEnrgyBalanced` method checks the energy conservation at each time step.

`${E}_{Err}={\sum }^{\text{​}}{E}_{trans}+{\sum }^{\text{​}}{E}_{nottrans}-{\sum }^{\text{​}}{E}_{store}$`

Blocks change the input energy plus released stored energy to output energy plus stored energy. For example, a mapped engine block uses fuel (not transferred energy) to produce torque (transferred energy) and heat loss (not transferred energy). The total modified energy represents the average between the input fuel energy and the energy exiting the system (torque and heat loss). To calculate the total energy modified by the block, the method uses the integral of the average transferred, not transferred, and stored power.

`${E}_{total}=\frac{1}{2}{\left(\underset{0}{\overset{{t}_{end}}{\int }}\left({\sum }^{\text{​}}|{P}_{trans}|+{\sum }^{\text{​}}|{P}_{nottrans}|+{\sum }^{\text{​}}|{P}_{store}|\right)dt\right)|}_{t={t}_{end}}$`

If the energy conservation error is within an error tolerance, the method returns true. Specifically, if either condition is met, the method returns true.

Condition
`$\frac{|{E}_{Err}|}{{E}_{total}}`

or

`${E}_{total}`

The equations use these variables.

 EErr Energy conservation error Etotal Total energy modified by block EnrgyBalRelTol, EnrgyBalAbsTol Energy balance relative and absolute tolerance, respectively Ptrans, Etrans Transferred power and energy, respectively Pnottrans, Enottrans Not transferred power and energy, respectively Pstore, Estore Stored power and energy, respectively Pinput, Poutput Input and output power logged by Power Accounting Bus Creator block

Data Types: `double`

Energy balance relative tolerance, EnrgyBalRelTol.

To determine if the system conserves energy, the `isEnrgyBalanced` method checks the energy conservation at each time step.

`${E}_{Err}={\sum }^{\text{​}}{E}_{trans}+{\sum }^{\text{​}}{E}_{nottrans}-{\sum }^{\text{​}}{E}_{store}$`

Blocks change the input energy plus released stored energy to output energy plus stored energy. For example, a mapped engine block uses fuel (not transferred energy) to produce torque (transferred energy) and heat loss (not transferred energy). The total modified energy represents the average between the input fuel energy and the energy exiting the system (torque and heat loss). To calculate the total energy modified by the block, the method uses the integral of the average transferred, not transferred, and stored power.

`${E}_{total}=\frac{1}{2}{\left(\underset{0}{\overset{{t}_{end}}{\int }}\left({\sum }^{\text{​}}|{P}_{trans}|+{\sum }^{\text{​}}|{P}_{nottrans}|+{\sum }^{\text{​}}|{P}_{store}|\right)dt\right)|}_{t={t}_{end}}$`

If the energy conservation error is within an error tolerance, the method returns true. Specifically, if either condition is met, the method returns true.

Condition
`$\frac{|{E}_{Err}|}{{E}_{total}}`

or

`${E}_{total}`

The equations use these variables.

 EErr Energy conservation error Etotal Total energy modified by block EnrgyBalRelTol, EnrgyBalAbsTol Energy balance relative and absolute tolerance, respectively Ptrans, Etrans Transferred power and energy, respectively Pnottrans, Enottrans Not transferred power and energy, respectively Pstore, Estore Stored power and energy, respectively Pinput, Poutput Input and output power logged by Power Accounting Bus Creator block

Data Types: `double`

Energy units.

Example: ` VehPwrAnalysis.EnrgyUnits = 'MJ';`

Data Types: `char`

Power units.

Example: ` VehPwrAnalysis.PwrUnits = 'kW';`

Data Types: `char`

## Object Functions

 `addLoggedData` Add logged data `dispSignalSummary` Display powertrain subsystem energy analysis `dispSysSummary` Display powertrain system efficiency `findChildSys` Powertrain subsystem energy analysis `histogramEff` Display powertrain subsystem efficiency histogram `isEnrgyBalanced` Logical flag for energy conservation `loggingOff` Turn signal logging off `loggingOn` Turn signal logging on `run` Run powertrain energy and power analysis `sdiSummary` Display Simulation Data Inspector plots of powertrain energy and power `xlsSysSummary` Write powertrain energy analysis to spreadsheet

## Examples

collapse all

Analyze the power and energy in the conventional vehicle reference application. To create a `PlantInfo` object, see step 2.

1. 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.

`autoblkConVehStart `

2. Set the system name to `SiCiPtReferenceApplication`.

Create the `autoblks.pwr.PlantInfo` object.

Use the `PwrUnits` and `EnrgyUnits` properties to specify the units.

```SysName = 'SiCiPtReferenceApplication'; VehPwrAnalysis = autoblks.pwr.PlantInfo(SysName); VehPwrAnalysis.PwrUnits = 'kW'; VehPwrAnalysis.EnrgyUnits = 'MJ';```
3. Use the `run` method to turn on logging, run simulation, and add logged data to the object.

`run(VehPwrAnalysis);`
4. Use the `dispSysSummary` method to display the results.

`dispSysSummary(VehPwrAnalysis);`
5. Use the `xlsSysSummary` method to write the results to a spreadsheet.

`xlsSysSummary(VehPwrAnalysis,'EnergySummary.xlsx');`
6. 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 = 'SiCiPtReferenceApplication/Passenger Car/Engine'; EngPwrAnalysis = findChildSys(VehPwrAnalysis,EngSysName); dispSignalSummary(EngPwrAnalysis); histogramEff(EngPwrAnalysis);```
7. Use the `findChildSys` method to retrieve the `autoblks.pwr.PlantInfo` object for the Drivetrain subsystem.

To display the results, use the `dispSignalSummary` method.

```DrvtrnSysName = 'SiCiPtReferenceApplication/Passenger Car/Drivetrain'; DrvtrnPwrAnalysis = findChildSys(VehPwrAnalysis,DrvtrnSysName); dispSignalSummary(DrvtrnPwrAnalysis);```
8. To plot the results, use the `sdiSummary` method.

`sdiSummary(VehPwrAnalysis,{EngSysName,DrvtrnSysName})`

## Version History

Introduced in R2019a