I need to use a scope to display the current i and the power P as functions of the voltage V, with the curves obtained for various irradiance levels and temperatures

3 Ansichten (letzte 30 Tage)
1. Context
As part of my energy modeling project, I developed a simulation model in Simulink:
  • A photovoltaic (PV) panel model based on the single-diode approach, accounting for irradiance and temperature effects.
the model generate time-domain outputs under standard test conditions.
2. Objectives
I need to extract the I–V and P–V curves of the PV panel for different environmental conditions:
  • Irradiance (G): 200, 400, 600, 800, 1000 W/m²
  • Temperature (T): 0°C, 25°C, 50°C
3. Current model status
The Simulink PV model includes:
  • Computation of Iph, Irs, I0
  • Equivalent PV cell circuit
  • Buck-Boost converter with MPPT and PWM control
  • Time-based curves: Pin(t), Pout(t)Inputs: Irradiance (G), Temperature (T)However, it does not currently output I–V or P–V curves directly.
4. Issues encountered
  • No direct I–V and P–V output
  • No voltage sweep mechanism to generate these curves
  • No variation tracking across different G and T conditions
5. Request for help
I’d appreciate guidance on how to:
  • Add a voltage sweep mechanism (controlled voltage source) to the PV model
  • Automatically extract I–V and P–V curves for different G and T values
  • Create a simulation script that loops over multiple irradiance and temperature settings
  • Export the results (ideally to .mat or .csv)
Thank you in advance for any suggestions or shared examples!

Antworten (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov am 18 Mai 2025
Here are the updated Simulink Model with outputs (time, V, I, P) and simulation script - M-file
%% MATLAB script to simulate the model for different values of G and T
Gs = [200, 400, 600, 800, 1000];
Ts = [0, 25, 50];
for ii = 1:numel(Gs)
G=Gs(ii);
for jj=1:numel(Ts)
T = Ts(jj);
sim('PVModel.slx');
% Note that Column 1: Time; Column 2: V (Module PV); Column 3: I (Module PV);
% Column 4: V (Buck Boost); Column 5: I (Buck Boost); Column 5: P;
Data = [V_I_Module.Time, V_I_Module.Data, V_I_out.Data, P_out.Data];
% Simulation data is augmented:
D_ALL(ii,jj)={Data};
end
end
%% All simulation data are stored in *.mat file:
save('PV_Sim_ALL.mat', "D_ALL");
  1 Kommentar
Eulie
Eulie am 18 Mai 2025
Thank you very much for sharing the updated Simulink model and the simulation script. I appreciate your support.
I followed the steps provided and was able to run the script successfully. However, the output I–V and P–V curves I obtained are not as expected. Specifically, the voltage range in the results seems very limited (e.g., up to around 10 V), and the curves appear incomplete when compared to standard PV characteristic curves.
From what I understand, this might be because the model does not perform a full voltage sweep from 0 to Voc. I believe the current setup may only simulate the PV module's response at a fixed operating point, rather than across a full voltage range.
Could you please confirm if the model is designed to perform such a sweep? If not, would it be possible to suggest how to modify it (e.g., replace the fixed voltage input with a ramp or sweep) in order to generate complete I–V and P–V characteristics?
Looking forward to your feedback, and thank you again for your assistance.
Best regards,
I am looking fro results similar to:

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Electrical Block Libraries finden Sie in Help Center und File Exchange

Produkte


Version

R2025a

Community Treasure Hunt

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

Start Hunting!

Translated by