Modeling Photovoltaic Cells - LTspice model part 2/2

Поделиться
HTML-код
  • Опубликовано: 1 июл 2022
  • #163 In this video I continue working on Solar cell models, by creating 2 spice library files - one for a basic model using the 5 parameters that define the 1D2R model; and secondly a more complex model that relies on the datasheet parameters to calculate the 5 parameters needed for the basic model. the algorithm is of course not perfect, but can give some useful insights into solar cell operation.
    Part1 Modeling Photovoltaic Cells - Theory: • Modeling Photovoltaic ...
    Part2 Modeling Photovoltaic Cells - LTspice model : • Modeling Photovoltaic ...
    Model files: drive.google.com/drive/folder...
    Further reading and documentation:
    oa.upm.es/30687/1/2014enef.pdf
    core.ac.uk/download/pdf/16105...
    academicjournals.org/journal/...
    Used Datasheets:
    sunceco.com/wp-content/uploads...
    Special Thanks to all my supporters on Patreon! Especially Ralf B., Paul Pr. Richard, Jonathan Alvarado and Tosta!
    If you liked this video be sure to check out my other videos and you can also subscribe to be up to date with all the new ones!
    If you want to support the creation of more and better videos please consider checking out: / feszelectronics
  • НаукаНаука

Комментарии • 48

  • @akosbuzogany2752
    @akosbuzogany2752 2 года назад +11

    This lesson alone might be worth one's yearly Patreon contribution!

  • @yaghiyahbrenner8902
    @yaghiyahbrenner8902 2 года назад +2

    beautiful - I learned so much more about pv modeling in LT spice but about LT spice usage at the same time, thank you so much!

  • @timng9104
    @timng9104 Год назад +1

    wow what a timely video! I am working on sensors based on solar cells, so i needed some irradiance-dependent model. very helpful thanks!

  • @thomasfry6641
    @thomasfry6641 Год назад +1

    Thank you for sharing this and the model itself, super helpful. I was looking at how to model various PV cells in a circuit, this has saved a ton of time.

  • @johnanderson4638
    @johnanderson4638 2 года назад +1

    Nice video - informative about solar panels and LTSpice! Great work!

  • @alaricsnellpym
    @alaricsnellpym 2 года назад +3

    Nice... that's really handy for modelling solar systems!

  • @pieters286
    @pieters286 2 года назад +3

    As always, very informative.

  • @LukaszTNT
    @LukaszTNT Год назад

    Very helpful elaboration, thank You ❤
    I can tell after examinating the model:
    1. this model has no breakdown voltage, withstands many MegV. I know that this parameter is not published in datasheets.
    2. keep in mind that panels available on market have usually reverse-protection diodes that changes the characteristics of PV module.

  • @user-hu7iw5cp9j
    @user-hu7iw5cp9j Год назад

    Wonderful! Very useful. Thank you!

  • @bcsongor
    @bcsongor Год назад +1

    Hi! Just for you to know: Andreas Spiess (the guy with the Swiss accent), another great youtuber I follow, mentioned the use of your LTspice PV model to demonstrate how come you do not really need solar panel optimizers :D

  • @robertv4076
    @robertv4076 Год назад +1

    Thank you!

  • @rostn6997
    @rostn6997 4 месяца назад +1

    very helpfull!

  • @hedleyfurio
    @hedleyfurio 2 года назад +2

    👍👏

  • @tvarsivi100
    @tvarsivi100 6 месяцев назад

    it is explained very well. I have a question
    Why do the optimizers (Tigo, Huwaei, Solar-Ege etc.) that work at the solar module level do MPPT tracking.
    According to your description, they could actually measure the instantaneous solar module open-circuit voltage, solar module short-circuit current and the solar module temperature (on the back of the solar module) then they didn't need to do MPPT, they already had Pmax.
    Why do they take such a complicated route?

  •  2 года назад +1

    The solar panel datasheet states 47°C nominal temperature. Doesn't that mean the parameters are specified for that reference temperature, and you should change the 25° used in the formulas? Maybe that could account for the small difference in the simulation? (I don't enough proficiency in LTSpice to test it myself)

    • @uwezimmermann5427
      @uwezimmermann5427 2 года назад

      The parameter values in the datasheet are given at STC, standard test conditions, which is 1000 W/m², 25°C and the AM1.5 standard light spectrum.
      The nominal temperature or NOCT (normal operating cell temperature) is the temperature of the cells inside the module which can be expected under fairly average weather conditions.

  • @pbeach7482
    @pbeach7482 2 года назад +1

    Great introduction! Is it possible to get the LT- Spice Files ?

    • @pbeach7482
      @pbeach7482 2 года назад

      Thank you for the reply! The description contains only the text files. Is it possible to get the asc simulation file as well?

  • @antoninofiumano5467
    @antoninofiumano5467 Год назад

    Hi, I tried to make the same circuit using the same param,eters and model but when the simulation is stopped before to run because the value B1 seems to be undefined. I cjecled a lot of time the circuit a any detail bu I didn't finfd a difference wrt your scheme . Can you help me, please?

  • @user-yv3nu2fq9g
    @user-yv3nu2fq9g 8 месяцев назад

    When I run this simulation exactly with same parameters it says "value of B1 is missing" what value should we consider for B1 as it is not given in the video, thanks

  • @danielspaizman
    @danielspaizman Год назад

    I was able to reproduce the single solarPV module IV curve but wasn't able to string them together in series and see double the voltage. Are there any other changes that have to be made to correctly measure the doubled voltage? Does the vout4 have to be defined a particular way?

    • @FesZElectronics
      @FesZElectronics  Год назад

      Did you use component blocks or was it with a discrete implementation? Also regarding net names, in case the same name appears multiple time in the circuit, the nets will be short-circuited - maybe there are multiple instances of "vout4"

    • @danielspaizman
      @danielspaizman Год назад

      @@FesZElectronics It looks like my last response may have been removed. I attempted to make it with component blocks. I am not sure what a discrete implementation means exactly (newbie here). Net names are not overlapping, i don't think. Can net names within a component block be called from the graph viewer? If so, I will triple check that. When I use the solar cell model and connect multiple together, I DO see double the voltage, just not with the component blocks linked in series.

    • @FesZElectronics
      @FesZElectronics  Год назад

      Hello Daniel, By discrete I was asking if you use the 4 component circuit to represent 1 solar cell, or the circuit block; but I think you cleared it up by saying you are using blocks; Net names from within the block should not matter; Maybe one thing to check is if the negative line of the block is ground - so the positive and negative lines should be independent of ground; you can look at the voltage in-between the 2 blocks in series - is it half the output or is it 0?

    • @danielspaizman
      @danielspaizman Год назад

      @@FesZElectronics This was it! It looks like i had forgotten to delete the ground when making the pv_module component block. Once I edited the netlist to refer to v- instead of 0 for the diode, shunt resistor, and voltage source, it worked. Thank you!

    • @FesZElectronics
      @FesZElectronics  Год назад

      Happy I could help :D

  • @CarlVanWormerAE7GD
    @CarlVanWormerAE7GD Год назад

    Thanks for the video! I think your subcircuit file should have io=1e-6 instead of 1e06.

    • @CarlVanWormerAE7GD
      @CarlVanWormerAE7GD Год назад

      I see that further on in the video you corrected the problem . . . never mind . . .

  • @bassamalshaefan8075
    @bassamalshaefan8075 5 месяцев назад

    Thank you for this great lesson.
    I've done everything in this simulation and gets error of undefined B1 value, any thought how to solve it?

    • @FesZElectronics
      @FesZElectronics  5 месяцев назад +1

      There is a formula next to B1 in the simulation - defining the relationship between its current and "illu" voltage. This is the value of B1. Did you also add this?

    • @bassamalshaefan8075
      @bassamalshaefan8075 5 месяцев назад

      yes i did.
      i made everything the same however when i try to run it, i get this error
      Error on line 5 : i§b1 0 n001 i=v(illu)/1000*iph
      Unknown parameter "i"
      Fatal Error: Missing current value for "b1"
      my issue here 3:00
      @@FesZElectronics

    • @bassamalshaefan8075
      @bassamalshaefan8075 5 месяцев назад

      oh , my mistake was the current source i chose regular one instead of "bi" current source :)
      again thanks for this video
      @@FesZElectronics

    • @FesZElectronics
      @FesZElectronics  5 месяцев назад +1

      I noticed this error was occurring also for other viewers - and I just wanted to ask you how did you get the component to be called "i§b1"... I'm sorry if I did not make this clear - it was a behavioral current source - only with that type of component can you add a formula; same goes for voltage sources - if you want a formula it needs to be of "behavioral" type.

  • @prathamg5026
    @prathamg5026 11 месяцев назад

    i am getting no value of current value for B1. how to solve?

    • @hedleyfurio
      @hedleyfurio 10 месяцев назад +1

      I made same error for the current source select bi ( behavioral current source )

  • @LukaszTNT
    @LukaszTNT Год назад

    In 10:20 what is the value taken to calculate Rs_t, in the denominator? Is it "Ib", or "16"? I can't either read it or think out..
    Also in Rsht, is it "5" in the numerator? If yes, where the magic numbers come from, I suppose they are the parameters of silicon?
    UPDATE: ok I used Your files and I see there is 5 and 16.

    • @FesZElectronics
      @FesZElectronics  Год назад

      5 and 16 are magic numbers :D I think I found somewhat different values in the documentation, but with these the model seemed to be more accurate. I will be honest, I did not look deep enough to see what exactly these numbers represent.

    • @DriftJunkie
      @DriftJunkie 7 месяцев назад

      Well, 16/5 is very close to 14/5, which is also very close to e (Eulers number), used in Io_t calculation for some reason. Maybe this is the reason these coefficients exist.

  • @biswajit681
    @biswajit681 2 года назад

    Please make videos on closed loop buck converter and different control algorithm

  • @grautvornix11
    @grautvornix11 Год назад

    Hi, great videos you are producing, many thanks for these.
    Regarding this one here I am trying to reproduce in LTSpice but I cannot find the Solardiode, you only quickly mention it as "built-in" into LTSpice, but I do not find any Solardiode, nor I can
    find any other hints on the internet. Please help, how can I include "SolarDiode" ?

    • @grautvornix11
      @grautvornix11 Год назад

      please ignore this question, I found out by myself, I am quite a newbie with LTSpice

    • @prathamg5026
      @prathamg5026 11 месяцев назад

      how and what did u figure out?@@grautvornix11

    • @FesZElectronics
      @FesZElectronics  5 месяцев назад

      I just used the generic diode simbol present in the LTspice, which I named "SolarDiode". The model definition is in the simulation ".model solardiode d(is=io n=a_n tref=temp)"

  • @naggorski
    @naggorski 10 месяцев назад

    I am having issues with the 'Arbitrary Behavioral Voltage or Current Source' "B1 and later B13 in your more complex example. The error log is:
    Error on line 8 : i§b13 0 n001 i=ipv_t*v(illu)/1000
    Unknown parameter "i"
    Fatal Error: Missing current value for "B13"
    Please help
    my netlist is:
    R5 illu 0 100Meg
    R2 N001 0 R=rsh_t
    R3 v+ N001 R=rs_t
    D1 N001 0 pvdiode2
    V1 illu 0 {illu}
    I1 v+ 0 PULSE(0 10 0 1 1) load
    I§B13 0 N001 I=ipv_t*v(illu)/1000
    .model D D
    .lib ...\standard.dio
    .tran 1
    .temp 25
    *.temp 10 25 70
    .step param illu list 200 600 1000
    *.param illu 1000
    .param voc 44.71
    .param isc 8.947
    .param vmp 37.23
    .param imp 8.06
    .param tk_voc -0.0034
    .param tk_isc 0.0005
    .param voc_t voc*(1-tk_voc*(25-temp))
    .param isc_t isc*(1-tk_isc*(25-temp))
    .param vmp_t vmp*(1-tk_voc*(25-temp))
    .param imp_t imp*(1-tk_isc*(25-temp))
    .param a_n 1.3*voc/0.7
    .param rs_t (voc_t-vmp_t)/(16*imp_t); 2 instad of 16 in original source
    .param rsh_t 5*vmp_t/(isc_t-imp_t); 1 instead of 5 in original source
    .param vt_t (1.38e-23*(273+temp))/1.6e-19
    .param io_t ((rs_t+rsh_t)*isc_t-voc_t)/(rsh_t*exp(voc_t/(a_n*vt_t)))
    .param ipv_t isc_t*(rsh_t+rs_t)/rsh_t
    .model PVDiode2 D(Is=io_t N=a_n Tnom=temp)
    .backanno
    .end

    • @FesZElectronics
      @FesZElectronics  5 месяцев назад

      I tried to simulate the netlist you gave, and got the same error; however if I deleted "I§" and just left "B13 0 N001 I=ipv_t*v(illu)/1000 " it seems to work... do you know how the "I§" got there? I guess multiple people have the same issue...

  • @rjrodrig
    @rjrodrig Год назад

    when I try to parametrize my own simulation LTspice complains "LTspice cannot resolve .param ...." In other words if I put an expression for example: .param Rsh=((Vmp-(Imp*Rs))*(Vmp-(Rs*(Isc-Imp)))-(n*a*Vt))/(((Vmp-(Imp*Rs))*(Isc-Imp))-(n*a*Vt*Imp)). LTspice complains.. I don't know how to pass Resistances computed to the resistor, even though you explain in your video to say R=Rsh, it does not do it. Also, I can't have LTSpice compute any values, I have to use B(V) sources to do the math, as it refuses to multiply add, etc... the only way I have found to do it is through behavioral Voltage or current sources and put the equation. In your case, it works, and in my case it doesn't why? Any ideas?

    • @rjrodrig
      @rjrodrig Год назад

      It turns out that If I use .param X = { Expression } it evaluates without issues.

  • @troy6882
    @troy6882 2 года назад

    Stuff the cells if at one amp 6v at solaronix well since I got half anyway what about for a high current battery to replace acid types to run high current aultanator units or you could build like the bike kit we did 32v one amp input and after test hopefully it will draw charge at lower inputs on dynamo or solar??? should fit a 50mm frame but should with type design use run your 18650 charge each battery after a transformer HUD in your Tesla car??. Want to do a math with 3to seven band cells to see watt wise to length wether you can get a product for night time run use with a reflector or add a second cell on the laser pump laser beam lasers to a mm likely 10mm size to double it up to light absorbed by the cells silicone needs several depends on material types!. Where's them 9w cells I got! 😃😄😁😆😅5 Smiles.