《AD与DA转换与数字PID调节器算法的研究实验报告》由会员分享,可在线阅读,更多相关《AD与DA转换与数字PID调节器算法的研究实验报告(17页珍藏版)》请在金锄头文库上搜索。
1、. . .东南大学自动化学院实 验 报 告课程名称: 计算机控制技术 第 1 次实验实验名称: A/D与D/A转换 & 数字PID调节器算法的研究 院 (系): 自动化学院 专 业: 自动化 姓 名: 学 号: 实 验 室: 416 实验组别: 同组人员: 实验时间: 2014年 3月 20日评定成绩: 审阅教师: 第一部分实验一A/D与D/A转换一、实验目的1、通过编程熟悉VC+的Win32 Console Application的编程环境;2、通过编程熟悉PCI-1711数据采集卡的数据输入输出;3、了解采集卡AD转换芯片的转换性能;4、通过实验了解字节数与二进制数的转换。二、实验设备1T
2、HBDC-1型控制理论计算机控制技术实验平台2PCI-1711数据采集卡一块3PC机1台(安装软件“VC+”及“THJK_Server”) 三、实验原理1数据采集卡PCI-1711是输入功能强大的低成本多功能PCI总线卡。 特点:16路单端模拟量输入 12位A/D转换器,采样速率可达100KHz 每个输入通道的增益可编程 自动通道/增益扫描 卡上1K采样FIFO缓冲器 2路12位模拟量输出(仅PCI-1711) 16路数字量输入及16路数字量输出 可编程触发器/定时器图1-1 PCI-1711卡管脚图2. AD/DA转换原理该卡在进行A/D转换实验时,输入电压与二进制的对应关系为:-1010V
3、对应为04095(A/D转换精度为12位)。输入A/D数据编码正满度1111 1111 1111正满度1LSB1111 1111 1110中间值(零点)0111 1111 1111负满度+1LSB 0000 0000 0001负满度0000 0000 0000D/A通道输出范围为010V。四、实验步骤1、仔细阅读“PCI-1711数据采集卡驱动函数说明.doc”文档。2、 将实验台上的“阶跃信号发生器”的输出端通过导线与PCI-1711数据采集接口的AD1通道输入端相连,同时将PCI-1711数据采集接口的AD1通道通过导线与实验平台上的交直流数字电压表(选取直流档)的输入端相连;3、打开AD
4、DA实验VC+程序文件夹,打开.dsw工程文件,添加缺少的main函数(主程序),编程实现以下功能: 在运行程序后的DOS界面上应显示AD第一通道输入值,同时并显示出转换后对应的以十进制存放的二进制码,并将其转换为二进制码; 在程序中使用输出函数通过DA1通道输出一个010V的电压(PCI-1711卡无法输出负电压),然后使用THBDC-1型实验平台上的直流数字电压表进行测量,并确认输出值是否正确。五、实验记录1.系统main函数如下:void main() /主程序init_1711();for(;)ADinput(0); /读取AD1通道的电压值printf(AD1通道输入值:%.3fn,
5、fVoltage);ADbinaryIn(0); /读取AD1通道的二进制电压值printf(AD1通道的二进制值为(以十进制数存放):%dn,bin);/-10V10V对应为(04095) /AD数据转换为二进制char *temp = new charNUM+1;Convert(bin,temp,NUM); /十进制数转换为二进制数的转换函数printf(AD1通道数据转换为二进制为:%sn,temp); delete temp;DAoutput(0,3.2); /从DA1通道输出3.2V的电压值 printf(DA1通道输出值:%.3fn,ptAOVoltageOut.OutputVal
6、ue);DABinaryout(1,4095);printf(DA1通道输出值:%dn,ptAOBinaryOut.BinData); printf( n);Sleep(1000);expexit(); 2. 程序的主要函数:void Convert(USHORT data,char* temp,long Dim);/十进制数转换为二进制数void ErrorHandler( DWORD dwErrCde ); /通过错误代码来获取相应的错误信息函数void ErrorStop( long*, DWORD );/出错处理函数bool init_1711();/初始化设备void expexit
7、();/关闭设备float ADinput(unsigned char chan);/模拟量输入函数bool DAoutput(unsigned char chan,float DAdata);/模拟量输出函数USHORT ADbinaryIn(unsigned char chan); /模拟量输入函数(二进制形式)3.由于是验证性实验,以下为我们记录的两组数据:A/D转换通过改变滑动变阻器的阻值,改变AD1输入端输入电压的大小,用电压表测出实际输入的电压值,并记录通过A/D转换计算机采集的十进制与二进制值,程序运行结果见下表中,在变化过程中实际输入与计算机采集的数据的对应关系如表:直流电压表
8、(v)程序运行后DOS界面显示结果AD1通道输入值AD1通道数据转化为十进制AD1通道数据转化为二进制码0.000.00020470111111111115.004.982306810111111110010.009.9854092111111111100-5.00-4.9321037010000001101程序将外界输入电压通过A/D转换得到与原输入值大致相等的电压,输入电压与二进制的对应关系为:-1010V对应为04095,采用“除二取余”法计算相应的二进制码,验证发现结果是比较准确的,误差较小。D/A转换在程序中多次改变输出电压的大小(通过改变主程序中DAoutput(0,x)中的函数)
9、,利用电压表测量实际DA1输出的电压值,运行程序后,得到的具体的D/A转换的对应关系如表:程序设定值(V)电压表输出电压值(V)2.52.503.03.00由表中数据可以看出,DA1通道的输出电压值与程序中设定的值十分接近(相等),在误差允许的范围内认为输出值正确。六、实验总结1.此次实验比较简单,通过简单地连线验证实验结果的正确性,由实验结果可以看出程序可以将外界输入电压通过A/D以及D/A转换,得到与原输入值大致相等的电压。2.输入电压与二进制的对应关系为:-1010V对应为04095(程序设定A/D转换精度为12位),相当于每1V对应十进制为204.8;通过“除二取余”法,假定data为
10、待转换数据,temp为转化后数据,Dim为转换精度,通过循环:for(int i=0;iDim;i+)tempDim-1-i=data%2+48;/(程序中加48是将二进制数转换为ASCII码)data/=2;tempDim=0;将十进制数转化为二进制码。第二部分实验二数字PID调节器算法的研究一、实验目的1、通过编程熟悉VC+的Win32 Console Application的编程环境;2、通过编程熟悉PCI-1711数据采集卡的数据输入输出;3、掌握PID控制器的编程方法;4、了解闭环控制系统的概念与控制方法;5、熟悉定时器及显示界面的使用方法;二、实验设备1THBDC-1型 控制理论计
11、算机控制技术实验平台2PCI-1711数据采集卡一块3PC机1台(安装软件“VC+”及“THJK_Server”) 三、实验原理1被控对象的模拟与计算机闭环控制系统的构成,PID二阶对象+-计算机DA1AD1R(t)Y(t)图2-1计算机控制系统原理框图图中信号的离散化通过 PCI-1711数据采集卡的采样开关来实现。2常规PID控制算法常规PID控制位置式算法为,当计算机等外部环境发生变化时,U(k)会产生大幅度的变化,这对很多执行对象来说,这种冲击是不能接受的。所以,工程上常用增量式控制算法。其增量形式为:式中Kp-比例系数Ki=积分系数,T采样周期Kd微分系数本实验就是采用的PID增量式
12、算法。根据被控对象和环境等不同,还可以采用积分分离PID算法,智能PID算法,微分先行等多种形式的PID控制算法。图中信号的离散化是由数据采集卡的采样开关来实现。3数字PID控制器的参数整定在模拟控制系统中,参数整定的方法较多,常用的实验整定法有:临界比例度法、阶跃响应曲线法、试凑法等。我们控制器参数的整定也可采用类似的方法,如扩充的临界比例度法、扩充的阶跃响应曲线法、试凑法等。针对本实验的二阶线性系统对象,建议用衰减曲线法:自动控制原理田玉平二版316页。开始初始化数据采集卡,与显示软件进行通信,从键盘输入有关输入参数按下“e”和“enter”键否?A/D采样,PID控制控制量限幅,D/A输出控制量在显示软件上画出阶跃响应曲线定时器时间到?等待关闭设备,结束NNYY4程序流程图:四、实验步骤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、 用导线将二阶模拟系统