怎么理解各种Q值?
<div class=""
本帖最后由 一只耳朵怪 于 2018-6-14 10:05 编辑
我是ti DSP的初学者,请教一下大家几个问题,这是在controlSuite的HVLLC工程下的例程,控制芯片是F2802x,有些地方我不是很明白
// Monitor ("Get") // display as:
int16 Gui_Vout; // Q9
int16 Gui_Ipri; // Q9
int16 Gui_V_SR1; // Q9
int16 Gui_V_SR2; // Q9
int16 Gui_I_SR1; // Q8
int16 Gui_I_SR2; // Q8
// Configure ("Set")
int16 Gui_Vset; // Q9
这里的Gui_Vset 是Q9格式,假如我在watch窗口Gui_Vset变量下设置为12,也就是想让输出电压为12V,那么在程序里Gui_Vset是12*2^9吗?
这里为什么设置为Q9,还有其他的一些Q值是怎么确定的,比如这里的PID三个参数,为什么是Q10,这些问题挺困扰我的
Pgain = 200; // Q10
Igain = 1; // Q10
Dgain = 5; // Q10
这里的一段程序
//Multiply with longs to get proper result then shIFt by 14 to turn it back into an int16
Vset = ((long)Gui_Vset*(long)iK_Vset) >> 5;
其中iK_Vset = 27618; // 1.686 (Q14),Vset是PID控制的反馈值(CNTL_2P2Z_Ref1 = &Vset;)
Vset为什么要走这样处理?感觉都是跟Q值有很大关系