AD与DA转换及数字PID调节器算法的研究实验报告.docx
- 文档编号:4154102
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:12
- 大小:238.47KB
AD与DA转换及数字PID调节器算法的研究实验报告.docx
《AD与DA转换及数字PID调节器算法的研究实验报告.docx》由会员分享,可在线阅读,更多相关《AD与DA转换及数字PID调节器算法的研究实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
AD与DA转换及数字PID调节器算法的研究实验报告
东南大学自动化学院
实验报告
课程名称:
计算机控制技术
第1次实验
实验名称:
A/D与D/A转换&数字PID调节器算法的研究
院(系):
自动化学院专业:
自动化
姓名:
学号:
实验室:
416实验组别:
同组人员:
实验时间:
2014年3月20日
评定成绩:
审阅教师:
第一部分实验一A/D与D/A转换
一、实验目的
1、通过编程熟悉VC++的Win32ConsoleApplication的编程环境;
2、通过编程熟悉PCI-1711数据采集卡的数据输入输出;
3、了解采集卡AD转换芯片的转换性能;
4、通过实验了解字节数与二进制数的转换。
二、实验设备
1.THBDC-1型控制理论·计算机控制技术实验平台
2.PCI-1711数据采集卡一块
3.PC机1台(安装软件“VC++”及“THJK_Server”)
三、实验原理
1.数据采集卡
PCI-1711是输入功能强大的低成本多功能PCI总线卡。
特点:
16路单端模拟量输入
12位A/D转换器,采样速率可达100KHz
每个输入通道的增益可编程
自动通道/增益扫描
卡上1K采样FIFO缓冲器
2路12位模拟量输出(仅PCI-1711)
16路数字量输入及16路数字量输出
可编程触发器/定时器
图1-1PCI-1711卡管脚图
2.AD/DA转换原理
该卡在进行A/D转换实验时,输入电压与二进制的对应关系为:
-10~10V对应为0~4095(A/D转换精度为12位)。
输入
A/D数据编码
正满度
111111111111
正满度-1LSB
111111111110
中间值(零点)
011111111111
负满度+1LSB
000000000001
负满度
000000000000
D/A通道输出范围为0~10V。
四、实验步骤
1、仔细阅读“PCI-1711数据采集卡驱动函数说明.doc”文档。
2、将实验台上的“阶跃信号发生器”的输出端通过导线与PCI-1711数据采集接口的AD1通道输入端相连,同时将PCI-1711数据采集接口的AD1通道通过导线与实验平台上的交直流数字电压表(选取直流档)的输入端相连;
3、打开ADDA实验VC++程序文件夹,打开.dsw工程文件,添加缺少的main函数(主程序),编程实现以下功能:
在运行程序后的DOS界面上应显示AD第一通道输入值,同时并显示出转换后对应的以十进制存放的二进制码,并将其转换为二进制码;
在程序中使用输出函数通过DA1通道输出一个0~10V的电压(PCI-1711卡无法输出负电压),然后使用THBDC-1型实验平台上的直流数字电压表进行测量,并确认输出值是否正确。
五、实验记录
1.系统main函数如下:
voidmain()//主程序
{
init_1711();
for(;;)
{
ADinput(0);//读取AD1通道的电压值
printf("AD1通道输入值:
%.3f\n",fVoltage);
ADbinaryIn(0);//读取AD1通道的二进制电压值
printf("AD1通道的二进制值为(以十进制数存放):
%d\n",bin);
//-10V~10V对应为(0~4095)
//AD数据转换为二进制
char*temp=newchar[NUM+1];
Convert(bin,temp,NUM);//十进制数转换为二进制数的转换函数
printf("AD1通道数据转换为二进制为:
%s\n",temp);
deletetemp;
DAoutput(0,3.2);//从DA1通道输出3.2V的电压值
printf("DA1通道输出值:
%.3f\n",ptAOVoltageOut.OutputValue);
DABinaryout(1,4095);
printf("DA1通道输出值:
%d\n",ptAOBinaryOut.BinData);
printf("\n");
Sleep(1000);
}
expexit();
}
2.程序的主要函数:
voidConvert(USHORTdata,char*temp,longDim);//十进制数转换为二进制数
voidErrorHandler(DWORDdwErrCde);//通过错误代码来获取相应的错误信息函数
voidErrorStop(long*,DWORD);//出错处理函数
boolinit_1711();//初始化设备
voidexpexit();//关闭设备
floatADinput(unsignedcharchan);//模拟量输入函数
boolDAoutput(unsignedcharchan,floatDAdata);//模拟量输出函数
USHORTADbinaryIn(unsignedcharchan);//模拟量输入函数(二进制形式)
3.由于是验证性实验,以下为我们记录的两组数据:
①A/D转换
通过改变滑动变阻器的阻值,改变AD1输入端输入电压的大小,用电压表测出实际输入的电压值,并记录通过A/D转换计算机采集的十进制与二进制值,程序运行结果见下表中,在变化过程中实际输入与计算机采集的数据的对应关系如表:
直流电压表(v)
程序运行后DOS界面显示结果
AD1通道输入值
AD1通道数据转化为十进制
AD1通道数据转化为二进制码
0.00
0.000
2047
011111111111
5.00
4.982
3068
101111111100
10.00
9.985
4092
111111111100
-5.00
-4.932
1037
010*********
程序将外界输入电压通过A/D转换得到与原输入值大致相等的电压,输入电压与二进制的对应关系为:
-10~10V对应为0~4095,采用“除二取余”法计算相应的二进制码,验证发现结果是比较准确的,误差较小。
②D/A转换
在程序中多次改变输出电压的大小(通过改变主程序中DAoutput(0,x)中的函数),利用电压表测量实际DA1输出的电压值,运行程序后,得到的具体的D/A转换的对应关系如表:
程序设定值(V)
电压表输出电压值(V)
2.5
2.50
3.0
3.00
由表中数据可以看出,DA1通道的输出电压值与程序中设定的值十分接近(相等),在误差允许的范围内认为输出值正确。
六、实验总结
1.此次实验比较简单,通过简单地连线验证实验结果的正确性,由实验结果可以看出程序可以将外界输入电压通过A/D以及D/A转换,得到与原输入值大致相等的电压。
2.输入电压与二进制的对应关系为:
-10~10V对应为0~4095(程序设定A/D转换精度为12位),相当于每1V对应十进制为204.8;通过“除二取余”法,假定data为待转换数据,temp为转化后数据,Dim为转换精度,通过循环:
for(inti=0;i { temp[Dim-1-i]=data%2+48;//(程序中加48是将二进制数转换为ASCII码) data/=2; } temp[Dim]='\0';将十进制数转化为二进制码。 第二部分实验二数字PID调节器算法的研究 一、实验目的 1、通过编程熟悉VC++的Win32ConsoleApplication的编程环境; 2、通过编程熟悉PCI-1711数据采集卡的数据输入输出; 3、掌握PID控制器的编程方法; 4、了解闭环控制系统的概念与控制方法; 5、熟悉定时器及显示界面的使用方法; 二、实验设备 1.THBDC-1型控制理论·计算机控制技术实验平台 2.PCI-1711数据采集卡一块 3.PC机1台(安装软件“VC++”及“THJK_Server”) 三、实验原理 1.被控对象的模拟与计算机闭环控制系统的构成, 图2-1计算机控制系统原理框图 图中信号的离散化通过PCI-1711数据采集卡的采样开关来实现。 2.常规PID控制算法 常规PID控制位置式算法为 ,当计算机等外部环境发生变化时,U(k)会产生大幅度的变化,这对很多执行对象来说,这种冲击是不能接受的。 所以,工程上常用增量式控制算法。 其增量形式为: 式中Kp---比例系数 Ki= 积分系数,T采样周期 Kd= 微分系数 本实验就是采用的PID增量式算法。 根据被控对象和环境等不同,还可以采用积分分离PID算法,智能PID算法,微分先行等多种形式的PID控制算法。 图中信号的离散化是由数据采集卡的采样开关来实现。 3.数字PID控制器的参数整定 在模拟控制系统中,参数整定的方法较多,常用的实验整定法有: 临界比例度法、阶跃响应曲线法、试凑法等。 我们控制器参数的整定也可采用类似的方法,如扩充的临界比例度法、扩充的阶跃响应曲线法、试凑法等。 针对本实验的二阶线性系统对象,建议用衰减曲线法: 《自动控制原理》田玉平二版316页。 4.程序流程图: 四、实验步骤 1、仔细阅读“PCI-1711数据采集卡驱动函数说明.doc”和“THJK-Server软件使用说明.doc”文档,掌握PCI-1711数据采集卡的数据输入输出方法和THJK-Server软件(及相关函数)的使用方法。 2、模拟电路接线图如下所示: 图2-2二阶被控对象与计算机连接图 图中R1=510K,R2=510K,R3=100K,R4=200K,C1=1uF,C2=10uF。 DA1,AD1,AD2,是PCI-1711实验面板的接口 3、用导线将二阶模拟系统的输入端连接到PCI-1711数据采集卡的“DA1”输出端,系统的输出端与数据采集卡的“AD1”输入端相连; 4、用导线将+5V直流电源输出端连接到PCI-1711数据采集卡的“AD2”输入端,作为阶跃触发使用,阶跃幅度由软件设定。 初始时,+5V电源开关处于“关”状态; 5、打开数字PID实验文件夹下.dsw工程文件,源程序中缺少PID算法程序。 请同学用增量式算法编写PID控制程序。 6、源程序编译通过后,先启动“THJK_Server”图形显示软件,再执行程序代码,在显示界面出现的曲线并稳定后(初始化后),把+5V电源打到“开”状态,观测系统的阶跃响应曲线。 在实验结束后,在键盘上按下“e”和“Enter(回车键)”键,程序退出。 7、用衰减曲线法反复调试PID参数,选择适当的PID参数后,重复第5步骤,直到得到满意的阶跃响应曲线为止并截图。 五、实验记录 1.编写PID数字控制器的C++程序(增量式算法)。 //PID算法函数: pid[0]=P;pid[1]=I;pid[2]=D doublePID(doubleei,double*pid,doubleTs) {staticdoubleex=0,ey=0; staticdoubleq0=0; staticdoubleq1=0; staticdoubleq2=0; staticdoubleop=0; q0=pid[0]*(ei-ex);//比例项 if(pid[1]==0) q1=0; else q1=pid[0]*Ts*ei/pid[1];//当前积分项 q2=pid[0]*pid[2]*(ei-2*ex+ey)/Ts;//微分项 ey=ex; ex=ei; op=op+q0+q1+q2; returnop; } 程序对PID参数的设置进行编程,采用的是增量式算法 2.无PID调节时,得到的阶跃响应曲线: 图1无PID调节时阶跃响应曲线 此时设定P=1,I=0,D=0,传递函数为: ,可以看到无PID时,阶跃响应的响应时间较长,且有较大的稳态误差。 3.绘制二阶被控对象在采用数字控制器后的阶跃曲线 (1)利用“衰减曲线法”,先采用比例控制,使k从0逐渐增加 K 5 7 7.5 8 衰减振荡比 8.50 4.25 4.00 2.62 直到系统出现如图所示4: 1的衰减振荡: 记录此时的Kr=7.5,I=10000,并测出此时的振荡周期Pr=1.67 (2)将其代入公式: Kp=0.85Kr=6.375,Ti=0.5Pr=0.835,Td=0,得PI控制的阶跃响应曲线: 图2PI调节时阶跃响应曲线 由实验曲线可知,阶跃响应有所改善,但对于积分调节,具有积分作用的PI调节器,只要被调量和给定值之间有误差,其输出就会不停的变化。 由于某种原因,误差一时无法消除,调节器就要不停的校正这个误差,结果很容易造成积分饱和,严重时还会导致处理器溢出。 因此实际应用中必须采取一定的改进措施避免出现积分饱和现象,如积分分离、遇限消弱积分、停止饱和积分、反馈抑制积分饱和等。 (3)将其代入公式: Kp=1.25Kr=9.375,Ti=0.3Pr=0.501,Td=0.1Pr=0.167,得PID控制的阶跃响应曲线: 图3较好的PID参数时的阶跃响应曲线 从图中可以看出,此时的阶跃响应超调量较小,且响应时间较短,PID调节比较理想。 (4)分析采样周期Ts对系统阶跃响应的影响 ①当Ts=50ms时,阶跃响应曲线如图4所示: ②当Ts=80ms时,阶跃响应曲线如图5所示: ③当Ts=150ms时,阶跃响应曲线如图6所示: 与T=100ms相比,适当减小或增大采样周期,调节时间会增加,虽然不是最理想的PID参数,但是系统有稳定的输出,且系统的阶跃响应与模拟系统的输出响应基本吻合。 继续增大采样周期,由于不满足香农定理,系统响应会出现严重失真,系统的输出不能稳定。 6、实验总结 1、PID控制器中的比例环节Kp,调整系统的开环增益,提高系统的稳态精度,加快响应速度。 但是Kp过大会使系统超调量过大,稳定性减弱。 积分环节Ki可以使系统输出无静差,但是系统稳定性下降,响应速度变慢,微分环节可以加快系统的响应速度。 在低频段,主要是PI控制规律起作用,提高了系统的型别,消除或减小了稳态误差;在中高频段主要是PD控制规律起作用,增大截止频率和相角裕度,提高了响应时间。 PID控制调节可以增大系统的瞬态和稳态性能。 2、在对象模型确知时,由于在工业系统中对象很复杂,一般不能用解析的方法得到较为准确的模型,因此,可以通过系统的动态响应调整PID控制参数。 这类方法一般采用阶跃或脉冲等信号激励被控对象,根据被控对象的过渡过程响应曲线来获得系统的瞬态性能。 用衰减曲线法来确定P、I、D的参数,其步骤是先采用比例控制,即将Kp从0逐渐增加,直到系统出现4: 1的衰减(衰减比定义为第一次超调和第二次超调之比),记下此时增益值Kr,Kp=1.25Kr=,Ti=0.3Pr,Td=0.1Pr。 3、由对比实验可以看出,在计算机速度允许的情况下,采样周期Ts较小时,调节品质好,系统响应越接近于连续系统的阶跃响应输出;采样周期Ts过长时,系统控制精度不好,甚至采样信号无法恢复为原模拟信号,抗干扰能力下降,系统出现振荡。 4、增量式控制算法与位置式控制算法相比具有以下优点: ①由于控制增量一般很小,故可对其进行限幅,限制或禁止故障时的输出,从而缩小机器故障时影响范围。 ②由于增量式控制时阀位与步进电机转角对应,故手动-自动切换时冲击小。 ③控制增量的确定仅与最近几次的采样值有关,容易通过加权处理以获得较好的控制效果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AD DA 转换 数字 PID 调节器 算法 研究 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)