欢迎来到天天文库
浏览记录
ID:12184983
大小:131.50 KB
页数:8页
时间:2018-07-16
《工业系统驱动与控制课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《工业系统驱动与控制》设计报告ByKane@Automation91设计内容与要求在某工业系统中,需要一个由计算机精确控制的施力装置,用来对某系统进行力加载试验,请设计一个能够精确控制输出力为180公斤的工业控制系统。要求:1)使用本门课所学知识,按上述要求设计系统,画出系统组成框图,并注明各个环节的输入和输出信号的形式;2)简单描述系统的工作原理或过程;3)列出系统及调试所用的仪器设备和主要器件;4)画出软件流程框图;5)改写DRAWINGC.C或CONTOL_D.C程序,实现控制;(将本课程所用采集卡的位数改为10位,选用13路AD采集通道,2路DA控制输出通道)附:一
2、、传感器型号为XYL-1,指标如下:1)量程:0~200kg2)工作电压为10V3)输出范围0~20mV4)传感器是线性的。二、电压/力转换器(执行器):输入0~10V,输出0~200公斤,输出线性。设计分析首先针对题目进行分析可以看到,本题具体要求可以抽象成一个比较简单的工业问题,即如何通过数字控制以实现信号的稳定,快速,精确输出。结合本课程的内容,可以基本确定其主体结构为一数字PID控制系统,通过PID反馈网络对信号进行调节从而实现题设中压力的输出。故而整个系统执行流程大致如下:图1系统工作流程在工控计算机中输入指定输出的压力,例如本题为180,由于题中压力转换器的参数
3、可知,输入范围为0-10V,输出为0-200,故而根据其线性特性二者可以建立以下关系:,其中。取该值进行线形计算可知180压力对应电压为9V,即我们需要通过采集卡输出9V电压。从而工控计算机可以通过相应的数字/模拟转换函数对采集卡进行操作达到以上目的。当系统通过采集卡输出电压至电压/压力转换器后,将产生相应的压力作用于受力物体上,但是受制于工业机械的性能问题,受力物体无法在较短时间内精确接受到相应的压力,从而影响了工业系统的性能。因此,我们在此引入反馈系统进行调节。利用压力传感器实时采集当前受力对象所受的压力并转换成电压信号输入到采集卡中,注意,由于压力传感器的可用输出电压
4、范围仅为0-20mV,在采集卡增益处理时需要选择比较大的增益倍数,否则无法精确地处理数据,或者可以再此处加入比例放大电路来实现电压放大功能,但是会因此产生延迟。通过采集卡的AO通道将电压返回工控计算机中,利用指定的PID算法进行调整并再次输出,同时,在屏幕上绘制图像来判断压力信号是否在较短的时间内到达稳定的输出值。在该系统实现之前,需要针对具体的PID系统参数进行调试,从而达到最优控制的效果。通过以上流程可以基本实现PID程序控制。主要设备器件基本器件如下:IPC-610/RK-40610工控计算机1台PCL-812PG/ACL-8112PG数据采集卡一块PCLD-880R
5、EV.A1或ACLD-9188REV.B1端子板一块20pin扁平电缆一条或37pinD形电缆一条XYL-1压力传感器一台电压/压力转换器一台直流稳压输出电源一台各色导线若干为了实现比例放大电路,以下器件可选:电阻,电阻各一UA741运算放大器通过以上放大电路,根据深反馈原理,可以实现电压100倍放大,故而此时反馈电压范围可以扩展到0-2V。工控软件设计为了实现PID调节功能,在此给出其程序设计流程图以及部分核心函数的代码,但是在开始之前,需要针对PID系统的三大参数进行调试确定工作。线代PID参数确定一般采用两种方法,一是使用最为广泛的人工调试法,二是基于神经网络或是遗传
6、算法等高级智能算法进行参数自适应调整从而达到最优效果。此处采用人工调试法。经过调试后得合适的PID参数,即比例项,积分项,微分项参数。图2软件流程图核心代码:#include"math.h"#include"graphics.h"intBase=0x220;DA(intport,intdata)//数字转模拟并执行输出{shorthigh,low;low=data&0xff;high=(data>>8)&0x0f;outportb(Base+4+port*2,low);outportb(Base+5+port*2,high);}intAD(intport)//在指定端口获取
7、模拟量并转为数字信号{shorthigh,low,temp;intoutdata;outportb(Base+10,port);outportb(Base+9,2);//增益为(010)d,即Gain=4,放大4倍outportb(Base+11,1);outportb(Base+12,0xff);temp=inportb(Base+5);temp=temp&0x10;while(temp==0x10){temp=inportb(Base+5);temp=temp&0x10;}high=inportb(Base+5
此文档下载收益归作者所有