PMSM is programed in FPGA using HDL coder.

18 views (last 30 days)
Hi everyone,
I am intend to use HDL coder to build PMSM control application. I already saw Matlab's example ( Deploy Motor Control Algorithms to FPGA - Hardware Prototyping) for development this application. But, I have some confuse for this example 's architecturer. I have a question for that one:
  • I don't see any periods for current loop and speed loop. In MCU platform, I usually use 10 kHz for control current loop and 1 kHz for speed loop. But in your example, I don't see anything to synch among subsystems ( speed loop, current loop, pwm, adc)

Accepted Answer

Kiran Kintali
Kiran Kintali on 15 Jun 2022
In the motor control demo project the current control algorithm and speed control runs on FPGA and processor respectively and they are modelled using model reference blocks (also known as model blocks).
The current control algorithm is configured to run at 25kHz (40e-6) and speed control algorithm is configured with 1kHz (1e-3), the sampling time for these referenced models is handled using sample time of inport from variable in data dictionary.
In the MODELING tab “ModelExplorer/External Data/focZynqData/Design Data/sampleTime” you can all the sample times configurations in the model
Additionally you can refer to
“'focZynqHdl/FOC_Velocity_Encoder/FOC_Current_Control/FOC_Current_Control/Phase_Current” inport sample time setting in “Execution’ tab.
ADC and PWM modules are available as IP cores in support packages/reference design of the demo, they are designed to be synchronized, and the interfaces to these modules are available in HDL Workflow advisor
  1 Comment
Cau Tran
Cau Tran on 1 Aug 2022 at 3:35
Thanks for your support. But, I am interesting for PWM IP core. I saw the " Debug and Verify FPGA Algorithms with MATLAB and Simulink", I see the "pwm TestBench" file, but I don't find anything related with this one. Can you provide me this file?
Thanks you a lot.

Sign in to comment.

More Answers (1)

Kiran Kintali
Kiran Kintali on 10 Jun 2022
Please note that Simulink handles the synchronization for you among the various modules in the model.
I would recommend Simulink onramp and https://www.mathworks.com/matlabcentral/fileexchange/58941-hdl-coder-evaluation-reference-guide for further guidance on this topic.
Please share sample models you have in mind and challenges if any w.r.to HDL code generation or deployment onto FPGA/HIL platform.
  1 Comment
Cau Tran
Cau Tran on 14 Jun 2022
I think that Motor Control is a specical application. It request the synchronization between ADC current measurement and PWM module.
Normally, the period of current is same and synch with PWM pulse. And for my experience, the time of speed loop equals 10 times to current loop. But I don't see any relationship between two control loops.
Please share any explaination for your designation.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!