spdreg.c

来自「用freescale公司的DSP56F8013芯片实现的PMSM的SVPWM 驱」· C语言 代码 · 共 45 行

C
45
字号
#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 + =
减小字号Ctrl + -
显示快捷键?