开题报告基于逆变器下垂控制的微电网能量管理系统的研究_第1页
开题报告基于逆变器下垂控制的微电网能量管理系统的研究_第2页
开题报告基于逆变器下垂控制的微电网能量管理系统的研究_第3页
开题报告基于逆变器下垂控制的微电网能量管理系统的研究_第4页
开题报告基于逆变器下垂控制的微电网能量管理系统的研究_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

太原理工大学

硕士研究生学位论文

选题计划表

2011年1月20日

研究生姓名

杨俊虎

专业

电力系统及其自动化

导师姓名

韩肖清

研究方向

电力系统运行与控制

毕业论文题目

基于逆变器下垂控制的微电网能量管理系统的研究

论文类型

理论研究

应用研究

用于生产

其它

选题目的和意义:

微电网是一种新型的网络结构,是一组微电源、负荷、储能系统和控制装置构成的系统单元。微电网中的电源多为容量较小的分布式电源,即含有电力电子接口的小型机组,包括微型燃气轮机、燃料电池、光伏电池、小型风力发电机组以及超级电容、飞轮、蓄电池等储能装置,它们接在用户侧,具有成本低、电压低、污染低等特点。开发和延伸微电网能够促进分布式电源与可再生能源的大规模接入,实现对负荷多种能源形式的高可靠供给,是实现主动式配电网的一种有效的方式,使传统电网向智能电网过渡[1]。

微电网能量管理系统的目的是作出决策最优地利用发电产生的电和热(冷)。该决策的依据为当地设备对热量的需求、气候的情况、电价、燃料成本[2]。因此在保证微电网稳定性运行的前提下,调节发电机的输出功率,最大限度的使用可再生能源,减少燃料的消耗是微电网能量管理系统的重要任务[3]。

微电网中所安装的微电源大多数都不适合直接并网,需要经电力电子装置(DC/AC,AC/DC/AC)并网。逆变器控制是微电网运行控制的主要选择。选择与传统发电机相似的下垂特性曲线作为微型电源的控制方式,利用频率有功下垂曲线将系统不平衡的功率动态分配给机组来承担,

保证孤网下微电网内电力供需平衡和频率的统一,具有简单可靠的特点[4],得到了国内外学者的广泛关注,在各微电网示范项目中也被广泛采用。

频率下垂系数对微电网稳定运行有重要的影响,尤其对微电网孤岛运行稳定性的影响更大[4]。因此需要研究微电源的逆变器控制参数与微电网稳定运行之间的关系,确定逆变器运行参数的范围,设计选择逆变器运行参数的优化算法,达到最大限速的减少燃料消耗的目的。

国内外研究动态:

近年来,对微电网技术开展研究的主要国际组织和项目包括:美国CERTS和PSERC的微电网计划、欧盟的“TheMicrogridsProject”、美国LBNL组织的DER-CAM计划、日本的NEDO组织和加拿大CANMET能源技术中心等。

目前世界上针对微电网的研究,还限于微电网的内部运行机制,提出的主要控制措施集中在微电网的频率和电压的调节以及电力市场机制上,而在微电网的稳定性分析、安全与自动保护措施、独立运行机制、多微电网运行机制等方面还有很多问题需要解决[5~9]。

微电网内分布式发电单元都是经过电力电子转换设备并网。电力电子设备的广泛应用使得微电网运行更加灵活多变。由于其惯性很小,使得电网更容易受扰动影响其稳定性。在微电网运行过程中,必须考虑微电网的动态特性。文献[9]在理想逆变器的假设前提下,分析了微电网孤岛运行的动态特性。假设闭环控制的逆变器输出电压、电流能够迅速、准确、充分的跟踪其参考值,对于功率小、开关频率大的逆变器是可行的,但是对于功率大、开关频率小的逆变器,忽略逆变器的动态行为,是不可行的。文献[10]对出口接入理想交流母线的逆变器进行了建模仿真,分析了微电网的稳定性,但是没有考虑逆变器间的相互影响。文献[4]建立了微电网的小信号状态空间模型,包括逆变器的低频、高频动态模型,网络动态模型,负荷动态模型,并把各子模型连接构成微电网整体模型,同时分析了模型对微电网各种运行状态的敏感性。文献[11]介绍了一种微电网孤岛运行的控制策略,证明了该种控制模式在微电网孤岛运行时的可行性,证明微电网紧急孤岛运行的安全性并证明了储能装置可以防止微电网迅速、长期的电压偏移,得出储能装置在微电网安全运行过程中起关键性作用的结论。文献[3]介绍了基于下垂特性控制的微电网在孤岛运行时的能量管理系统,通过选择微电源逆变器的下垂曲线参数,优化微电网孤岛运行方式,实现微电网稳定运行和最小燃料消耗的目的。

我国对微电网的研究尚处于起步阶段,在国家科技部“863计划先进能源技术领域2007年度专题课题”中已经包括了微电网技术。目前我国诸多高校和科研院所相继开始了对微电网的研究。清华大学、中国科学院与辽宁高科技能源集团合作,在我国率先将微电网应用到实际工程中,积累了丰富的实践经验和学术成果。中国科学院电工所的研究课题“分布式能源系统微电网技术研究”获得863高技术基金的资助,天津大学的研究课题“分布式发电功能系统相关基础研究”获得了国家973计划项目的资助[1]。

微电网技术近年来在我国的到了很大的重视,关于微电网方面的论文已有很多发表。文献[12~16]对光伏发电系统、风力发电系统、微型燃气轮机、燃料电池发电系统建模,经过仿真得出不同单微电源微电网的运行特性;对故障情况下微电网系统故障恢复能力和维持电能质量能力进行仿真分析;并针对包含多种微电源的微电网进行了仿真分析。文献[14]在建模过程中考虑了PQ控制的电力电子装置对微电网的影响。文献[15]介绍了微电网中微电源与电网接口的逆变器接口模型、电压源接口模型和电流源接口模型,比较了逆变器接口模型与电流源接口模型的动态响应。文献[16]基于直流微电网的基本结构,针对多种变流器的状态空间模型,对直流微电网系统进行了建模、时域仿真和小扰动电压稳定性分析。

针对微电网的微电网的控制技术,我国学者也开展了许多工作。文献[17]研究了微电网的负荷优化分配问题,优化目标是在满足系统运行约束条件下优化微电网中各微电源的出力,使系统总运行成本最小。文献[18]针对自治微电网中频率与有功需求没有直接联系的情况,结合不同微电源的特点,给出了以本地节点电压作为调节目标,实现有功、无功平衡的分布式控制的一种策略。文献[19]分析了高渗透率微网接入对大电网的安全稳定性、电能质量、调度运行等方面的影响,提出大电网应对微网接入策略的框架结构和主要研究内容。文献[20]提出一种基于负序电压正反馈的孤岛检测方法。文献[21]针对下垂法控制的微电网并联逆变器的输出电压幅值和频率的不稳定问题,提出了一种改进的自动调节下垂系数的控制法,可以有效减小微电网负荷突变等情况下母线电压幅值及频率的波动。文献[22]提出了一个基于多代理系统的微电网控制框架,建立了以上级电网代理、微电网代理、元件代理组成的3层多代理控制系统,并对其中各代理的具体功能及其协调策略进行了讨论。文献[23]介绍了一种基于多代理技术的微电网协调控制系统,提高了微电网的运行稳定性和效率。

目前国内对微电网的研究取得了一定的进展,但与欧洲、美国及日本等由研究机构、制造商和电力公司组成的庞大研究团队相比,我国在研究力量和取得的成果上仍与之存在较大差距。我国有必要进一步开展微电网关键技术的研究,促进微电网在我国的应用。

主要内容:

微电网中电力电子设备的广泛应用使得电网运行更加灵活多变。由于其惯性很小,使得电网更容易受到扰动,影响其稳定性。因此,在对微电网运行方式进行优化的过程中,必须考虑微电网的动态特性。本课题研究“基于逆变器下垂控制的微电网能量管理系统”,寻找一种最优控制策略达到微电网内燃料消耗最少的目的,同时满足微电网稳定性的要求。

本课题研究的主要内容包括以下几个方面:

一、介绍微电网的基本概念及其国内外发展现状,并总结分析其特点和中国发展微电网的重要意义。

二、建立并分析基于逆变器控制的微电网的状态空间数学模型。包括:逆变器模型、网络模型和负荷模型。其中逆变器模型包括:功率分配控制器动态模型、逆变器出口滤波器动态模型、耦合电感动态模型、电压电流控制器动态模型等。

三、分析逆变器控制参数对微电网稳定性的影响,确定微电网稳定运行时,逆变器参数的运行范围,其中包括下垂曲线控制参数。

四、设计选择逆变器运行参数的优化算法,达到最大限度的减少燃料消耗的目的。

五、运用Matlab进行仿真分析:在Simulink模块中搭建微电网模型,在M-file中编写程序。

六、分析仿真试验运行所得的数据,提出一些提高微电网稳定性的措施。

实验设计方案:

1、建立基于逆变器控制的微电网的状态空间数学模型。包括:逆变器模型、网络模型和负荷模型。其中逆变器模型包括:功率分配控制器动态模型、逆变器出口滤波器动态模型、耦合电感动态模型、电压电流控制器动态模型。

2、在Matlab/Simulink模块中搭建微电网的模型,对微电网运行状态进行仿真分析,确定微电网稳定运行时,各逆变器控制参数的调节范围。

3、设计选择逆变器运行参数的优化算法,达到最大限度的减少燃料的消耗目的。

4、在Matlab/M-file中对选择逆变器运行参数的优化算法进行程序编辑,实现最大限度的减少燃料的消耗目的。

5、微电网综合仿真分析。使微电网各模型与所编程序结合仿真。

6、分析仿真实验和微电网实验室试验得出的结果,提出提高微电网稳定性的措施,使微电网能够以最优方式运行。

————————————————————————————————准备工作情况:

1、阅读大量国内外有微电网运行和控制的文献,对目前国内外微电网能量管理系统的研究状况有了一个比较全面的认识。

2、深入学习微电网的工作原理,以便后续微电网数学模型的建立。

3、深入学习有关小干扰稳定性分析的定义、研究内容及研究方法,以便微电网的小干扰稳定性分析。

4、学习Matlab软件及编程语言,为微电网仿真分析奠定基础。

主要工作措施:

1、建立微电网模型,设计微电网优化算法。

2、运用Matlab软件进行微电网运行方式的仿真。

3、在微电网实验室进行实验室仿真。

4、仿真结果分析,提出提高微电网稳定性的措施,使微电网能够以最优方式运行。

————————————————————————————————论文进度安排:

1、2010年8月-12月学习MATLAB仿真软件、学习有关微电网和电力系统小干扰稳定性的理论知识,阅读相关文献资料,并对资料进行详细分析确定课题实施方案。

2、2011年1月-5月通过阅读的资料建立微电网各部分的数学模型,确定微电网的控制策略。

3、2011年5月-12月在MATLAB中建立微电网的仿真模型,编写程序,进行微电网仿真分析,验证微电网控制参数和控制策略的合理性,分析仿真试验的结果。

4、2012年1月-4月学位论文的编写及修改。

5、2012年5月打印论文。

————————————————————————————————预期达到研究结果:

建立并分析微电网的数学模型及微电网的控制策略,使微电网在孤岛运行时,能够维持微电网电压和频率的稳定,避免逆变器过负荷运行,当负荷发生扰动,负荷增量能合理的分配给各微电源,使微电网最优运行。并对所提出的控制策略在Matlab/Simulink实验平台进行仿真验证。

文献综述:

能源是现代社会和经济发展的动力,是人类生命存在和繁衍的生命线。传统化石能源的逐步耗竭,使能源危机已逐步逼近。但是随着新能源发电机组的大量投入,新能源发电并网的限制成为了新能技术发展的瓶颈,就如,目前我国约有三分之一的风电机组,由于本地负荷不足和外送通道受限等原因,处于停运状态,造成极大的资源浪费。

微电网是一种新型的网络结构,是一组微电源、负荷、储能系统和控制装置构成的系统单元。微电网中的电源多为容量较小的分布式电源,即含有电力电子接口的小型机组,包括微型燃气轮机、燃料电池、光伏电池、小型风力发电机组以及超级电容、飞轮及蓄电池等储能装置,它们接在用户侧。

微电网具有以下特点[1]:①独特性:微电网由微型电源及负荷构成,是一个小型电力系统,与大系统的主要区别在于其灵活的可调度性;②多样性:微电源的组成多种多样,既有传统电源,又有可再生能源。同时,微电网中还包含储能设备和多种负荷,如敏感型、非敏感型,可控型、非可控型等;③可控性:根据运行工况的不同,微电网可以选择不同的运行方式,完善的控制策略使得微电网的可靠性得到提高,安全性得到保障;④交互性:作为具备独立发电设备的微电网可以在必要时对主网提供有力支撑,同时主网也可以向微电网提供电能;⑤微电网在一定条件下可以独立运行,在一定基础上保障了本地的用电需求。

开发和延伸微电网能够促进分布式电源与可再生能源的大规模接入,实现对负荷多种能源形式的高可靠供给,是配电网向主动式运行方式发展的一条途径,使传统电网向智能电网过渡。中国发展微电网技术对电力系统和国民经济的发展都有重要的意义[1]:

(1)微电网可以提高电力系统的安全性和可靠性,有利于电力系统抗灾能力建设。微电网可以和现有电力系统结合形成一个高效灵活的新型系统。微电网对建设要求不高,不占用输电走廊,施工周期短,能够迅速应付短期激增的电力需求。

(2)微电网将地域相近的一组微电源、储能装置与负荷结合起来进行协调控制,对配电网表现为友好型的单个可控集合。微电网可以促进可再生能源分布式发电的并网,有利于可再生能源在我国的发展。

(3)根据用户对电力供给的不同需求,微电网将负荷分类,针对终端用户的需求提供差异化的电能。微电网可以提高供电可靠性和电能质量,有利于提高电网企业的服务水平。

(4)微电网能够有效减少对集中式大型发电厂电力生产的依赖,降低远距离电能传输、多级变送的损耗,降低网损。

(5)微电网能够有效地解决我国西部地区目前常规供电所面临的输电距离远、功率小、线损大、建设变电站费用昂贵的问题,为我国边远及常规电网难以覆盖的地区的电力供应提供有力支持,有利于社会主义新农村建设。

微电网系统有与外部电网并网运行和孤网运行两种运行模式。在合理的控制策略下,微电网可以并网或孤网运行,并可实现两种状态的平滑过渡和转换。

(1)并网运行模式是指正常情况下,微电网与常规电网并网运行时向电网供出多余的电能或是由电网补充自身发电量的不足。

(2)孤网运行模式是指当检测到电网故障或是电能质量不满足要求时,微电网可以与主网断开形成孤岛模型,由微电源向微电网内负荷供电。

微电网在实际运行中首先需要解决的技术问题就是控制问题。微电网控制设备主要包括:分布式发电系统控制器、可控负荷管理器、中央能量管理系统、继电保护装置。微电网控制的主要目标是:①微电网内的馈线潮流可调,对无功和有功进行独立解耦控制;②微型电源接口电压可调,保证电压的稳定;③孤网运行时,确保每个微型电源能快速响应,分担用户负荷;④根据故障情况或是系统需要,平滑自主地实现与主网分离、并列或是两者的过渡转化。

目前主要的微电网控制方法包括以下几个[24]:

(1)基于电力电子技术的即插即用和对等的控制。该方法根据微电网控制目标,灵活选择与传统发电机组相似的下垂特性曲线作为微型电源的控制方式,利用频率有功下垂曲线将系统不平衡的功率动态分配给各机组承担,保证孤网下微电网内电力供需平衡和频率的统一,具有简单可靠的特点。

(2)基于功率管理系统的控制。该方法采用不同的控制模块对有功、无功分别进行控制,较好地满足了微电网P/Q、U/f等多种控制方式的要求,尤其是在协调功率平衡时,加入了频率恢复算法,可以很好地满足频率质量的要求。另外针对微电网中对无功的不同需求,功率管理系统采用了多种控制方法并加入无功补偿器,进而提高控制的灵活性并提高了控制性能。

(3)基于多代理技术的微电网控制。该方法将传统电力系统中多代理技术应用于微电网控制系统。代理的自治性、响应能力、自发行为等特点正好满足微电网分散控制的需要,提供了一个能够嵌入各种控制且无需求管理者经常参与的系统。以典型的自治电网(AEN)的三级控制结构为例,一级保证电网可靠运行,从而满足供需平衡;二级结构优化电能质量并减少电压、频率波动;三级结构经济优化即边际成本等值优化。

未来微电网控制系统的研究方向应集中于如下几个方面[25]。

(1)不同种微电网微型分布式发电系统的运行和控制,包括间歇式和可控式以及常规模式和基于变流器模式。

(2)微电网在独立运行模式与并网运行模式下,智能型频率、电压控制策略的可行性研究。

(3)微电网的分散控制方法以及多分散控制器的协调优化算法,要求每个分布式发电系统根据自己局部的相关信息进行独立的电压调节和频率控制,并按照特定的目标函数优化多个分散控制器的性能,使得系统的总体性能得到最优,并满足各种运行环境下对电压和频率控制的要求。

在对微电网进行分析的过程中选择与分析目的适应的微电源接口模型是十分重要的。微电网中微电源的接口模型[26]:

(1)逆变器接口模型:微电源的接口模型按照实际电路的拓扑结构,通过电力电子变换电路与电网互联。该模型仿真速度较慢,系统结构和控制较复杂,但能反映电力电子暂态过程,适用于需要考虑电力电子暂态特性且系统规模不大的场合中。

(2)电压源接口模型:用等效电压源和电网接口,控制仍采用电力电子变换电路的控制策略。该模型复杂度介于逆变器模型与电流源模型之间,适用于着重设计控制算法的场合。

(3)电流源接口模型:直接利用微电源的外特性,采用等效电流源作为接口。该模型响应速度非常快,系统结构简单,但结果过于理想,适用于着重考虑微电源外特性的场合。

在实际分析微电源—交流母线的传输特性,将微电网等效为含有一个微电源的简化模型,如下图(a)。直流电压源经过逆变器逆变为交流电,然后将功率输送到交流母线中。下图(b)中Z和θ分别为逆变电源输出阻抗的幅值和相角,E为交流母线的电压幅值,U为逆变器输出电压的幅值,δ为逆变电源输出电压矢量与交流母线电压矢量的相角差。

(a)微电源到交流母线的功率传输示意图

(b)微电源到交流母线的功率传输相量图

逆变电源输出的复功率的表达式

(1)

因此逆变电源输出的有功功率和无功功率分别为

(2)

(3)

低压输电系统的线路参数R>>X,X可以忽略不计,Z=R,,假设功率角δ很小,,,则公式可变形为:

(3)

(4)

可以看出低压输电系统,有功功率的传输主要决定于电压幅值U,无功功率的传输决定于δ。

高压输电系统的线路参数X>>R,R可以忽略,Z=X,,假设功率角δ很小,则,,公式可变形为:

(5)

(6)

可以看出高压输电系统,有功功率的传输主要决定于功率角δ,无功功率的传输主要决定于电压幅值U。

模拟传统发电机的下垂特性来实现微电网中微电源的无线并联控制,称微电源逆变器下垂控制。其实质为:各逆变单元检测自身输出功率,通过下垂特性得到输出电压频率和幅值的指令值,然后各自反相微调其输出电压幅值和频率达到系统有功和无功功率的合理分配。

具体表现为:(1)在输出阻抗主要为感性的逆变电源系统中,如果逆变电源输出有功功率大,则通过频率下垂特性增大其输出频率,从而减少其有功功率输出;如果逆变电源输出有功功率小,则通过频率下垂特性减小其输出频率,从而增加其有功功率输出。如果输出无功功率大,则通过幅值下垂特性降低其电压幅值,从而减小其输出无功功率;如果输出无功功率小,则通过幅值下垂特性增大其电压幅值,从而增大其输出无功功率。(2)在输出阻抗主要为阻性的逆变电源系统中,由于有功功率与电压幅值相关,无功功率与频率相关,所以其功率调节过程正好与输出阻抗为感性的系统相反。

无论逆变电源的输出阻抗呈感性还是阻性,在控制过程中,输出功率较少的单元会根据电压-频率下垂特性增加其输出,而输出功率相对较多的单元则相应的减少其输出,并且这种自我调节过程将一直持续下去,直到并联系统达到最小环流点。

在逆变电源并联系统中,由于逆变电源内阻很小,其输出外特性会比较硬,哪怕是很小的幅值或相位差都会在并联的逆变电源之间产生很大的系统环流。在输出阻抗呈感性的系统中,引入电压-频率下垂特性控制,就会使其输出特性相应变“软”,各逆变电源的输出电压频率和幅值均按下式变化,即:

(7)

(8)

其中,m、n分别为有功和无功下垂特性系数,为微电源运行在额定频率下的输出功率,为电网的额定频率,为微电源输出无功功率为0时的电压幅值。下垂特性如下图(c)、(d)。

(c)P-f下垂特性

(d)Q-U下垂特性

在微电网控制中,当微电网中的负荷或网络结构发生变化时,如何通过对微电网中各个分布式电源进行有效的协调控制,保证微电网在不同运行模式下都能满足负荷对电能质量的要求,是微电网能否可靠运行的关键。另外,微电网的经济性和社会效益最大化是发展微电网的初衷。对此,微电网能量管理系统需要进行综合考虑。

《基于逆变器下垂控制的微电网能量管理系统的研究》以下垂特性控制微电源逆变器为研究对象,研究微电源的逆变器控制参数与微电网稳定运行之间的关系,确定逆变器运行参数的范围,设计选择逆变器运行参数的优化算法以达到最大限速的减少燃料的消耗目的。

《基于逆变器下垂控制的微电网能量管理系统的研究》以一种系统的方法模拟逆变器控制的微电网。基于下垂特性控制策略分配各微电源逆变器的功率输出,包括有功功率输出和无功功率输出。逆变器的控制包括电压控制和电流控制。控制逆变器防止发生高频扰动和与端口LC滤波器的共振。逆变器的状态空间模型包括:控制器模型、输出端口滤波器模型和与同步参考单元间的耦合电感模型。可以任意选择一个逆变器作为公共参考单元,运用类似于同步发电机的归算方法(电压归算和频率归算),将其余逆变器参数都归算到公共参考单元下的参数,从而形成公共参考单元框架下的微电网整体模型。

其次,分析微电网的动态特性,着重分析微电网的小信号稳定性。建立了微电网的整体模型后,可以求出微电网暂态过程中,反应频率和阻尼特性的特征值,进而找出微电网稳定性和微电网控制参数之间的关系,比如控制器的参数,下垂特性曲线参数等。

当微电网运行在孤岛模式时,微电网动态特性主要受微电源和逆变器控制方式的影响。《基于逆变器下垂控制的微电网能量管理系统的研究》将着重研究微电网在孤岛运行模式下负荷的优化分配问题,即在满足系统运行约束条件下,优化微电网中的微电源的出力,使系统中化石燃料消耗达到最小。通过调整逆变器参考电压和相角,可以调节逆变器的输出有功功率和无功功率,达到优化运行的目的。

以三台微电源发电机构成的微电网孤岛运行为例进行简单说明。负荷的总需求量等于三台发电机的总发电量。即:

(9)

微电网总的下垂特性曲线由三台微电源逆变器的控制下垂曲线决定,从而决定微电网的运行频率。微电源逆变器选择不同的控制下垂曲线会影响系统的运行性能。比如,调差系数大会减少系统的稳定裕度;而调差系数小会增加系统响应时间。对于装有大容量的储能设备的微电网,调差系数小会影响储能装置的快速响应,影响储能设备作用的发挥。此外,下垂特性曲线还决定运行点的移动情况以应对外界影响,比如,负荷变化时,调差系数大,逆变器可以对频率进行迅速调整应对负荷的变化。因此在对调差系数进行选择时需要同时考虑系统稳定裕度,动态性能。

(e)基于下垂特性微电源频率控制示意图

所有微电源逆变器选择相同的调差系数,是选择下垂特性曲线的一种简单方式,可以对负荷功率在微电源间的分配进行解耦控制,只由频率设置点决定,可由公式(10)计算得出。但是选择相同的调差系数,在负荷功率发生变化时,负荷增量会在各微电源间平均分配。

(11)

式中:设置频率;

微电网运行频率;

调差系数;

逆变器输出功率

同理,选择无功功率调差系数也要考虑两个方面的限制:调差系数大系统暂态响应快;调差系数小易于微电网电压的控制。由于微电网电压等级相对低,R/X比相对较大,使得有功和无功不能完全解耦控制,使得无功功率的优化配置难于精确。文献[28~31]已对此进行了讨论,也提出了一些无功优化的措施

《基于逆变器下垂控制的微电网能量管理系统的研究》的能量管理系统(EMS)运用公式(12)进行功率优化配置,公式(13)为约束条

件。约束条件中考虑了微电源要满足负荷的电需求和热需求,同时考虑了微电源输出功率的上下限。

(12)

(13)

式中:最优功率分配系数;

微电源的可发功率;

微电源需满足的负荷电功率;

微电源需满足的负荷热功率;

微电源发电和发热的比例系数。

《基于逆变器下垂控制的微电网能量管理系统的研究》最后通过Matlab/Simulink和Matlab/M-file搭建模块和编程仿真实现微电网的优化运行。

参考文献:

[1]张建华,黄伟.微电网运行控制与保护技术[M].北京:中国电力出版社,2010.

[2]刘振亚.智能电网技术[M].北京:中国电力出版社,2010.

[3]N.Pogaku,M.Prodanovic,andT.C.GreenEnergy.ManagementinAutonomousMicrogridUsingStability-ConstrainedDroopControlofInverters[J].IEEETransactionsonPowerElectronics.VOL.23,NO.5,SEP.2008

[4]N.Pogaku,M.Prodanovic,andT.C.Green.Modeling,analysisandtestingofautonomousoperationofaninverter-basedmicrogrid.IEEETransactionsonPowerElectronics.IEEETransactionsonPowerSystem[J].VOL.22,NO.2,MAR2007

[5]盛鹃,孔力,齐智平等.新型电网-微电网的研究综述[J].继电器,2007,35(12).

[6]SanehezM.OverviewofmicrogridresearchanddevelopmentaetivitiesintheEU[C].Montreal2006-SymposiumonMicrogrids,2006.

[7]MarnayC,BaileyOC.TheCERTSmicrogridsandthefutureofthemicrogrid[R].EnergyAnalysisDepartment,U.S.2004.

[8]MorozumiS.MicrogriddemonstrationProjectsinJapan[C].PowerConversionConference,Nagoya,2007

[9]E.A.A.Coelho,P.Cortizo,andP.F.D.Gracia.Smallsignalstabilityforparallel-connectedinvertersinstand-aloneacsupplysystems[J].IEEETransactionsonIndustryApplications.vol.38,no.2,Mar./Apr.2002.

[10]J.M.Guerrero,L.G.V.Na,M.Castilla,andJ.Miret,Awirelesscontrollertoenhancedynamicperformanceofparallelinvertersindistributedgenerationsystems[J].IEEEtranszctiononPowerElectron.vol.19,no.5,Sep.2004.

[11]A.L.Dimeas,andN.D.Hatziargyriou.Operationofamultiagentsystemformicrogridcontrol[J].IEEETransactionsonPowerSystem.vol.21,no.2,MAY.2006

[12]时珊珊,鲁宗相,闵勇等.微电源特性分析及其对微电网负荷电压的影响[J].电力系统自动化,2010,34(17).

[13]王凌,李培强,李欣然等.微电源建模及其在微电网仿真中的应用[J].电力系统自动化学报,2010,22(3).

[14]刘君,穆世霞,李岩松等.微电网中微型燃气轮机发电系统整体建模与仿真[J].电力系统自动化,2010,34(7).

[15]王阳,鲁宗相,闵勇.微电网中微电源接口仿真模型的研究与比较[J].电力系统自动化,2010,34(1).

[16]施婕,郑漳华,艾芊.直流微电网建模与稳定性分析[J].电力自动化设备,2010,30(2).

[17]陈达威,朱桂萍.微电网负荷优化分配[J].电力系统自动化,2010,34(2).

[18]柳明,柳文.基于电压的自治微电网分布式协调控制[J].电力自动化设备,2010,30(1).

[19]撖奥洋,邓星,文明浩等.高渗透率下大电网应对微网接入的策略[J].电力系统自动化,2010,34(1)

[20]郭小强,邬伟扬.微电网非破坏性无盲区孤岛检测技术[J].中国电机工程学报,2009,29(25)

[21]姚玮,陈敏,牟善科等.基于改进下垂法的微电网逆变器并联控制技术[J].电力系统自动化,2009,33(6)

[22]章健,艾芊,王新刚.多代理系统在微电网中的应用[J].电力系统自动化,2008,32(24)

[23]艾芊,章健,王新刚.基于多代理技术的微电网细条控制系统[P].上海:上海交通大学,2009

[24]井实,刘霞,李坚等.微电网能量智能控制系统[P].四川:电子科技大学,2009

[25]苏玲,张建华,王利等.微电网相关问题及技术研究[J].电力系统保护与控制,2010,38(19).

[26]王阳,鲁宗相,闵勇微.电网中微电源接口仿真模型的研究与比较[J].电力系统自动化,2010,34(1).

[27]吕婷婷.微电源控制方法与微电源暂态特性研究[D].山东大学,2010

[28]N.Pogaku.Analysis,controlandtestingofinverter-baseddistributedgenerationinstandaloneandgrid-connectedapplications.Ph.D.dissertation,Elect.Electron.Eng.,ImperialCollegeLondon,Univ.London,U.K.,2006.

[29]J.A.P.Lopes,C.L.Moreira,andA.G.Madureiara.DefiningcontrolstrategiesforMicroGridsislandedoperation.IEEEtranszctiononPowerElectron.vol.21,no.2,May2006.

[30]C.L.Moreira,F.O.Resende,andJ.A.P.Lopes.UsinglowvoltageMicroGridsforservicerestoration.IEEEtranszctiononPowerElectron.vol.22,no.1,Feb2007.

[31]K.DeBrabandere,B.Bolsens,J.VandenKeybus,A.Woyte,J.Driesen,andR.Belmans.Avoltageandfrequencydroopcontrolmethodforparallelinverters.IEEEtranszctiononPowerElectron.vol.22,no.4.Jul.2007.

考核小组对报告人查阅

专业技术文献情况的评价

查阅与本专业相关的专业技术文献数量是否达到30篇(其中外文10篇)?

查阅的文献是否全面,是否反映本学科专业的最新学术动态,对撰写硕士学位论文是否具有指导意义指导意义?

文献综述是否认真、有条理,能否较全面地概括文献的主题和创新点?

请对文献综述进行综合评价并给成绩(按合格、不合格)。

考核小组负责负责签字:

年月日

选题报告会记录

选题报告人:报告会主持人:

学位论文题目:

参加报告会成员:

报告会日期:地点:

记录人:

报告会记录及考核意见:

报告会负责人签字:

年月日

所在院(所)对选题的意见:

负责人:

年月日

所在系(研究室)对选题意见:

负责人:

年月日

导师对选题的意见:

导师:

年月日

附录资料:不需要的可以自行删除

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);

cleardevice();

setcolor(GREEN);

circle(320,240,98);

setlinestyle(0,0,3);/*设置三点宽实线*/

setcolor(2);

rectangle(220,140,420,340);

setcolor(WHITE);

setlinestyle(4,0xaaaa,1);/*设置一点宽用户定义线*/

line(220,240,420,240);

line(320,140,320,340);

getch();

closegraph();

return0;

}

第四节

基本图形的填充

填充就是用规定的颜色和图模填满一个封闭图形。一般是先画轮廓再填充。

TURBOC提供了一些先画出基本图形轮廓,再按规定图模和颜色填充整个封闭图形的函数。在没有改变填充方式时,TURBOC以默认方式填充。

voidfarbar(intx1,inty1,intx2,inty2);

确定一个以(x1,y1)为左上角,(x2,y2)为右下角的矩形窗口,再按规定图模和颜色填充。说明:此函数不画出边框,所以填充色为边框。

voidfarbar3d(intx1,inty1,intx2,inty2,intdepth,inttopflag);

当topflag为非0时,画出一个三维的长方体。当topflag为0时,三维图形不封顶,实际上很少这样使用。说明:bar3d()函数中,长方体第三维的方向不随任何参数而变,即始终为45度的方向。

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

画一个以(x,y)为圆心,radius为半径,stangle为起始角度,endangle为终止角度的扇形,再按规定方式填充。当stangle=0,endangle=360时变成一个实心圆,并在圆内从圆点沿X轴正向画一条半径。

voidfarsector(intx,inty,intstanle,intendangle,intxradius,intyradius);

画一个以(x,y)为圆心分别以xradius,yradius为x轴和y轴半径,stangle为起始角,endangle为终止角的椭圆扇形,再按规定方式填充。

第五节

设定填充方式

TURBOC有四个与填充方式有关的函数。下面分别介绍:

voidfarsetfillstyle(intpattern,intcolor);

color的值是当前屏幕图形模式时颜色的有效值。pattern的值及与其等价的符号常数见graphics.h。

除USER_FILL(用户定义填充式样)以外,其它填充式样均可由setfillstyle()函数设置。当选用USER_FILL时,该函数对填充图模和颜色不作任何改变。之所以定义USER_FILL主要因为在获得有关填充信息时用到此项。

voidfarsetfillpattern(char*upattern,intcolor);

设置用户定义的填充图模的颜色以供对封闭图形填充。其中upattern是一个指向8个字节的指针。这8个字节定义了8x8点阵的图形。每个字节的8位二进制数表示水平8点,8个字节表示8行,然后以此为模型向个封闭区域填充。

voidfargetfillpattern(char*upattern);

该函数将用户定义的填充图模存入upattern指针指向的内存区域。

voidfargetfillsetings(structfillsettingstypefar*fillinfo);

获得现行图模的颜色并将存入结构指针变量fillinfo中。其中fillsettingstype结构定义如下:

structfillsettingstype{

intpattern;/*现行填充模式*/

intcolor;/*现行填充模式*/

};

有关图形填充图模的颜色的选择,请看下面例程。

#include"stdio.h"

#include"graphics.h"

main()

{

charstr[8]={10,20,30,40,50,60,70,80};/*用户定义图模*/

intgdriver,gmode,i;

structfillsettingstypesave;

/*定义一个用来存储填充信息的结构变量*/

gdriver=DETECT;

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

setbkcolor(BLUE);

cleardevice();

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

{

setcolor(i+3);

setfillstyle(i,2+i);/*设置填充类型*/

bar(100,150,200,50);/*画矩形并填充*/

bar3d(300,100,500,200,70,1);/*画长方体并填充*/

pieslice(200,300,90,180,90);/*画扇形并填充*/

sector(500,300,180,270,200,100);/*画椭圆扇形并填充*/

getch();

}

cleardevice();

setcolor(14);

setfillpattern(str,RED);

bar(100,150,200,50);

bar3d(300,100,500,200,70,0);

pieslice(200,300,0,360,90);

sector(500,300,0,360,100,50);

getch();

getfillsettings(&save);

/*获得用户定义的填充模式信息*/

closegraph();

clrscr();

printf("Thepatternis%d,Thecoloroffillingis%d",

save.pattern,save.color);

/*输出目前填充图模和颜色值*/

getch();

}

第六节

任意封闭图形的填充

截止目前为止,我们只能对一些特定形状的封闭图形进行填充,但还不能对任意封闭图形进行填充。为此,TURBOC提供了一个可对任意封闭图形填充的函数,其调用格式如下:

voidfarfloodfill(intx,inty,intborder);

其中:x,y为封闭图形内的任意一点,border为边界的颜色,也就是封闭图形轮廓的颜色。调用了该函数后,将用由函数setfillstyle()规定的颜色和模式填满整个封闭图形。

注意:

a.如果x或y取在边界上,则不进行填充。

b.如果不是封闭图形则填充会从没有封闭的地方溢出去,填满其它地方。

c.如果x或y在图形外面,则填充封闭图形外的屏幕区域。

d.由border指定的颜色值必须与图形轮廓的颜色值相同,但填充色可选任意颜色。

下例是有关floodfill()函数的用法,该程序填充了bar3d()所画长方体中其它两个未填充的面。

#include"stdio.h"

#include"graphics.h"

main()

{

intgdriver,gmode;

structfillsettingstypesave;

gdriver=DETECT;

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

setbkcolor(BLUE);

cleardevice();

setcolor(LIGHTRED);

setlinestyle(0,0,3);

setfillstyle(1,14);/*设置填充方式*/

bar3d(100,200,400,350,200,1);/*画长方体并填充*/

floodfill(450,300,LIGHTRED);

/*填充长方体另外两个面*/

floodfill(250,150,LIGHTRED);

rectangle(450,400,500,450);/*画一矩形*/

floodfill(470,420,LIGHTRED);/*填充矩形*/

getch();

closegraph();

}

第七节屏幕操作函数

除了清屏函数以外,关于屏幕操作还有以下函数:

voidfarsetactivepage(intpagenum);

voidfarsetvisualpage(intpagenum);

这两个函数只用于EGA,VGA以及HERCULES图形适配器。setctivepage()函数是为图形输出选择激活页。

所谓激活页是指后续图形的输出被写到函数选定的pagenum页面,该页面并不一定可见。setvisualpage()函数才使pagenum所指定的页面变成可见页。页面从0开始(TurboC默认页)。如果先用setactivepage()函数在不同页面上画出一幅幅图像,再用setvisualpage()函数交替显示,就可以实现一些动画的效果。

voidfargetimage(intxl,intyl,intx2,inty2,voidfar*mapbuf);

voidfarputimge(intx,int,y,void*mapbuf,intop);

unsinedfarimagesize(intxl,intyl,intx2,inty2);

这三个函数用于将屏幕上的图像复制到内存,然后再将内存中的图像送回到屏幕上。首先通过函数imagesize()测试要保存左上角为(xl,yl),右上角为(x2,y2)的图形屏幕区域内的全部内容需多少个字节,然后再给mapbuf分配一个所测数字节内存空间的指针。通过调用getimage()函数就可将该区域内的图像保存在内存中,需要时可用putimage()函数将该图像输出到左上角为点(x,y)的位置上,其中getimage()函数中的参数op规定如何释放内存中图像。关于这个参数的定义参见下表。

对于imagesize()函数,只能返回字节数小于64K字节的图像区域,否则将会出错,出错时返回-1。本节介绍的函数在图像动画处理、菜单设计技巧中非常有用。

下面程序模拟两个小球动态碰撞过程。

#include"stdio.h"

#include"graphics.h"

#include"malloc.h"

intmain()

{

inti,gdriver,gmode,size;

void*buf;

gdriver=DETECT;

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

setbkcolor(BLUE);

cleardevice();

setcolor(LIGHTRED);

setlinestyle(0,0,1);

setfillstyle(1,10);

circle(100,200,30);

floodfill(100,200,12);

size=imagesize(69,169,131,231);

buf=malloc(size);

if(!buf)return-1;

getimage(69,169,131,231,buf);

putimage(500,269,buf,COPY_PUT);

for(i=0;i<185;i++){

putimage(70+i,170,buf,COPY_PUT);

putimage(500-i,170,buf,COPY_PUT);

}

for(i=0;i<185;i++){

putimage(255-i,170,buf,COPY_PUT);

putimage(315+i,170,buf,COPY_PUT);

}

getch();

closegraph();

}

第八节用户对文本字符大小的设置

前面介绍的settextstyle()函数,可以设定图形方式下输出文本字符这字体和大小但对于笔划型字体(除8*8点阵字以个的字体),只能在水平和垂直方向以相同的放大倍数放大。

为此TurboC2.0又提供了另外一个setusercharsize()函数,对笔划字体可以分别设置水平和垂直方向的放大倍数。该函数的调用格式为:

voidfarsetusercharsize(intmulx,intdivx,intmuly,intdivy);

该函数用来设置笔划型字和放大系数,它只有在settextstyle()函数中的charsize为0(或USER_CHAR_SIZE)时才起作用,并且字体为函数settextstyle()规定的字体。

调用函数setusercharsize()后,每个显示在屏幕上的字符都以其缺省大小乘以mulx/divx为输出字符宽,乘以muly/divy为输出字符高。

#include"stdio.h"

#include"graphics.h"

intmain()

{

intgdriver,gmode;

gdriver=DETECT;

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

setbkcolor(BLUE);

cleardevice();

setfillstyle(1,2);/*设置填充方式*/

setcolor(WHITE);/*设置白色作图*/

rectangle(100,100,330,380);

floodfill(50,50,14);/*填充方框以外的区域*/

setcolor(12);/*作图色为淡红*/

settextstyle(1,0,8);/*三重笔划字体,放大8倍*/

outtextxy(120,120,"VeryGood");

setusercharsize(2,1,4,1);

/*水平放大2倍,垂直放大4倍*/

setcolor(15);

settextstyle(3,0,5);

/*无衬字笔划,放大5倍*/

outtextxy(220,220,"VeryGood");

setusercharsize(4,1,1,1);

settextstyle(3,0,0);

outtextxy(180,320,"Good");

getch();

closegraph();

return0;

}

第九节文本字体、字型和输出方式的设置

有关图形方式下的文本输出函数,可以通过setcolor()函数设置输出文本的颜色。另外,也可以改变文本字体大小以及选择是水平方向输出还是垂直方向输出。

voidfarsettexjustify(inthoriz,intvert);

该函数用于定位输出字符串。对使用outtextxy(intx,inty,charfar*strtextstring)函数所输出的字符串,其中哪个点对应于定位坐标(x,y)在TurboC2.0中是有规定的。如果把一个字符串看成一个长方形的图形,在水平方向显示时,字符串长方形按垂直方向可分

温馨提示

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

评论

0/150

提交评论