打印
[PIC®/AVR®/dsPIC®产品]

关于PIC单片机FOC算法的疑问

[复制链接]
1206|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wodezpyzz|  楼主 | 2016-11-17 11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GLBLCOEF_EXT UWORD cof_uwMaxVdcPu;            //Max Freq, Q15           //WLServo_201105162_B
_GLBLCOEF_EXT UWORD cof_uwMinVdcPu;     //Q15,motor rate current
_GLBLCOEF_EXT UWORD cof_uwMIMaxPu;                //Q0, Unit:0.01Hz
_GLBLCOEF_EXT UWORD cof_uwMTrqMaxPu;    //Q15
_GLBLCOEF_EXT UWORD cof_uwMSpdMaxPu;    //Q15
_GLBLCOEF_EXT UWORD cof_uwMSpdMinPu;    //Q15
_GLBLCOEF_EXT UWORD cof_uwMFreqMaxPu;   //Q15
_GLBLCOEF_EXT UWORD cof_uwMFreqMinPu;   //Q15
_GLBLCOEF_EXT UWORD cof_uwMImMaxPu;            //Q15
_GLBLCOEF_EXT UWORD cof_uwMImMinPu;            //Q15
_GLBLCOEF_EXT UWORD cof_uwMImRatePu;    //Q15

//_GLBLCOEF_EXT UWORD cof_uwMaxCntPu;                //Max Current, Q15                  //WLServo_201106300_C

_GLBLCOEF_EXT UWORD cof_uwRsPu;         //Q15
_GLBLCOEF_EXT UWORD cof_uwRrPu;                        //Q15
_GLBLCOEF_EXT UWORD cof_uwLsleakPu;     //Q10  
_GLBLCOEF_EXT UWORD cof_uwLrleakPu;     //Q10
_GLBLCOEF_EXT UWORD cof_uwLmPu;             //Q10

_GLBLCOEF_EXT UWORD cof_uwLdPu;                        //Q10       
_GLBLCOEF_EXT UWORD cof_uwLqPu;                        //Q10
_GLBLCOEF_EXT UWORD cof_uwRateFluxPu;                //Q12

_GLBLCOEF_EXT UWORD cof_uwRs4Pu;                //Q15
_GLBLCOEF_EXT UWORD cof_uwRr4Pu;                //Q15
_GLBLCOEF_EXT UWORD cof_uwLm4Pu;                //Q10
_GLBLCOEF_EXT UWORD cof_uwLleak4Pu;                //Q10

关于这些变量的声明的后面注释,Q15,Q12,Q10分半是什么意思?我刚接触这个,请大家赐教!
沙发
whj_2008| | 2016-11-18 08:22 | 只看该作者
数据标幺,Q格式,即将小数整型化,Q15格式最大为1.0,小数精度可以显示为0.0001

使用特权

评论回复
板凳
JerryWu75| | 2016-11-18 10:22 | 只看该作者
本帖最后由 JerryWu75 于 2016-11-18 10:26 编辑

Q格式是一种在只有整形变量的MCU中表示浮点数的方式,Q15表示将原浮点数放大2的15次方, Q10表示将原浮点数放大2的10次方.Q15格式的整形数=2^15 X 原浮点数.

事实上将浮点数放大10的倍数,也能成功表示浮点数,例如将0.1放大10倍变成1,那么在程序中1就可以表示0.1
但是用10的倍数的话,在MCU中需要用到大量的乘法和除法,会导致效率的降低.所以目前一般在整形的MCU中,使用2的n次方的倍数来表示浮点数,这样的话,只需要将原数进行左右位移就可以,例如将0.1表达为Q15,只需要将0.1向左移动15位就可以, 而将Q10的1024还原为浮点数,只需要将其向右移动10位, 这样MCU处理起来就非常方便,也提高了效率.

使用特权

评论回复
地板
snakeemail| | 2016-11-18 20:58 | 只看该作者
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

13

帖子

0

粉丝