Simulation of BLDC with SimpleFOC on Proteus

Has anyone here tried running test simulations of SimpleFOC with Proteus simulations? If yes, it’ll be great if I can get some help with the exact circuit design and customizations required with SimpleFOC.

1 Like

Hi there @kartikcode and welcome to the forum!

Thats a very interesting question.

Can you simulate an mcu, an angle sensor and motor physics in proteus? I have little experience in simulation software.

Cheers,
Valentine

Hey Valentine
As per my knowledge about Proteus, we can actually simulate all three components. I have actually already prepared a full circuit simulation of the BLDC motor. As of now, I need to incorporate the angle sensors/encoders in the same. However, I am not really sure how things would work when trying to simulate simpleFOC on proteus.

I’ve been interested in simulation experiments since I design PCBs and what I need is to model a motor, an angle sensor, and an MCU with a driver, and mosfets and current sensing, then run different load tests. I’m not sure Proteus could simulate the physics but then, I know nothing about Proteus. Also, simulating the PCB itself is probably as important as the circuit simulation as the PCB design is critical w.r.t. temperature and current profiles distribution.

If you are willing to dig into this I can provide you with sample test cases, the code and the circuits. Again, can Proteus load SimpleFOC into a simulated MCU and literally emulate/simulate running the code? Does it have an STM32F103 MCU emulator for example?

Cheers,
Valentine

I played with it some time ago (just exploring the sofoware) and it can simulate the MCU and run the code on it (simpleFoc will probably run, but performance will vary since its emulated). I have no clue if its capable to simulate physics for the PCB.

See here for MCU emulation in proteus:

1 Like

Interesting. So you load the hex into an MCU emulator. What is the component library? I guess one way to try is to test it out. Probably cannot run physics but at least it could save you some experimentation.

The component library contains all the components you can use in your circuits. This is what a random STM32 MCU component properties look like (from the libraries bundled with Proteus):

The component library can be expanded (new components created and added) but that’s too much for me so I haven’t looked into it.

You can even code inside Proteus, but you need to configure the compiler (Arduino AVR compiler is I think the only one included in Proteus).