欢迎来到天天文库
浏览记录
ID:56471169
大小:1.01 MB
页数:27页
时间:2020-06-19
《小车倒立摆答辩.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于ATmeg16单片机的简易直线单级倒立摆系统设计姓名:专业班级:指导教师:倒立摆系统整体方案图ATmeg16单片机Nokia5110液晶显示器BTS7960驱动器直流电动机摆杆小车WDD35D-4型角位移传感器干扰OMRON编码器PID控制器倒立摆简化物理模型示意图倒立摆的实物模型示意图单级倒立摆的控制算法设计PID公式:其中,t为时间参数,u(t)为输出量,r(t)输入量;err(t)=u(t)-r(t)PID增量式算法(离散化):C语言实现:typedefstructPID{intSetPoint;//设定目标DesiredValuelongSumError;/
2、/误差累计doubleProportion;//比例常数ProportionalConsdoubleIntegral;//积分常数IntegralConstdoubleDerivative;//微分常数DerivativeConstintLastError;//Error[-1]intPrevError;//Error[-2]}PID;//函数描述:增量式PID控制计算intIncPIDCalc(intNextPoint){intiError,iIncpid;//当前误差iError=sptr->SetPoint-NextPoint;//增量计算iIncpid=sptr
3、->Proportion*iError//E[k]项-sptr->Integral*sptr->LastError//E[k-1]项+sptr->Derivative*sptr->PrevError;//E[k-2]项//存储误差,用于下次计算sptr->PrevError=sptr->LastError;sptr->LastError=iError;//返回增量值return(iIncpid);}PID控制系统LabVIEW程序方框图纯比例调节前面板框图PID调节作用前面板框图ICCV7forAVR编程界面ATmeg16单片机程序烧录界面Main函数清单如下:#inc
4、lude/*commondefinesandmacros*/#include#include"AD.h"#include"USART.h"#include"PWM.h"#include"5110.h"#typedefuintunsignedint#typedefucharunsignedchar#defineYou_value338#defineZuo_value738#defineheadstand_value688//设定AD值目标DesiredValueintSetPoint=headstand_value;//设定AD值目
5、标intvariation;//AD值变化量intProportion0=3;//完成intProportion1=2;//intProportion2=5;//5intProportion3=3;//3intProportion4=4;//2->8intProportion5=2;intProportion6=8;//2->4intProportion7=8;//2->8intProportion8=10;intProportion9=4;intIntegral=0;//积分常数IntegralintIntegral1=2;intIntegral2=2;intInte
6、gral3=0;intIntegral4=0;intIntegral5=0;intIntegral6=0;intIntegral7=0;intIntegral8=0;intDerivative0=1;//微分常数IntegralConstintDerivative1=1;intDerivative2=1;intDerivative3=0;intDerivative4=0;intDerivative5=5;intDerivative6=0;intDerivative7=0;intDerivative8=0;intLastError=0;//Error[-1]角度intPr
7、evError=0;ucharinversion_flag;//电机反转标志ucharreciprocate_flag=0,delay_flag=0;ucharpulse_flag=0;//往复摆标志charpulse_temp=-1;uintreciprocate_sum=0;uintpulse,Error,a,b,c;uinttemp;intAD0_value,AD0_last,value_deal,speed_value;intLastError=0;//Error[-1]角度intPrevError=0;ucharinversio
此文档下载收益归作者所有