分析是以TI的文档SPRA589A为例子。<br />逆变器程序,CPU频率在20MHz,载波为20kHz(50uS), updown计数,所以周期寄存器定时25uS,那么周期寄存器T=25000nS/50nS=500,<br />;Convert Q11 value to an absolute Q0 for use in Compare reg.<br />spm 3<br />LT Uniinv_H_0 ; (Q11)<br />MPY #1000 = 1000*U = 2T*U<br />PAC ;ACC = 2T*U/64 = (T/2)*(U/16), max U=16, T=500<br />rpt #4<br />norm *<br />SACH GPR0<br />这个逆变器是双极性的,如果是开环双极性SPWM推动逆变器,可以发现开环双极性SPWM公式,最大的pwm寄存器也是250,那么我想,无论最后的PI补偿结果算出来是什么,最后都要小于250,<br />即U × 待定系数<=250,<br />因为U是Q11有符号,即U的绝对值最大为16,<br />但是前面的P = 1000*U = 2T*U不知道是如何得来的?特别是2T,其中的T是否是我估计的周期寄存器值。<br />问题2,U是如何规格化的<br /><br />计算PI结果时,<br />norm * ;q27<br />sach Un_iinv ;Q11<br />他只取高11为,低15位都不要了,似乎是在忽略小数部分,也许是因为后面的小数太小了,不起作用了。<br />可是我对于norm的作用不清楚,查了半天也没有找到相关的资料,这个应该是和补码的乘法有关,估计是去掉多余的符号位,但是介绍的资料太少了 |
|