MATLAB Answers

How to get average power from simulink scope

5 views (last 30 days)
Yousef on 10 Feb 2021
Answered: Pratyush Roy on 15 Feb 2021
I creat this blocks to find average power of two sin waves with different frequencies
p(t)=v(t)*i(t) (frequency of v(t) is 1 rad/s and i(t) is 3 rad/s)
then i got this plot
from this plot it's clearly the average power is zero but how can i get it from command window

Accepted Answer

Pratyush Roy
Pratyush Roy on 15 Feb 2021
Hi Yousef,
Firstly the data can be exported to workspace as an array of shape (N,2). Here N represents the number of time instances. The code snippet below can be used to obtain the array
scopeConfig = get_param('power_model/Scope','ScopeConfiguration');% power_model denotes the Simulink model mentioned before
scopeConfig.DataLogging = true;
scopeConfig.DataLoggingSaveFormat = 'Array';
out = sim('power_model');
arr = out.ScopeData;
The first column in the array represents the time values and the second column represents the array values. To obtain the average power we can simply take the mean of the second array:
avgPower = mean(arr(:,2));
Hope this helps!

More Answers (0)


More Answers in the  Power Electronics Control

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!