Breaker operation error in parallel solar system
2 views (last 30 days)
Show older comments
Five solar panels as shown in the following image are connected in parallel, and we designed a circuit on the right that receives the results of the logic circuits as input from the ideal switch and blocks them when overvoltage and overcurrent. It works well in normal situations where there is no cut-off, but an error occurs when a cut-off is made assuming an overcurrent or overvoltage condition.
May I know what the problem is?
An error occurred while running the simulation and the simulation was terminated
Caused by:
- Derivative of state '1' in block 'logic_gate_Version_UP_8_7_ideal_switch/PV Array 4/Diode Rsh/Transfer Fcn' at time 6.0782712007396E-6 is not finite. The simulation will be stopped. There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances)
Component:Simulink | Category:Block error
The part of the element marked in blue in the error message.
0 Comments
Accepted Answer
Daniel
on 26 Aug 2023
I woud guess that Rsh_array5pc is, at some point during the simulation, dropping to a value very near zero, such that the value of IRsh_5% approaches infinity. If you have an infinity term going into the sum, you'll have infinity leaving the sum, the input to your transfer function will be infinite, and you'll get that error.
The relevant concept here is that continuous state (such as the state in continuous transfer functions) is an integral, so the inputs to state can be viewed as derivatives. Thus, "Derivative of state '1'" can be read as "Input to internal state '1'", which is presumably also the input to the block. So you can read it as "Input to block <linked> is not finite" and then trace back.
You can probably solve the problem by putting a saturation block on the output of the divider, such that IRsh_5% is constrained to be between some appropriately large values, or by updating Rsh_array5pc so it never goes to 0. If Rsh_array5pc always carries the same sign you can do this with a Saturation block. Otherwise you can pull the sign out, saturate the magnitude, and put the sign back manually.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!