⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userparms.h

📁 基于DsPic30F4011的高精度位置伺服控制系统
💻 H
字号:
#define bitset(var, bitno) ((var) |= (1 << (bitno)))
#define bitclr(var, bitno) ((var) &= ~(1 << (bitno)))

#define LED1_ON		bitclr(PORTB,PORTB8)		
#define LED1_OFF	bitset(PORTB,PORTB8)

typedef signed int SFRAC16;

#define Q15(X)	((X < 0.0)?(int)(32768*(X) - 0.5) : (int)(32767*(X) + 0.5));

//**************** 振荡器 ************************************
#define dFoscExt 8000000			// 外部8M晶振
#define dPLL 8						//8倍频
#define dLoopTimeInSec 	0.0001 		//PWM周期0.1ms
#define dDeadTimeSec 	0.000002	//死区时间2us
//
#define dFosc (dFoscExt*dPLL)		//64000000Hz
#define dFcy (dFosc/4)				//16000000Hz
#define dTcy (1.0/dFcy)				//0.0000000625s
#define dDeadTime (int)(dDeadTimeSec*dFcy)	//计数值32
#define dLoopInTcy (dLoopTimeInSec/dTcy)	//
#define FPWM 10000

#define CW	0		// 顺时针方向
#define CCW	1		// 反时针方向


//************方向盘及电机参数*****************
	
#define diSteerCntsPer90Degree 8192				//轮子旋转90度的方向盘编码器线数,精度为90/8192=0.010986328125
#define diEnMaxSteerCnts 8000	//允许方向盘的最大计数值(diSteerCntsPer90Degree - 1)


#define diEncoderCntsPerRev 4096				//转向轮电机主轴传感器编码器线数
#define diMAXCNTS (diEncoderCntsPerRev )		//电机主轴旋转一周的最大计数值

//#define diMachTranScal 1					//方向盘和转向轮的传输比
#define diMechMaxSpeed 			3000			//电机最大转速
#define dfWheelGeerNums 		121.0			//转向轮主齿轮
#define dfBoxGeerNums 			33.0			//变速箱输出齿轮
#define dfScaleFirstDownVel 	42.7			//一级减速比为42.7
#define dfScaleSecondDownVel	(dfWheelGeerNums/dfBoxGeerNums)	//二级减速比
#define dfScaleDownVel 	(dfScaleFirstDownVel*dfScaleSecondDownVel)	//总减速比

#define dfWheelQuarterTurn	(dfScaleDownVel/4)	//转向轮四分之一转的电机转数


//#define diMechMinSpeed 	60			//电机最小转速
#define diMechMaxPower 		700			//电机最大功率700W
//#define diMechVoltage   	24			//电机供电电压
//#define diMaxCurrent 		30			//电机最大电流30A


//**************  Motor Parameters **************
#define diPoles         1       // Number of pole pairs
#define diCntsPerRev    4096    // Encoder counts per revolution
#define diNomRPM        3000    // 
//************** Measurement **************
#define diIrpPerCalc    40      // PWM loops per velocity calculation

//位置环
#define	dPqKp 		Q15(0.6);		//位置PI运算比例系数10240
#define	dPqK1_p 	Q15(1 - 0.6);		//位置PI运算比例系数10240
#define	dPqKi 		Q15(0.0000);		//位置PI运算积分系数2048
#define	dPqKc 		Q15(0.0000);		//2048
#define	dPqOutMax 	Q15(0.5071);		//位置PI运算最大输出
//速度环
#define	dVqKp 		Q15(0.3125);		//速度PI运算比例系数10240
#define	dVqKi 		Q15(0.0625);		//速度位置PI运算积分系数2048
#define	dVqKc 		Q15(0.0625);		
#define	dVqOutMax 	Q15(0.7071);		//速度PI运算最大输出



//ADC比例
#define dqK			Q15(0.5);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -