@DJSHi Eric,
Thank you for finding out the problem. The circuit indeed was designed to have hysteresis of approximately 2v-3v so that it does not start charging again until the voltage drops to around 52v. It was done this way to avoid oscillation in case of small voltage change in battery. But it seems, oscillation still exists. Kindly suggest how this issue can be solved.
Best,
DJS
For your review I have attached both an .asc file and a screen capture (trace colors are noted to the right of the schematic). I believe the mods I show fix the problems I know of except: (a) There is no detection of a "shorted MOSFET". (b) There is no relief from the very many tolerances stackup that will make the "charger on"/"charger off" thresholds vary from unit to unit. Those tolerances include (a) the 12V PS, (b) R1:R2 divider, (c) R4:R7 divider, (d) large variation of Vtrig internal to the NE555, (e) large variation of Vthreshold internal to the NE555.
From your original circuit, changed or added components:
Added Q2, R3, R6, R5 to provide a high quality gate drive to the MOSFET, M1. Note the clean "on" and "off" periods.
Added D2, a necessary blocking diode that is sometimes built-in to a panel and sometimes must be added by the user.
Added R8, to better simulate a panel and keep the charging current to a reasonable value.
Removed the opto-coupler and associated components.
The TEST conditions: I set the panel voltage and battery voltage to simulate 2+ cycles of extreme high/low. The battery low voltage is set to 20V, rising to a max of 60V. The panel output (ignoring drop in R8) varies from 0V (dark) to 58V (noon).
I invite your review of the circuit. Of course, using the .asc file you can easily try other conditions than I have shown. Have fun!
EDIT: I just noticed that I failed to remove R6 from an earlier circuit variation; replace R6 with 0 ohms.
View attachment 186444