FPGA based speed control of Brushless DC Motors using IOPT Petri Net models
This paper describes how to implement a functional Brushless DC Motor open-loop speed controller from simple IOPT Petri Net models, using the integrated development environment offered by IOPT-Tools, without the need to manually write software or hardware descriptions. IOPT nets are a Petri net class specifically designed to support the implementation of embedded system controllers. The IOPT-Tools Web service (http://gres.uninova.pt) includes an interactive graphical editor to design IOPT models, a model-checking framework consisting of a state-space generator and a query system, and automatic code generation tools to produce software (C) or hardware (VHDL) controller implementations. The Brushless DC Motor speed controller was decomposed into several subsystems, including a noise-filter, quadrature-decoder, PWM generator and an BLDC commutation-manager. These sub-systems were modeled using simple IOPT models, analyzed using the model-checking tools, resulting in the automatic creation of VHDL modules for each sub-system. To finish the entire project, a top VHDL module is used to instantiate copies of the automatically generated components and specify signals to connect the components to the external world. With the addition of an inverter board, a working prototype was implemented and successfully tested.