1、二、实验设备1THBDC-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转换实验时,输入电压与二进制的对应关系
2、为:-1010V对应为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、;3、打开ADDA实验VC+程序文件夹,打开.dsw工程文件,添加缺少的main函数(主程序),编程实现以下功能: 在运行程序后的DOS界面上应显示AD第一通道输入值,同时并显示出转换后对应的以十进制存放的二进制码,并将其转换为二进制码; 在程序中使用输出函数通过DA1通道输出一个010V的电压(PCI-1711卡无法输出负电压),然后使用THBDC-1型实验平台上的直流数字电压表进行测量,并确认输出值是否正确。五、实验记录1.系统main函数如下:void main() /主程序 init_1711(); for(;) ADinput(0); /读取AD1通道的电压值 printf(AD1通
4、道输入值:%.3fn,fVoltage); ADbinaryIn(0); /读取AD1通道的二进制电压值 AD1通道的二进制值为(以十进制数存放):%dn,bin); /-10V10V对应为(04095) /AD数据转换为二进制 char *temp = new charNUM+1; Convert(bin,temp,NUM); /十进制数转换为二进制数的转换函数AD1通道数据转换为二进制为:%sn,temp); delete temp; DAoutput(0,3.2); /从DA1通道输出3.2V的电压值 printf(DA1通道输出值:,ptAOVoltageOut.OutputValue
5、); DABinaryout(1,4095);,ptAOBinaryOut.BinData); 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(); /关闭设备float ADinput(u
6、nsigned char chan); /模拟量输入函数bool DAoutput(unsigned char chan,float DAdata); /模拟量输出函数USHORT ADbinaryIn(unsigned char chan); /模拟量输入函数(二进制形式)3.由于是验证性实验,以下为我们记录的两组数据:A/D转换通过改变滑动变阻器的阻值,改变AD1输入端输入电压的大小,用电压表测出实际输入的电压值,并记录通过A/D转换计算机采集的十进制与二进制值,程序运行结果见下表中,在变化过程中实际输入与计算机采集的数据的对应关系如表:直流电压表(v)程序运行后DOS界面显示结果AD1通
7、道输入值AD1通道数据转化为十进制AD1通道数据转化为二进制码0.000.00020470111111111115.004.982306810111111110010.009.9854092111111111100-5.00-4.9321037010*程序将外界输入电压通过A/D转换得到与原输入值大致相等的电压,输入电压与二进制的对应关系为:-1010V对应为04095,采用“除二取余”法计算相应的二进制码,验证发现结果是比较准确的,误差较小。D/A转换在程序中多次改变输出电压的大小(通过改变主程序中DAoutput(0,x)中的函数),利用电压表测量实际DA1输出的电压值,运行程序后,得到的
8、具体的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为待转换数据,temp为转化后数据,Dim为转换精度,通过循
9、环:for(int i=0;iDim;i+) tempDim-1-i=data%2+48;/(程序中加48是将二进制数转换为ASCII码) data/=2; tempDim=0将十进制数转化为二进制码。第二部分 实验二数字PID调节器算法的研究3、掌握PID控制器的编程方法;4、了解闭环控制系统的概念与控制方法;5、熟悉定时器及显示界面的使用方法;1THBDC-1型 控制理论1被控对象的模拟与计算机闭环控制系统的构成,图2-1计算机控制系统原理框图图中信号的离散化通过 PCI-1711数据采集卡的采样开关来实现。2常规PID控制算法常规PID控制位置式算法为,当计算机等外部环境发生变化时,U(
10、k)会产生大幅度的变化,这对很多执行对象来说,这种冲击是不能接受的。所以,工程上常用增量式控制算法。其增量形式为:式中Kp-比例系数Ki=积分系数,T采样周期Kd微分系数本实验就是采用的PID增量式算法。根据被控对象和环境等不同,还可以采用积分分离PID算法,智能PID算法,微分先行等多种形式的PID控制算法。图中信号的离散化是由数据采集卡的采样开关来实现。3数字PID控制器的参数整定在模拟控制系统中,参数整定的方法较多,常用的实验整定法有:临界比例度法、阶跃响应曲线法、试凑法等。我们控制器参数的整定也可采用类似的方法,如扩充的临界比例度法、扩充的阶跃响应曲线法、试凑法等。针对本实验的二阶线性
11、系统对象,建议用衰减曲线法:自动控制原理田玉平二版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”输出端
12、,系统的输出端与数据采集卡的“AD1”输入端相连;4、用导线将+5V直流电源输出端连接到PCI-1711数据采集卡的“AD2”输入端,作为阶跃触发使用,阶跃幅度由软件设定。初始时,+5V电源开关处于“关”状态;5、打开数字PID实验文件夹下dsw工程文件,源程序中缺少PID算法程序。请同学用增量式算法编写PID控制程序。6、源程序编译通过后,先启动“THJK_Server”图形显示软件,再执行程序代码,在显示界面出现的曲线并稳定后(初始化后),把+5V电源打到“开”状态,观测系统的阶跃响应曲线。在实验结束后,在键盘上按下“e”和“Enter(回车键)”键,程序退出。7、用衰减曲线法反复调试PI
13、D参数,选择适当的PID参数后,重复第5步骤,直到得到满意的阶跃响应曲线为止并截图。1编写PID数字控制器的C+程序(增量式算法)。/PID 算法函数:pid0=P;pid1=I;pid2=Ddouble PID(double ei, double *pid,double Ts) static double ex=0,ey=0; static double q0=0; static double q1=0; static double q2=0; static double op=0; q0=pid0*(ei-ex); /比例项 if (pid1=0) q1=0; else q1=pid0*T
14、s*ei/pid1 ; /当前积分项 q2=pid0*pid2*(ei-2*ex+ey)/Ts; /微分项 ey=ex; ex=ei; op=op+q0+q1+q2; return op;程序对PID参数的设置进行编程,采用的是增量式算法2.无PID调节时,得到的阶跃响应曲线:图1 无PID调节时阶跃响应曲线此时设定P=1,I=0,D=0,传递函数为:,可以看到无PID时,阶跃响应的响应时间较长,且有较大的稳态误差。3.绘制二阶被控对象在采用数字控制器后的阶跃曲线(1)利用“衰减曲线法”,先采用比例控制,使k从0逐渐增加K577.58衰减振荡比8.504.254.002.62直到系统出现如图所
15、示4:1的衰减振荡:记录此时的Kr=7.5,I=10000,并测出此时的振荡周期Pr=1.67(2)将其代入公式:Kp=0.85Kr=6.375,Ti=0.5Pr=0.835,Td=0,得PI控制的阶跃响应曲线:图2 PI调节时阶跃响应曲线由实验曲线可知,阶跃响应有所改善,但对于积分调节,具有积分作用的PI调节器,只要被调量和给定值之间有误差,其输出就会不停的变化。由于某种原因,误差一时无法消除,调节器就要不停的校正这个误差,结果很容易造成积分饱和,严重时还会导致处理器溢出。因此实际应用中必须采取一定的改进措施避免出现积分饱和现象,如积分分离、遇限消弱积分、停止饱和积分、反馈抑制积分饱和等。(
16、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参数,但是系统有稳定的输出,且系统的阶跃响应与模拟系统的输出响应基本吻合。继续增大采
17、样周期,由于不满足香农定理,系统响应会出现严重失真,系统的输出不能稳定。6、实验总结1、PID控制器中的比例环节Kp,调整系统的开环增益,提高系统的稳态精度,加快响应速度。但是Kp过大会使系统超调量过大,稳定性减弱。积分环节Ki可以使系统输出无静差,但是系统稳定性下降,响应速度变慢,微分环节可以加快系统的响应速度。在低频段,主要是PI控制规律起作用,提高了系统的型别,消除或减小了稳态误差;在中高频段主要是PD控制规律起作用, 增大截止频率和相角裕度,提高了响应时间。PID控制调节可以增大系统的瞬态和稳态性能。2、在对象模型确知时,由于在工业系统中对象很复杂,一般不能用解析的方法得到较为准确的模
18、型,因此,可以通过系统的动态响应调整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