Greeting to all Plecs users,

I'm an electrical engineering student and I'm new to PLECS simulations.

I have some trouble with implementing some discrete equations in a C-script. I have a set of continuous equations:

and instead of modeling them with existing block (transfer functions, gains, summation points etc.) I would like to implement them into a C-script as a set of discrete equations with a non fixed sampling time (I would use the non fixed step from PLECS simulation):

Unfortunaly, when starting the simulation I always get an error that says a derivative is infinite or NaN and is pointing to the C-script in PLECS' model of a synchronous machine that I'm using.

Could someone of You guys be so kind and check my C-script which is attached and see where is the problem, I suppose I wrote something wrong in C or defined some DiscState variables wrong.

Thank You very much for Your answers and precious time,

Nardi

Thank You very much for Your answer.

I'm not really sure if division by zero is the problem here. I tested the discrete esimator (in this C-script) outside my original control structure. In fact, I used my continuos estimator in the control structure and I just took the signals to the discrete estimator and looked a his outputs with displays. I didn't give me any error, and I got the same values as I would get with the continuos estimator.

But when I delete the continuos one, a implement the discrete one in my control structure it gives me an error. :/

Now I did all these calculations in major steps by adding if (IsMajorStep) before these calulations, and it work everything without an error but the signals are not very precise. :/