智能车制作
标题:
pid调整方案 代码+注释+上位机
[打印本页]
作者:
模拟cmos
时间:
2012-4-29 21:35
标题:
pid调整方案 代码+注释+上位机
简单来说,pid就是通过定时中断,每隔一个周期进行一次速度改变,最终达到理想速度
把自己的方案贴上来,抛砖引玉
首先,PIT定时中断初始化,此处以20ms为例
/********************定时中断初始化 PIT 初始化*******************************/
void INIT_PIT(void) {
PITCFLMT_PITE=0; //PIT is disabled (40Mbus clock)
PITCE_PCE0=1; //PIT chanel_0 定时器 0 (共四个定时器)enabled
PITLD0=9999; //1 毫秒 PIT Load Register
PITMTLD0=79; //time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS
PITMUX=0x00; //0 The corresponding 16-bit timer counts with micro time base 0
PITINTE_PINTE0=1; //PIT Interrupt Enable Register
PITCFLMT_PITE=1; //PIT is enabled
}
复制代码
在中断函数中写下中断内容
/****************************定时中断进行 pid 计算******************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT0Interrupt(void)//测速的中断程序
{
CarSpeed=PACNT;//车速度值
PITTF_PTF0=1; //定时器 1 标志位清零
PACNT=0X0000;
Speed_Ctrl(); //Speed_PID
PWMDTY1=SpeedPWM;
PITTF_PTF0=1; //定时器 1 标志位清零
}
#pragma CODE_SEG DEFUALT /**/
复制代码
再根据自己小车的实际情况 提供速度选择方案
/************************速度控制**************************************/
void Speed_Ctrl(void) {
if(虚线)
SpeedPWM=Speed_PID(Speed_Normal,CarSpeed);
else
SpeedPWM=Speed_PID(Speed_Bend,CarSpeed);
}
复制代码
其中pid算法函数
/****************************速度 PID*******************************/
unsigned char Speed_PID(unsigned int ideal_speed,unsigned int pulse_count) //连个参数分别为理想速度和 实际速度
{
float temp;
error=ideal_speed-pulse_count;
temp=error/10+50*(error-pre_error)/100;
SpeedPWM=SpeedPWM+(int)(temp);
pre_error=error;
if(SpeedPWM>200)
SpeedPWM=200;
if(SpeedPWM<=0)
SpeedPWM=0;
return SpeedPWM;
}
复制代码
然后配合上位机绘图功能 ,空载和负载情况下分别测试,直到出现pid经典波形
方案比较简单,欢迎提出各种改进
AD:如果你需要上位机,可以移步
http://item.taobao.com/item.htm?id=14478455287
作者:
xiazeyang1008
时间:
2012-4-30 22:39
能留下qq吗?求教
作者:
一毛钱~~~~~~
时间:
2012-5-1 02:20
大半夜的学习了。。。。
作者:
w1u1l1i1
时间:
2012-5-1 10:34
学习了下 谢谢
作者:
gzhcontent
时间:
2012-5-1 16:25
学习了
作者:
模拟cmos
时间:
2012-5-22 10:06
作者:
Mumu.Y
时间:
2012-12-18 12:43
厉害。。
作者:
wscnm
时间:
2012-12-19 01:41
学习了,好样的
作者:
wscnm
时间:
2012-12-19 01:45
我想问问楼主你这是哪个口作为信号输入端
作者:
暗影飞
时间:
2012-12-21 10:44
学习了
作者:
wscnm
时间:
2012-12-21 12:32
不错
作者:
tearedice
时间:
2012-12-23 18:26
mark
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2