SVPWM模块(by:睿智的嵌入式(WiseMCU))
使用SVPWM输出马鞍波,原仓库:rubinsteina13/C_SVPWM_LIB
可以直接使用,不需要额外配置
使用示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #define PI 3.1415926535897f svpwm_t svpwm = SVPWM_DEFAULTS;
svpwm.para_type = US_ANGLE;
svpwm.u_dc = 10.0f;
svpwm.counter_period = 1000;
svpwm.vector_value = 1.0f;
svpwm.vector_angle = PI / 3;
svpwm.m_calc(&svpwm);
DEBUG("Angle: %f, A: %f, B: %f, C: %f", svpwm.vector_angle, svpwm.a_pwm_duty, svpwm.b_pwm_duty, svpwm.b_pwm_duty);
|
编写测试DEMO:
1 2 3 4 5 6 7
| for(float angle = 0.0f; angle < 2 * PI; angle += 0.01f) { svpwm.vector_angle = angle; svpwm.m_calc(&svpwm); DEBUG("Angle: %f, A: %f, B: %f, C: %f", svpwm.vector_angle, svpwm.a_pwm_duty, svpwm.b_pwm_duty, svpwm.b_pwm_duty); }
|
将数据可视化
结果如图:

开源地址
WiseMCU/EasyUseMcuTools: MCU工具和驱动集合库 (github.com)