11-03-2011 06:53 PM
It feels to me like the industry has reached consensus that the only viable way to simulate switchmode power electronic systems in real-time (other than using low fidelity averaged models) is to use field programmable gate arrays (FPGAs), because of the very high speed pin-to-pin timing requirements required to model the behavior at a level sufficiently accurate for control system testing and validation. Even with the multicore processors and high bandwidth PCI Express communication buses available today, latency is a killer. If your PWM carrier frequency is 20 kHz (50 microseconds), then 1 microsecond of simulation time is equivalent to 5 percent of your duty cycle. Therefore, a 1 MHz (1 microsecond timestep) real-time simulator is about the minimum rate you'd like to have. Meanwhile, power electronics designers are trying to push the outer boundaries of energy efficiency, cost optimization, reliability and fault tolerance, and lifecycle extension in the development of their systems.
So... great. Let's all just use FPGAs then to create our real-time HIL simulators for power electronics. Then we can validate, optimize, and refine our designs as if our control system is connected to a real power system, but without the risk of letting the smoke out, creating explosions in the sky, etc.
Awesome. Problem solved.
Psych. There is a catch. Moving simulations down to an FPGA is...
Let's just say it is not easy.
Why? Three main problems:
1. Continuous to discrete time conversion. If your transfer function has multiple poles that are close to each other, watch out. As you decrease the sample time, dT, they move to the border of the unit circle in the discrete time domain. The boundary of the unit circle is also known as the "stability boundary." It's called the "stability boundary" for a reason. What's the solution? I'll write about that in later posts.
2. Fixed point math. Finding the optimal fixed point representation for an algorithm is an NP hard problem. Translation: It's really f(n) hard. By f(n) I mean "function." What did you think I meant? So... What is the solution? Ironically enough, it's simulation.
3. To be continued. Need to run...