Create a motor controller in Simulink and compile it for an FPGA, is this possible?

3 views (last 30 days)
My student team and I are developing a new exoskeleton where we are using our university's exoskeleton as an example. The motors (series elastic actuators) are controlled by a complex model running directly on an FPGA. We have no clue what that model looks like since its written directly in C by some company and compiled to run on a custom FPGA.
To keep the tech "in-house" for the coming years of the team, we want to create our own motor controller (position, torque control etc). Running it directly on our Intel NUC through EtherCAT down to the motors causes significant lag. That's why we're back to square 1 with the FPGA's.
Now my question is whether it is feasible to create a motor controller model in simulink and compile it down to run on one of the supported FPGA's while maintaining high response rates with minimal lag?
I know this is somewhat of a vague question but we are interested in whether this is an option at all.

Accepted Answer

Cam Salzberger
Cam Salzberger on 4 Sep 2015
Hello Nick,
I understand that you are wondering if you can create your own motor controller in Simulink, and compile it to run on an FPGA. The Simulink Control Design toolbox is very useful for creating an testing your controller. Once your controller is created, you can use HDL Coder and HDL Verifier to compile and test the code for your FPGA. These toolboxes are actually designed specifically for SoC and FPGA programming.
Since HDL code is generated and can be compiled for the FPGA, the responsiveness of the motor controller should be comparable to the original manufacturer's model (depending on model complexity, of course). There is even a tool in MATLAB for helping to optimize the code, and similar techniques can be employed with Simulink. There are even specific HDL-optimized blocks in various toolboxes in Simulink.
I hope that this gives you enough information. Good luck with the motor controller!
-Cam

More Answers (0)

Communities

More Answers in the  Power Electronics Control

Community Treasure Hunt

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

Start Hunting!

Translated by