📄 spdreg.c
字号:
#include "Cpu.h"
#include "Events.h"
#include "Spdreg.h"
extern int omeg; /* Q0 about 240,angle increment */
extern int spdref; /* Q0 240 means 1000rpm */
extern int iqout; /* Q1 */
extern int iqtemp0; /* Q1 */
extern int iqref; /* Q15 */
extern int gujun;
void Spdreg(void)
{
long int temp32;
long int temp33;
int errspd; /* Q0 error */
int kpspd=512; /* Q8 */
int kispd=128; /* Q8 */
int kcspd=8192;
int iqrmin=10830; /* Q1 q axis min value */
int iqrmax=11000; /* Q1 q axis max value */
int iqtemp; /* Q15 used to calculate ud */
errspd=spdref-omeg;
temp32=(L_mult(kpspd,errspd))>>8;
iqtemp=iqtemp0+(int)(temp32);
if(iqtemp>iqrmax)
iqout=iqrmax;
else if(iqtemp<iqrmin)
iqout=iqrmin;
else
iqout=iqtemp;
temp32=(L_mult(kispd,errspd))>>8;
temp33=(L_mult(kcspd,(iqout-iqtemp)))>>16;
iqtemp0=iqtemp0+(int)(temp32+temp33);
iqref=iqout;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -