Current and Voltage control

Hello everyone,

I am currently working on an inverter model for a microgrid research project using a cascade PI control structure (Outer Voltage Loop and Inner Current Loop). While the Vd tracking is working, I am experiencing severe, diverging oscillations on the Vq axis whenever the control is activated, and I cannot seem to stabilize it.

Here are the hardware parameters of my 10 kVA system:

  • Power Rating (S): 10 kVA

  • DC Voltage: 800 V

  • Grid Voltage: 400 V (L-L rms), 50 Hz

  • Switching Frequency: 10 kHz

  • LC Filter: L = 5 mH, C_f = 4.72 micro F

  • Resonance Frequency: 1035 Hz

Control Strategy & Tuning:

To maintain stability, I mathematically bound the bandwidths as follows:

  • Inner Current Loop Bandwidth Fbp : Set to 25% of the LC resonance frequencyOuter Voltage Loop Bandwidth (Fbv): Set to be 10 times slower than the inner loop

Here is the exact MATLAB script I used to generate the PI gains:

My Questions:

  1. Is the extremely small capacitor value (4.72 micro F) causing an inherent numerical or solver instability in PLECS when calculating the cascade loops?

  2. Are there any hidden delays (e.g., in the PWM, measurements, or dq transformations) in PLECS that typically cause this specific Vq explosion, and how should I compensate for it?

My Plecs :

GFL_woMC_henry_voltage Control.plecs (134.5 KB)

Hi @henry_01 Great simulation! But since I test some of the variables you’re presenting the error in Vq is not asymptotically zero, to answer your questions 1. PLECS do not cause any numerical or solver instability, but instead of have a time step of 1e-3 and your switching frequency is 10k I’ll change it for a small step. 2. Due to you are using ideal blocks, there are no hidden delays.

In my personal opinion the problem is the tuning of your controllers, are you already tested with simple transfer functions in Simulink? I’ll do that at first to have an insight.

Another thing I’ll look at it after test the linear representation would be some requirements for the integrators in the inner loop, remember that thing evolves at least 10x faster than the outer loop, so you must reset the integrators.

Greetings,

Erick.