基于Proteus软件的控制系统设计

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

摘要:本文意在介绍一种基于Proteus软件的控制系统的计算机辅助设计方法,以缩短控制系统设计的过程时间和降低设计风险,可以使控制系统即早实现。本文以闭环直流电机转速控制为例,采用PID算法和主从单片结构的设计方案,以此阐述这一设计过程,从而验证该方法的操作可行性。

论文关键词:控制系统设计,PID控制器,辅助设计

控制系统设计一般过程是:先对系统进行分析,建立数学模型、然后根据模型设计算法,最后进行硬件设计,编写程序验证结果,最后系统调试。存在时间周期过程长、资金耗费大的缺点。而且往往不是一次成功的,特别是对于创新产品对象、过程控制量多、控制对象复杂、现场干扰严重的系统,必须对系统进行修改或者调试。对于软件部分重新调整、修改比较容易;但是对于硬件或者实际控制对象进行改造,无论是资金还是时间都是耗时巨大。为此设计者能够在系统建成前,进行整体系统调试仿真是非常必要的。而控制系统MATLAB 编程与微处理器编程的不一致性,仿真时也不能直观的反映出微处理器在系统中的作用,而Proteus软件避免这类缺点,该软件能够仿真硬件和调试软件,让设计者能够在系统设计前调试系统并能够发现问题避免反复修改硬件设备。

2 Proteus应用方案及特点

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,而且直接能够生成PCB 板。

在控制系统设计中,系统建模非常重要。而Proteus中含有丰富的控制对象模型和过程控制模型,可以满足一般控制系统设计需求。其中类型包括电机和电机驱动类模块;过程控制类:例如温度控制模型,温度计和温度自动调节器模型、温度传感器模型、热电偶模型,压力传感器模型;复杂系统:如拉普拉斯转换模型、一阶、二阶模型,非线性和线性模型等。用户可以创建自己的元件模型,ISIS 中支持层次化设计使用户能够创建虚拟的测试步骤来开发元件模型。任何模型的更改都能够在存入预编译网表前快速地评估出来。用户也可以使用VSM API在Windows DLLs 里用C++等编程语言实现模拟和数字模型,VSM API也可以用于实现复杂的动画器件。控制算法可由keil 51 编写,编译生成HEX文件,装载到单片机中完成系统代码部分。

3 基于Proteus的直流电机转速控制系统设计

3.1建立控制系统数学模型

对于控制系统设计,先建立控制系统数学模型。直流电动机具有良好的线性调速特性、效率高及优异的动态特性、在控制领域中是比较典型的对象。根据控制对象和该系统控制要求,采用比例、微分、积分PID控制器构成闭环控制系统。直流电机控制系统数学模型框图如图1所示。

直流电机控制系统图1

为直流电机控制转速设定输入电压,该输入电压与设定转速成正比相关。

为实际转速采样所对应的电压。

为PID控制器输出所对应的电压,并经过功率提升(PWM波放大),直接作为电动机励磁电压。

为实际转速采样和设定值的误差。

为电机转速,直流电动机模型是。

3.2硬件系统设计

在数学模型建立后,根据对其模型进行硬件设计。分析该理论模型,实际硬件应该包括:单片机模块、实际转速采样部分、显示部分、转速设定输入部分、直流电机驱动部分。

单片机模块主要完成:PID算法的实现、PWM波形的产生、实际转速采样、转速设定、转速显示输出。

考虑到单片机的资源有限,特别是在实现控制算法会产生延时,所以采用双单片机构成主从结构,把要实现的任务分配到不同单片机中。单片机之间采用串口通信。单片机U2主要负责完成:PID算法的实现,PWM波形的产生,直接控制电动机的转速,作为从机。单片机U1主要负责完成:实际转速采样,转速设定,转速显示输出,作为主机。由软件来实现控制的主从关系。

直流电机驱动部分由L298N 构成的PWM 功率放大器,L298N内含二个H 桥的高电压大电流双全桥式驱动器,接收标准TTL 逻辑电平信号,可驱动46V、2A 以下的电机,符合本设计要求。

转速采样部分:编码器将钩状扫描针的位移转换为电脉冲,通过单片机对采回的电脉冲进行分析处理,与设定转速值比较,利用差值得到PID控制的PWM波形输出信号,硬件系统如图2所示。

硬件设计图2

3.2系统软件设计

本控制系统软件由PID算法实现部分、PWM波形产生部分、显示部分、输入部分、串口通信部分组成。

单片机根据采样的实际转速和设定转速进行比较,得出的误差信号。再对误差进行PID计算,控制PWM波形的占空比(PWM即脉宽调制(Pulse-width modulation),电机转速与占空比成比例关系)为此由I/O口产生的可调脉宽就可以调节电机转速。单片机间采用串口通信,主要完成:启动电机信号传输、电机设定转速传输、单片机U1将电机转速的测量和设定值差传给单片机U2。

控制程序使用Keil C51软件开发,对应上面功能部分用相应的函数程序实现。主要包括函数PID_control(PID * PIDSTRUCT ,int backvalue)、PIDinit(),函数PWM_create(int x),函数LED_display( ),函数SEARIL_communicate( ),分别主要负责PID算法实现部分、PWM波形产生部分、显示部分、串口通信部分。其中核心部分为PID算法实现部分,这里采用增量控制算法,对模拟控制器进行离散化得到增量式算法其表达式:

式中kp为比例系数;T在数字系统中为采用时间,这里实际是两次误差信号的间隔时间;参数Ti 和Td 分别为积分时间参数和微分参数。PID_control(PID * PIDSTRUCT ,int backvalue)函数算法如下:

int PID_control(PID * PIDSTRUCT ,int backvalue)

{

int Error,pErr,dErr,dcontrol;

Error=PIDSTRUCT ->setvalue-backvalue; //偏差

pErr=Error-PIDSTRUCT ->sErr[0]; //比例项增量式偏差

dErr=Error-2*PIDSTRUCT ->sErr[0]+PIDSTRUCT ->sErr[1]; //微分项增量式偏差

dcontrol=PIDSTRUCT->Proportion*pErr+PIDSTRUCT->Derivative*dErr+ PIDSTRUCT ->Integral*Error; //控制量增量

PIDSTRUCT ->sErr[1]=PIDSTRUCT ->sErr[0];//偏差迭代

p->sErr[0]=Error;//偏差迭代

retu

rn dcontrol;//返回控制增量

}

U1单片机和U2单片机程序结构如下:

U1单片机程序图3 U2单片机程序图4

3.3参数调整与系统分析

程序设计和硬件设计图完成后运行结果如图2,显示为当前电机的转速。正如实际电机控制系统,这里只能反映系统与设定转速是否有静差,而系统的动态特性不能直观反映。要分析系统的动态特性如:超调量、响应时间等,需要采用实测描点法来处理。虽然这样也能满足设计要求,但是给系统分析和PID参数调整带来不便。这里将控制对象直接采用PROTEUS中的Laplace模型进行混合仿真,将PID算法控制量用D/A转换成模拟量输出。这样就可以进行验证算法、并进行PID参数调整、测量其动态特性。完成上述对象的转换后,利用仿真图标的“ANALOGUE ANALYSIS”工具,并设置仿真启止时间,加入对象输出节点,进行参数调整。对于本控制系统设计主要是对采样时间,PID参数进行设定和调整。

在程序中分别设定不同的采样时间和PID参数时所对应的输出如下。图5为采样时间

50ms,电机转速设定值为5.0单位值,PID参数中设定比例K=10,积分时间参数Ki=2,Kd=0。

相关文档
最新文档