基于远程IO和变频器的电机调速系统设计.docx
- 文档编号:20235908
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:22
- 大小:193.92KB
基于远程IO和变频器的电机调速系统设计.docx
《基于远程IO和变频器的电机调速系统设计.docx》由会员分享,可在线阅读,更多相关《基于远程IO和变频器的电机调速系统设计.docx(22页珍藏版)》请在冰豆网上搜索。
基于远程IO和变频器的电机调速系统设计
《计算机测控系统设计》课程设计报告
学院:
_电气与信息工程学院_专业班级:
学生姓名:
学号
设计地点(单位)_________I510_______
设计题目:
__基于远程I/O和变频器的电机调速系统设计__
完成日期:
2014年12月27日
指导教师评语:
______________________
_________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
摘要
本文介绍了基于ADAM4000系列模块通过远程I/O和变频器控制电机转速的控制系统的工作原理、硬件结构和软件设计。
其中PC机作为控制器,变频器作为执行器,电机的转速作为被控对象,、ADAM-4019、ADAM-4024和ADAM-4050等模块作为测量变送器,共同构成一个单回路闭环控制和报警系统。
软件设计时我们采用了不完全微分PID控制算法,这种算法与完全微分PID控制想必,明显提高了系统的控制精度。
经过系统地测试,该控制系统动态误差控制在较小范围,能够满足控制要求。
关键词:
远程I/O,ADAM4000,不完全微分PID
目录
摘要2
1系统设计方案2
1.1系统概述2
1.2设计方案2
1.2.1硬件设计方案2
1.2.2控制方案2
2硬件系统设计3
2.1ADAM-4019+模块3
2.2ADAM-4024模块4
2.3ADAM-4050模块及报警电路4
2.4其他硬件4
3软件设计5
3.1主程序设计5
3.2数据采集和数据发送7
3.2.1数据采集程序设计7
3.2.2控制数据输出程序设计7
3.2.3报警输出程序设计8
4调试过程及结果分析9
4.1调试过程9
4.2调试结果10
4.3结果分析11
5.结束语11
致谢12
参考文献12
附录程序清单13
重庆科技学院
课程设计任务书
设计题目:
基于远程I/O和变频器的电机调速系统设计
学生姓名
学生选题后附名单
课程名称
计算机测控系统设计
专业班级
测控2011
地点
I510、I512
起止时间
14.12.1~14.12.26
设计内容及要求
1.接线图设计:
使用ADAM4000和MM420变频器控制电机转速的所有接线图;包括接线操作、MM420单独控制电机转速的试验和基本应用等。
2.程序设计
(1)界面设计:
主界面设计,设定转速/实际转速的趋势图和棒图,报警等设计。
(2)数据采集与处理程序设计:
ADAM4000数据输入/输出程序;利用一元线性回归拟合测量环节的特性曲线;分析系统的系统误差、粗大误差与随机误差,确定减小各类误差的方法;比较常见数字滤波器性能,实现一阶惯性滤波等。
(3)电机速度的可编程曲线控制:
开环控制电机的转速按预先设定的曲线变化;通过闭环控制(PID调节)将电机的转速控制到任意设定转速。
3.单回路PID参数的整定和分析。
要求:
根据自己的学号与模8之余确定自己的A/D通道(采集电机的实际转速),据此设计相应的接线图;实现控制死区和输出限幅;整定PID参数满足相应的控制要求;撰写设计报告。
设计
参数
1.变频器:
MM420;电机:
具体参数见铭牌
2.稳态误差:
<1%
进度
要求
第1-2天:
选题、讲解任务;第3-4天:
ADAM4000基本应用、CB编程培训;第5-6天:
ADAM4000、MM420变频器和电机的接线图设计、ADAM4000基本编程、变频器基本应用;第7-8天:
数据采集程序设计与传感器精度分析;第9-10天:
系统精度分析;第11-12天:
数字滤波器设计;第13-15天:
实时控制程序设计;第16-17天:
界面设计与调试;第18-19天:
演示、检查、答辩;第20天:
撰写设计报告
参考资料
胡文金等.计算机测控系统.重庆:
重庆大学出版社,2003.6
西门子.MM420变频器使用手册
费业泰.《误差理论与数据处理》(第6版).北京:
机械工业出版社.2006.1
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
系主任:
指导教师:
杨波、王雪
1系统设计方案
1.1系统概述
控制系统以ADAM4000系列模块组作为控制器,电动调节阀作为执行器,气体压力作为被控量,压力计作为测量变送器,构成了一个完整单回路闭环控制系统。
结合增量式不完全微分PID控制算法,使系统的控制精度控制在较高范围,满足控制要求。
系统总体框图如图1-1所示。
图1-1系统总体框图
1.2设计方案
1.2.1硬件设计方案
控制器ADAM-4000系列远程I/O主要由ADAM-4019作为数据输入模块、ADAM-4024作为控制量输出模块、ADAM-4050作为模块报警开关量输出模块组成。
空气压缩机提供整个系统需要的稳定气流,通过压力计和电动调节阀的相互作用实现控制目的后空气即可排出。
1.2.2控制方案
本次控制方案我们将采用增量式不完全微分PID控制算法,它由一个不完全微分环节和一个PI环节组成。
其实际微分环节的微分作用按照指数衰减慢慢释放,有利于提高气体压力控制系统的控制精度。
不完全微分相对于纯微分能够更好的达到控制要求。
在本次方案中我们基本确定采样周期等于控制周期,周期时间选用3至10秒,再根据实际控制效果适当匹配周期。
2硬件系统设计
系统硬件硬件主要由ADAM4000系列模块组、压力计和电动阀组成。
压力计将0至1Mpa的气压转化为标准的4至20mA的电流信号,送至ADAM-4019模块作为控制器的采集信号,经PID计算后由ADAM-4024输出4至20mA的电流信号控制电动阀,来实现闭环控制效果。
控制器主要模块实物图如图2-1所示。
图2-1ADAM-4000模块组与PC机连接示意图
2.1ADAM-4019+模块
ADAM-4019+是16位A/D8通道的模拟量输入模块,可以采集电压、电流等模拟量输入信号。
它为所有通道都提供了可编程的输入范围,这些模块为工业测量和监控的应用中提供很好的性价比;而且它的模拟量输入通道和模块之间还提供了3000V的电压隔离,这样就有效的防止模块在受到高压冲击时而损坏。
ADAM-4019+不仅支持8路差分信号,还支持Modbus协议。
各通道可独立设置其输入范围,同时在模块右侧使用了一个拨码开关来设置INT*和正常工作状态的切换,4019+还增加了4~20mA的输入范围,测量电流时,不需要外接电阻,只需打开盒盖,设置跳线即可。
跳线设置即是打开盒盖将接线柱向下调整即可。
2.2ADAM-4024模块
ADAM-4024有4路模拟量输出通道,分辨率为12位,带有光隔离器,可防止接地回路、电源冲击对设备造成损害,可以指定转换速率和启动电流,支持Modbus协议,输出范围可选0-20mA,4-20mA,+/-10V。
本设计选择4-20mA标准信号以便控制电动阀。
2.3ADAM-4050模块及报警电路
ADAM-4050带有7路数字量输入和8路数字量输出。
它的数字量输出为集电极开路的晶体管开关,可由主机进行控制。
主机可以利用模块的数字量输入来检测行程开关、安全开关或远程数字量信号。
本设计使用它输出开关量来控制报警器,当程序计算值超出设定报警限时,模块将输出低电平,触发报警。
2.4其他硬件
系统选用输出标准电流信号的压力计作为测量变送器,且选用接受标准信号的电动阀作为执行器。
系统出报警器直接由220V/AC供电以外,其他模块和仪表均由输出24V/DC开关电源供电。
系统硬件设计面板连接图和实物接线图如图2-3和2-4所示。
图2-3系统硬件设计面板连接图
图2-4压力系统硬件设计面板连接实物图
接线说明:
1.仪表和模块24V/DC供电;
2.4019+接电流模式0通道Iin+接传感器“信号+”,Iin-接24V电源“-”,传感器“输入+”接24V电源“+”;
3.4024的3通道Iout+输出接调节阀“输入+”,Iout-接调节阀“输入-”;
4.4050数字量输出0通道“DO0”接“报警器2”,报警器GND接24V电源“-”;
3软件设计
3.1主程序设计
本本设计采用增量式不完全微分PID控制算法,其控制精度相对于纯微分PID控制算法有明显优势。
不完全微分PID实际上是由一个不完全微分环节和一个PI环节组成,其微分作用是按照指数衰减缓慢释放的。
其流程图如图3-1所示。
图3-1不完全微分PID控制算法流程图
不完全微分算法核心代码如下:
En=L_ad-SP;//反作用
Udn=Udn1+K1*(En-En1)+K2*(En-Udn1);//微分环节的位置型算式
DeltaUn=(KP*TS/I)*Udn+KP*(Udn-Udn1);//整个不完全微分PID的增量式算式
Un=Un1+DeltaUn;//Un为本周期PID控制器的输出
if(Un>20.000)Un=19.998;
if(Un<4.000)Un=4.001;
Un1=Un;//偏差移动
En1=En;
Udn1=Udn;
控制系统软件流程图如图3-2所示。
图3-2系统软件流程图
3.2数据采集和数据发送
本设计需要微软环境所提供的ActiveX的MSComm控件。
3.2.1数据采集程序设计
4019模块读指定通道输入值命令为:
“#AAn(cr)”其中AA为栈号,n为通道号。
4019模块在0通道数据采集语句如下:
floatdav;
if(MSComm1->PortOpen==false)MSComm1->PortOpen=true;
AnsiStringSendString="#010";
SendString+="\xd";
MSComm1->Output=OleVariant(AnsiString(SendString));
Sleep(200);
3.2.2控制数据输出程序设计
数据输出分为4024电流量和4050数字量,分别表示不完全微分PID控制输出和报警信号输出。
其程序语句如下:
4024模块送D/A数据的命令为:
“#AACn(data)”,其中AA为栈号,C为固定字符,n为通道号,data为待发送的数据。
4024模块3通道数据输出语句如下:
if(MSComm1->PortOpen==false)MSComm1->PortOpen=true;
AnsiStringSendString1="#02C3";
if(Un<10.0)
{
SendString1+="+0";
SendString1+=FloatToStrF(Un,0,4,4);
}
if(Un>=10.0)
{
SendString1+="+";
SendString1+=FloatToStrF(Un,0,5,5);
}
SendString1+="\xd";
MSComm1->Output=OleVariant(AnsiString(SendString1));
MSComm1->PortOpen=false;
Edit1->Text=FloatToStrF(L_ad,0,5,5);
Edit3->Text=FloatToStrF(Un,0,5,5);
}
3.2.3报警输出程序设计
4050模块数字量输出的命令为:
“#AABB(data)”其中AA为栈号,BB为输出格式,data为待发送的数据。
当测量值大于设定值“dan”或是“PV-SP”大于1.5时则输出报警信号。
报警器程序代码如下:
/*********设置报警限********/
if(Press>HL||Press { if(MSComm1->PortOpen==false) MSComm1->PortOpen=true; AnsiStringSendString2="#030001"; SendString2+="\xd"; MSComm1->Output=OleVariant(AnsiString(SendString2)); MSComm1->PortOpen=false; } if(Press>(LL+DB)&&Press<(HL-DB)) { if(MSComm1->PortOpen==false) MSComm1->PortOpen=true; AnsiStringSendString3="#030000"; SendString3+="\xd"; MSComm1->Output=OleVariant(AnsiString(SendString3)); MSComm1->PortOpen=false; } 4调试过程及结果分析 4.1调试过程 1)首先按照电气CAD的连线图连接好线路。 打开配置软件,设置好传输波特率,波特率设置为9600Bps,4024模块的3通道和4019+模块的0通道均设置为4至20mA电流模式。 2)输出测试,使用配置软件,4024分别输出不同毫安的的电流值,观察调节阀的开度是否随着随电流值变化而变化,如果调节阀开度随着电流值的变化而变化即说明调节阀工作正常。 3)采集数据单位标定,查看4019+的0通道电流值,可以看到此时为4.000mA,继续打开空气压缩机,压力表示数逐渐增大,4019+采集的电流值也逐渐增大,经标度换算发现,4019采集的电流值与压力计示数对应,说明数据采集正常。 4)设置PID相关参数初始值,控制周期设为500毫秒,采样周期为500毫秒,运行程序。 首先,调节比例系数Kp,由小往大调,记录下临近振荡的值约0.8;然后,加入积分环节,由大到小调节积分时间Ti,尽量消除系统余差,观察达到实时曲线已经趋于平稳,记录较理想值在22至24之间;最后,再适当加入微分环节,已达到改变系统动态系能,如减小超调量和数段调节时间等,观察曲线趋势,直到出现比较好的调节效果,记录较为理想数据在4到6之间。 4.2调试结果 通过设定不同的PID参数和不同的设定气压值,最终得出了叫理想的实验效果,具体其中PI控制和PID控制如图4-1和4-2所示。 图4-1PID控制趋势图1 图4-2PID控制趋势图2 注: 趋势图部分从上至下(靠左)分别代表控制输出线、气压设定线和气压测量线;棒状图部分从左至右分别代表气压设定值、气压测量值和控制输出值。 4.3结果分析 综合上述结果,设计各项指标均达到要求。 其中稳态误差控制在: 0.001至0.007MPa之间。 由于电动阀存在滞后,系统调节时间一般在20秒左右。 PID参数对系统的影响。 本控制周期不宜取得过大,在1秒左右较为合适;Kp偏大或Ti偏小,系统振荡次数增多;Kp太大或Ti太小讲师系统趋于不稳定;Td偏大或偏小均会引起超调量较大或调节时间较长。 因此,整定PID参数的过程是较为漫长的,只有合适的参数才能保证系统稳定运行。 5.结束语 计算机测控系统设计课程设计为我们提供了一次很实用,很难得的学习和实践的机会。 该设计充分利用到了闭环控制系统方面的知识,也提升了闭环PID控制系统的工程实践能力。 通过这次课程设计,使我对远程I/O及过程控制有了进一步的了解,对课本上的知识有了近一步的掌握,也深刻明白了自己的不足。 通过这次实践,我感觉到自己从课本上学到的理论知识和实践仍有很大的差距。 在设计编程过程中,我也遇到很多问题,只有重新看书才能找到答案,这让我体会到了时间的重要性和理论的权威性。 理论不经过实践考验,是没法实施的,就像我们编的程序,很多方面考虑的都不够,几乎没有涉及到实际应用时的防范方法措施。 致谢 这次课程设计在老师和同学的帮助顺利完成了,在设计中遇到了很多编程问题,最后在老师的建议下终于解决了。 对我以后的工作和生活将产生很大的影响。 特别感谢各位老师给予我很大的关心和支持。 同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 参考文献 [1]胡文金等.计算机测控系统.重庆: 重庆大学出版社,2003.6 [2]《误差理论与数据处理》(第6版).北京: 机械工业出版社.2006.1 [3]压力计使用手册 附录程序清单 //------------------------------------------------------------------- #include #pragmahdrstop #include"Unit1.h" #include"math.h" //------------------------------------------------------------------- #pragmapackage(smart_init) #pragmalink"MSCommLib_OCX" #pragmalink"PERFGRAP" #pragmaresource"*.dfm" floatSP=5.2253; inti; floatL_ad,L_ad1; floatPress=0.0,SetP=0.0,HL=0.4,LL=0.1,DB=0.0; floatKP=0.8,I=22,D=4.00,KD=2.5,PV=0.0; floatUn=0.0,Un1=0.0,Val=0.0,DeltaUn=0.0,En=0.0,En1=0.0,Udn=0.0,Udn1=0.0; floatTS=4.5; floatK1,K2; TForm1*Form1; //------------------------------------------------------------------- __fastcallTForm1: : TForm1(TComponent*Owner) : TForm(Owner) { } //------------------------------------------------------------------- void__fastcallTForm1: : Timer1Timer(TObject*Sender) { floatdav; if(MSComm1->PortOpen==false)MSComm1->PortOpen=true; AnsiStringSendString="#010"; SendString+="\xd"; MSComm1->Output=OleVariant(AnsiString(SendString)); Sleep(200); PV=AnsiString(WideString(MSComm1->Input)).SubString(3,6).ToDouble();//数据转换 /*********一阶惯性滤波********/ L_ad=0.55*PV+0.45*L_ad1; L_ad1=L_ad; Edit1->Text=FloatToStrF(L_ad,0,5,5); Press=L_ad*0.0669-0.2494;//计算设定压强 Edit15->Text=FloatToStrF(Press,0,2,2); Edit14->Text=FloatToStrF(((Press-SetP)*100.0)/SetP,0,5,2);//计算相对误差 /*********设置报警限********/ if(Press>HL||Press { if(MSComm1->PortOpen==false) MSComm1->PortOpen=true; AnsiStringSendString2="#030001"; SendString2+="\xd"; MSComm1->Output=OleVariant(AnsiString(SendString2)); MSComm1->PortOpen=false; } if(Press>(LL+DB)&&Press<(HL-DB)) { if(MSComm1->PortOpen==false) MSComm1->PortOpen=true; AnsiStringSendString3="#030000"; SendString3+="\xd"; MSComm1->Output=OleVariant(AnsiString(SendString3)); MSComm1->PortOpen=false; } /*********不完全微分PID********/ En=L_ad-SP;//反作用 Udn=Udn1+K1*(En-En1)+K2*(En-Udn1);//微分环节的位置型算式 DeltaUn=(KP*TS/I)*Udn+KP*(Udn-Udn1);//整个不完全微分PID的增量式算式 Un=Un1+DeltaUn;//Un为本周期PID控制器的输出,P148页由增量式PID算式得到PID控制器输出 if(Un>20.000)Un=19.998; if(Un<4.000)Un=4.001; Un1=Un;//偏差移动 En1=En; Udn1=Udn; /*********控制输出********/ if(MSComm1->PortOpen==false)MSComm1->PortOpen=true; AnsiStringSendString1="#02C2"; if(Un<10.0) { SendString1+="+0"; SendString1+=FloatToStrF(Un,0,4,4); } if(Un>=10.0) { SendString1+="+"; SendString1+=FloatToStrF(Un,0,5,5); } SendString1+="\xd"; MSComm1->Output=OleVariant(AnsiString(SendString1)); MSComm1->PortOpen=false; Edit1->Text=FloatToStrF(L_ad,0,5,5); Edit3->Text=FloatToStrF(Un,0,5,5); } //------------------------------------------------------------------- void__fastcallTFor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 远程 IO 变频器 电机 调速 系统 设计