亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? seekline_pid.c

?? 自動(dòng)小車 尋找白線 程序。 采用后輪驅(qū)動(dòng)mega系列單片機(jī)控制
?? C
字號(hào):
/***************************PID算數(shù)有關(guān)**********************************************/

//unsigned int L_kp ;	
//unsigned int A_kp ;	
#define ANGLE_KPVALUE 1000
#define ANGLE_KIVALUE 0  
//2
#define ANGLE_KDVALUE 0
//60
  
  
  
#define ANGLE_MAX 400<<10 		//最大調(diào)節(jié)量輸出為正負(fù)400。
#define ANGLE_MIN -(400<<10)

#define ANGLE_Imax ( 10<<10 )		//位置PID,積分上限
#define ANGLE_Imin -( 10<<10 )		 //位置PID,積分下限

#define ANGLE_DEADLINE 0X00	//速度PID,設(shè)置死區(qū)范圍
//////////////////////////////////////////////////////////////////////////////////


#define LOCA_KPVALUE 1600
#define LOCA_KIVALUE 3
#define LOCA_KDVALUE 60 
  


#define LOCA_MAX 200<<10 		//最大調(diào)節(jié)量輸出為正負(fù)200。
#define LOCA_MIN -(200<<10)

#define LOCA_Imax ( 10<<10 )		//位置PID,積分上限
#define LOCA_Imin -( 10<<10 )		//位置PID,積分下限

#define LOCA_DEADLINE 0X00	//速度PID,設(shè)置死區(qū)范圍
///////////////////////////////////////////////////////////////////////


typedef struct PID			//定義數(shù)法核心數(shù)據(jù)
{

	
	signed long angle_Ref;		//位置PID,位移設(shè)定值
	signed long angle_FeedBack;	//位置PID,位移反饋值,當(dāng)前位置

	signed long angle_PreError;	//位置PID,前一次,位移誤差,ui_Ref - FeedBack
	signed long angle_PreIntegral;	//位置PID,前一次,位移積分項(xiàng),ui_PreIntegral+ui
			
	signed int angle_Kp;		//位置PID,比例系數(shù)	
	signed int angle_Ki;		//位置PID,積分系數(shù)	
	signed int angle_Kd;		//位置PID,微分系數(shù)
	
	signed long angle_PreU;		//電機(jī)控制輸出值
	
	
	signed long loca_Ref;		//位置PID,位移設(shè)定值
	signed long loca_FeedBack;	//位置PID,位移反饋值,當(dāng)前位置

	signed long loca_PreError;	//位置PID,前一次,位移誤差,ui_Ref - FeedBack
	signed long loca_PreIntegral;	//位置PID,前一次,位移積分項(xiàng),ui_PreIntegral+ui
			
	signed int loca_Kp;		//位置PID,比例系數(shù)	
	signed int loca_Ki;		//位置PID,積分系數(shù)	
	signed int loca_Kd;		//位置PID,微分系數(shù)
	
	signed long loca_PreU;		//電機(jī)控制輸出值
				
}PID;
PID	 skPID;        		//  PID Control Structure		



void SEEK_PIDInit (unsigned char seek_speed)
{	
	switch ( seek_speed )
	{
		case 0x00 :
		{
			skPID.angle_Kp = ANGLE_KPVALUE;//800; //		 	
			skPID.angle_Ki = ANGLE_KIVALUE;//20; //			
			skPID.angle_Kd = ANGLE_KDVALUE;//60;//
			
			skPID.loca_Kp = LOCA_KPVALUE;//300;		 	
			skPID.loca_Ki = LOCA_KIVALUE;//2;			
			skPID.loca_Kd = LOCA_KDVALUE;//60;
			
			break;
		}
		case 0x01 :
		{
			skPID.angle_Kp = 200;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 100;
			
			skPID.loca_Kp = 200;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 100;
			
			break;
		}
		case 0x02 :
		{
			skPID.angle_Kp = 150;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 100;
			
			skPID.loca_Kp = 200;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 50;
			
			break;
		}
		case 0x03 :
		{
			skPID.angle_Kp = 120;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 40;
			
			skPID.loca_Kp = 120;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 40;
			
			break;
		}
		case 0x04 :
		{
			skPID.angle_Kp = 100;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 30;
			
			skPID.loca_Kp = 100;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 30;
			
			break;
		}	
			
	}
	
	skPID.angle_Ref = 0 ;			//位移設(shè)定值	
	skPID.angle_FeedBack = 0;		//位移反饋值,當(dāng)前位置
			
	skPID.angle_PreError = 0 ;		//前一次,位移誤差,ui_Ref - FeedBack
	skPID.angle_PreIntegral = 0 ;		//前一次,位移積分項(xiàng),ui_PreIntegral+ui
		
	skPID.angle_PreU = 0 ;	
	
	skPID.loca_Ref = 0 ;			//位移設(shè)定值	
	skPID.loca_FeedBack = 0;		//位移反饋值,當(dāng)前位置
			
	skPID.loca_PreError = 0 ;		//前一次,位移誤差,ui_Ref - FeedBack		
	skPID.loca_PreIntegral = 0 ;		//前一次,位移積分項(xiàng),ui_PreIntegral+ui
		
	skPID.loca_PreU = 0 ;	
	
}

//PID參數(shù)設(shè)定
void SeekPIDPara (unsigned char seek_speed)
{	
	switch ( seek_speed )
	{
		case 0x00 :
		{
			skPID.angle_Kp = 300;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 60;
			
			skPID.loca_Kp = 300;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 60;
			
			break;
		}
		case 0x01 :
		{
			skPID.angle_Kp = 200;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 100;
			
			skPID.loca_Kp = 200;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 100;
			
			break;
		}
		case 0x02 :
		{
			skPID.angle_Kp = 150;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 100;
			
			skPID.loca_Kp = 200;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 50;
			
			break;
		}
		case 0x03 :
		{
			skPID.angle_Kp = 120;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 40;
			
			skPID.loca_Kp = 120;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 40;
			
			break;
		}
		case 0x04 :
		{
			skPID.angle_Kp = 100;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 30;
			
			skPID.loca_Kp = 100;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 30;
			
			break;
		}	
		case 0x05 :
		{
			skPID.angle_Kp = 100;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 30;
			
			skPID.loca_Kp = 100;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 30;
			
			break;
		}	
		case 0x06 :
		{
			skPID.angle_Kp = 100;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 30;
			
			skPID.loca_Kp = 100;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 30;
			
			break;
		}	
		case 0x07 :
		{
			skPID.angle_Kp = 100;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 30;
			
			skPID.loca_Kp = 100;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 30;
			
			break;
		}	
		case 0x08 :
		{
			skPID.angle_Kp = 100;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 30;
			
			skPID.loca_Kp = 100;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 30;
			
			break;
		}
		default :
		{
			skPID.angle_Kp = 100;		 	
			skPID.angle_Ki = 2;			
			skPID.angle_Kd = 30;
			
			skPID.loca_Kp = 100;		 	
			skPID.loca_Ki = 2;			
			skPID.loca_Kd = 30;
		}break;	
			
	}
}


//****************************************************************************************


signed int angle_PIDCalc( PID *pp )
{
	signed long angle_error = 0,angle_derror = 0;
	static long angle_Ditem = 0;
	static unsigned int d_count = 100;
	
	d_count++;
		
    	angle_error = pp->angle_Ref - pp->angle_FeedBack;		// 偏差	
		        
	if( ( angle_error < ANGLE_DEADLINE ) && ( angle_error > -ANGLE_DEADLINE ) )	//設(shè)置調(diào)節(jié)死區(qū)
        {
        		
        }						
        else					//執(zhí)行位置PID調(diào)節(jié)
        {   			           	
        	angle_derror = angle_error - pp->angle_PreError;	//計(jì)算微分項(xiàng)偏差
        	
        	pp->angle_PreIntegral += angle_error;		//存儲(chǔ)當(dāng)前積分偏差
        	pp->angle_PreError = angle_error;		//存儲(chǔ)當(dāng)前偏差	
        
        	if(pp->angle_PreIntegral > ANGLE_Imax)		//積分修正,設(shè)定積分上下限,
        		pp->angle_PreIntegral = ANGLE_Imax;        		
        	else if(pp->angle_PreIntegral < ANGLE_Imin)       	
        		pp->angle_PreIntegral = ANGLE_Imin; 
        /*		       		      		
        	else if( pp->angle_PreIntegral>0 && angle_error <0 )	//并于正負(fù)換向時(shí)清零
        		pp->angle_PreIntegral=0;       		
        	else if( pp->angle_PreIntegral<0 && angle_error >0 )
        		pp->angle_PreIntegral=0;
        */		
        	else if( pp->angle_PreIntegral>0 && angle_derror <0 )	//變化趨勢(shì)改變,積分減半
        		pp->angle_PreIntegral >>= 1;       		
        	else if( pp->angle_PreIntegral<0 && angle_derror >0 )
        		pp->angle_PreIntegral >>= 1;
        	
        	angle_Ditem *= 90;		//加延時(shí)因子
        	angle_Ditem /= 100;
        		
        	if(angle_derror != 0)
        	{
        		angle_Ditem += (angle_derror * pp->angle_Kd)/d_count;
        		d_count = 0;
        	}	
        	 
        	pp->angle_PreU = pp->angle_Kp * angle_error + pp->angle_Ki * pp->angle_PreIntegral + angle_Ditem;	//位置PID算法
		
		if( pp->angle_PreU >= ANGLE_MAX ) 		//防止調(diào)節(jié)溢出
			pp->angle_PreU = ANGLE_MAX;

		else if( pp->angle_PreU <= ANGLE_MIN ) 
			 pp->angle_PreU = ANGLE_MIN;	     			
       	}       				
		
				
	
	return (  pp->angle_PreU  >> 10 );		// 返回預(yù)調(diào)節(jié)占空比
	
}
//******************************************************************************************/



//****************************************************************************************

                  
signed int loca_PIDCalc( PID *pp )
{
	signed long loca_error = 0,loca_derror = 0;
	static long loca_Ditem = 0;
	static unsigned int d_count = 100;
	
	d_count++;
		
    	loca_error = pp->loca_Ref - pp->loca_FeedBack;		// 偏差	
		        
	if( ( loca_error < LOCA_DEADLINE ) && ( loca_error > -LOCA_DEADLINE ) )	//設(shè)置調(diào)節(jié)死區(qū)
        {
        		
        }						
        else					//執(zhí)行位置PID調(diào)節(jié)
        {   			           	
        	loca_derror = loca_error - pp->loca_PreError;	//計(jì)算微分項(xiàng)偏差
        	
        	pp->loca_PreIntegral += loca_error;		//存儲(chǔ)當(dāng)前積分偏差
        	pp->loca_PreError = loca_error;		//存儲(chǔ)當(dāng)前偏差	
        
        	if(pp->loca_PreIntegral > LOCA_Imax)		//積分修正,設(shè)定積分上下限,
        		pp->loca_PreIntegral = LOCA_Imax;        		
        	else if(pp->loca_PreIntegral < LOCA_Imin)       	
        		pp->loca_PreIntegral = LOCA_Imin; 
        /*		       		      		
        	else if( pp->loca_PreIntegral>0 && loca_error <0 )	//并于正負(fù)換向時(shí)清零
        		pp->loca_PreIntegral=0;       		
        	else if( pp->loca_PreIntegral<0 && loca_error >0 )
        		pp->loca_PreIntegral=0;
        */	
        	else if( pp->loca_PreIntegral>0 && loca_derror <0 )	//變化趨勢(shì)改變,積分減半
        		pp->loca_PreIntegral >>= 1;       		
        	else if( pp->loca_PreIntegral<0 && loca_derror >0 )
        		pp->loca_PreIntegral >>= 1;
        		
        	loca_Ditem *= 90;		//加延時(shí)因子
        	loca_Ditem /= 100;
        		
        	if(loca_derror != 0)
        	{
        		loca_Ditem += (loca_derror * pp->loca_Kd)/d_count;
        		d_count = 0;
        	}	
			
        	 
        	pp->loca_PreU = pp->loca_Kp * loca_error + pp->loca_Ki * pp->loca_PreIntegral + loca_Ditem;	//位置PID算法
		
		if( pp->loca_PreU >= LOCA_MAX ) 		//防止調(diào)節(jié)溢出
			pp->loca_PreU = LOCA_MAX;

		else if( pp->loca_PreU <= LOCA_MIN ) 
			 pp->loca_PreU = LOCA_MIN;	     			
       	}   
		
		return (  pp->loca_PreU  >> 10 );
} 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2020日本不卡一区二区视频| 久久精品夜色噜噜亚洲a∨| 秋霞午夜av一区二区三区| 欧美国产综合色视频| 欧美日韩国产系列| 成人国产一区二区三区精品| 美国毛片一区二区| 亚洲乱码国产乱码精品精98午夜| 欧美成人精品1314www| 在线观看视频一区| 成人av动漫在线| 黄一区二区三区| 首页欧美精品中文字幕| 中文字幕一区二区三区av| 精品国产乱码久久久久久夜甘婷婷 | 国产91综合网| 美女一区二区三区在线观看| 一区二区三区国产| 国产精品成人免费| 国产清纯在线一区二区www| 欧美一区二区三区婷婷月色| 色综合激情五月| 成人av网站免费观看| 国产麻豆精品95视频| 久久国产精品露脸对白| 视频一区欧美精品| 一区二区三区免费看视频| 国产精品国产三级国产aⅴ中文 | 欧美成人精品3d动漫h| 在线不卡a资源高清| 欧美体内she精视频| 在线观看区一区二| 一本色道久久综合亚洲91| 成人动漫精品一区二区| 国产成人h网站| 国产精品亚洲视频| 精品制服美女久久| 青青草视频一区| 久久国产精品色| 欧美亚洲一区二区三区四区| 成人污污视频在线观看| 粉嫩高潮美女一区二区三区 | 欧美三级三级三级爽爽爽| 日本电影亚洲天堂一区| 91福利在线观看| 在线观看日韩精品| 欧美日韩精品欧美日韩精品一| 欧美日韩中文另类| 欧美美女一区二区三区| 91精品国产色综合久久ai换脸| 91麻豆精品国产综合久久久久久| 91精品一区二区三区久久久久久 | 国产精品影视在线| 成人高清伦理免费影院在线观看| caoporn国产一区二区| 91一区在线观看| 欧美日韩中字一区| 日韩欧美在线123| 久久久午夜精品| 成人免费小视频| 亚洲成av人片在线观看无码| 日韩成人免费看| 九九九精品视频| 成人h版在线观看| 欧美视频一区二| 精品久久久久久最新网址| 久久久蜜臀国产一区二区| 国产精品对白交换视频| 亚洲成人av电影| 精品一区二区三区香蕉蜜桃| 成人avav影音| 欧美亚洲图片小说| 欧美www视频| 亚洲欧美在线另类| 免费视频最近日韩| 成人久久久精品乱码一区二区三区| 一本到不卡精品视频在线观看| 欧美午夜电影网| 久久午夜国产精品| 亚洲理论在线观看| 国产自产高清不卡| 色素色在线综合| 欧美精品一区二区在线播放| 亚洲男人的天堂一区二区 | 久久成人综合网| 成人免费毛片a| 91精品国产入口| 亚洲视频网在线直播| 美女视频网站黄色亚洲| 波多野结衣一区二区三区 | 一本一本久久a久久精品综合麻豆| 91精品在线麻豆| 亚洲啪啪综合av一区二区三区| 日韩精品高清不卡| proumb性欧美在线观看| 欧美另类变人与禽xxxxx| 久久久久久一级片| k8久久久一区二区三区| 欧美xxxxx牲另类人与| 一区二区高清视频在线观看| 国产在线播放一区三区四| 欧美日韩久久久一区| 中文字幕中文字幕在线一区 | 久久毛片高清国产| 午夜日韩在线电影| 97精品超碰一区二区三区| www国产精品av| 日本女优在线视频一区二区| 91在线视频网址| 国产拍揄自揄精品视频麻豆| 日本欧洲一区二区| 欧美日韩精品欧美日韩精品 | 亚洲精品成人天堂一二三| 国产精品一区二区你懂的| 在线不卡免费欧美| 亚洲国产精品尤物yw在线观看| 成人国产一区二区三区精品| 26uuu亚洲综合色| 日韩精品一级二级 | 欧美无人高清视频在线观看| 国产精品情趣视频| 国产91在线看| 国产三级欧美三级日产三级99| 久久国产欧美日韩精品| 欧美一区二区高清| 视频一区二区三区入口| 欧美日韩亚州综合| 亚洲不卡av一区二区三区| 在线精品视频免费播放| 亚洲欧美欧美一区二区三区| www.激情成人| 亚洲欧洲精品天堂一级| av男人天堂一区| 亚洲欧美综合在线精品| 97精品国产97久久久久久久久久久久| 国产精品免费观看视频| 成人毛片老司机大片| 中文字幕一区二区视频| 成人精品视频一区二区三区尤物| 国产欧美在线观看一区| 国产91高潮流白浆在线麻豆| 国产午夜久久久久| 福利视频网站一区二区三区| 中文字幕成人网| 99久久伊人精品| 一区二区三区日韩| 欧美日韩国产成人在线91| 日韩精品91亚洲二区在线观看| 欧美一区二区免费观在线| 久久99热99| 欧美激情自拍偷拍| 97超碰欧美中文字幕| 亚洲午夜久久久久久久久电影院| 欧美日韩精品久久久| 久久精品国产99| 国产精品私人影院| 91黄色小视频| 日本欧美在线观看| 国产日产欧美一区二区视频| 99精品视频在线观看| 亚洲国产精品一区二区尤物区| 日韩女优电影在线观看| 久久婷婷国产综合国色天香| 国产成人午夜电影网| 一区二区三区四区五区视频在线观看| 欧美性大战久久久久久久蜜臀 | 一个色综合网站| 91精品综合久久久久久| 国产精品一区二区免费不卡| 亚洲视频免费看| 欧美一级国产精品| eeuss鲁片一区二区三区| 亚洲自拍偷拍网站| 欧美精品一区二区蜜臀亚洲| 91婷婷韩国欧美一区二区| 视频一区国产视频| 国产精品美女www爽爽爽| 在线看日韩精品电影| 精久久久久久久久久久| 亚洲美女电影在线| 日韩免费在线观看| 97精品国产露脸对白| 蜜桃av噜噜一区二区三区小说| 中文字幕精品一区| 日韩一区二区三区视频在线观看 | 欧美成人精品3d动漫h| 91麻豆高清视频| 韩国三级中文字幕hd久久精品| 中文字幕一区二区在线播放 | 国产清纯在线一区二区www| 欧美在线免费播放| 国产成人亚洲综合a∨婷婷 | 亚洲欧美一区二区三区孕妇| 日韩精品中午字幕| 在线观看一区二区精品视频| 国产激情偷乱视频一区二区三区| 香蕉久久一区二区不卡无毒影院 | 2020国产精品久久精品美国| 欧美性受xxxx黑人xyx| 成+人+亚洲+综合天堂|