第 20卷第 2期 系 统 仿 真 学 报© Vol. 20 No. 2
2008年 1月 Journal of System Simulation Jan., 2008
• 318 •
Proteus软件在自动控制系统仿真中的应用
陈朝元,鲁五一
(中南大学信息科学与工程学院,湖南 长沙 410075)
摘 要:基于 Proteus强大的微处理器仿真功能和丰富的元件仿真模型,提出了新的用于自动控制
系统的仿真
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。例程中使用常用的 AT89C52芯片作为微处理器,再加上外围电路设计了 PID控
制电路仿真原理图,用 C 语言编程后进行了详尽的系统仿真试验,可以直观地观测到系统仿真的
控制效果。这种基于 Proteus软件的仿真方法在自动控制系统的教学演示和实际设计等方面中具有
很大的辅助作用。
关键词:Proteus;自动控制系统;PID;仿真
中图分类号:TN46;TP391.9 文献标识码:A 文章编号:1004-731X (2008) 02-318-03
Application of Proteus in Simulation on Automatic Control System
CHEN Chao-yuan, LU Wu-yi
(The School of information science and engineering, Central South University, Changsha 410075, China)
Abstract: Based on the powerful function of simulation on the MCU and series of simulation models for devices in Protues,
a new way was provided to simulate the automatic control system. In the example, the schematics were figured out by using
one commonly-used chip named AT89C52 as MCU, together with some other devices. After programming with C language,
detailed tests were given on the simulation on the system, resulting in a direct and clear outcome. This way is very helpful to
demonstrate the automatic control system in classroom and practical design of circuit.
Key words: Proteus; automatic control system; PID; simulation
引 言1
在自动控制系统设计期间,系统仿真扮演着非常重要的
角色,通过对系统的仿真,可以大大提高设计效率。在常规
的自动控制系统仿真中,使用最多的仿真软件应当是
MATLAB,MATLAB仿真功能强大,可以应用于各个学科
和领域。但是我们在实际设计中,往往是应用微处理器作为
控制核心,编写相应的控制算法进行控制,编写程序使用的
大多都不是MATLAB语言,而是基于微处理器的象C语言之
类的编程语言。这就涉及到MATLAB编程与微处理器编程
的不一致性,仿真时也不能直观的反映出微处理器在系统中
的作用。Proteus软件是来自英国Labcenter electronics公司的
EDA工具软件,它除了有和其它EDA工具一样的原理图编
辑、PCB自动或人工布线及电路仿真的功能外,其革命性的
功能是,他的电路仿真是互动的,针对微处理器的应用,还
可以直接在基于原理图的虚拟原型上编程,并实现软件源码
级的实时调试。这样,利用Proteus软件,就可以进行微处理
器编程而实现各种控制算法的仿真,直观的观测到对被控制
对象的控制效果。
1 Proteus软件简介
EDA工具的应用非常广泛,按主要功能或主要应用场
收稿日期:2006-10-31 修回日期:2006-12-12
作者简介:陈朝元(1974-),男,湖南道县人,硕士生,研究方向为 EDA
技术,自动控制和系统工程;鲁五一(1957-),男,湖南长沙人,教授,
研究方向为嵌入式技术,自动控制和测量技术。
合,分为电路设计与仿真工具、PCB设计软件、IC设计软件、
PLD设计工具及其它EDA软件。
Proteus软件是来自英国Labcenter electronics公司的EDA
工具软件,具有其它EDA工具如PROTELL 99等软件的常规
功能:原理图编辑、PCB自动或人工布线及电路仿真的功能
外,此外它最大的特点是可以对众多MCU进行多种编程语
言源码级的仿真[1],包括PIC, 8051, AVR等类型微处理器,
有大量的与MCU接口的仿真模型和Laplace变换仿真模型,
可以直观的实现交互式仿真调试,如液晶显示器,键盘等。
利用Proteus中Laplace变换仿真模型,即可对自动控制系
统中的被控制对象进行仿真,再利用MCU仿真模型以及相
关的外部接口模型,即可通过对MCU编程而实现控制算法
的调试,最终实现整个自动控制系统的软硬件仿真和调试。
并且可以在此基础上直接进行电路PCB板的设计,大大提高
了系统设计的效率。
2 Proteus仿真设计
下面所设计的例程中电路、编程和调试都非常简单直
观,旨在能快速体会到 Proteus 软件在自动控制系统仿真中
的直观性和高效性。
2.1 Proteus仿真模块的介绍
Proteus软件的 ISIS工具是用于编辑电路原理图和电路
仿真,它除了包括大量常用的分立元件和集成块元件外,还
包括许多类型的微控制器及其外围接口器件的仿真元件,此
第 20卷第 2期 Vol. 20 No. 2
2008年 1月 陈朝元,等:Proteus软件在自动控制系统仿真中的应用 Jan., 2008
• 319 •
外还包含全面的 Laplace转换模块。
在这里的例程中主要使用到 MCS-51 系列的 AT89C52
芯片,AD和 DA转换芯片,逻辑门电路芯片,运算放大器
芯片,Laplace转换模块以及一些分立元件。
2.2 仿真结构框图
自动控制系统中最为常见的是 PID控制,本文就以数字
PID控制为例来探讨,其控制系统框图如图 1所示。
PID控制器 D/A 执行机构
A/D
被控对象
r(k)
y(k)
y(t)u(k) u(t)
-+
e(k)
图 1 数字 PID控制框图
在 Proteus仿真原理图中,r(k)设定值可在程序中给定,
PID控制算法由 AT89C52微处理器的程序实现,D/A转换器
选用 DAC0808,执行机构由运算放大器仿真(实际应用中
一般还需要功率放大),被控对象则由 Laplace转换模型中的
一阶系统仿真,A/D 转换器选用 ADC0808。此外为了直观
的象MATLAB/SIMULINK仿真那样分析阶跃响应,还增加
了“ANALOGUE ANALYSIS”仿真图形显示,可以将被控
对象的输出曲线显示出来,便于观测和分析。具体的用 ISIS
设计的仿真原理图如图 2所示。
CPU
A/D
D/A
对象
图形显示
图 2 ISIS软件编辑的仿真原理图
2.3 微控制器程序设计
此仿真系统的微控制器程序使用 Keil C51 工具编写和
编译[2],程序中主要包括定时器初始化函数 Init_Timer(),PID
初始化函数 PIDInit(),PID计算函数 PIDCalc(),定时中断处
理函数 timer()以及 AD转换函数 Read_AD()等。
定时器中断处理程序中先完成反馈信号采集和数字化,
再对误差进行 PID计算,再将输出的数字信号通过 DA转换
输出。这部分程序是整个程序设计的主要部分,而其中的核
心所在即是 PID输出计算的编程,下面对其原理和编程进行
详细说明。
这里使用常用的位置式 PID控制算法[3],对模拟 PID控
制器离散化后即可得到
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式[4]
0
( ) { ( ) ( ) [ ( ) ( 1)]}
k d
p
ji
T Tu k K e k e j e k e kT T=
= + + − −∑ 或
0
( ) ( ) ( ) [ ( ) ( 1)]
k
p i d
j
u k K e k K e j K e k e k
=
= + + − −∑
式中的 Kp为比例系数,T为采样周期,Ti为积分时间常数,
Td为微分时间常数,Ki =KpT/Ti,Kd =KpTd/T。e(k)为第 k次采
样时刻系统误差值。根据第二个公式可得到位置式 PID控制
算法的程序
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图如 3所示[5]。
开始
参数
转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应
初始化
读入采样值 y(k)
计算误差值e(k)=r(k)=y(k)
根据公式计算输出值u(k)
参数更新
返回
图 3 位置式 PID控制算法程序
流程图
破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word
下面列出 PID计算函数 PIDCalc()的源程序[6]:
//PID输出计算函数
int PIDCalc(struct PID *pp, int NextPoint)
{
int dError,Error;
Error=pp->SetPoint-NextPoint; // 偏差
pp->SumError+=Error; // 积分
dError=pp->LastError-pp->PrevError; // 当前微分
pp->PrevError=pp->LastError;
pp->LastError=Error;
return(pp->Proportion*Error/10 // 比例项,因为PID参数扩
大了 10倍,此处要缩小还原
+pp->Integral*pp->SumError/10 // 积分项,因为PID参数扩
大了 10倍,此处要缩小还原
+pp->Derivative*dError/10); // 微分项,因为PID参数扩
大了 10倍,此处要缩小还原
}
在仿真过程中,还可以根据实际要求,对 PID输出值进
行限幅处理。
2.4 元件属性设置
原理图中各个元件都有其具体的属性设置,大多按缺省
设置即可,这里影响仿真的设置主要是 CPU 属性设置和
Laplace模块属性设置。
在此仿真过程中,选择了在 CPU属性中直接指定 HEX
程序文件的仿真方法,而没有采用设置较复杂的 Proteus 与
Keil C51联调的模式,主要是为了让大家能尽快了解这种新
型的自动控制系统仿真方法。在原理图编辑中,用鼠标右键
单击 AT89C52 将其选中,再在其上面用鼠标左键单击,就
弹出“Edit Component”编辑窗口,将“Program File”属性
第 20卷第 2期 Vol. 20 No. 2
2008年1月 系 统 仿 真 学 报 Jan., 2008
• 320 •
中填入编译后生成的 PID.HEX文件名即可。
原理图中使用的是常用的一阶低通 Laplace模型,可以通
过修改其静态放大系数和时间常数来观测不同的仿真结果。
3 仿真与分析
完成上面仿真原理图和程序设计后,用鼠标单击
“ANALOGUE ANALYSIS”仿真图形上面的标题栏,弹出
放大的仿真图形窗口,通过单击窗口左下角的 图标,在
弹出窗口设定“Stop time”为合适的停止时间(此例中设定
为 5秒),再通过单击窗口左下角的 图标,在弹出窗口中
的“Probe P1:”下拉菜单选择 Y_OUT,最后通过单击窗口
左下角的 图标,软件将进行仿真运算并显示输出曲线。
通过修改程序中的 PID参数,即可观测系统的阶跃响应曲线
图。下面是调整 PID参数而测得的不同的阶跃响应曲线图。
当程序中控制设定值为 3.0V,采样周期为 100mS,PID
参数设定为 Kp =2.0,Ki =0,Kd =0时的阶跃响应曲线图如图
4所示。
2.00
1.00
0.50
0.00
0.00 1.00 2.00 3.00 4.00 5.00
t/s
响应曲线 1.50
Y_
O
U
T/
V
图 4 仿真输出图之一
当程序中控制设定值为 3.0V,采样周期为 100mS,PID
参数设定为 Kp=2.0,Ki =0.2,Kd =0时的阶跃响应曲线图如
图 5所示。
图 4只有比例作用,可见系统无法消除控制误差,图 5
加入了积分作用,很好的消除了控制误差,我们还可以加入
微分作用,可以观看到改进效果不是很明显,表明对于此类
对象一般仅需 PI控制即可达到较好的控制效果。
在此例程基础上,可以更换一阶 Laplace模型为二阶或
高阶模型,通过调节 Kp、Ki和 Kd三个参数,观测仿真结果。
此外还可以通过修改程序来研究象模糊PID等先进PID
算法,可以更进一步的体会到 Proteus 软件在自动控制系统
仿真中的优势。
3.50
1.50
0.50
0.00
0.00 1.00 2.00 3.00 4.00 5.00
t/s
响应曲线
3.00
Y_
O
U
T/
V
2.50
2.00
1.00
图 5 仿真输出图之二
4 结论
Proteus 软件强大的微处理器仿真功能和丰富的元件仿
真模型为自动控制系统提供了新的仿真平台,不再是传统方
框图式的仿真,而是直接与微处理器编程及控制电路仿真结
合起来,既可以完成控制电路的软硬件仿真,又完成了系统
的控制效果仿真。使用这种仿真方法可以大大提高设计各种
数字控制器的效率,对于自动控制系统的教学演示和实际设
计都具有很大的辅助作用。
参考文献:
[1] 倪升跃. Proteus——一种集单片机模拟和SPICE分析于一身的软件
[J]. 电子世界, 2004, (12): 38-39.
[2] 黄夙绚. Proteus与Ultra Edit、Keil的联合使用 [J]. 无线电, 2005, (7):
36-37.
[3] 班立权,鲁五一. PID参数自整定算法及仿真 [J]. 计算技术与自动
化, 2005, 24(3): 12-14.
[4] 刘金琨. 先进PID控制MATLAB仿真 [M]. 第二版. 北京:电子工
业出版社,2004:10-22.
[5] 黄文梅,杨勇,熊桂林,等. 系统仿真分析与设计――MATLAB
语言工程应用 [M]. 长沙:国防科技大学出版社, 2001:226-228.
[6] 马忠梅,马岩,张凯,等. 单片机的C语言应用程序设计 [M]. 北
京: 北京航空航天大学出版社,1997:161-164.
(上接第303页)
(3) 本文假设产品故障发生服从指数分布,其余风险因
素的发生服从均匀分布,而工程实际情况往往更为复杂,因
此在针对模型的数据分析和处理方法上还需作进一步研究。
参考文献:
[1] GJB4355-2002. 备件供应规划要求 [S]. 中国人民解放军总装备部
批准,2003.
[2] 王其藩. 系统动力学 [M]. 北京: 清华大学出版社, 1994.
[3] Janne Huiskonen. Maintenance Spare Parts Logistics: Special
Characteristics and Strategic Choices [J]. Int. J. Production Economics
(S0925-5273), 2001, 71(1): 125-133.
[4] Anis Chelbi, Daoud Ait-Kadi. Spare provisioning strategy for
preventively replaced systems subjected to random failure [J]. Int. J.
Production Economics (S0925-5273), 2001, 74: 183-189.
[5] A A Ghobbar, C H Friend. Sources of intermittent demand for aircraft
spare parts within airline operations [J]. Journal of Air Transport
Management (S0969-6997), 2002, 8; 221-231.
[6] Dekker Rommert, Moritz Fleischmann, Karl Inderfurth, et al. Reverse
Logistics: Quantitative Models for Closed-Loop Supply Chains [M].
Berlin: Springer, 2004.