单回路电机转速控制系统的设计和调试2.docx
《单回路电机转速控制系统的设计和调试2.docx》由会员分享,可在线阅读,更多相关《单回路电机转速控制系统的设计和调试2.docx(28页珍藏版)》请在冰豆网上搜索。
单回路电机转速控制系统的设计和调试2
重庆科技学院
学生实习(实训)总结报告
院(系):
_电子信息工程学院专业班级:
_自普本2007-01_
学生姓名:
__吴冠霖__学号:
__2007520020__
实习(实训)地点:
__校内I502_________________
报告题目:
_单回路电机转速控制系统的设计和调试___
报告日期:
2010年07月16日
指导教师评语:
_______________________________________
_____________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
_____________
指导教师(签字):
_____________________
目录
1实习内容及其要求………………………………………………………………2
2AC6611多功能过程通道卡……………………………………………………2
2.1功能特点与技术指标………………………………………………………2
2.2应用方法和步骤……………………………………………………………3
3方案设计…………………………………………………………………………5
3.1MM420变频器的使用方法和步骤…………………………………………5
3.2电机调速系统的实现方案…………………………………………………5
3.3AC6611和变频器组成的电机调速系统接线图设计……………………7
3.4控制程序的方案设计和模块划分…………………………………………8
4数据采集与输出程序设计………………………………………………………8
4.1AC6611数据采集与转速换算程序………………………………………8
4.2数字滤波算法及程序设计…………………………………………………9
4.4控制量与D/A代码换算及输出程序……………………………………10
5控制算法程序设计………………………………………………………………11
5.1转速设定曲线的程序实现…………………………………………………11
5.2完全微分PID算法…………………………………………………………13
5.3PID算法程序设计…………………………………………………………13
6控制程序的调试…………………………………………………………………14
6.1主要调试内容………………………………………………………………14
6.2调试方法……………………………………………………………………14
6.3调试步骤和结果……………………………………………………………14
7PID参数的整定…………………………………………………………………15
7.1整定方法……………………………………………………………………15
7.2整定结果及分析……………………………………………………………15
8技术小结…………………………………………………………………………18
参考文献…………………………………………………………………………18
附录:
控制程序清单……………………………………………………………19
关于单回路电机转速控制系统的设计和调试的实习(实训)报告
1、实习内容及其要求
内容:
通过转速的设定值和反馈值,计算其偏差,并使用PID控制算法输出控制信号,整定PID参数,使被控的温度或转速达到设定值。
具体实训内容包括AC6611过程卡的接线和测试、数据采集程序设计、PID算法程序设计、控制输出程序设计、人机界面程序设计、PID参数整定、实训报告。
要求:
通过实训,让学生了解计算机控制系统的基本组成,提出计算机控制系统的设计思路,初步学会计算机控制系统软硬件设计及调试的方法,具备技术实现能力;基本上能够处理实践过程中出现的问题并提出解决办法,进一步提高学生的计算机应用水平。
完成一个转速单回路控制系统的设计和调试过程。
2AC6611多功能过程通道卡
AC6611是北京双诺测控技术有限公司一款廉价通用A/D、D/A板和I/O卡,AD工作在查询方式,采用PCI总线支持即插即用、无需地址跳线。
AC6611具有16路单端模拟输入、1路12位D/A和32路开关量(16路输入及16路输出)。
2.1功能特点与技术指标
模拟量输入(A/D):
内有120KHZ,12位A/D的转换器(ADS7816),并且内置采样保持器。
采用软件查询工作方式。
16路单端输入,输入阻抗为1MΩ。
最大输入耐压电压:
<+12V/-5.5V,瞬时输入耐压:
-25V-+30V。
DB25孔式输入连接器。
A/D最大通过率是70KHZ,输入通道建立时间<8uS。
有两种输入形式,其中双极性输入范围:
5V,单极性输入范围:
5V、10V。
输入范围跳线器选择,对应输入幅度及精度如下:
0-10V的精度为0.1%,1LSB;0-5V的精度为0.1%,1.5LSB;-5V-+5V的精度为0.1%,1LSB。
模拟量输出(D/A):
采用1路12位DA转换,分辨率12位,精度为0.2%。
以电压的形式输出,5毫安的最大输出电流。
输出零点误差小于±10mA。
输出范围:
10V、±10V,跳线器选择。
输出建立时间小于50ms。
输出插座为DB25(孔)连接器。
开关量输入/输出(DI/DO):
16路开关量输入(2个8位),16路开关量输出(2个8位)。
TTL电平(兼容3伏逻辑);开关量输出复位后为输出为低电平“0”;输出高电压>2.5V,低电压<0.5V,8mA的最大输出电流。
输入电流<0.1mA;输入高电压〉2V,低电压〈0.8V。
高电平最大耐压为8V,低电平为-0.4V。
40脚扁平电缆插座。
技术指标:
AD部分、DA部分、开关量部分、系统
AD部分
⏹A/D转换器:
120KHZ12位A/DADS7816,A/D内置采样保持器。
工作方式:
软件查询。
⏹16路单端输入,输入阻抗:
1MΩ,最大输入耐压电压:
<+12V/-5.5V,瞬时输入耐压:
-25V-+30V,DB25孔式输入连接器。
⏹输入:
双极性输入范围:
5V,单极性输入幅度:
5伏、10伏。
输入范围跳线器选择。
注:
以上测试为典型数值,温度23度±10度,测试样本1000点。
⏹A/D最大通过率:
70KHZ,输入通道建立时间<8uS。
2.2应用方法和步骤
在WindowsXP平台下安装AC6611驱动程序的步骤如下:
关闭计算机的电源将ac6611板卡插入PCI槽中打开计算机电源,启动WindowsXP,WindowsXP将会显示找到新硬件在“找到新硬件向导”对话窗中选择“从列表或指定位置安装”,下一步选择驱动所在目录,进行安装(\ac6611\driver\)按找到新硬件向导的提示进行下一步WindowsXP将显示完成添加/删除硬件向导,单击完成即可完成安装过程。
安装完毕后将在设备管理器中出现一个其他设备(其他设备是问号,不表示设备有问题,只是表示系统不知道ac6611板卡是何种类型设备)
驱动安装后,ac6611.sys,ac6611.dll文件就自动被复制到系统中去了,可以进行其他测试、开发工作了。
AC6611必须通过端子板才能连接外部的输入/输出模拟量信号和开关量信号,其配套的模拟量输入/输出端子板为AC157。
AC6611通过DB25连接器和AC157连接,其连接接关系如图2.2所示。
P1P2
DB25
AC6611
图2.2AC6611通过DB25连接器和AC157的连接关系
AC157的接线段子和其上的P1连接器以及AC6611的P1连接器的信号是一一对应的。
AC157板卡中的模拟量输入通道共有16个,为CH0~CH15通道,分别对应AC6611板卡中P1连接器的AI0~AI15通道(各通道均为单端输入,参考端均为GND)。
P11~P13对应P1连接器的引脚11~13(未用),P23~P25对应P1连接器的引脚23~25,其中的P23为D/A输出通道(参考端为GND),其它两个引脚未用。
利用导线将通道数CH0与P23直接相连。
使用AC6611测试程序“AC6611(静态).EXE”,可以检验AC6611卡件的功能是否正确。
注:
安装完毕后将在设备管理器中出现一个其他设备(其他设备是问号不表示设备有问题,只是表示系统不知道AC6611板卡是何种类型设备)
3方案设计
3.1MM420变频器的使用方法和步骤
3.2电机调速系统的实现方案
本电机调速系统是利用硬件和软件相结合而实现的。
硬件方面:
西门子420通用型变频器、DQ20-1三相鼠笼电动机、测速发电机、AC6611板卡、AC157端子板。
变频器采用单相220V电压供电,输出三相电压接电动机,电动机采用心型接法;通过AC6611板卡的D/A输出(电压输出范围0V-10V)为变频器提供控制电压,以改变变频器的输出频率使电机的转速改变,同时通过AC6611板卡的A/D采集测速发电机的转速输出电压(电压输出范围0V-5V),反馈给控制系统,从而达到控制电机转速的目的。
系统框图如下:
软件方面:
使用C++Builder6.0软件,开始为整个系统编辑一个人机界面,界面图示如下:
总体思路为:
当人为设定电机转速时,利用软件编程将转速转变成数字量通过AC6611板卡的D/A通道送出去转变成电压值成为变频器的控制电压,使得变频器控制电机旋转从而得到相应转速;同时通过AC6611板卡的A/D电压采集通道采集测速发电机的转速电压值,并与设定值相比较,若有偏差存在则通过PID算法输出不断消除偏差,最终使电机达到所需要的稳定状态。
程序的核心内容是利用完全微分PID算法,其形式如:
U(k)=U(k-1)+△Uk
△Uk=q0*Ek+q1*E(k-1)+q2*E(k-2)
q0=(100.0/P)*(1+Ts/I+D/Ts)
q1=-(100.0/P)*(1+2*D/Ts)
q2=(100.0/P)*D/Ts
其中P为比例带,I为积分时间,D为微分时间,Ts为采样周期,本程序中设置的采样周期为一秒。
3.3AC6611和变频器组成的电机调速系统接线图设计
3.4控制程序的方案设计和模块划分
方案一:
完全微分PID设计
综上所述,我选择了方案一作为本次设计的最终方案设计。
模块划分:
用户帐户进入界面、PID控制算法模块、数据修改和显示模块、报警模块、趋势图显示和棒图显示模块
4数据采集与输出程序设计
4.1AC6611数据采集与转速换算程序
数据采集主要是电机转速转换出来的电压的采集,利用AD6611第8通道的A/D采集通道;由于我们所用电机的转速范围为0.0r/min—1470.0r/min,而测速发电机的电压输出范围是0.0V-5.0V的电压值,于是采集回来的转速值可以写为:
V=ad*(1470.0-0.0)/2048.0,其中ad为A/D采集回来的电压数值量。
转速换算程序如下:
intnum=0;
unsignedlongadc;
unsignedshortintda;
for(inti=0;i<10;i++)
{
AC6611_AD(hDevice,14,&adc);
num=num+adc;
}
adc=num/10;
PV=LS+adc*(HS-LS)/2048.0;
其中PV是采集回来的实际转速,HS为转速上限,LS为转速下限。
4.2数字滤波算法及程序设计
一般微机应用系统的模拟输入信号中,均含有种种噪声和干扰,它们来自被测信号源本身、传感器、外界干扰等。
为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。
噪声有两大类:
一类为周期性的;另一类为不规则的。
后者为随机信号,它不是周期信号。
对于随机干扰,可以用数字滤波方法予以消弱或滤除。
本程序采用了一个较简单的数字平均值滤波的方法,就是A/D采集10次数据然后再取平均值,程序代码如下:
intnum=0;
for(inti=0;i<10;i++)
{
AC6611_AD(hDevice,14,&adc);
num=num+adc;
}
adc=num/10;//采集10次的值取平均值
通过使用数字滤波,大大的消弱了干扰信号。
采用数字滤波后输出波形如图。
4.4控制量与D/A代码换算及输出程序
当程序运行后,人为设定转速后,AC6611就通过A/D通道采集当前实际实际转速值,并与设定转速相比较,并把测量转速值与给定转速值进行比较,通过PID算法不断输出控制量以纠正偏差量使实际值与设定值相等,可用程序实现如下:
:
Ek=SP-PV;
DUk=q0*Ek+q1*Ek1+q2*Ek2;
Uk=Uk1+DUk;
if(Uk>100)Uk=100;
if(Uk<0)Uk=0;
Uk1=Uk;
Ek2=Ek1;
Ek1=Ek;
da=(unsignedshortint)(Uk*4095.0/100.0);
AC6611_DA(hDevice,da);
5控制算法程序设计
5.1转速设定曲线的程序实现
要在C++Builer6.0中画曲线,首先我用绘图工具画了一张480*300mm的图片,再使用Additional中的Bevel组件,将先前画的图片加载到Bevel组件中去。
之后利用软件不断对屏幕进行刷新,将设定的数据的随时间变化的每相邻两个点连接起来,就画成了转速曲线。
程序代码如下
//绘制趋势曲线图
for(inti=0;i<479;i++)//给定趋势曲线由480个点组成
{
sptrend[i]=sptrend[i+1];//刷新给定转速值实时数据
sptrend[479]=300*SP/(HS-LS);//最新给定转速值数据
pvtrend[i]=pvtrend[i+1];//刷新测量转速值实时数据
pvtrend[479]=300*PV/(HS-LS);//最新测量转速值数据
mvtrend[i]=mvtrend[i+1];//刷新转速开度值实时数据
mvtrend[479]=300*MV/1470.0;//最新转速开度值数据
}
Image1->Picture->LoadFromFile("qushi.bmp");//重调趋势背景,清除当前趋势曲线
Image1->Canvas->Pen->Width=1;//趋势曲线宽度为1
//绘制给定转速值趋势曲线
Image1->Canvas->Pen->Color=clRed;//给定转速值趋势曲线为红色
Image1->Canvas->MoveTo(0,300);//给定转速值趋势曲线起点
for(inti=0;i<480;i++)//给定转速值趋势曲线由480个点组成
{
Image1->Canvas->LineTo(i,300-sptrend[i]);//两点之间连一直线
}
//绘制测量转速值趋势曲线
Image1->Canvas->Pen->Color=clBlue;//测量转速值趋势曲线为蓝色
Image1->Canvas->MoveTo(0,300);//测量转速值趋势曲线起点
for(inti=0;i<480;i++)//测量转速值趋势曲线由480个点组成
{
Image1->Canvas->LineTo(i,300-pvtrend[i]);//两点之间连一直线
}
//绘制转速开度值趋势曲线
Image1->Canvas->Pen->Color=clGreen;//转速开度值趋势曲线为绿色
Image1->Canvas->MoveTo(0,300);//转速开度值趋势曲线起点
for(inti=0;i<480;i++)//转速开度值趋势曲线由480个点组成
{
Image1->Canvas->LineTo(i,300-mvtrend[i]);//两点之间连一直线
}
//绘制棒图
Image2->Picture->LoadFromFile("bangtu.bmp");//重调背景,清楚当前棒图
Image2->Canvas->Pen->Width=5;//棒条宽度为5
//绘制给定转速值棒图
Image2->Canvas->Pen->Color=clRed;//给定转速值棒条为红色
Image2->Canvas->MoveTo(30,294);//给定转速值棒条起点
Image2->Canvas->LineTo(30,294-SP*288/(HS-LS));//给定转速值比例变换
//绘制测量转速值棒图
Image2->Canvas->Pen->Color=clBlue;//测量转速值棒条为蓝色
Image2->Canvas->MoveTo(50,294);//测量转速值棒条起点
Image2->Canvas->LineTo(50,294-PV*288/(HS-LS));//测量转速值比例变换
//绘制转速开度值棒图
Image2->Canvas->Pen->Color=clGreen;//转速开度值棒条为绿色
Image2->Canvas->MoveTo(70,294);//转速开度值棒条起点
Image2->Canvas->LineTo(70,294-MV*288/100);//转速开度值比例变换
5.2完全微分PID算法
完全微分的公式为:
U(k)=U(k-1)+△Uk
△Uk=q0*Ek+q1*E(k-1)+q2*E(k-2)
q0=(100.0/P)*(1+Ts/I+D/Ts)
q1=-(100.0/P)*(1+2*D/Ts)
q2=(100.0/P)*D/Ts
程序代码如下:
for(inti=0;i<479;i++)
{
sptrend[i]=sptrend[i+1];
sptrend[479]=300*SP/(HS-LS);
}
Image1->Picture->LoadFromFile("qushi.bmp");
Image1->Canvas->Pen->Width=1;
Image1->Canvas->Pen->Color=clRed;
Image1->Canvas->MoveTo(0,300);
for(inti=0;i<480;i++)Image1->Canvas->LineTo(i,300-sptrend[i]);
5.3PID算法程序设计
Ek=SP-PV;
DUk=q0*Ek+q1*Ek1+q2*Ek2;
Uk=Uk1+DUk;
if(Uk>100)Uk=100;
if(Uk<0)Uk=0;
Uk1=Uk;
Ek2=Ek1;
Ek1=Ek;
6控制程序的调试
6.1主要调试内容
AC6611板卡的A/D电压采集、D/A电压输出、转速设定值和采集值的棒图绘制
6.2调试方法
变频器,电机及A/D采集模块工作状态快速调试的方法是:
将变频器的3与4与外接的0-10V电压相连接,变频器的5端口与8端口短接,电机接心型,变频器参数设置成快速调试。
调整外接电压的电压值,观察电机测速仪的转速以及AC6611采集到的转速,如果一致则证明工作正常。
控制程序的调试方法是:
在C++Builder中打开程序,按F9编译并运行,如果能正常实现所需功能,则证明实验成功。
6.3调试步骤和结果
变频器,电机及A/D采集模块工作状态快速调试:
按要求连接好后,打开AC6611的静态模拟界面,将A/D的量程选择到0-10V,起始通道和停止通道均选择14,单击启动,开始采集数据,此时调整外接电压的数值,观察到随着外接电压的升高,电机转速开始增大,同时AC6611采集到的电压与外接电压基本接近,证明仪器工作正常。
控制程序的调试:
在C++Builder中打开程序后,开始编译运行,如果发现不能运行并在代码页面出现红色提醒,则表示此处代码有误,需要改正。
经过全部修改完错误之后,运行,依次检查所需功能能否实现,如果不能,则继续修改代码。
调试结果:
在经过多次的调试后,设备工作正常,编写的程序能够完成所需要的基本功能,包括电机转速的控制,PV,SP等数据棒图,趋势图的显示,PID参数的修改设定,时间的显示。
显示字体的浮动显示等功能。
7PID参数的整定
PID控制器参数的整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类:
一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法,它主要依赖工程经验,且方法简单、易于掌握,在工程实际中被广泛采用。
7.1整定方法
在程序能实现要求的功能之后,运行程序,设定一个转速A,开始观察PV的趋势图,然后根据图来进行参数的整定。
在整定过程中,要先进行比例带的整定,比例带增大则振荡减小,比例带减小则漂浮增大。
在确定比例带后,再进行积分时间的整定,当回复速度过慢时则减小积分时间,当波动周期过大时增大积分。
最后在进行微分时间的确定,震动频率过大则减小微分时间,当波动过慢时增大积分。
7.2整定结果及分析
1、比例整定
首先只整定比例部分。
比例系数由小变大,观察相应的系统响应,直到得到反应快,超调小的响应曲线。
系统无静差或静差已小到允许范围内,并且响应效果良好,那么只须用比例调节器即可,最优比例系数可由此确定。
Kp=500输出波形图
(1)Kp=3000输出波形图
(2)
截图
(1)发现曲线的振动过大,无法稳定在设定的要求值附近,所以我们需要增大比例带的值来减小振动
(2)
2、积分整定
若静差不能满足设计要求,则须加入积分环节。
整定时首先置积分时TI为一较大值,并将经第一步整定得到的比例系数略为缩小(如缩小为原值0.8倍),然后减小积分时间,使在保持系统良好动态性能的情况下,静差得到消除。
在此过程中,可根据响应曲线的好坏反复改变比例系数与积分时间,以期得到满意的控制过程与整定参数。
Ki=2输出波形图Ki=7输出波形图
3、微分整定
若使用比例积分调节器消除了静差,但动态过程经反复调整仍不能满意,则可加入微分环节,构成比例积分微分调节器。
在整定时,可先置微分时间TD为零。
在第二步整定的基础上,增大TD,同时相应地改变比例系数和积分时间,逐步凑试,以获得满意的调节效果和控制参数。
Kd=0.01输出波形图Kd=0.1输出波形图