最开始按照相同的设计,焊了四块一模一样的DSP核心板用作单相整流器电路的控制,然后发现只有一块能正常整流,其余三块在相同程序的情况下无法正常整流,后来发现是有的全局变量没有初始化,把需要用到的全局变量初始化之后又有一块可以正常整流了,但剩下两块仍然存在问题,检查相关计算结果,锁相的精度和ADC读取没有问题,PID相关系数的初始化也正常,实在不知道哪里还会导致程序和电路完全一致的情况下,芯片运行出不一样的结果,求高人指点迷津!
float I_ref_set=0; static float D=0, Ualpha=0, Ubeta=0; static float M = 0; pidUbus.ref = Ubus_ref; Iref = PID_Calc(&pidUbus, Ubus); I_ref_set = 1.4142135623731f * Iref; pidId.ref = I_ref_set; pidIq.ref = 0; U12d = 1.f * Ud + 50.f * 2.f * PI * L * Iq - PID_Calc(&pidId, Id); U12q = 1.f * Uq - 50.f * 2.f * PI * L * Id - PID_Calc(&pidIq, Iq); dq_to_AlphaBeta(&Ualpha, &Ubeta, theta, U12d, U12q); D = Ualpha / Ubus; SINGLESPWM_ac_dc(D);