基于遗传算法的PID参数优化_第1页
基于遗传算法的PID参数优化_第2页
基于遗传算法的PID参数优化_第3页
基于遗传算法的PID参数优化_第4页
基于遗传算法的PID参数优化_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

辽宁科技大学本科生毕业设计(论文)

论文题目:基于遗传算法的PID参数优化

学生姓名:曹哲_____

学院:电子与信息工程学院_

班级:自动化2011-6

学号:120113104056__

指导教师:吴丽娟_____

基于遗传算法的PID参数优化

摘要

PID控制一直是工业生产过程中应用最为广泛而且最为成熟的一种控制,它以其算法简单、可靠性高、鲁棒性好等优点应用于工业控制领域。PID控制器有三个参数:比例、积分和微分系数,当PID结构确定的情况下,这三个参数将会决定控制器的品质,参数的调节和优化至关重要。遗传算法(GeneticAlgorithm,GA)源于生物系统的研究,而后由Holland教授和学生创造出适合于复杂系统优化的自适应概率化技术,本文主要研究遗传算法的基本概念和原理,利用遗传算法对控制系统进行PID参数优化,遗传算法在优化的过程中,与常规方法相比更加便捷和迅速,整定的精度相对较高。最后通过MATLAB语言,对该系统进行了仿真,实验结果证明了遗传算法的动态特性和控制效果,证明其有效性与可靠性。

关键词:遗传算法,PID控制器,参数优化,仿真

PIDParametersOptimizationBasedonGeneticAlgorithm

Abstract

PIDcontrolhasbeenthemostextensiveandthemostmatureofacontrolintheprocessofapplicationontheindustrialproduction.Ithasawideapplicationinthefieldofindustrialcontrolbecauseofitssimplealgorithmand,reliabilityandrobustness.PIDcontrollerhasthreeparameters:proportional,integralanddifferentialcoefficient,whentodeterminethestructureofthePID,thethreeparameterswilldeterminethecontroller'squality,andtheparameterregulationandoptimizationwillbeveryimportant.Geneticalgorithm(GA)sourcesinthestudyofbiologicalsystems,andthenprofessorsHollandandhisstudentcreatedatechnologywhichissuitableforthecomplexsystemoptimizationofadaptiveprobability.ThebasicconceptandprincipleofthemainpurposeofthispaperistostudythegeneticalgorithmandusingthegeneticalgorithmtooptimizethePIDparametersofthecontrolsystem.Thegeneticalgorithmcomparedtotheconventionalmethodsismoreconvenientandquicklyintheoptimizationprocess,alsoit’stuningaccuracyisrelativelyhigh.Atlast,thesystemissimulatedbyMATLAB,andtheresultsprovethedynamiccharacteristicandcontroleffectofthegeneticalgorithm,andproveitsvalidityandreliability.

Keywords:Geneticalgorithm;PIDcontroller;Parameteroptimization;Simulation

目录

1绪论

1

1.1选题意义与研究价值

1

1.1.1PID控制器

1

1.1.2PID控制器参数优化分类

3

1.1.3遗传算法的简介

7

1.2国内外研究现状

7

1.3本文的主要研究内容

8

2遗传算法

9

2.1遗传算法概要

9

2.2基本遗传算法的实现技术

10

2.2.1算法流程

10

2.2.2编码方法

11

2.2.3适应度函数

11

2.2.4选择、交叉、变异算子

11

2.3遗传算法与其他算法比较

12

2.4遗传算法优点

13

3基于遗传算法的PID控制器参数优化

15

3.1传统遗传算法的PID整定

15

3.2算法步骤

16

3.3系统仿真—MATLAB语言

16

3.3.1遗传算法的参数设置

16

3.3.2MATLAB遗传算法操作

17

4基于遗传算法的PID参数优化的应用

19

4.1柴油机调速系统模型概述

19

4.1.1测速环节

19

4.1.2柴油机

19

4.1.3柴油机控制系统模型

19

4.1.4数学模型的建立

20

4.2柴油机调速系统的PID参数优化设计与仿真

20

4.3基于遗传算法优化柴油机调速系统PID参数

22

结论

25

致谢

26

参考文献

27

附录(程序清单) 28

1绪论

1.1选题意义与研究价值

20世纪30年代以来,自动化生产飞速发展,取得了惊人的成就,过程控制是工业自动化中的一个重要分支。生产对过程控制的要求为安全性、稳定性以及经济性,在很多情况下,PID控制器就可以实现其控制任务,而且,它也以自身结构简单、容易实现、鲁棒性强等优点,在各个工业生产控制中占据着主导地位。PID控制器的设计和应用,其核心问题就是参数的整定与优化,合适的控制器参数会使得生产更为高效与安全,在方案设计合理的基础上,参数的整定将会影响到控制器的质量[[]王小平.基于遗传算法的PID参数优化设计[J].白动化与仪表,1998,13(3):28-30.

]。

随着现代控制理论的建立与完善,过程控制的方法和思路也在不断创新,与此同时,为了适应日益提高的生产工艺,过程控制的要求也越来越高。传统的PID控制由于受到多方面的约束,在当今的生产控制中收到很多限制,因此提高PID控制算法能力或者根据现代控制理论来设计PID控制算法就显得尤为重要。尽管随着模糊控制、智能控制理论和神经网络的发展,形成了诸多智能PID控制策略,但这些控制策略要求参数优化的搜索空间可微,在应用中受到了很多限制,针对这些,人们一直在寻求更为简单、有效的PID参数优化技术[[]夏红,赏星耀,宋建成.PID参数自整定方法综述[J].浙江科技学院学报,2003,15(4).

]。

遗传算法是模仿自然生物进化机制而发展起来的随机全局搜索和优化方法,借鉴达尔文的进化论和孟德尔的遗传学说,它的本质是一种高效、全局、并行的搜索方法,它与传统的算法不同,不依赖于梯度信息,通过模拟自然进化来寻找最优解[[]王小平,曹立明,遗传算法——理论、应用与软件实现[M],西安:西安交通大学

出版社,2002,2-3.

]。人们对遗传算法进行大量研究,其应用已经逐渐渗透到工业生产的各个领域,而遗传算法自身的优势,在PID控制器的参数优化中,也发挥着重要的作用。

1.1.1PID控制器

模拟控制的系统中,控制器常用PID控制,其控制系统原理框图如图1.1所示。

图1.1PID控制原理图

PID控制为线性控制的方法,控制器根据给定值与实际输出值构成的控制偏差,即:

(1-1)

通过对偏差进行比例、积分与微分运算,将结果相加,就得到了PID控制器的控制输出的表达式:

(1-2)

式中为比例系数;指积分时间常数;代表微分时间常数。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的[[]黄友锐,曲立国.PID控制器参数整定与实现[M].北京:

科学出版社

,2010,5-7.

]。

1.比例(P)控制

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。

2.积分(I)控制

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

3.微分(D)控制

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。

近些年来,智能控制理论的发展与应用越来越广泛与深入,如何设计PID控制器的算法,如何使PID的控制算法最优化,已经成为了人们研究的热点问题。由上图我们看到,在PID控制器中,比例系数()、积分时间常数()以及微分时间常数()的选择直接关系到了系统性能,这三个值的选择是PID控制器设计的关键问题。

1.1.2PID控制器参数优化分类

PID控制器在工业过程中广泛应用,但是传统的PID控制器稳定性差,适应能力弱等不足,很难满足生产过程中控制的多变性与稳定性。PID参数优化将变得尤为重要,其优化方法主要有:常规Z-N法、基于模糊控制的PID参数整定、衰减曲线法等。

1.常规Z-N整定方法

常规Z-N整定方法是由Ziegler和Nichols在1942年提出的[[]Ziegler,Nichorls.Optimumsettingforautomaticcontroller[J].

ASMETransactions,1942(11):759-768.

],该方法基于受控过程的开环动态响应中一些特征参数而进行的PID参数整定,经验公式基于带有延迟的一阶惯性模型而提出来的,对象模型如下:

(1-3)

其中:为放大系数,为惯性时间常数,τ为延迟时间。其中、、τ可以由图1.2求出来,同时也可以用已知频率求出相应数据,按表1.1求取控制器参数。

图1.2作图法确定参数

表1.1Ziegler-Nichols参数整定算法

控制器

类型

根据模型设定

根据频率响应设定

P

PI

PID

2.基于模糊控制的PID参数整定

基于模糊控制的PID参数整定就是将模糊控制理论应用到PID三个参数的整定中,通过将模糊理论与PID结合起来,进而构成模糊PID控制器。

模糊控制就是以模糊集理论、模糊语言变量和逻辑推理为基础的一种智能控制,就是在行为上模仿人的模糊推理和决策的一种智能控制方法。其基本原理框图如图2.3所示。

图1.3模糊控制的基本原理框图

模糊自适应PID控制就是运用模糊数学基本原理与方法,把规则的条件、操作用模糊集来表示,同时将这些模糊控制规则和相关信息存入计算机知识库中作为知识,计算机根据系统的响应情况,通过模糊推理,进而实现对PID参数的调整,进而去得到最佳参数,该控制器的结构如图1.4所示。

图1.4模糊自适应PID控制器结构

其中:表示系统的输入,指系统的输出,是系统输入与输出的差,

QUOTE

误差变化率。模糊自适应参数整定就是研究PID三个参数与

QUOTE

QUOTE

之间关系,该系统在运行的过程中不断检测

QUOTE

QUOTE

,PID的三个参数将会被修改,以满足不同

QUOTE

QUOTE

对控制参数的不同要求,进而使被控对象性能发挥到极致。

3.临界比例度法

临界比例度法是现在应用较为广泛的一种控制器参数整定法,其实质是首先让控制器在纯比例作用下,通过实验,寻找到等幅振荡的过渡的过程,记录该情况下的比例度以及等幅振荡周期,再有简单计算得到

QUOTE

QUOTE

,步骤如下:

1.

QUOTE

=,

QUOTE

=0,选择一个较大的值,当稳定时将控制系统进行自动控制。

2.突然增大设定值,观察曲线的变化情况,此时应该为一个衰减曲线的过程,减小的值,当出现等幅振荡时,记下此时的比例度和振荡曲线的周期。按表1.2计算控制器的参数。

表1.2临界比例度法参数计算表

控制参数

控制作用

QUOTE

P

2

-

-

PI

2.2

0.85

-

PID

1.7

0.5

0.13

4.稳定边界法

稳定边界法是一种针对于闭环回路的调节过程,具体操作是先让控制器在纯比例的作用下,用实际仿真来进行调试,寻找出等幅振荡的过程曲线,然后记下此时的以及等幅振荡周期,而后经过简单的计算求出PID的相关参数值。

表1.3稳定边界法PID整定公式

调节器参数

控制规律

P

0.5

PI

0.455

0.85

PID

0.6

0.50

0.125

1.1.3遗传算法的简介

遗传算法是一种借鉴生物界中的自然选择和自然遗传机制的一种随机搜素算法(RandomSearchingAlgorithms),遗传算法对梯度信息没有依赖,最优解是经过模拟的自然进化而得到的,这也是它不同于传统算法的重要特征之一。遗传算法的这些特点决定了将其应用在PID参数上的的优化上是可行的,因为它的开放性,并且容易与实际问题结合,便于运算,这已成功运用到很多实际优化问题。

1.2国内外研究现状

PID控制的参数整定方法的研究历史悠久,早在1942年,Ziegler和Nichols就针对一阶惯性加纯延迟的对象提出了PID控制器参数整定的Z-N法,曲线拟合的方法将阶跃相应数据拟合为近似的一阶惯性加纯滞后环节的模型,从而来解决常规的控制对象。这种方法和理论很快就应用在了实际的生产中。同一年,Ziegler提出了参数整定的临界振荡法,随着后来理论基础的发展,越来越多的参数整定方法开始出现。1993年,陈福祥等提出了增益优化的PID参数整定方法,根据测量得到的阶跃响应的瞬时值去计算PID控制器的参数值。1995年,UdoKuhn提出基于总和时间常数的整定方法,该方法对阶跃响应曲线为S型的自衡对象适用。

而针对于遗传算法的PID控制器参数优化,国内外学者的理论研究与实际应用也很广泛,基于遗传算法的PID控制器参数优化整定方法要优于传统的整定方法的观点在很多文献中已经证实。但是,遗传算法的研究并非顺风顺水,在它的研究过程中也在一定的程度上发现了几个问题:第一,遗传算法受适应度选择影响,有时难以达到全局最优化,因为此时的遗传算法不一定会收敛于局部最优。第二,在动态数据上求系统最优解的问题上,遗传算法有其一定的局限性。近些年来,我国在遗传算法的理论和应用方面成果巨大,遗传算法已经被成功应用于各种不同领域,解决了实际应用中的很多问题。

1.3本文的主要研究内容

本文主要研究基于遗传算法的PID参数优化,。研究内容主要为:

第一章:绪论。介绍该课题的研究背景与价值,对PID和遗传算法的概念进行了简单的介绍,分析了国内外对于该课题的研究情况。

第二章:遗传算法概述。对遗传算法的概念和特点进行介绍与研究,通过框图研究遗传算法的基本原理,同时将遗传算法与其他传统算法进行了比较和分析。

第三章:基于遗传算法的PID参数优化。研究基于遗传算法的PID整定,对遗传算法中的一些常用概念进行介绍,同时用,MATLAB语言对遗传算法进行简单的编程介绍。

第四章:柴油机调速系统的PID参数优化设计与仿真研究。首先建立柴油机调速系统的模型,将基于遗传算法的PID控制应用到该系统中,并优化参数,最后通过MATLAB来进行仿真,证明遗传算法相对传统算法的优势。

2遗传算法

2.1遗传算法概要

遗传算法的基本概念如下:

1.基因(gene):DNA或者RNA中占一定位置的基本遗传单位,也称遗传因子。在生物界中,生物的基因数量根据物种不同而多少不同,一个基因或者多个基因决定了氨基酸的组成比例及顺序。在遗传算法中,一个基因常有一个二进制位或一个整数或字符等来代表,人们利用基因的特性,用计算机来模仿对基因的操作过程。基因为遗传算法中的最小单位。

2.染色体((Chromosom):在生物界的生物细胞中,它是遗传物质的主要载体,由基因组成。染色体上包含着生物体的全部遗传信息,这也说明了染色体对生物来说相当重要。遗传算法中自然也少不了染色体,人们对染色体进行编码来模仿生物细胞中的染色体。实际应用中,可能解需要用合适的码子进行编码,其中用到最多的就是二进制,因为二进制编码相对简单,同时和生物体的染色体组成类似。由1和0组成的二进制编码串就作为染色体,其长度恒定不变,这些单个的0和1的字符即为基因。

3.种群(Population):染色体有特征的个体集合即为种群,个体的数量为群体的大小。遗传算法中,一个群包含实际问题在某一代解的空间,也是可能解的集合,在遗传算法中,种群为其提供了搜索解的遗传进化搜索空间。

4.选择(selection):自然界中的生物进化是由环境来对个体进行选择的,也就是达尔文的“适者生存”法则。遗传算法中,选择的指标为适应度,将适应度搞的个体选择,为意义不遗传做准备,适应度的大小决定着被选择的概率大小。计算适应度的方法主要有按比例的适应度计算与排序适应度计算,而后的选择方法主要有随机遍历抽样、局部选择、锦标赛选择等,选择不会对染色体和基因造成影响[[]刘禾,段泉圣.基于遗传算法的PID参数整定和优化[J].华北电力大学报,2001,7(3):31-33.

]。

5.交叉(crossover):交叉就是指生物进化过程中的基因重组,在遗传算法中,交叉是非常重要的操作,也是基本操作之一,主要算法有实值重组和二进制交叉。基因重组是结合父代交配种群中的信息而产生的新个体。

6.变异(mutation):生物体的性状不是恒定的,它会随着环境的变化而逐渐发生细微的改变。遗传算法中也有模仿该过程的方法,也就是变异。变异使得遗传算法拥有一定随机搜索能力,在某种程度上完善了遗传算法的性能,变异算法主要有实值变异和二进制变异。

2.2基本遗传算法的实现技术

2.2.1算法流程

基本遗传算法的算法流程图如图2.1所示。

图2.1基本遗传算法的算法流程图

2.2.2编码方法

把一个问题的可行解从空间转换到遗传算法能处理的搜索空间的转换方法称之为编码。编码是遗传算法应用时所要解决的首要问题,同时是遗传算法的关键步骤。把问题的各类参数用编码构成子串,把子串再并接成染色体串。常用的编码方法为二进制编码。

2.2.3适应度函数

适应度函数反映了个体对外界环境的适应能力的强弱情况,目标函数与之相关。遗传算法中适应度这个概念用来衡量群体中各个个体在优化计算中能够达到或者接近于找到最优解的优良程度,适应度的高低与遗传到下一代的概率成正比,度量个体适应度的函数就称为适应度函数(FitnessFunction)。

2.2.4选择、交叉、变异算子

遗传算法用选择算子对群体中的个体进行优胜劣汰的操作。常用的选择算子是基本遗传算法中的比例选择算子,比例选择算子的基本思想是:个体被选中的概率与它自身适应度大小成正比。假设群体的大小为,个体的适应度为,那么个体被选中的概率如公式3.1

(2-1)

上式可以看出,选择算子的作用就是将适应能力强更接近于最优的解生存下来,这样,就产生了对环境适应能力较强的后代。就实际问题来讲,也就是选择出和最优解最为接近的中间解。

交叉算子是对两个互相配对染色体按照一定的方式进行部分基因的相互交换,进而产生新的个体。它是遗传算法区别于其他算法的主要体现与特征,在遗传算法中起着尤为关键的作用。单点交叉算子,即在群体中随机选取两个个体,在个体编码串中只随机设一个交叉点,在该点以一定的概率Pc相互交换两个配对个体的部分染色体。一般Pc的经验取值范围为0.40--0.99[[]杨振强,王常虹,庄显义.自适应复制、交叉和突变的遗传算法[J],电子科学学刊,2000,22(1):112-117.

]。

变异算子在遗传算法中指,对要执行变异的位求反,也就是把1变0,把0变1。变异的概率pm与生物变异极小的情况一致,变异运算是指将个体染色体编码串中某些基因座上的基因值用该基因座的其它等位基因来替换,形成一个新的个体。一般Pm的经验取值范围是0.0001--0.1。变异能够让遗传算法具有局部随机搜索功能,同时可维持群体的多样性,避免出现初期收敛问题,总的说变异增加了全局优化的可能性。

2.3遗传算法与其他算法比较

遗传算法与传统算法对比示意图如图2.2所示。

传统算法遗传算法

图2.2传统算法与遗传算法对比

1.遗传算法与启发算法比较

启发式算法的方法是寻求一种能够产生可行解的启发式规则,从而去寻找到问题的最优解或者近似最优解,这种方法效率较高,但是它针对的问题必须找到其特有的一种启发式规则,同时这种启发式规则一般没有通性,不适用于其他问题。而遗传算法是不采用确定性规则,它主要强调的是利用概率转换规则来引导搜索过程。

2.遗传算法与爬山法的比较

爬山法包含直接法、梯度法以及Hessian法。爬山法首先会在最优解可能存在的地方选一个初始点,通过对目标函数特性的分析,再从初始点转移到一个新的点,周而复始,重复进行该过程。爬山搜索的过程是确定的,它通过一系列点的产生收敛到最优解。相比之下,遗传算法的搜索过程是随机的,它产生的是一系列的随机种群序列。二者的主要差别表现在如下两个方面:

(1)爬山法的初始点只有一个,取决于决策者,遗传算法有多个初始点,且都是随机产生的。

(2)由目标函数特性可知,爬山法由上一个点产生一个新的点,遗传算法通过遗传操作进行,在当前种群中经交叉、变异与选择产生下一代,针对同一优化问题,遗传算法使用的机时比爬山法要多,不过遗传算法可以处理一些更加复杂的优化问题。

3.遗传算法与盲目随机法比较

盲目随机法搜索只有在解在搜索空间中形成紧致分布时才有效,不过遗传算法作为导向随机搜索方法,能够对被编码参数空间进行高效搜索。两者的主要区别体现在如下四点:

(1)遗传算法搜索种群中的点不是单点,而是并行的。

(2)遗传算法不需要辅助的信息和知识,只需要影响搜索的方向与目标函数以及相对应的适应度。

(3)遗传算法的变换规则是概率变换规则。

(4)遗传算法使用编码参数集。

4.遗传算法与穷举法比较

穷举法是对解空间内所有可行解进行搜索,通常穷举法并不是完全穷举,是选择地尝试,像动态规划、限界剪枝法等。穷举法方法简单易行,但求解效率过低。相比之下,遗传算法搜索能力和鲁棒性较高。

2.4遗传算法优点

遗传算法具有如下的优点:

1.对可行解的表示具有广泛性,它的处理对象不是参数本身,是那些通过参数进行编码后而得到的基因个体,这样,遗传算法就可以直接对结构对象进行操作。这一结构的特点,让遗传算法的应用领域更为广泛。

(1)对连接矩阵的操作,神经网络和自动机机构、参数的优化可通过遗传算法实现。

(2)对树结构的操作,遗传算法可以得到最佳决策树。

(3)对任务序列的操作,任务的规划和自动构造顺序控制系统可以由遗传算法实现。

2.群体搜索特性。遗传算法在搜索过程中是多点搜索,它可以同时对多个解进行评估,这一特点使遗传算法具有较好的全局搜索能力,同时自身也更容易并行。

3.不需要辅助信息。遗传算法的适应度函数不受连续可微的影响,定义域也是可以任意设定的,对适应度函数的唯一一点要求就是编码与可行解空间需要对应,不能存在死码。限制条件缩小,遗传算法的应用范围相对就会扩大。

4.遗传算法具有并行性以及自身具有并行计算的能力。

5.遗传算法的搜索不是采用确定性规则来进行的,它的搜索方向采用概率的变迁规则。概率仅作为一种工具来引导其朝着更优化的解的区域进行靠近,看起来是盲目的,但实际上它的搜索方向是明确的,具有内在的并行搜索机制[[]杨建新,户秀琼,杜永贵.遗传算法在PID自适应控制中的应用[J].太原理工大学学报,2006,37(1):108-110.

]。

6.遗传算法具有可扩展性,它能够较容易的与其他技术进行混合使用。

3基于遗传算法的PID控制器参数优化

3.1传统遗传算法的PID整定

1.问题描述

对已给定的控制对象,寻找一组PID控制器参数、、使被控系统满足某一指标或多个指标,指标可以是时域、频域、误差积分以及它们的组合,计算J的函数为目标函数,适用度函数由目标函数转换得到。

2.算法流程图框图如图3.1所示。

图3.1基于传统遗传算法的PID控制器参数优化算法流程

3.2算法步骤

1.首先确定个体编码方式;

2.随机生成初始种群(种群中个体的数目由设计者根据实际情况而定);

3.计算个体适应度值,判断是否满足终止条件,符合输出最优值,否则转下一步;

4.根据适应度值进行选择,生成再生个体;

5.按照意选定的交叉与变异方法,生成新的一代的种群,返回到第三步,继续判定。

基于遗传算法的PID控制系统框图如4.2所示。

图3.2基于遗传算法参数优化PID控制系统框图

3.3系统仿真—MATLAB语言

MATLAB为一种开放式软件,经一定程序可以将应用程序集加入到MATLAB工具的行列。MATLAB作为一种高性能数值计算能力的计算机语言,拥有数值分析、矩阵计算、图视能力、可视化建模仿真和实时控制能力,在多学科、广领域得以应用[[]刘金琨.先进PID控制及MATLAB仿真[M],电子工业出版社,2003,13-21.

]。

3.3.1遗传算法的参数设置

遗传算法的运行首先要对4个基本参数进行预设,即M,T,Pc,Pm。

M指群体的大小,在算法中一般取值为20-100;

T代表遗传算法的进化代数,一般取值为100-500;

Pc为交叉概率,一般取0.4-0.99;

Pm为变异概率,一般为0.0001-0.1。

3.3.2MATLAB遗传算法操作

MATLAB实现遗传算法,最为重要的是进行如下三个操作:复制、交叉、变异。

(1)复制

2.交叉

假设交叉的概率为0.9,程序如下:

Pc=0.90;%交叉概率

fori=1:2:(Size-1)

temp=rand;

ifPc>temp

alfa=rand;

TempE(i,:)=alfa*Kpid(i+1,:)+(1-alfa)*Kpid(i,:);

TempE(i+1,:)=alfa*Kpid(i,:)+(1-alfa)*Kpid(i+1,:);

end

end

TempE(Size,:)=BestS;

Kpid=TempE;

3.变异

4基于遗传算法的PID参数优化的应用

本章将研究基于遗传算法的PID控制在柴油机调速系统中的应用,对该调速系统体系进行简单的介绍,通过MATLAB仿真分析该控制器在系统中的作用,同时验证其实用、可行性。

4.1柴油机调速系统模型概述

4.1.1测速环节

该系统的测速环节采用的是磁电式传感器来测量转速,将频率转换为与之相对应的且成正比的脉冲信号,这种方法比较简单,而且相对更加准确与可靠[[]戴文进,张景明.电机设计[M].北京:清华大学出版社,2010:53-160.

]。

4.1.2柴油机

柴油机就是指以柴油作为燃料的一种内燃机,它属于压缩点火式的发动机,又常以它的发明者迪塞尔来命名,即迪塞尔引擎。

柴油机在工作的时候,吸入其气缸内的空气,由于活塞运动,受到的压缩程度很高,温度高达500-700℃,接着将燃油以雾状的形态喷到空气中,它会与高温的空气混合,形成可燃的混合气,然后自动燃烧。因燃烧产生的能量作用在活塞顶面,通过连杆和曲轴将该能量转换成旋转的动能[[]李铁军.柴油机电控技术实用教程.第2版[M],北京:机械工业出版社,2013,34-37.

]。

4.1.3柴油机控制系统模型

柴油机转速控制系统如图4.1所示。柴油机模型简化之后,可以近似地看作为一个一阶惯性系统,配合PID控制器,组成了完整的柴油机调速系统模型。

图4.1柴油机转速控制系统框图

4.1.4数学模型的建立

由达朗贝尔原理,得出柴油机的运动方程如下:

其中:表示柴油机的转矩,表示阻力矩,是柴油机转动惯量,为曲轴的角速度。带入相关的数据,进行变化与简化得到传递函数为一个一阶纯滞后模型[[]许晓峰.电机及拖动[M].北京:高等教育出版社,2007,47-62

]:

4.2柴油机调速系统的PID参数优化设计与仿真

通过上一节的分析,用传统的方法在Matlab上用Simulink进行仿真,对柴油机的转速系统进行分析,整个控制系统如图4.2所示。

图4.2柴油机转速控制系统

先设定=10,=inf,=0,再用二分法,改变值,最后使仿真曲线等幅震荡,如图4.2所示。

图4.2等幅振荡

由波形图得出=2.09,=240

最终由稳定边界法得出:

稳定边界法PID整定公式时间单位(s)

调节器参数

控制规律

P

1.045

PI

0.951

204

PID

1.254

120

30

Simulink仿真后得到如下响应曲线。

图4.3基于稳定边界法输出的响应曲线

4.3基于遗传算法优化柴油机调速系统PID参数

PID控制在当今的工业生产中应用广泛,因此PID控制参数的优化也至关重要,通过对参数的优化来实现对整个控制系统的稳定、高效运行。我们已经了解到,对于PID参数的优化方法有很多,主要有经验试凑法、衰减曲线法、临界比例度法等,这些方法都有自身的优势,但同样也都存在着众多的不足与缺陷。我们也了解到遗传算法相对与其他方法的优势和稳定之处,它不需要去知道任何初始信息就可以去寻求全面的最优解。因此,我们选用遗传算法来对PID控制器进行参数的寻优。具体步骤如下:

1、编码:采用二进制编码方法

2、适应度函数的选择:该函数是体现出个体对外界环境适应能力的强弱,由选取的目标函数决定[[]LingSH,LamHK,LeungFHF,etal.ImprovedGeneticAlgorithmforEconomicLoadDispatchwithValve-PointLoadings[J].IEEE,2003(3):442-447.

]。本文采用的模型为绝对误差积分:

J=

定义的适应度函数为:

f==

3、设计遗传算子:根据不同的运算,采用不同的算子。选择运算采用比例选择算子,变异采用高位变异算子,交叉采用双点交叉算子。

4、遗传算法控制参数的选取:像群体的大小、遗传操作的概率、最大迭代次数等,以及随之产生的初始群体。

5、遗传算法搜索过程:采用随机采样法,对个体、交叉变异后产生的新个体以及再计算新个体的目标函数值进行选择。

6、终止循环条件:确定个体评价方法,若满足收敛条件,则算法结束。

我们在MATLAB编程之前,首先要设定选择算子、交叉算子、变异算子。根据算子选择的原则,本文的MATLAB仿真时选择算子为高位选择,交叉算子为中间重组双点交叉,变异算子选为高位变异。

本文实验中,我们选取取样时间为20s,输入的指令为阶跃信号,最优指标表示为:,其中指系统的误差,代表控制器的输出,为上升时间,、、为权值。我们设定样本数为30,Pc为0.90,Pm为0.001,参数[0,20],与的取值范围为[0,1],采用实数编码方式,经过100代优化,获得优化参数=1.4245,=0.9915,=0.0190,性能指标J=191.6907。J在整定过程的变化如图4.4所示。

二进制遗传算法优化PID阶跃响应图4.5如所示。

图4.5二进制遗传算法优化PID阶跃响应

对比图4.3与4.5可知,基于遗传算法整定PID的阶跃响应曲线能保证系统的稳定,且遗传算法的调节时间400是远小于一般算法的调节时间1600s,遗传算法曲线能较快速地到达稳态,遗传算法得出曲线超调量为也略小于一般方法的超调量,可看出遗传算法整定的参数更加精确收敛,这些都反映了采用遗传算法可以取得较好的控制效果,提高了PID控制器在调节控制参数的能力。

结论

PID控制器结构简单、鲁棒性较强等优点使其广泛应用到生活的中的各个领域,但是PID参数的整定却不够完善,传统的整定方法误差较大,整定出来的结果超调量等都较大,但是遗传算法因为其寻优能力较强,这也大大提高了PID参数控制的准确、高效性[[]王茂林.改进遗传算法及其在PID控制器参数优化中的应用[D].长春:吉林大学.2011.

附录(程序清单)

Matlab里遗传算法程序:

clearall;%清除了所有的变量,包括全局变量global

closeall;

globalrinyouttimef%定义全局变量

Size=30;%样本个数定为30

CodeL=3;

MinX(1)=zeros(1);

MaxX(1)=20*ones(1);%定义Kp的取值范围为0-20

MinX(2)=zeros(1);

MaxX(2)=1.0*ones(1);%定义Ki的取值范围为0-1

MinX(3)=zeros(1);

MaxX(3)=1.0*ones(1);%定义Kd的取值范围为0-1

Kpid(:,1)=MinX(1)+(MaxX(1)-MinX(1))*rand(Size,1);%取值为0-1的随机数产生初始种群

Kpid(:,2)=MinX(2)+(MaxX(2)-MinX(2))*rand(Size,1);

Kpid(:,3)=MinX(3)+(MaxX(3)-MinX(3))*rand(Size,1);

G=100;%100代进化

BsJ=0;%最优指标初始值

%***************开始运行***************

forkg=1:1:G

time(kg)=kg;

%******Step1:估计最优指标******

fori=1:1:Size

Kpidi=Kpid(i,:);

[Kpidi,BsJ]=fitness(Kpidi,BsJ);%调用m函数

BsJi(i)=BsJ;

end

[OderJi,IndexJi]=sort(BsJi);

BestJ(kg)=OderJi(1);

BJ=BestJ(kg);

Ji=BsJi+1e-10;%避免分母为零

fi=1./Ji;%转换为适应度函数

[Oderfi,Indexfi]=sort(fi);%将适应度值从小到大排列

Bestfi=Oderfi(Size);%Bestfi取得适应度最大值

BestS=Kpid(Indexfi(Size),:);%LetBestS=E(m),mistheIndexfibelongtomax(fi)

kg%输出

BJ

BestS

%******Step2:选择与复制******

fi_sum=sum(fi);

fi_Size=(Oderfi/fi_sum)*Size;

fi_S=floor(fi_Size);%SelectingBiggerfivaluefloor()朝负无穷方向舍入

r=Size-sum(fi_S);

Rest=fi_Size-fi_S;

[RestValue,Index]=sort(Rest);

fori=Size:-1:Size-r+1

fi_S(Index(i))=fi_S(Index(i))+1;

end

k=1;

fori=Size:-1:1

forj=1:1:fi_S(i)

TempE(k,:)=Kpid(Indexfi(i),:);%选择与复制

k=k+1;%k用于复制

end

end

%************Step3:交叉************

Pc=0.90;%交叉概率

fori=1:2:(Size-1)

temp=rand;

ifPc>temp%交叉条件

alfa=rand;

TempE(i,:)=alfa*Kpid(i+1,:)+(1-alfa)*Kpid(i,:);

TempE(i+1,:)=alfa*Kpid(i,:)+(1-alfa)*Kpid(i+1,:);

end

end

TempE(Size,:)=BestS;

Kpid=TempE;

%************Step4:变异**************

Pm=0.10-[1:1:Size]*(0.01)/Size;%Pm应取很小值

Pm_rand=rand(Size,CodeL);

Mean=(MaxX+MinX)/2;

Dif=(MaxX-MinX);

fori=1:1:Size

forj=1:1:CodeL

ifPm(i)>Pm_rand(i,j)%MutationCondition

TempE(i,j)=Mean(j)+Dif(j)*(rand-0.5);

end

end

end

TempE(Size,:)=BestS;

Kpid=TempE;

end

Bestfi

BestS

Best_J=BestJ(G)

figure(1);

plot(time,BestJ);

xlabel('Times');ylabel('BestJ');

figure(2);

plot(timef,rin,'r',timef,yout,'b');

xlabel('Time(s)');ylabel('rin,yout1,yout');

(fitness.m):%适应度函数的m文件

function[Kpidi,BsJ]=pid_gaf(Kpidi,BsJ)

globalrinyouttimef

ts=20;%采样时间为20s

sys=tf(1,[60,1],’inputdelay’,80);%传递函数公式

dsys=c2d(sys,ts,'z');

[num,den]=tfdata(dsys,'v');

rin=1.0;

u_1=0.0;u_2=0.0;

y_1=0.0;y_2=0.0;

x=[0,0,0]';

B=0;

error_1=0;

tu=1;

s=0;

P=100;

fork=1:1:P

timef(k)=k*ts;

r(k)=rin;

u(k)=Kpidi(1)*x(1)+Kpidi(2)*x(2)+Kpidi(3)*x(3);

ifu(k)>=10%防止积分饱和

u(k)=10;

end

ifu(k)<=-10

u(k)=-10;

end

yout(k)=-den(2)*y_1+num(2)*u_1;

error(k)=r(k)-yout(k);

%ReturnofPIDparameters

u_1=u(k);

y_1=yout(k);

x(1)=error(k);%计算P

x(2)=(error(k)-error_1)/ts;%计算D

x(3)=x(3)+error(k)*ts;%计算I

error_2=error_1;

error_1=error(k);

ifs==0

ifyout(k)>0.95&yout(k)<1.05

tu=timef(k);

s=1;

end

end

end

fori=1:1:P%目标函数J公式实现

Ji(i)=0.999*abs(error(i))+0.001*u(i)^2;

B=B+Ji(i);

ifi>1

erry(i)=yout(i)-yout(i-1);

iferry(i)<0

B=B+100*abs(erry(i));

end

end

end

BsJ=B+2*tu;

]。本文通过对柴油机系统实例的分析研究,用传统的参数整定方法和遗传算法分别对系统的参数进行整定,结果证明,经由遗传算法得到的、和使系统更快达到稳定值,系统的超调量也相对较小,这也就证明了遗传算法寻优能力的强大。

我们对于遗传算法的了解还不够深入,研究成果也不太突出,但是可以看出,该算法凭借自身寻优能力强、调整参数快等优势,在今后的发展中一定会得到更为广泛的应用,今后,我们应该继续深入研究研究算法,继续总结学习,使遗传算法高效快捷地应用到生活的各个领域。

通过这次的PID参数优化设计,我对传统的PID参数整定有了一定的了解,通过查阅资料、询问导师等,认识和了解到了遗传算法的特性以及应用。同时,也发现了传统遗传算法中存在的一些不足:

1.收敛速度限制。当变量比较多的时候、变量可取值范围较广或者我给定范围的时候,遗传算法的收敛速度将会下降;

2.准确性。遗传算法在寻优的过程中得到的结果为接近最优解,但由于自身的限制,它无法精确到最优解而只能在附近;

3.参数取值未定量。遗传算法在运算的过程中,对于参数的选择并未有定量的方法,都是随机给定,这样就减缓了运行的速度。

致谢

本论文是经过我的导师吴丽娟老师的悉心指导完成的。从选题到材料的搜集以及后来论文的编排撰写,吴老师给我提供了很多有指导性的意见、指出了许多不足之处,也为我的研究提供了很多素材资源,使我的研究更有方向感,在整个论文写作过程中,吴老师丰富的知识面、严谨的态度以及独到的见解让我受益匪浅,再次感谢吴老师的悉心指导,在此表达最诚挚的谢意。

这四年来,感谢辽宁科技大学信息工程学院老师对我专业思维及专业技能的培养,为我以后的工作和继续学习打下良好的基础,在这里再次表达最真挚的协议。也感谢我的同学和朋友,在这四年里对我的照顾与支持,以及论文写作过程中为我提供的素材以及排班过程中提供的热情帮助。

最后要感谢我的父母,在大学期间,他们为我的学业操碎了心。现在我马上要毕业了,我会在今后的工作中积极进取,用自己的实际行动来报答父母的养育之恩!

参考文献附录资料:不需要的可以自行删除

C语言图形模式速成

第一节

图形模式的初始化

TurboC提供了非常丰富的图形函数,所有图形函数的原型均在graphics.h中,本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图形窗口以及图形模式下的文本输出等函数。

另外,使用图形函数时要确保有显示器图形驱动程序*.BGI,同时将集成开发环境options/Linker中的Graphicslib选为on,只有这样才能保证正确使用图形函数。

不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器,在不同模式下也有不同分辨率。因此,在屏幕作图之前,必须根据显示器适配器种类将显示器设置成为某种图形模式,在未设置图形模式之前,微机系统默认屏幕为文本模式(80列,25行字符模式),此时所有图形函数均不能工作。设置屏幕为图形模式,可用下列图形初始化函数:

voidfarinitgraph(intfar*gdriver,intfar*gmode,char*path);

其中gdriver和gmode分别表示图形驱动器和模式,path是指图形驱动程序所在的目录路径。有关图形驱动器、图形模式的符号常数及对应的分辨率见graphics.h。

图形驱动程序由TurboC出版商提供,文件扩展名为.BGI。根据不同的图形适配器有不同的图形驱动程序。例如对于EGA、VGA图形适配器就调用驱动程序EGAVGA.BGI。

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode;

gdriver=VGA;

gmode=VGAHI;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

bar3d(100,100,300,250,50,1);/*画一长方体*/

getch();

closegraph();

return0;

}

有时编程者并不知道所用的图形显示器适配器种类,或者需要将编写的程序用于不同图形驱动器,TurboC提供了一个自动检测显示器硬件的函数,其调用格式为:

voidfardetectgraph(int*gdriver,*gmode);

其中gdriver和gmode的意义与上面相同。

自动进行硬件测试后进行图形初始化:

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode;

detectgraph(&gdriver,&gmode);/*自动测试硬件*/

printf("thegraphicsdriveris%d,modeis%d\n",gdriver,gmode);/*输出测试结果*/

getch();

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

/*根据测试结果初始化图形*/

bar3d(100,100,300,250,50,1);/*画一长方体*/

getch();

closegraph();

return0;

}

上例程序中先对图形显示器自动检测,然后再用图形初始化函数进行初始化设置,但TurboC提供了一种更简单的方法,即用gdriver=DETECT语句后再跟initgraph()函数就行了。

采用这种方法后,上例可改为:

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

bar3d(50,50,150,30,50,1);

getch();

closegraph();

return0;

}

另外,TurboC提供了退出图形状态的函数closegraph(),其调用格式为:

voidfarclosegraph(void);

第二节

屏幕颜色的设置和清屏函数

对于图形模式的屏幕颜色设置,同样分为背景色的设置和前景色的设置。在TurboC中分别用下面两个函数:

设置背景色:

voidfarsetbkcolor(intcolor);

设置作图色:

voidfarsetcolor(intcolor);

其中color为图形方式下颜色的规定数值,对EGA,VGA显示器适配器,有关颜色的符号常数及数值见graphics.h。

清除图形屏幕内容但不清除图形背景使用清屏函数,其调用格式如下:

voidefarcleardevice(void);

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode,i,aa;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");/*图形初始化*/

setbkcolor(0);/*设置图形背景*/

cleardevice();

for(i=0;i<=15;i++)

{

setcolor(i);/*设置不同作图色*/

circle(320,240,20+i*10);/*画半径不同的圆*/

getch();

}

for(i=0;i<=15;i++)

{

setbkcolor(i);/*设置不同背景色*/

cleardevice();

circle(320,240,20+i*10);

getch();

}

aa=getmaxcolor();

printf("maxcolor=%d",aa);

getch();

closegraph();

return0;

}

另外,TURBOC也提供了几个获得现行颜色设置情况的函数。

intfargetbkcolor(void);

返回现行背景颜色值。

intfargetcolor(void);

返回现行作图颜色值。

intfargetmaxcolor(void);

返回最高可用的颜色值。

第三节

基本画图函数

基本图形函数包括画点,线以及其它一些基本图形的函数。本节对这些函数作一全面的介绍。

1、画点

I.画点函数

voidfarputpixel(intx,inty,intcolor);

该函数表示有指定的象元画一个按color所确定颜色的点。对于颜色color的值可从表3中获得而对x,y是指图形象元的坐标。

在图形模式下,是按象元来定义坐标的。对VGA适配器,它的最高分辨率为640x480,其中640为整个屏幕从左到右所有象元的个数,480为整个屏幕从上到下所有象元的个数。屏幕的左上角坐标为(0,0),右下角坐标为(639,479),水平方向从左到右为x轴正向,垂直方向从上到下为y轴正向。TURBOC的图形函数都是相对于图形屏幕坐标,即象元来说的。

关于点的另外一个函数是:

intfargetpixel(intx,inty);

它获得当前点(x,y)的颜色值。

II、有关坐标位置的函数

intfargetmaxx(void);

返回x轴的最大值。

intfargetmaxy(void);

返回y轴的最大值。

intfargetx(void);

返回游标在x轴的位置。

voidfargety(void);

返回游标有y轴的位置。

voidfarmoveto(intx,inty);

移动游标到(x,y)点,不是画点,在移动过程中亦画点。

voidfarmoverel(intdx,intdy);

移动游标从现行位置(x,y)移动到(x+dx,y+dy)的位置,移动过程中不画点。

2、画线

I.画线函数

TURBOC提供了一系列画线函数:

voidfarline(intx0,inty0,intx1,inty1);

画一条从点(x0,y0)到(x1,y1)的直线。

voidfarlineto(intx,inty);

画一作从现行游标到点(x,y)的直线。

voidfarlinerel(intdx,intdy);

画一条从现行游标(x,y)到按相对增量确定的点(x+dx,y+dy)的直线。

voidfarcircle(intx,inty,intradius);

以(x,y)为圆心,radius为半径,画一个圆。

voidfararc(intx,inty,intstangle,intendangle,intradius);

以(x,y)为圆心,radius为半径,从stangle开始到endangle结束(用度表示)画一段圆弧线。

在TURBOC中规定x轴正向为0度,逆时针方向旋转一周,依次为90,180,270和360度(其它有关函数也按此规定,不再重述)。

voidellipse(intx,inty,intstangle,intendangle,intxradius,intyradius);

以(x,y)为中心,xradius,yradius为x轴和y轴半径,从角stangle开始到endangle结束画一段椭圆线,当stangle=0,endangle=360时,画出一个完整的椭圆。

voidfarrectangle(intx1,inty1,intx2,inty2);

以(x1,y1)为左上角,(x2,y2)为右下角画一个矩形框。

voidfardrawpoly(intnumpoints,intfar*polypoints);

画一个顶点数为numpoints,各顶点坐标由polypoints给出的多边形。polypoints整型数组必须至少有2倍顶点数个无素。每一个顶点的坐标都定义为x,y,并且x在前。值得注意的是当画一个封闭的多边形时,numpoints的值取实际多边形的顶点数加一,并且数组polypoints中第一个和最后一个点的坐标相同。

下面举一个用drawpoly()函数画箭头的例子。

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode,i;

intarw[16]={200,102,300,102,300,107,330,

100,300,93,300,98,200,98,200,102};

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

setbkcolor(BLUE);

cleardevice();

setcolor(12);/*设置作图颜色*/

drawpoly(8,arw);/*画一箭头*/

getch();

closegraph();

return0;

}

II、设定线型函数

在没有对线的特性进行设定之前,TURBOC用其默认值,即一点宽的实线,但TURBOC也提供了可以改变线型的函数。

线型包括:宽度和形状。其中宽度只有两种选择:一点宽和三点宽。而线的形状则有五种。

下面介绍有关线型的设置函数。

voidfarsetlinestyle(intlinestyle,unsignedupattern,intthickness);

该函数用来设置线的有关信息,其中linestyle是线形状的规定,见graphics.h。

对于upattern,只有linestyle选USERBIT_LINE时才有意义(选其它线型,uppattern取0即可)。此时uppattern的16位二进制数的每一位代表一个象元,如果那位为1,则该象元打开,否则该象元关闭。

voidfargetlinesettings(structlinesettingstypefar*lineinfo);

该函数将有关线的信息存放到由lineinfo指向的结构中,表中linesettingstype的结构如下:

structlinesettingstype{

intlinestyle;

unsignedupattern;

intthickness;

}

例如下面两句程序可以读出当前线的特性

structlinesettingstype*info;

getlinesettings(info);

voidfarsetwritemode(intmode);

该函数规定画线的方式。如果mode=0,则表示画线时将所画位置的原来信息覆盖了(这是TURBOC的默认方式)。如果mode=1,则表示画线时用现在特性的线与所画之处原有的线进行异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变,进行两次画线操作相当于没有画线。

有关线型设定和画线函数的例子如下所示。

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode,i;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"C:\\TC2.0\\BGI");

setbkcolor(BLUE);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论