音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

PID

作者:jordanxiao509 欄目:單片機(jī)
我最近剛做了個有關(guān)PID 的課題  ,已經(jīng)調(diào)出來啦。
有哪位大哥想學(xué)PID的,我們可以一起探討一下。

有誰要我的PID 程序的,發(fā)E-MAIL給我!。!

2樓: >>參與討論
WX1380091
能不能給我發(fā)一份,wx1380091@163.com,謝啦。
3樓: >>參與討論
johnk_yu
給我一份,讓我與你共同進(jìn)步,謝謝!yudonglin@etang.com
4樓: >>參與討論
huping_8039
我也想要一份啊,有一些問題我始終還比較模糊,希望能指點
huping_8039@sina.com
5樓: >>參與討論
zwyxtc
給我一份,謝謝
6樓: >>參與討論
zwyxtc
給我一份,謝謝!
zwymail@e165.com
7樓: >>參與討論
liuhualove
謝謝,給我也一份,了解了解
liu999hua@163.com
8樓: >>參與討論
likemcu
可不可以給一份?
likemcu@126.com
9樓: >>參與討論
實在很忙
什么意思啊
讓我開開眼啊
10樓: >>參與討論
mcs-51
給我一份intel8086cpu@126.com
你的PID是用于控制電機(jī)的嗎
范圍有多大
11樓: >>參與討論
98dian
樓主,我也想要一份,能否相贈?
98dian@163.com
謝謝
12樓: >>參與討論
gezhe
我想要一份!謝謝!
ge-zhe@163.com
13樓: >>參與討論
江南客
給我一份瞧瞧,謝嘍!
xwzh1213@163.com
14樓: >>參與討論
richard_wz
可不可以給一份?
richard_wz@jsmail.com.cn
15樓: >>參與討論
zhan_cl
單片機(jī)做個PID算法很難嗎?
16樓: >>參與討論
gnohyang
給我一份PID 程序,謝謝!
gnohyang@163.com
17樓: >>參與討論
溫spring
這是我結(jié)合相關(guān)資料寫的PID控制電機(jī)速度的程序,請高手指點
參考資料:《時間觸發(fā)嵌入式系統(tǒng)設(shè)計模式》 作者:Michael J.Pont
#include "reg51.h"
#define uCHAR unsigned CHAR
#define uint unsigned int


//----------私有函數(shù)原型------------------------------------------------------------
static void PID_MOTOR_Set_New_PWM_Output(const uCHAR);
// ----------私有常量----------------------------------------------------------------
#define Pulse_Required (100)
#define PID_PROPORTIONAL (5)
#define PID_INTEGRAL (20)
#define PID_DIFFERDENTIAL (5)
#define PERIOD 50
#define FRONT 0x02           //電機(jī)前轉(zhuǎn) 
#define BACK 0x01            //電機(jī)后轉(zhuǎn)
bit DIRECTION = 1;
// ----------私有變量----------------------------------------------------------------
// 僅用于演示目的
//uint Ticks = 0;
// 存儲最新的計數(shù)值和控制器輸出變量
static uCHAR Pulse_measured_G = 80;
static uCHAR Controller_output_G = 25;
static int Old_error_G = 0;
static int Sum_G = 0;
static uCHAR TIME = 0;
static uCHAR PERCENT = 20;
static uint FLAG = 0;


//-----------------中斷0.1ms----------------------------------------------------
void Pulse_t0() interrupt 1         
{
 TH0 = 0xff;//(65536 - 100) / 256;    
 TL0 = 0x9c;//(65536 - 100) % 256;     
 TIME++; //累計定時中斷的次數(shù),產(chǎn)生5ms,200Hz的方波
 if(TIME == PERCENT) //高電平時間到變低
  P1 = 0;           
 else if(TIME >= PERIOD) //周期時間到變高
 {
  TIME = 0;
  if(DIRECTION) //判斷方向
   P1 = FRONT;          
  else
   P1 = BACK;
 }             
 FLAG ++;
}

//-----------------累計脈沖個數(shù)-------------------------------------------------
void Count_int0(void) interrupt 0
{
 Pulse_measured_G++;
}


/*---------------------------------------------------------------------------------*-
  PID_MOTOR_Control_Motor()
  電動機(jī)主控制函數(shù)
-*---------------------------------------------------------------------------------*/
void PID_MOTOR_Control_Motor(void)
{
 int Error = 0;
 int Control_new = 0;
/* if(++Ticks == 100)
 {
  Pulse_measured_G = 200;
 }
*/
 // 期望轉(zhuǎn)速和實際轉(zhuǎn)速之間的差(0~255)
 Error = Pulse_Required - Pulse_measured_G;
 // 比例項
// Control_new = Controller_output_G + (Error / PID_PROPORTIONAL);
 Control_new = Error / PID_PROPORTIONAL;
 // 模數(shù)轉(zhuǎn)換(如果不需要,設(shè)置為0)
 if(PID_INTEGRAL)
 {
  Sum_G += Error;
  Control_new += (Sum_G / (1 + PID_INTEGRAL));
 }
 if(PID_DIFFERDENTIAL)
 {
  Control_new += (Error - Old_error_G) / (1+ PID_DIFFERDENTIAL);
  Old_error_G = Error;
 }
 // 調(diào)整至8位范圍
 if(Control_new > 25)
 {
  Control_new = 25;
  Sum_G -= Error;   // 頂死保護(hù)
 }
 if(Control_new < -15)
 {
  Control_new = -15;
  Sum_G -= Error;    // 頂死保護(hù)
 } 
 // 轉(zhuǎn)換為所需的8位格式
 Controller_output_G = (uCHAR) Control_new;
 // 更新脈寬調(diào)制設(shè)置
 PID_MOTOR_Set_New_PWM_Output(Controller_output_G);
}


/*----------------------------------------------------------------------------------*-
  PID_MOTOR_Set_New_PWM_Output()
  調(diào)整脈寬調(diào)制輸出值
-*----------------------------------------------------------------------------------*/
void PID_MOTOR_Set_New_PWM_Output(const uCHAR Controller_output_G)
{
 PERCENT += Controller_output_G;
 if(PERCENT < 5) PERCENT = 5; 
 if(PERCENT > 45) PERCENT = 45;
}


/*..............................................................................*/
/*..............................................................................*/
void main(void)
{
 IP = 0x01; //置INT1為高位優(yōu)先級          
 TMOD = 0x01; //T0,T1 16位計數(shù)方式          
 IT0 = 1; //置INT1邊沿觸發(fā)
 //設(shè)置定時計數(shù)初值           
 TH0 = 0xff;     //(65536 - 100) / 256;        
 TL0 = 0x9c;     //(65536 - 100) % 256;
 EA = 1; //開中斷           
 ET0 = 1;
 TR0 = 1;
 EX0 = 1;
 if(DIRECTION) 
  P1 = FRONT;
 else
  P1 = BACK;
 for(;;)
 {
  if(FLAG == 1000)  // Mock Up of PID Processing 
  {
   EX0 = 0; //關(guān)中斷
   TR0 = 0;
   PID_MOTOR_Control_Motor();
//   PID_MOTOR_Set_New_PWM_Output(rOut);
   FLAG = 0;
   Pulse_measured_G = 0;
   TR0 = 1; //開中斷
   EX0 = 1;
  }
 }
}

18樓: >>參與討論
溫spring
樓主,能不能發(fā)一份你寫的PID給我,交流交流。謝謝!
我的E-mail:hotspring2651@yahoo.com.cn
19樓: >>參與討論
lanzhuang
也給我一份吧,lanzhuang2001@163.com,謝謝。
20樓: >>參與討論
yangyong
yangyong@sa.buaa.edu.cn
謝謝!!
21樓: >>參與討論
fujianhui
這位大哥也給我一份。謝謝!fujianhui0817@163.com
22樓: >>參與討論
yanjueru

謝謝也給我一份吧。。。。。!cn88007@126.com

23樓: >>參與討論
灰姑娘

路過,支持

24樓: >>參與討論
樂天

謝謝也給我一份吧。。。。。。lianxiu361@163.com

25樓: >>參與討論
zq20090902
我是正在準(zhǔn)備參加09電子競賽的,控制類,已經(jīng)做了智能小車和懸掛控制系統(tǒng),請發(fā)給我一份,謝謝!
26樓: >>參與討論
zi

給我一份 謝謝

465232047@qq.com

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
單片機(jī)里面的時鐘系統(tǒng)是如何工作的啊?
有沒有玩MOTO單片機(jī)?一起交流
求購鑒相器
[原創(chuàng)]C51紅外遙控解碼子程序
請匯編高手指點
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號