How to convert filtered current command (Id_refC, Iq_refC) into a VSC modwave in Simulink?

8 views (last 30 days)
Good day! I am currently modeling a BESS for frequency and voltage support in Simulink. After modeling the frequency, PQ, and charge controller, I am now left with a filtered current (Id_refC and Iq_refC) to command the BESS whether to charge or discharge. I am using an average-value VSC for the battery. Shown below is the overall block diagram of the BESS.
I have looked at examples, and so far, I have seen PWM (three-phase, two-level) being used. However, my issue with that method is that the PWM requires V_abc and V_dc. I am aware that I can use the inverse park transform to convert the Id,q to I_abc. However, I am unsure what other methods there are to achieve a modwave for the VSC. I am also unsure how to convert I_abc to V_abc in such a way the filtered command doesn't get affected.
Shown below are the block diagram of the charge controller (its outputs are the inputs for the VSC) and the simulink blocks I'm currently using. Hopefully, this could help. But if more context or information is needed, feel free to mention it and I will provide accordingly.
Thank you very much!
P.S. Is the output current (Id_refC or I_abc_filtered) enough to determine the state of the battery, whether it should charge, discharge or stay idle?

Answers (1)

Sabin
Sabin on 4 Oct 2025 at 13:14
What is missing is the current controller to control the VSC. If you have the Id_refC and Iq_refC then you can add the inner loop Id and Iq controllers. The control action (output of controllers) will be the reference voltages/modulation waveforms that you can use to control the VSC.
This repository can be useful for your problem:

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!