AD与DA转换与数字PID调节器算法的研究实验报告.docx

上传人:b****5 文档编号:5742635 上传时间:2022-12-31 格式:DOCX 页数:12 大小:240.02KB
下载 相关 举报
AD与DA转换与数字PID调节器算法的研究实验报告.docx_第1页
第1页 / 共12页
AD与DA转换与数字PID调节器算法的研究实验报告.docx_第2页
第2页 / 共12页
AD与DA转换与数字PID调节器算法的研究实验报告.docx_第3页
第3页 / 共12页
AD与DA转换与数字PID调节器算法的研究实验报告.docx_第4页
第4页 / 共12页
AD与DA转换与数字PID调节器算法的研究实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

AD与DA转换与数字PID调节器算法的研究实验报告.docx

《AD与DA转换与数字PID调节器算法的研究实验报告.docx》由会员分享,可在线阅读,更多相关《AD与DA转换与数字PID调节器算法的研究实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

AD与DA转换与数字PID调节器算法的研究实验报告.docx

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、增量式控制算法与位置式控制算法相比具有以下优点:

①由于控制增量一般很小,故可对其进行限幅,限制或禁止故障时的输出,从而缩小机器故障时影响围。

②由于增量式控制时阀位与步进电机转角对应,故手动-自动切换时冲击小。

③控制增量的确定仅与最近几次的采样值有关,容易通过加权处理以获得较好的控制效果。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1