计算机测控技术实验指导书正文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机测控技术实验指导书正⽂
实验⼀A/D、D/A转换应⽤实验
⼀、实验⽬的
1. 掌握A/D、D/A转换的实现⽅法;
2. 熟悉计算机测控系统中数据输⼊/输出通道的硬件设计原理;
3. 熟悉计算机测控系统中数据输⼊/输出通道A/D、D/A转换的软件实现原理。

⼆、实验设备
Dofly 系列Mini80E型单⽚机开发板⼀套
PC机⼀台
三、实验内容
1. 硬件实现
(1)基本原理
本实验需要⽤到Dofly 系列Mini80E型单⽚机开发板A/D、D/A模块,其实物硬件连接如图1-1所⽰。

从图中可看到,该模块由四个电位器W1、W2、W3、W4,四组-⼆引脚跳线J21,⼆引脚跳线J23、PCF8591芯⽚以及⼀个发光⼆极管LED12组成。

图1-1 A/D、D/A转换实验硬件连接图
其硬件原理图如图1-2所⽰。

图1-2 A/D、D/A转换实验硬件原理图
由图1-2可知,该模块数据输⼊通道A/D转换由电位器W1、W2、W3、W4,跳线J21以及PCF8591芯⽚实现。

电位器W1、W2、W3、W4分别构成了A/D转化的四个模拟量输⼊通道,它们⼀端接有电源电压VCC,通过调整各电位器的阻值便可改变各通道电压模拟量的⼤⼩。

这四个电压模拟量通过J21四组-⼆引脚跳线连接到PCF8591芯⽚的AIN0-AIN3端⼝,该芯⽚将四组模拟量A/D转化后,利⽤SCL 和SDA两条信号线将转化好的数据量传输给单⽚机,并⽤8位LED数码管分4组进⾏显⽰。

当然,J21可以通过4个跳冒连接4路AD,则模拟量输⼊由电位器电压给定(如上述分析);如果需要使⽤外部电压源输⼊,可以拔掉跳冒,然后电压源接⾄J21的2、4、6、8引脚。

数据输出通道D/A转换由PCF8591芯⽚、跳线J23以及发光⼆极管LED12实现。

⾸先单⽚机通过SCL和SDA两条信号线将待转化的数字量传输给芯⽚PCF8591,D/A转换完成后则经过跳线J23将模拟电压值加到发光⼆极管上,⽽⼆极管的亮度则反映了D/A转化模拟量的⼤⼩。

J23上若连有跳冒则DA输出直接到LED12,若拔掉跳冒则LED不起作⽤,这时可以在J23的第1脚和地之间测量电压或者波形。

(2)PCF8591芯⽚
通过上述分析可知,PCF8591芯⽚是实现该A/D、D/A转换的核⼼芯⽚,同时它还要完成与单⽚机的数据通信⼯作。

PCF8591 是具有I2C 总线接⼝的8 位A/D 及D/A 转换器。

有4 路A/D 转换输⼊,1 路D/A 模拟输出。

这就是说,它既可以作A/D 转换也可以作D/A 转换。

A/D 转换为逐次⽐较型。

引脚图如图1-3所⽰。

结构图如图1-4 所⽰。

电源电压典型值为5V。

图1-3 PCF8591引脚图
AIN0~AIN3:模拟信号输⼊端。

A0~A3:引脚地址端。

V DD、V SS:电源端。

(2.5~6V)
SDA、SCL:I2C 总线的数据线、时钟线。

OSC:外部时钟输⼊端,内部时钟输出端。

EXT:内部、外部时钟选择线,使⽤内部时钟时EXT 接地。

AGND:模拟信号地。

AOUT:D/A 转换输出端。

V REF:基准电源端。

图1-4 PCF8591结构图
I2C 总线是Philips 公司推出的串⾏总线,整个系统仅靠数据线(SDA)和时钟线(SCL)实现完善的全双⼯数据传输,即CPU 与各个外围器件仅靠这两条线实现信息交换。

I2C 总线系统与传统的并⾏总线系统相⽐具有结构简单、可维护性好、易实现系统扩展、易实现模块化标准化设计、可靠性⾼等优点。

PCF8591 是⼀种具有I2C 总线接⼝的A/D 转换芯⽚。

在与CPU 的信息传输过程中仅靠时钟线SCL 和数据线SDA 就可以实现。

●器件总地址
PCF8591 采⽤典型的I2C 总线接⼝器件寻址⽅法,即总线地址由器件地址、引脚地址和⽅向位组成。

飞利蒲公司规定A/D 器件地址为1001。

引脚地址为A2A1A0,其值由⽤户选择,因此I2C 系统中最多可接23=8 个具有I2C 总线接⼝的A/D 器件。

地址的最后⼀位为⽅向位R/w ,当主控器对A/D 器件进⾏读操作时为1,进⾏写操作时为0。

总线操作时,由器件地址、引脚地址和⽅向位组成的从地址为主控器发送的第⼀字节。

●控制字节
控制字节⽤于实现器件的各种功能,如模拟信号由哪⼏个通道输⼊等。

控制字节存放在
控制寄存器中。

总线操作时为主控器发送的第⼆字节。

其格式如下所⽰:
其中:D1、D0 两位是A/D 通道编号:00 通道0,01 通道1,10 通道2,11 通道3
D2 ⾃动增益选择(有效位为1)
D5、D4 模拟量输⼊选择:00 为四路单数⼊、01 为三路差分输⼊、10 为单端与差分配合输⼊、11 为模拟输出允许有效
D6 模拟量输出允许标志位
当系统为A/D 转换时,模拟输出允许为0。

模拟量输⼊选择位取值由输⼊⽅式决定:
四路单端输⼊时取00,三路差分输⼊时取01,单端与差分输⼊时取10,⼆路差分输⼊时取11。

最低两位时通道编号位,当对0 通道的模拟信号进⾏A/D 转换时取00,当对1 通道的模拟
信号进⾏A/D 转换时取01,当对2 通道的模拟信号进⾏A/D 转换时取10,当对3 通道的模
拟信号进⾏A/D 转换时取11。

I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应
答信号。

开始信号:SCL为⾼电平时,SDA由⾼电平向低电平跳变,开始传送数据。

结束信号:SCL为低电平时,SDA由低电平向⾼电平跳变,结束传送数据。

应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表⽰已收到数据。

CPU向受控单元发出⼀个信号后,等待受控单元发出⼀个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。

若未收到应答信号,由判断为受控单元出现故障。

在进⾏数据操作时,⾸先是主控器发出起始信号,然后发出读寻址字节,被控器做出应答后,主控器从被控器读出第⼀个数据字节,主控器发出应答,主控器从被控器读出第⼆个数据字节,主控器发出应答…⼀直到主控器从被控器中读出第n 个数据字节,主控器发出⾮应答信号,最后主控器发出停⽌信号。

2. 软件实现
该模块软件编程主要实现I2C协议下PCF8591A/D、D/A转换的控制。

即通过IIC协议对PCF8591芯⽚进⾏D/A、A/D操作,读取电位器的电压,并输出模拟量,⽤LED亮度渐变指⽰。

其主程序流程图如图1-5所⽰,完整源程序见附录1
图1-5 PCF8591ADDA转换主程序流程图
#include //包含头⽂件,⼀般情况不需要改动,头⽂件包含特殊功能寄存器的定义
#include //包含NOP空指令函数_nop_();
#define AddWr 0x90 //写数据地址
#define AddRd 0x91 //读数据地址
sbit Sda=P1^2; //定义总线连接端⼝
sbit Scl=P1^1;
bit ADFlag; //定义AD采样标志位
unsigned char code Datatab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//7段数共阴码管段码表data unsigned char Display[8];//定义临时存放数码管数值
/*------------------------------------------------
主程序
------------------------------------------------*/
void main()
{
unsigned char num; //DA数模输出变量
unsigned char ADtemp; //定义中间变量
Init_Timer1();
while(1)
{
DAC(num); //DA输出,可以⽤LED模拟电压变化
num++; //累加,到256后溢出变为0,往复循环。

显⽰在LED上亮度逐渐变化
mDelay(20); //延时⽤于清晰看出变化
if(ADFlag) //定时采集输⼊模拟量
{
ADFlag=0;
ADtemp=ReadADC(0);
Display[0]=Datatab[(ReadADC(0))/50]|0x80;//处理0通道电压显⽰
Display[1]=Datatab[((ReadADC(0))%50)/10];
ADtemp=ReadADC(1);
Display[2]=Datatab[((ReadADC(1))/50)]|0x80;//处理1通道电压显⽰此通道暂时屏蔽,可以⾃⾏添加Display[3]=Datatab[((ReadADC(1))%50)/10];
ADtemp=ReadADC(2);
Display[4]=Datatab[((ReadADC(2))/50)]|0x80;//处理2通道电压显⽰此通道暂时屏蔽,可以⾃⾏添加Display[5]=Datatab[((ReadADC(2))%50)/10];
ADtemp=ReadADC(3);
Display[6]=Datatab[((ReadADC(3))/50)]|0x80;//处理3通道电压显⽰此通道暂时屏蔽,可以⾃⾏添加Display[7]=Datatab[((ReadADC(3))%50)/10];
}
}
}
四、实验步骤
1. 完成硬件连接,将跳线J21、J23引脚全部按要求⽤跳冒连接,⽤串⼝下载线和USB 电源线将PC机与单⽚机连接。

2. 打开单⽚机编译环境Keil C,编写并编译程序,⽤程序烧写软件将其.hex⽂件下载到单⽚机,观察现象。

3. 分别调节电位器W1、W2、W3、W4的⼤⼩,观察LED数码管的显⽰数值有何变化,同时观察发光⼆极管LED12的亮度有何变化。

4. 将跳线J21上了四个跳冒拔掉,分别在J21的2、4、6、8引脚上接电压源,观察LED 数码管显⽰值是否正确。

5. 将跳线J23上的跳冒拔掉,在J23的第1脚和地之间接上⽰波器,观察D/A变换输出的波形图。

五、实验结果分析
1. 完成步骤2和步骤3,观察并记录所得实验现象。

2. 记录步骤4与步骤5中的数据与波形,并分析所测得数据与波形图是否正确。

3. 为什么在程序初始化中将写数据地址设置为0x90,读数据地址设置为0x91?
4. PCF8591芯⽚通过哪些信号线与单⽚机连接?
实验⼆步进电机控制实验
⼀、实验⽬的
1. 掌握步进电机的⼯作原理;
2. 掌握单⽚机实现步进电机控制的基本⽅法,其中包括硬件和软件实现两部分;
3. 熟悉计算机测控系统中,步进电机作为控制对象的系统设计⽅法。

⼆、实验设备
Dofly 系列Mini80E型单⽚机开发板⼀套
PC机⼀台
28BYJ-48型步进电机⼀个
杜邦线若⼲
三、实验内容
1. 硬件实现
(1)基本原理
本实验需要⽤到Dofly 系列Mini80E型单⽚机开发板步进电机控制模块,其实物硬件连接如图2-1所⽰。

在实验过程中,应将步进电机的红⾊对准图中的VCC,其他对准ABCD插在J20上,然后⽤杜邦线从J18的ABCD于p1.0p1.1p1.2p1.3短接,即可完成实验硬件连线部分。

图2-1 步进电机控制部分硬件连接图
该实验单⽚机与步进电机连接的接⼝电路原理图如图2-2所⽰。

从原理图中可知,由于单⽚输出信号的电压太⼩,⽆法驱动步进电机转动,因此在接⼝电路的设计中需要有ULN2003芯⽚进⾏电平转换,提⾼信号的电压值来驱动步进电机转动。

图2-2 步进电机控制接⼝电路原理图
(2)ULN2003
ULN2003是⾼压⼤电流达林顿晶体管阵列系列产品,具有电流增益⾼、⼯作电压⾼、温度范围宽、带负载能⼒强等特点,适应于各类要求⾼速⼤功率驱动的系统。

其引脚如图2-3所⽰,相应功能框图如图2-4所⽰。

图2-3 ULN2003引脚图图2-4 ULN2003功能框图由图2-4可知,LN2003也是⼀个7路反向器电路,即当输⼊端为⾼电平时ULN2003输出端为低电平,当输⼊端为低电平时ULN2003输出端为⾼电平。

具有如下特点:
●每⽚封装了7 个达林顿管
●每个驱动管的输出电流可达500mA(峰值600mA)
●输出电压50V
●为感性负载集成了抑流⼆极管(Suppression Diode)
●对于较⼤的电流,可以将输出并接使⽤
●输⼊TTL/CMOS/PMOS/DTL 与兼容
(3)步进电机⼯作原理
步进电机是纯粹的数字控制电动机。

它将电脉冲信号转变成⾓位移,即给⼀个脉冲信号,步进电机就转动⼀个⾓度,因此⾮常适合于单⽚机控制。

步进电机只能通过脉冲电源供电才能运⾏,它不能直接使⽤交流电源和直流电源;此外步进电机的⾓位移与输⼊脉冲严格成正⽐,因此,当它转⼀转后,没有累计误差,具有良好的跟随性。

步进电机由定⼦和转⼦两部分组成。

以四相步进电机为例,定⼦上有四组相对的磁极,每对磁极缠有同⼀绕组,形成⼀相。

定⼦和转⼦上分布着⼤⼩、间距相同的多个⼩齿。

当步进电机某⼀相通电形成磁场后,在电磁⼒的作⽤下,转⼦被强⾏推动到最⼤磁导率(或最⼩磁阻)的位置。

本实验中使⽤的四相步进电机在⼋拍⼯作⽅式时,⾛动5.625°⾓度需64步;⼀圈分为64个刻度,因⽽⾛动⼀圈需64×64步,即4096步。

另外必须按照⼀定的次序给每个相通电,才能正常完成四步⼀个齿距的动作。

相电压为12V,其它参数按电机型号,查阅相关资料,本模块使⽤电机型号为:28BYJ48型,如下图所⽰。

图2-5 28BYJ48步进电机实物图
红线接电源5V,橙⾊电线接P1.0⼝,黄⾊电线接P1.1⼝,粉⾊电线接P1.2⼝,蓝⾊接P1.3⼝。

由于单⽚机接⼝信号不够⼤需要通过ULN2003放⼤再连接到相应的电机接⼝,如上所述。

按照上述电机连线⽅式,即橙⾊线接P1⼝最低位,蓝⾊线接P1⼝⾼位,则A、B、C、D
根据以上分析可得,定义旋转相序:
unsigned char code F_Rotation[4]={0x01,0x02,0x04,0x08}; //正转表格
unsigned char code B_Rotation[4]={0x08,0x04,0x02,0x01}; //反转表格
同理,四相⼋拍的通电顺序如表2-2所⽰:
表2-2
、D
所以可以定义旋转相序:
unsigned char code F_Rotation[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //正转相序表
unsigned char code B_Rotation[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //反转相序表
该步进电机主要技术参数如下:
注意事项:
相序不能接错,否则不能正常转动
速度不能过⾼,否则不⾜以驱动电机转动。

2. 软件实现
根据硬件原理,程序按照下⾯⽅式就可以使电机运转:AB-BC-CD-DA-AB 或者A-B-C-D-A前者⼒矩⼤。

即表⽰A相通电,其他都断电,然后B相通电,其他都断电,以此类推。

A切换到B的时间可以调整,即调整转速。

反转如下D-C-B-A-D或者AD-DC-CB-BA-AD。

并且通过按键S4即可控制电机正转、反转或者停⽌,其源程序如下:
/*-----------------------------------------------
名称:步进电机
内容:1、本程序⽤于测试4相步进电机常规驱动
2、需要⽤跳帽或者杜邦线把信号输出端和对应的步进电机信号输⼊端连接起来
3、速度不可以调节的过快,不然就没有⼒矩转动了
4、按s4(设置成独⽴按键模式)可以控制正反转
------------------------------------------------*/
#include
unsigned char Flag;//定义正反转和停⽌标志位
sbit KEY = P3^3;
unsigned char code F_Rotation[4]={0x01,0x02,0x04,0x08}; //正转表格
unsigned char code B_Rotation[4]={0x08,0x04,0x02,0x01}; //反转表格
/******************************************************************/
/* 延时函数*/
/******************************************************************/
void Delay(unsigned int i)//延时
{
while(--i);
}
/******************************************************************/
/* 主函数*/
/******************************************************************/
main()
{
unsigned char i;
EX1=1; //外部中断0开
IT1=1; //边沿触发
EA=1; //全局中断开
while(Flag==0)
{
P0=0x71;//显⽰F 标⽰正转
for(i=0;i<4;i++) //4相
{
P1=F_Rotation[i]; //输出对应的相可以⾃⾏换成反转表格
Delay(500); //改变这个参数可以调整电机转速,数字越⼩,转速越⼤
}
}
while(Flag==1)
{
P0=0x7C;//显⽰b 标⽰反转
for(i=0;i<4;i++) //4相
{
P1=B_Rotation[i]; //输出对应的相
Delay(500); //改变这个参数可以调整电机转速,数字越⼩,转速越⼤
}
}
while(Flag==2) //停⽌
{
P0=0x6D;// 显⽰S
P1=0;
}
}
/******************************************************************/
/* 中断⼊⼝函数*/
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
Delay(500);
if(!KEY)
{
Flag++; //s4按下触发⼀次
if(Flag==3)
Flag=0;
}
}
四、实验步骤
1. 完成硬件连接,将步进电机的红⾊对准图中的VCC,,其他对准ABCD插在J20上,然后⽤杜邦线从J18的ABCD于p1.0p1.1p1.2p1.3短接,⽤串⼝下载线和USB电源线将PC 机与单⽚机连接。

2. 打开单⽚机编译环境Keil C,编写并编译程序,⽤程序烧写软件将其.hex⽂件下载到单⽚机,观察现象。

3. 按下S4按键,观察步进电机能否正常正转、反转和停⽌。

4. 分析并修改程序,运⽤四相⼋拍的通电顺序来控制电机正转、反转和停⽌。

五、实验结果分析
1.如果⽤杜邦线将J18的ABCD于p1.3p1.2p1.1p1.0短接(与实验步骤中接法相反),则可观察到怎样的现象?
2.如果⽤p1.1p1.2p1.3p1.4⼝来控制步进电机的正、反转和停⽌,程序应怎样修改?
3.画出本实验软件控制代码的流程图。

4.若⽤四相⼋拍的通电顺序来控制电机正转、反转和停⽌,程序应如何修改?
实验三计算机温度PID 控制实验
⼀、实验⽬的
1.掌握计算机实现温度测控仪温度外部控制的系统组成结构与原理; 2.掌握该外部温控系统的P 、I 、D 参数整定⽅法。

⼆、实验设备
杭州英联YL 系列温度测量控制仪⼀台
YL610型现代检测技术综合实验台中RS485多通道数据采集控制器模块 PC 机⼀台导线若⼲
三、实验内容
1. 系统介绍
该实验系统原理框图如图3-1所⽰。

它主要⽤于对实验室已有的温控对象——温度测量控制仪的温度进⾏实时的外部PID 控制。

⾸先,通过上位PC 机的控制界⾯,可以为系统设定⼀个温度值,另⼀⽅⾯通过实验台上的RS485多通道数据采集控制器模块可以对温度测控仪⽬前的温度进⾏采集得到反馈值,并传输到PC 机。

PC 机将给定值与反馈值进⾏⽐较,同时运⽤PID 控制算法输出⼀个温度控制量,该控制量通过数据采集卡传输给温度测控仪,并相应控制温度测控仪加温或降温动作,使该温控对象的温度值恒定在给定值附近。

图3-1 计算机温度PID 控制系统原理图
温度闭环控制⽅框如图3-2所⽰。

图中,温控源由温控仪表和加热、冷却装置等组成,其中在E 型热电偶的温度控制系统中温控仪表仅起到将E 型热电偶信号转变成0~5V 信号的作⽤,不起控温作⽤;加热、冷却装置受计算机控制,⽤于控制被控制装置温度;温度传感器——作为检测原件,⽤于测量被控制装置的温度。

数据采集控制器(如图3-4所⽰)提供计算机和外设之间的借⼝,进⾏A/D 和D/A 转换。

计算机,是本系统中的控制核⼼,由于检测温度传感器的信号,并和本⾝的设定值⽐较,根据设定的PID 参数值,控制加热和冷却装置的启停,使被控装置的温度稳定在设定值上。

计算机的控制功能是基于YL3.0测控软件实现的。

被控装置,其温度是本系统的控制对象,他的内部有⼀块铝块,受加热和冷却装置的影响,铝块温度随着变化,温度传感器和铝块直接接触测温。

图3-2温度闭环控制框图
(1)YL 温度测量控制仪
温控仪表操作⾯板如图3-3所⽰。

即PV 窗和SV 窗分别显⽰当前的环境温度值和设定值。

此时若想改变设定值,可按SET 键0.5s ,SV 显⽰窗闪烁,按移位键改变设定值闪烁的位,按减键使闪烁的数字减⼩,按加键使闪烁的数字增⼤,再按SET 键0.5s 确认。

图3-3温控仪表操作⾯板图
YL 系列温度测量控制仪主要功能如下:
●传感器可以选择K 或E 型热电偶(已提供)。

●温控模块输出标准0~5V (对应0oC 到100oC ),作为外部控制系统中的传感器测量信号。

●提供标准外部输⼊信号0~5V ,作为线性加热控制信号(1A ,220V ),同时为了平衡加温和降温效果,提供了继电器冷却信号,作为外部控制系统的输出控制信号。

●选择内控⽅式可以分析PID 控制系统中P 、I 、D 各参数的影响效果,为外控⽅式的开发提供了实验基础。

(2)RS485多功能数据采集控制器
485总线多功能数据采集控制器主要由8路模拟量输⼊(A/D ), 4路模拟量输出(D/A ), 8路数字量输⼊(DI ), 4路数字量输出(DO ),⽹络地址可由硬件连接或由软件设置。

图3-4微机控制采集控制器
1 2
8
9
10
该数据采集控制器配套有相应系统软件YL3.0setup.EXE ,应在实验前将该系统软件安装成功(安装过程将在实验步骤中介绍)。

该软件在使⽤中应注意如下问题:
1)运⾏程序后,进⼊登录界⾯,有“系统管理员”(system )和“实验⼈员”两种登录⽅式。

⾸次运⾏,则需由系统管理员分配实验⼈员⽤户名,分配完之后,由实验⼈员凭⾃⼰的⽤户名和密码登录。

2)窗⼝最上⾯是标题栏,显⽰英联软件的图标和V3.0版本号。

3)标题栏的下⾯是菜单栏,本软件共有6个⼦菜单,分别是数据操作、⽤户管理、显⽰、⽹络地址、初始化测试、帮助。

4)菜单栏下⾯是窗⼝的主要部分,其左边是数据测试栏,⽤以显⽰实时输⼊采样数据(8路AI 、8路DI )。

右边是实时数据输出栏(4路AO 、4路DO ),⽤来⼿动设定输出值。

2.PID 控制实现⽅法
该实验主要通过两种软件算法来实现温度的PID 控制:即⼀种使⽤已封装好的PID 控制界⾯进⾏控制,⽽其中具体算法对于实验者来说是完全封闭的;⼀种则利⽤MATLAB 完成增量型PID 算法,下⾯重点介绍后⼀种⽅法。

增量式PID 算法如下:
)2()1()(210-+-+=?k e q k e q k e q u k
其中:
]1[0S
D
I S p T T T T K q ++
= ]2
1[1S
D
p T T K q +-= S
D
p
T T K q =2 在程序中近似将
0q ,1q ,2q ⽤d k ,i k ,p
k 来代替,⽅便程序的实现。

实验说明:本实验根据增量型PID 算法实现,实验时可根据实际需要设定设备的温度值(即程序中的wendu 值,0-100°对应wendu 值的0-5)。

然后打开设备和设置相应的通道(YLTD('open')),然后设置PID 的⽐例、积分和微分3个参数(kp=5.0;ki=1.0;kd=1;),由于接⼝规定输出电压值为0-5V ,否则报错,所以程序中设定当PID 计算输出电压值⼤于5V 时,输出设为5V ,同样,当PID 计算输出电压值⼩于0时,输出设为0V 。

实验结果图中,蓝⾊的直线为设定的温度值,带圆圈的红⾊直线为PID 输出值(此时电压值已经转化为温度值),带箭头的绿⾊直线为采集到的当前温度值。

实验例⼦:
%PID 控制
clear all; close all;
%打开设备,默认为COM1
YLTD('open');
%逼近温度
wendu=4;
%误差采样值e(k),e(k-1),e(k-2);
u_1=0.0;u_2=0.0;u_3=0.0;
%取3000个实验数据
tic;
for k=1:1:30000
%分别取⽐例、积分和微分参数初值(实验时可⾃⾏设定,⽐较试验结果)kp=5.0;ki=1.0;kd=1;
dt=toc;
tic;
%实验假设从板卡1的通道0中输⼊(⽐如温度曲线)(可根据实际⾃⼰调整)rin2(k)=YLTD('ad',1,0);
if(k~=1 && abs(rin2(k)-rin2(k-1)) > 3/100*5*dt)
rin2(k)=rin2(k-1);
end
if rin2(k)>wendu
%如果当前温度值⼤于设定的温度值时,打开风扇
YLTD('do',1,1,1);
else
%如果当前温度值⼤于设定的温度值时,关闭风扇
YLTD('do',1,1,0);
end
rin(k)=wendu;
%PID 控制器
u_3=rin(k)-rin2(k);
u_1=u_2;
u_2=u_3;
u(k)=kd*u_1+ki*u_2+kp*u_3;
yout(k)=u(k)+rin2(k);
if yout(k)>5
yout(k)=5;
end
if yout(k)<0.001
yout(k)=0;
end
%输出控制量yout(k),实验从板卡1通道1输出。

(可根据实际⾃⼰调整)
YLTD('da',1,0,yout(k));
% 是否动态显⽰,1为显⽰,0为不显⽰
D=1;
if D==1 %Dynamic Simulation Display
%动态显⽰实验结果图
plot(1:k,rin*20,'b',1:k,yout*20,'r-O',1:k,rin2*20,'g->');
ylabel('Temprature');
axis([-inf, inf, 0, 100]);
pause(0.000000001);
end
end
YLTD('close')
3. PID参数设定⽅法
数字PID控制器控制参数的选择,可按连续-时间PID参数整定⽅法进⾏。

在选择数字PID参数之前,⾸先应该确定控制器结构。

对允许有静差(或稳态误差)的系统,可以适当选择P或PD控制器,使稳态误差在允许的范围内。

对必须消除稳态误差的系统,应选择包含积分控制的PI或PID控制器。

⼀般来说,PI、PID和P控制器应⽤较多。

对于有滞后的对象,往往都加⼊微分控制。

控制器结构确定后,即可开始选择参数。

参数的选择,要根据受控对象的具体特性和对控制系统的性能要求进⾏。

⼯程上,⼀般要求整个闭环系统是稳定的,对给定量的变化能迅速响应并平滑跟踪,超调量⼩;在不同⼲扰作⽤下,能保证被控量在给定值;
来说,有些是⽭盾的。

我们必须满⾜主要的⽅⾯的要求,兼顾其他⽅⾯,适当地折衷处理。

PID控制器的参数整定,可以不依赖于受控对象的数学模型。

⼯程上,PID控制器的参数常常是通过实验来确定,通过试凑,或者通过实验经验公式来确定。

实验凑试法
实验凑试法是通过闭环运⾏或模拟,观察系统的响应曲线,然后根据各参数对系统的影响,反复凑试参数,直⾄出现满意的响应,从⽽确定PID控制参数。

整定步骤
实验凑试法的整定步骤为"先⽐例,再积分,最后微分"。

(1)整定⽐例控制
(2)整定积分环节
1)中选择的⽐例系数减⼩为原来的50~80%,再将积分时间置⼀个较⼤值,观测响应曲线。

然后减⼩积分时间,加⼤积分作⽤,并相应调整⽐例系数,反复试凑⾄得到较满意的响应,确定⽐例和积分的参数。

(3)整定微分环节
若经过步骤(2),PI控制只能消除稳态误差,⽽动态过程不能令⼈满意,则应加⼊微分控制,构成PID控制。

先置微分时间TD=0,逐渐加⼤TD,同时相应地改变⽐例系数和积分时间,反复试凑⾄获得满意的控制效果和PID控制参数。

针对该实验对象——YL系列温度测量控制仪,其P、I、D控制参数可分别设为5、1、1,仅供参考。

四、实验步骤
1.安装应⽤软件,并对软件功能进⾏调试。

(1)将串⼝线连接在PC机与RS485多通道数据采集控制器模块上。

(2)安装YL3.0setup.EXE程序。

可根据提⽰进⾏安装,也可⾃⼰更改安装⽬录(最好和YLTECHsetup.EXE的安装⽬录不同)。

(3)安装完成后,进⼊程序。

⾸先弹出⽤户登陆界⾯,输⼊⽤户名system,密码yltech,即进⼊系统管理员界⾯。

在⽤户管理下⾯添加⽤户及完成⽤户密码的设定。

(4)初始化测试。

在实验前⽤串⼝调试⼯具完成⼀次通讯测试,点击初始化测试菜单,则弹出如下界⾯:。

相关文档
最新文档