按照下面的计算,应该可以通过PWM7和8引脚用示波器看到频率为freq_exc的正弦波,为什么仿真结果不对呢?比如说当freq_exc = 5 时,理论上应该是5k,但是示波器上输出的却是10k。这是什么情况?
float Ts = 0.001/RESOLVER_PWM_FREQUENCY; /* PWM frequency, see parameter.h */
float freq_exc = RESOLVER_EXCITATION_FREQUENCY*1000; /* Excitation frequency (Hz) */
float amplitude = 1.0; /* Peak value of excitation signal (pu) */
float ang_exc = 0;
_iq sin_sig_ref = 0; /* excitation signal (pu) */
// Excitation signal generation for resolver sensor
sin_sig_ref = _IQmpy(_IQ(amplitude),_IQsinPU(_IQ(ang_exc)));
ang_exc += freq_exc*T;
if (ang_exc >= 1)
ang_exc -= 1;
res_pwm1.signal_ref = _IQtoIQ15(sin_sig_ref);
res_pwm1.update(&res_pwm1);