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
Afficher commentaires plus anciens
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!
Réponses (1)
Sulaymon Eshkabilov
le 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 commentaire
Eulie
le 18 Mai 2025
Catégories
En savoir plus sur Specialized Power Systems dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
