基于SVPWM的异步电机直接转矩控制仿真研究_第1页
基于SVPWM的异步电机直接转矩控制仿真研究_第2页
基于SVPWM的异步电机直接转矩控制仿真研究_第3页
基于SVPWM的异步电机直接转矩控制仿真研究_第4页
基于SVPWM的异步电机直接转矩控制仿真研究_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1引言

1.1交流调速技术的发展和现状

在工农业生产、科技、国防及日常生活等各个领域,电动机作为主要的动力设备被广泛应用。直流电动机相比于交流电动机,结构复杂、体积大、成本和维护费用高,并且不适于环境恶劣的场合,但凭借控制简单、调速平滑和性能良好等特点在早期电气传动领域中一直占据主导地位[1]。从20世纪30年代开始,人们就致力于交流调速技术的研究。特别是20世纪60年代以后,电力电子技术和控制技术的飞速发展,使得交流调速性能得到很大的提高,在实际应用领域也得到认可和快速的普及。交流调速的发展可以说是硬件和软体的发展过程[3]。随着电力电子技术、微处理器技术和自动化控制技术的不断完善和发展,使得交流调速系统的调速范围宽、速度精度高和动态响应快,其技术性能可与直流调速系统相媲美、相竞争,并在工程应用领域中逐渐取代直流调速系统[5]。

交流电动机的高效调速方法是变频调速,它不但能实现无级调速,而且根据负载的特性不同,通过适当调节电压和频率之间的关系,可使电机始终高效运行,并保证良好的动态特性,更能降低起动电流、增加起动转矩和改善电机的起动性能。交流调速控制理论的发展经历了电压-频率控制、矢量控制、直接转矩控制,控制理论的发展使控制系统性能不断提高[2]。

电压-频率协调控制,即恒压频比控制,是指在基频以下调速时维持输出电压幅值和频率的比值恒定,实现恒转矩调速运行;在基频以上调速时,将输出电压维持在额定值,使磁通与频率成反比下降,实现弱磁恒功率调速运行。其控制系统结构简单,成本低,能满足一般的平滑调速,但动、静态性能有限,适用于风机、水泵等负载对调速系统动态性能要求不高的场合[8]。

矢量控制就是将磁链与转矩解耦,有利于分别设计两者的调节器,以实现对交流电机的高性能调速。矢量控制方式又有基于转差频率控制的矢量控制方式、无速度传感器的矢量控制方式和有速度传感器的矢量控制方式等[12]。这样就可以将一台三相异步电机等效为直流电机来控制,因而获得与直流调速系统同样的静、动态性能。

直接转矩控制(DirectTorqueControl——DTC),国外的原文有的也称为Directself-control——DSC,直译为直接自控制,这种“直接自控制”的思想以转矩为中心来进行综合控制,不仅控制转矩,也用于磁链量的控制和磁链自控制[20]。直接转矩控制与矢量控制的区别是,它不是通过控制电流、磁链等量间接控制转矩,而是把转矩直接作为被控量控制,其实质是用空间矢量的分析方法,以定子磁场定向方式,对定子磁链和电磁转矩进行直接控制的。这种方法不需要复杂的坐标变换,而是直接在电机定子坐标上计算磁链的模和转矩的大小,并通过磁链和转矩的直接跟踪实现PWM脉宽调制和系统的高动态性能[9]。

1.2直接转矩控制技术的发展及现状

1971年,德国西门子公司的F.Blaschke等提出的“感应电动机磁场定向的控制原理”和美国P.C.Custman和A.A.Clark申请的专利“感应电动机定子电压的坐标变换控制”,经过不断改进和发展,形成了现已得到普遍应用的矢量控制变频调速系统[9]。矢量控制的出现使交流调速控制技术步入了一个全新的阶段,其控制思想是通过测量和控制异步电动机定子电流矢量,根据磁场定向原理,经坐标变换将定子电流矢量分解为励磁电流分量和转矩电流分量,分别进行独立控制,从而获得与直流调速系统同样的动态性能。尽管矢量控制从理论上可以使交流调速系统的性能得到显著改善,但在实现时仍有许多技术问题需解决和完善,如复杂的坐标变换、需准确观测转子磁链、对电机的参数依赖性大和难以保证完全解耦等,使实际控制性能难于达到理论分析结果[12]。

1985年,德国鲁尔大学的M.Depenbrock教授首次提出了异步电动机的直接转矩控制理论(DirectTorqueControl,DTC),1987年,又将该理论推广到弱磁调速范围。直接转矩控制是交流调速控制技术的又一次飞跃,与矢量控制技术相比,它是在定子坐标系下分析交流电动机的数学模型,不需要为解耦而简化交流电动机的数学模型,强调对电磁转矩的直接控制,避免了矢量控制中复杂的坐标变换和参数运算[9]。直接转矩控制中磁场定向采用定子磁链,仅需定子电阻即可观测得到,大大减小了矢量控制性能易受电机参数影响的问题。直接转矩控制技术以其新颖的控制思想,简洁的系统结构,优良的动静态性能受到研究学者们越来越多的关注。

直接转矩控制技术的四个主要特点:

1、直接转矩控制直接定子坐标系下分析交流电动机的数学模型、控制电动机的磁链和转矩。

2、直接转矩控制磁场定向所用的是定子磁链,只要知道定子电阻就可以把它观测出来。

3、直接转矩控制采用空间矢量的概念来分析三相交流电动机的数学模型和控制其各物理量,使问题变得特别简单明了。

4、直接转矩控制强调的是转矩的直接控制与效果。它包含有两层意思:①直接控制转矩;②对转矩的直接控制。因此它的控制效果不取决于电动机的数学模型是否能够简化,而是取决于转矩的实际状况。对转矩的这种直接控制方式也称之为“直接自控制’’。这种“直接自控制’’的思想不仅能够用于转矩控制,也适用磁链量的控制,但以转矩为中心来进行综合控制[9]。

目前该技术已被用于电力机车牵引和大功率交流传动上。1995年ABB公司首先推出的ACS600系列直接转矩控制通用变频器,动态转矩响应速度已达到<2ms,在带速度传感器PG时的静态速度精度达土0.001%,在不带速度传感器PG的情况下即使受到输入电压的变化或负载突变的影响,同样可以达到±0.1%的速度控制精度。其他公司也以直接转矩控制为努力目标,如富士公司的FRENIC5000VG7S系列高性能无速度传感器矢量控制通用变频器,虽与直接转矩控制方式还有差别,但它也已做到了速度控制精度±0.005%,速度响应100Hz、电流响应800Hz和转矩控制精度±3%(带PG)。其他公司如日本三菱、日立、芬兰VASON等最新的系列产品采取了类似无速度传感器控制的设计,性能有了进一步提高[9]。

但是直接转矩控制作为一种诞生不久的新理论、新技术,自然又有其不完善、不成熟之处。目前,定子磁链观测器、转矩观测器、无速度传感器是其研究的热点。现代直接转矩控制技术方向是基于空间矢量脉宽调制、模糊控制、神经网络控制、模糊神经网络控制、非线性控制、变结构控制,使得直接转矩控制技术控制性能更加完善。

1.3空间矢量调制技术的发展和现状

空间矢量脉宽调制(SVPWM)是脉宽调制(PWM)的一种,SVPWM的发展是由脉宽调制发展而来。随着电力电子技术、微电子技术和自动控制技术的发展及各种新的理论方法,如现代控制理论、非线性系统控制思想的应用,SVPWM控制技术获得了很大的发展。

在SVPWM的算法方面有许多理论的研究,同时在算法的硬件介质方向也是不断的提高和改进。例如在早期使用单片机来实现算法,后来是用DSP来实现控制算法,使得控制性能和实时性有很大的提高。基于调制函数的SVPWM算法。多电平逆变器SVPWM的简单算法,该算法易于确定参考矢量的位置及其作用时间,结合相应的开关序列产生逆变器的开关信号。

在应用领域,例如在逆变装置中,基于通用多电平SVPWM算法的三电平无速度传感器矢量控制系统,SVPWM逆变电源中的应用,变频压缩机,SVPWM技术在电动游览车中的应用。在伺服系统,应用在直流无刷电机,直流无刷伺服电机、步进电机、交流永磁同步伺服电机。在动力拖动方面,基于SVPWM设计的驱动电路应用于混合动力汽车电机驱动系统,异步电机调速系统,永磁同步电机的调速系统等。特别是近年来有很多关于SVPWM一些实际的应用例子。虽然还是在研究和起步阶段,虽然由于性价比不高,但是在一些特殊的场合是别的控制方法无法比拟的[8]。

2直接转矩控制基本原理

2.1异步电动机动态数学模型

异步电动机的动态数学模型具有高阶、非线性、强耦合、多变量的特征,要获得高动态调速性能,必须充分研究异步电动机的动态数学模型[25]。为了建立动态数学模型,将作如下假设:

(1)电动机的三相定子绕组和转子绕组均匀对称分布在空间中,即在空间互差

120°电角度,所产生的磁动势沿气隙圆周按正弦规律分布,忽略空间谐波;

(2)忽略磁路饱和的影响,各相绕组的自感和互感都是恒定不变的;

(3)忽略铁芯损耗,涡流;

(4)不考虑频率变化和温度变化对绕组电阻的影响。

2.1.1坐标变换

在直接转矩控制系统中,采用空间矢量的数学分析方法,在静止两相定子坐标系下对异步电动机进行分析[22]。异步电动机三相原始数学模型相当复杂,需通过坐标变换简化为静止两相坐标系下的动态数学模型,以便于进行分析和计算。异步电动机的定子绕组是静止的,只需进行坐标变换,即三相静止坐标系变换到两相静止坐标系(3s/2s变换),而转子绕组是旋转的,需要通过3s/2s变换和2r/2s变换(两相旋转坐标到两相静止坐标变换),得到静止两相坐标系。坐标变换必须在功率不变的条件下,按照磁动势相等的原则进行。

(1)3s/2s变换

在功率不变的条件下,三相静止坐标系到两相静止坐标系的变换矩阵为:

(2-1)

(2)2r/2s变换

令静止两相坐标系中α、β绕组与旋转两相坐标系中d、q绕组匝数相同,磁动势矢量F相等。如图2.1所示,两相旋转坐标系dq到两相静止坐标系αβ的变换矩阵C2r/2s为:

图2.12r/2s坐标变换

(2-2)

2.1.2静止两相坐标系下的异步电动机动态数学模型

经过坐标变换,得到两相静止坐标系下的交流异步电动机动态数学模型为:

(1)电压方程

(2-3)

式中,、分别为定子绕组三相电压的、轴分量;、分别定子绕组三相电流的、轴分量;、分别转子绕组三相电压的、轴分量;、分别为转子绕组三相电流的、轴分量;为定子绕组电阻;为转子绕组电阻;为定子与转子绕组间的互感;、分别为定、转子绕组的自感;为转子速度;p为微分算子。对于鼠笼型异步电动机,转子是短路的,所以转子侧电压分量和为零。

(2)磁链方程

(2-4)

式中,、分别为定子绕组三相磁链的、轴分量;、分别为转子绕组三相磁链的、轴分量。

(3)转矩方程

(2-5)

式中,为电机极对数。

(4)运动方程

(2-6)

式中,TL为负载转矩;J为转动惯量。

2.2直接转矩控制系统结构

在分析直接转矩控制基本原理的基础上,给出了异步电动机的直接转矩控制系统基本结构图,如图2.2所示。

图2.2直接转矩控制系统的基本结构图

直接转矩控制系统是一个双闭环的调速系统,内环采用磁链和转矩闭环控制,通过对电机定子端的电压和电流的采样信号进行3s/2s坐标变换,计算出在α-β坐标系下的电压usα、usβ和电流isα、isβ,通过磁链和转矩观测模块得到磁链反馈量|Ψs|、转矩反馈量Tg和磁链位置角qs,分别与给定磁链值|Ψ|*和转矩值Tg*比较,偏差值ΔΨs和ΔTe经过磁链滞环比较器和转矩滞环比较器,得到磁链偏差信号ΨQ和转矩偏差信号TQ,根据ΨQ和TQ以及定子磁链所处的扇区Sn共同确定电压空间矢量,实现对电压型逆变器开关器件的控制。

2.3磁链控制和转矩控制

2.3.1磁链控制

磁链控制环包括磁链观测和磁链调节,其作用是保持定子磁链幅值恒定以使电机获得良好的动态性能,并根据观测器得到的磁链相位来判断磁链矢量所处的扇区位置。

(1)磁链观测器

磁链观测器是根据检测得到的定子电压、定子电流和转速等物理量,在控制中实时地估算出定子磁链的幅值和相位。定子磁链观测器最常用的方法是根据电机定子电压方程建立电压模型(u-i模型),其模型公式为:

(2-7)

定子磁链的幅值和相位分别是:

(2-8)

(2-9)

(2)磁链调节

直接转矩控制系统中,磁链调节是对定子磁链幅值进行两点式调节,通过磁链滞环比较器实现,实际结构上是施密特触发器,如图2.3所示。调节器的容差宽度为±eψ,即定子磁链幅值相对于给定值所允许的波动范围。磁链调节器的输入信号是磁链给定值|ψs|*与磁链反馈值|ψs|之差,其输出值为磁链开关信号ψQ。

图2.3磁链滞环比较器

根据调节器输出信号来选择合适的空间电压矢量对其进行控制,确保定子磁链幅值恒定和控制其旋转速度。当ψQ=1时,表示实际磁链值已达调节器下限,选择合适的电压矢量来增加磁链;当ψQ=0时,表示实际磁链值已达比较器上限,选择电压矢量来减小磁链,通过反复调节,使磁链轨迹逼近圆形。

2.3.2转矩控制

(1)转矩观测器

根据已给出的定子磁链与转子磁链矢量积表达的电磁转矩方程式,可以得到电磁转矩观测器的数学模型为:

(2-10)

转矩调节的作用就是实现对转矩的直接控制。同样采用滞环比较器来实现,与磁链控制不同的是,电磁转矩控制采用三点式调节,引入了零电压矢量,主要为了减少转矩脉动,如图2.4所示。转矩给定值Te*与反馈值Te之差作为调节器的输入信号,当Te*-T≥eT时,调节器输出信号TQ为1,此刻选择合理的电压矢量使电磁转矩增大;当-eT≤Te*-T≤eT时,TQ为0,应引入零电压矢量来保持转矩;当Te*-T≤-eT时,TQ为-1,应减小转矩。

图2.4电磁转矩滞环比较器

2.4定子电压空间矢量选择

要选择正确的定子电压空间矢量,可根据磁链偏差信号ψQ、转矩偏差信号TQ和定子磁链矢量ψs所处的扇区位置Sn来确定。定子磁链矢量扇区的划分是在两相静止a-b坐标系下完成的,传统的划分方法是将三相坐标系的a轴与α轴重合,以6个电压空间矢量为界线,每隔60o划分为一个磁链扇区,但该方法使得在同一扇区内同一电压空间矢量对定子磁链幅值的增减效果不一致。因此,本文采用如图2.5的定子磁链扇区划分方式,即以b轴的负半轴为起点,每隔60o划分一个扇区,分别用S1~S6来表示。

图2.5定子磁链矢量扇区划分图

扇区Sn所对应的扇区号为n,扇区号n的计算可以利用Ψs的位置角θs来决定:

(2-11)

根据计算出的ΨQ、TQ和Sn,按照磁链和转矩的控制原理,选择下一个控制周期需要的电压矢量。最优的电压矢量选择方式不仅可以得到圆形磁链轨迹,减小转矩脉动,而且能减小开关器件切换次数[16]。所以制定一个最优的选择电压矢量的开关表在直接转矩控制系统中至关重要。

若电动机处于逆时针旋转方向,假设定子磁链位于S1扇区,当实际转矩达到下限Te*-eT时,即TQ=1,则选用非零电压矢量来增加转矩,此时分两种情况:

(1)实际定子磁链幅值达到下限|Ψs|*-eΨ时,即ΨQ=1,则用电压矢量u6达到同时增加转矩和磁链的目的;

(2)实际定子磁链幅值达到上限|Ψs|*+eΨ时,即ΨQ=0,则用电压矢量u2,达到同时增加转矩和减少磁链的目的。

相似地在S1扇区,当实际转矩达到上限Te*+eT时,TQ=-1,则用非零电压矢量减少转矩,同时也分两种情况:

(1)ΨQ=1,连通u5,减少转矩同时增加磁链;

(2)ΨQ=0,连通u1,减少转矩同时减少磁链。

由此可以确定直接转矩控制系统的开关表选择如表2.1所示,零电压u0、u7的选择以减少开关切换次数为原则。

表2.1电压矢量开关选择表

yQ

TQ

Sn

1

2

3

4

5

6

1

u6(110)

u2(010)

u3(011)

u1(001)

u5(101)

u4(100)

1

0

u7(111)

u0(000)

u7(111)

u0(000)

u7(111)

u0(000)

-1

u5(101)

u4(100)

u6(110)

u2(010)

u3(011)

u1(001)

1

u2(010)

u3(011)

u1(001)

u5(101)

u4(100)

u6(110)

0

0

u0(000)

u7(111)

u0(000)

u7(111)

u0(000)

u7(111)

-1

u1(001)

u5(101)

u4(100)

u6(110)

u2(010)

u3(011)

从表2.1可以看出,ψQ=1,TQ=1行的电压矢量超前对应扇区60o,该行电压矢量既增加磁链又增加转矩;ψQ=1,TQ=-1行的电压矢量滞后对应扇区60o,该行电压矢量用来增加磁链和减小转矩;ψQ=0,TQ=1行的电压矢量超前对应扇区120o,该行电压矢量用来减小磁链和增加转矩;ψQ=0,TQ=-1行的电压矢量滞后对应扇区120o,该行电压矢量用来减小磁链和减小转矩。

2.5定子磁链观测器研究

2.5.1传统的定子磁链观测模型

根据图2.2的分析可知,直接转矩控制技术强调对电机转矩的直接控制,要获得良好的动静态性能,就需要准确的估算转矩,而转矩的估算需要用到定子磁链观测值,并且正确的电压空间矢量需要通过准确的转矩大小以及定子磁链的大小和位置来选择的。因此,定子磁链观测的准确性直接关系到直接转矩控制效果和电机的运行性能。在直接转矩控制系统中,无论是按六边形磁链轨迹控制还是圆形磁链轨迹控制,都需要定子磁链的大小和相位。由于采用直接检测方法存在着制造工艺、适用环境和技术上的问题,测量误差较大,故在实际中多采用间接观测的方法,即根据容易检测的定子电压、定子电流和转速等物理量,建立定子磁链的观测模型,实时地计算出定子磁链的幅值和相位常用的定子磁链观测模型包括以下三种[19]。

2.5.2基于定子电压和电流的磁链观测模型(u-i模型)

由异步电动机定子电压矢量方程,可得:

(2-12)

根据式(2-12)可以得到u-i模型结构,如图2.6所示。

图2.6定子磁链u-i模型结构图

u-i模型结构简单,便于计算,仅需知道的电机参数就是易于确定的定子电阻,而且和也是容易精确检测的物理量,使得模型的鲁棒性高。由于定子电阻受温度的变化而变化,u-i模型只有在10%额定转速以上时,特别是30%额定转速以上时,使得,定子电阻引起的测量误差和积分漂移的影响才会变得很小,采用此模型才能比较准确地观测出定子磁链。但是,当转速低于30%的额定转速时,定子电阻上的压降不能被忽略,导致在稳定情况下只有误差被积分。因此该模型只适用于10%-30%额定转速以上。

2.5.3基于定子电流和转速的磁链观测模型(i-n模型)

由异步电机的定、转子磁链方程式和转子电压方程式:

(2-13)

可以得到在坐标系下i-n模型的方程式(2-14)和(2-15)以及模型结构如图2.7所示。

(2-14)

(2-15)

式中,为转子时间常数。

图2.7定子磁链i-n模型结构图

与u-i模型相比,i-n模型不受定子电阻变化的影响,但受转子电阻、漏电感、主电感等电机参数以及电机转速测量精度的影响,使得观测模型的鲁棒性降低,引起误差的因素增多,系统结构的复杂度增加。由于转速测量误差的存在,i-n模型不适用于高速阶段。i-n模型克服了积分器的不良影响,但是严重依赖电机的参数,需要精确检测电机的转速,而速度传感器的安装又大大地降低了传动系统的可靠性。因此该模型适用于30%额定转速以下的情况。

2.5.4基于定子电压和转速的磁链观测模型(u-n模型)

综合以上u-i模型和i-n模型的特点,可以采用将两种磁链观测模型相结合,即在全速范围内都适用的u-n模型,它是通过定子电压和转速来获得定子磁链。该模型实现了u-i模型和i-n模型两者之间的平滑过渡,在高速区域,定子磁链的观测实际工作在u-i模型;而在低速区域,实际工作在i-n模型下。u-n模型可以结合式(2-12)、(2-14)、(2-15)来建立该模型综合了u-i模型和i-n模型的优点,解决了模型之间的切换问题,引入PI电流调节器,减少了定子电阻偏差所产生的观测误差,提高了磁链观测模型的精度。但是,模型结构复杂,实现起来相对困难,目前实际使用的较少。

综上分析可以看出,三种磁链观测模型各有其优缺点,其中u-i模型结构简单,高速时观测精度高,对电机参数的依赖仅限于定子电阻,使得系统鲁棒性好,因此本文采用u-i模型作为定子磁链观测模型,这也成为了直接转矩控制优势之一。

3空间矢量脉宽调制技术

3.1脉宽调制原理

SVPWM的理论基础是平均值等效原理,即在一个开关周期内通过对基本电压矢量加以组合,使其平均值与给定电压矢量相等[19]。在某个时刻,电压矢量旋转到某个区域中,可由组成这个区域的两个相邻的非零矢量和零矢量在时间上的不同组合来得到。两个矢量的作用时间在一个采样周期内分多次施加,从而控制各个电压矢量的作用时间,使电压空间矢量接近按圆轨迹旋转,通过逆变器的不同开关状态所产生的实际磁通去逼近理想磁通圆,并由两者的比较结果来决定逆变器的开关状态,从而形成PWM波形。逆变电路如图3.1示。

设直流母线侧电压为Udc,逆变器输出的三相相电压为UA、UB、UC,其分别加在空间上互差120°的三相平面静止坐标系上,可以定义三个电压空间矢量UA(t)、UB(t)、UC(t),它们的方向始终在各相的轴线上,而大小则随时间按正弦规律做变化,时间相位互差120°。假设Um为相电压有效值,f为电源频率,则有:

(3-1)

其中,,则三相电压空间矢量相加的合成空间矢量U(t)就可以表示为:

(3-2)

可见U(t)是一个旋转的空间矢量,它的幅值为相电压峰值的1.5倍,Um为相电压峰值,且以角频率ω=2πf按逆时针方向匀速旋转的空间矢量,而空间矢量U(t)在三相坐标轴(a,b,c)上的投影就是对称的三相正弦量。

图3.1逆变电路

由于逆变器三相桥臂共有6个开关管,为了研究各相上下桥臂不同开关组合时逆变器输出的空间电压矢量,特定义开关函数Sx(x=a、b、c)为:

(3-3)

(Sa、Sb、Sc)的全部可能组合共有八个,包括6个非零矢量Ul(001)、U2(010)、U3(011)、U4(100)、U5(101)、U6(110)、和两个零矢量U0(000)、U7(111),下面以其中一种开关组合为例分析,假设Sx(x=a、b、c)=(100),此时

(3-4)

求解上述方程可得:UaN=2Ud/3、UbN=-Ud/3、UcN=-Ud/3。同理可计算出其它各种组合下的空间电压矢量,列表如下:

表3.1开关状态与相电压和线电压的对应关系

Sa

Sb

Sc

矢量符号

线电压

相电压

Uab

Ubc

Uca

UaN

UbN

UcN

0

0

0

U0

0

0

0

0

0

0

1

0

0

U4

Udc

0

0

1

1

0

U6

Udc

Udc

0

0

1

0

U2

0

Udc

Udc

0

1

1

U3

0

Udc

Udc

0

0

1

U1

0

0

Udc

1

0

1

U5

Udc

0

Udc

1

1

1

U7

0

0

0

0

0

0

图3.2给出了八个基本电压空间矢量的大小和位置

图3.2电压空间矢量图

其中非零矢量的幅值相同(模长为2Udc/3),相邻的矢量间隔60°,而两个零矢量幅值为零,位于中心。在每一个扇区,选择相邻的两个电压矢量以及零矢量,按照伏秒平衡的原则来合成每个扇区内的任意电压矢量,即:

(3-5)

或者等效成下式:

(3-6)

其中,Uref为期望电压矢量;T为采样周期;Tx、Ty、T0分别为对应两个非零电压矢量Ux、Uy和零电压矢量U0在一个采样周期的作用时间;其中U0包括了U0和U7两个零矢量。式(3-6)的意义是,矢量Uref在T时间内所产生的积分效果值和Ux、Uy、U0分别在时间Tx、Ty、T0内产生的积分效果相加总和值相同。

所以要产生三相正弦波电压,可以利用以上电压向量合成的技术,在电压空间向量上,将设定的电压向量由U4(100)位置开始,每一次增加一个小增量,每一个小增量设定电压向量可以用该区中相邻的两个基本非零向量与零电压向量予以合成,如此所得到的设定电压向量就等效于一个在电压空间向量平面上平滑旋转的电压空间向量,从而达到电压空间向量脉宽调制的目的。

3.2SVPWM法则推导

三相电压给定所合成的电压向量旋转角速度为ω=2πf,旋转一周所需的时间为T=1/f;若载波频率是fs,则频率比为R=fs/f。这样将电压旋转平面等切割成R个小增量,即设定电压向量每次增量的角度是:

今假设欲合成的电压向量Uref在第Ⅰ区中第一个增量的位置,如图3.3所示,欲用U4、U6、U0及U7合成,用平均值等效可得:Uref*Tz=U4*T4+U6*T6。

图3.3电压空间向量在第Ⅰ区的合成与分解

在两相静止参考坐标系(α,β)中,令Uref和U4间的夹角是θ,由正弦定理

可得:(3-7)

因为|U4|=|U6|=2Udc/3,所以可以得到各矢量的状态保持时间为:

(3-8)

式中m为SVPWM调制系数(调制比),m=|Uref|/Udc。

而零电压向量所分配的时间为:

T7=T0=(TS-T4-T6)/2(3-9)

T7=(TS-T4-T6)(3-10)

得到以U4、U6、U7及U0合成的Uref的时间后,接下来就是如何产生实际的脉宽调制波形。在SVPWM调制方案中,零矢量的选择是最具灵活性的,适当选择零矢量,可最大限度地减少开关次数,尽可能避免在负载电流较大的时刻的开关动作,最大限度地减少开关损耗。

3.3SVPWM调制算法

通过以上SVPWM的法则推导分析可知要实现SVPWM信号的实时调制,首先需要知道参考电压矢量Uref所在的区间位置,然后利用所在扇区的相邻两电压矢量和适当的零矢量来合成参考电压矢量。电压矢量调制的控制指令是矢量控制系统给出的矢量信号Uref,它以某一角频率ω在空间逆时针旋转,当旋转到矢量图的某个600扇区中时,系统计算该区间所需的基本电压空间矢量,并以此矢量所对应的状态去驱动功率开关元件动作。当控制矢量在空间旋转360°后,逆变器就能输出一个周期的正弦波电压。

3.3.1合成矢量Uref所处扇区N的判断

空间矢量调制的第一步是判断由Uα和Uβ所决定的空间电压矢量所处的扇区。假定合成的电压矢量落在第I扇区,可知其等价条件如下:

00<arctan(Uβ/Uα)<600

以上等价条件再结合矢量图几何关系分析,可以判断出合成电压矢量Uref落在第X扇区的充分必要条件,得出表3.2:

表3.2扇区选择条件

扇区

落在此扇区的充要条件

I

Uα>0,Uβ>0且Uβ/Uα<

Uα>0,且Uβ/|Uα|>

Uα<0,Uβ>0且-Uβ/Uα<

Uα<0,Uβ<0且Uβ/Uα<

Uβ<0且-Uβ/|Uα|>

Uα>0,Uβ<0且-Uβ/Uα<

若进一步分析以上的条件,有可看出参考电压矢量Uref所在的扇区完全由Uβ,

Uα-Uβ,-Uα-Uβ三式决定,因此令:

(3-11)

再定义,若U1>0,则A=1,否则A=0;若U2>0,则B=1,否则B=0;若U3>0,则C=1,否则C=0。可以看出A,B,C之间共有八种组合,但由判断扇区的公式可知A,B,C不会同时为1或同时为0,所以实际的组合是六种,A,B,C组合取不同的值对应着不同的扇区,并且是一一对应的,因此完全可以由A,B,C的组合判断所在的扇区。为区别六种状态,令N=4*C+2*B+A,则可以通过下表计算参考电压矢量Uref所在的扇区。

表3.3P值与扇区对应关系

N

3

1

5

4

6

2

扇区号

采用上述方法,只需经过简单的加减及逻辑运算即可确定所在的扇区,对于提高系统的响应速度和进行仿真都是很有意义的。

4基于空间矢量脉宽调制的直接转矩控制系统

基于空间矢量脉宽调制的直接转矩控制系统(SVM-DTC)是采用PI控制器取代滞环调节器来同时考虑转矩、磁链偏差的大小和方向,利用SVPWM模块取代开关表来根据二者的偏差实时地推导出任意大小、方向的电压矢量施加在电机的定子绕组上,而不局限于逆变器固定的输出电压矢量,并且实现逆变器开关频率恒定,从而可以大大降低转矩、磁链的脉动[14]。

(1)空间矢量脉宽调制技术即空间电压矢量调制技术(SVPWM)是把逆变器和电动机视为一体,以圆形旋转磁场为目标,用逆变器不同的开关模式产生的电压空间矢量来控制磁链轨迹。SVPWM与正弦PWM调制技术(SPWM)相比,具有直流母线电压利用率高、电机转矩波动小、电流畸变小、开关损耗小和数字化实现容易等优点。SVPWM技术的基本思想是利用六个空间电压矢量把空间等分为6个扇区,如图4.1所示,控制系统给出所需施加的目标空间电压矢量Us*,Us*位于某个扇区时便由形成这个扇区的两个非零电压矢量和零矢量等效合成。利用原有的8个空间电压矢量可以合成所需的任意的空间电压矢量,从而使电机气隙磁通更好的逼近圆形。

图4.1SVPWM扇区分布

Us*所处扇区位置的判断可利用参考电压矢量的分量usα*和usβ*,将其变换在a、b、c三项坐标系下,其变换关系为:

(4-1)

定义开关函数如下:

(4-2)

(4-3)

根据图4.1可得出S值与Us*所处扇区号的对应关系如表4.1所示。

表4.1S值与扇区号的对应关系

S

1

2

3

4

5

6

扇区号

在每个扇区内,都可利用两个相邻非零电压矢量和作用时间的不同,来等效来合成所需要的目标电压矢量Us*。假设Us*位于I扇区,两个相邻有效电压矢量U4、U6和零电压矢量合成Us*,有下式成立:

(4-4)

式中,Ts为一个采样周期,Tx、Ty和T0为U4、U6和零电压矢量的作用时间。

SVPWM的调制载波为等腰三角形,为了使输出的PWM波形在一个载波周期Ts内对称本文采用了如图4.2(a)的Us*合成方式,该方法是把每个电压矢量的作用时间都一分为二,同时将零矢量作用时间等分给U0和U7。图4.2(b)给出了I扇区中Us*的SVPWM调制输出波形,一个调制周期内的开关秩序为U0-U4-U6-U7-U7-U6-U4-U0这样保证了电压矢量切换时只有一个开关器件动作,降低了开关损耗和逆变器的输出谐波含量。

图4.2空间电压矢量调制

(a)矢量合成(b)开关函数

由图4.2(a)和式(4-4)可得:

(4-5)

6个非零电压空间矢量的幅值是相等的,即|U1|=|U2|=2/3Udc代入上式可得:

(4-6)

计算出Tx和Ty后,可以由T0=Ts-Tx-Ty得到T0。

同理,其它扇区计算方法同上,分别计算6个扇区后,可得到以下规律,令

(4-7)

对应于不同的扇区,Tx、Ty按表4.2取值。

表4.2Tx、Ty赋值表

扇区

Tx

-Z

Z

X

-X

-Y

Y

Ty

X

Y

-Y

Z

-Z

-X

定义

(4-8)

Ta,Tb,Tc是与三角波进行比较以产生PWM波形的三个比较值。它们在不同的扇区对应不同矢量的作用时间,从图4.2(b)看出各扇区内三相a,b,c脉冲的对应延迟时间Ta,Tb,Tc如表4.3所示。

表4.3a、b、c三相在各扇区的Ta、Tb、Tc

扇区号

a相

Ta

Tb

Tc

Tc

Tb

Ta

b相

Tb

Ta

Ta

Tb

Tc

Tc

c相

Tc

Tc

Tb

Ta

Ta

Tb

(2)基于SVPWM直接转矩控制系统

在直接转矩控制系统中应用SVPWM技术,关键是确定需要调制的控制量。美国学者Habetler学者提出的无差拍控制技术是在一个控制周期内根据磁链和转矩的误差计算出能使误差为零的定子电压矢量,并在下一个控制周期中使用SVPWM技术将其合成来实现控制[19]。无差拍技术能在理论上完美解决ST-DTC存在的问题,但实际计算量较大,不易实现。本文采用PI调节器获得可以补偿磁链和转矩误差的参考电压量,再由SVPWM技术合成目标电压矢量来控制逆变器,其方法直接简单,利于实现。

异步电动机在以WΨs旋转的坐标系d-q下的定子电压矢量方程式(4-9),WΨs为定子磁链矢量Ψs相对于静止α轴的旋转角速度,d轴与定子磁链矢量方向一致,Ψs=Ψsd+Ψsq即Ψs=Ψsd、Ψsq=0,定子电压矢量方程式可以写成式(4-10)和(4-11)

(4-9)

(4-10)

(4-11)

电磁转矩方程式可以转化为:

(4-12)

由式(4-11)和式(4-12)可以得到:

(4-13)

由式(4-10)可知,定子电压矢量的d轴分量usd可以影响定子磁链的变化;从式(4-13)可见,在Ψs恒定的情况下,定子电压矢量的q轴分量usq可以用来产生电磁转矩的控制量,也就是说,在一个控制周期内,通过PI调节器可以得到消除磁链和转矩误差的电压空间矢量。

基于SVPWM的直接转矩控制系统结构图如图4.3所示,包括定子磁链闭环控制、电磁转矩闭环控制和速度闭环控制。根据|Ψs|*和|Ψs|之间的偏差ΔΨs,Te*和Te之间的偏差ΔTe,经过两个PI控制器得到旋转参考坐标系下的参考定子电压矢量分量usd、usq,再经反旋转坐标变换得到静止坐标系下的分量usα*、usβ*,作为SVPWM模块的参考电压矢量,最终得到恒定开关频率的开关信号控制逆变器。

图4.3基于SVPWM的直接转矩控制系统结构图

5基于SVPWM的直接转矩系统仿真研究

5.1MATLAB/Simulink仿真工具简介

MATLAB是Mathwork(MatrixLaboratory,即矩阵实验室)公司于1984年推出的用于科学计算的工具软件。它是一种集命令翻译、科学数值计算和图形处理于一体的交互式软件。经过不断发展,1993年出现了基于框图的仿真平台Simulink,它以Matlab为核心的数字、图像、编程功能基础之上的仿真和模型设计工具,用于真实的动态系统的建模、仿真和分析。

Simulink最为显著的特点是,具有控制系统模型图形组态输入与仿真功能,即只需用户根据建立的数学模型和一些具体的模拟要求,从模块库中选择合适的模块组合在一起,只需要知道所选模块的输入输出关系,而不必知道模块内部是如何实现功能的,通过对这些基本模块的调用组成控制系统仿真模型,进行仿真与分析。这一特点使得一个非常复杂系统的仿真建模变得相当容易,为一般普通仿真软件所不具有的。Simulink提供了各种仿真工具,尤其是不断扩展、内容丰富的模块库为系统仿真提供了极大的便利。Simulink中的电力系统模块库涵盖了电路、电力电子、电气传动和电力系统中常用的基本元件和模块,可以方便的进行电力电子电路、电机控制系统和电力系统的仿真[28]。此外,用户还可根据自己的需求开发并封装新模块以扩充现有的模块库。新模型可以由现有模型组合得到,也可以通过系统提供的S-Function函数,利用Matlab语言、C语言、C++语言编程实现。

5.2直接转矩控制系统基本仿真模块

直接转矩控制系统的主要特点是不需要复杂的坐标变换,通过直接控制转矩和磁链达到转矩的快速响应。直接转矩控制系统的结构已在第二节做过介绍,本节将重点介绍各个模块的仿真模型设计。

5.3坐标变换模块

根据式(2-1)、(2-2),有:

图5.13/2坐标变换仿真图

图5.22r/2s坐标变换仿真图

5.4磁链和转矩观测模块

由于定子磁链和电磁转矩不能够直接测量得到,需用通过容易测量的定子侧电压、电流对其进行估算,本设计采用结构简单的u-i磁链观测模型,根据式(2-8)、(2-9)和(2-10)得到磁链幅值、磁链位置角和转矩的计算模型的仿真图,如图5.3所示。

图5.3磁链和转矩观测模块仿真图

5.5SVPWM模块

5.5.1电压矢量所处扇区判断模块

根据式(4-1)、(4-3),有:

图5.4所处扇区判断模块仿真图

5.5.2扇区基本电压矢量的工作时间计算模块

根据式(4-7)和表4.2分别得到图5.5和5.6:

图5.5X、Y、Z计算模块仿真图

图5.6各扇区T1、T2时间模块仿真图

5.5.3开关切换时间

根据式(4-8),表4.3,有:

图5.7开关时间切换模块仿真图

5.5.4SVPWM波生成模块图

图5.8SVPWM波生成模块仿真图

5.5.5SVPWM模块图

根据图5.4-5.8,有:

图5.9SVPWM模块仿真图

5.6基于SVPWM的直接转矩控制系统仿真模型

图5.10基于SVPWM的异步电机直接转矩控制仿真图

图5.11直接转矩控制仿真图

5.7仿真结果

仿真实验所用异步电动机参数为:额定功率PN=15KW,额定电压UN=380V,频率f=50Hz,定子电阻Rs=0.435Ω,转子电阻Rr=0.816Ω,定子漏电感为Ls=4mH,转子漏电感为Lr=2mH,定转子互感Lm=69.31mH,极对数p=2,转动惯量J=0.0891kg·m2。

图5.12是对基于SVPWM的异步电机直接转矩控制进行的低速性能仿真,其中定转速80r/min,转矩10N.m。

图5.12基于SVPWM的低速性能仿真

(a)图为定子磁链轨迹,(b)图为定子a相电流波形,(c)图为转矩波形,(d)图为转速波形。

图5.13为负载转矩阶跃状态下的系统仿真波形,转速500r/min,负载转矩在0.3s时由10N.m跳变为5N.m。左图为传统直接转矩控制系统仿真波形,右图为基于SVPWM的直接转矩控制系统的仿真波形。

图5.13仿真比较图

(a)直接转矩的定子磁链仿真波形(b)为SVPWM直接转矩的定子磁链仿真波形

(c)直接转矩的电磁转矩仿真波形(d)为SVPWM直接转矩的电磁转矩仿真波形

(e)为直接转矩的定子电流仿真波形(f)为SVPWM直接转矩的定子电流仿真波形

以上是对直接转矩和基于SVPWM的直接转矩两种控制策略的仿真结果进行比较。从图可以看出,直接转矩系统的转速响应快,但转矩脉动和电流谐波很大,其低速性能很不好。直接转矩中采用PI控制器保证了磁链和转矩的控制精度,使得系统的转矩脉动低、电流谐波小;采用SVPWM合成技术保证了开关频率恒定,过电压扇区时没有磁链的畸变,有效改善了系统的低速性能。因此,从以上的分析可以看出,基于SVPWM的直接转矩相对于传统直接转矩能够有效的减小转矩和磁链脉动、降低电流谐波,提高系统的低速性能。基于空间矢量脉宽调制技术的直接转矩控制系统定子磁链轨迹更接近于圆形,定子磁链和定子电流畸变小,转矩脉动得到有效抑制。

6总结

在现代交流调速领域中,直接转矩控制是继矢量控制之后的又一个主要研究方向,它的控制思想明确、控制结构简洁、具有良好的动静态性能。近年来随着现代控制理论、电力电子技术、微机控制技术等方面的迅速发展,使直接转矩控制技术不断得到完善。由于传统直接转矩控制系统是在定子坐标系下直接计算和控制磁链和转矩,借助离散的调节器产生PWM信号,直接对逆变器的开关状态进行控制,造成了磁链和转矩脉动大、电流谐波大和逆变器开关频率不固定等缺陷。

为了改善传统直接转矩控制系统的性能,本文在阅读大量国内外文献的基础上,对直接转矩控制技术的定子磁链观测器和控制策略两方面进行了大量的理论分析、实际参数仿真和实验研究。主要工作可以概述为:

(1)分析了异步电动机的动态数学模型以及直接转矩控制系统,针对传统开关表控制方案中的不足,着重研究了磁链、转矩的脉动特性,详细分析了引起脉动的因素,提出了改进的直接转矩控制策略,即基于SVPWM的直接转矩控制方法,并对各控制算法进行了仿真研究,给出了与传统控制方法的对比仿真结果。仿真结果表明改进的控制策略能够在保持转矩快速响应的同时,大大减小转矩和磁链的脉动以及电流谐波,并能使逆变器获得固定的开关频率,有效地提高了交流调速系统的动静态性能。

(2)直接转矩控制需要准确计算出定子磁链的幅值和相位,采用电压模型估算定子磁链,当低速运行时,由于定子电阻压降占主要部分,使得计算结果不够准确,影响控制系统的性能。本文研究了传统的三种定子磁链观测模型的优缺点,前面通过增加低通滤波器来提高观测器的精度,但滤波器会引入新的幅值和相位误差。在带幅值补偿的定子磁链观测器基础上,设计了带幅值和相位补偿的定子磁链观测器,通过仿真对比表明,改进的磁链观测器可以有效的克服直流偏移和误差积累问题,从而大大地提高了直接转矩控制系统的低速性能。

仿真结果证实了直接转矩控制系统的转矩响应速度快,验证了改进的控制策略能够有效的减小转矩脉动,提高系统的动静态性能。以后我们应研究转矩响应速度快,且能减小转矩脉动,提高系统动静态性能的新方法。

参考文献

[1]李华德.交流调速控制系统[M].北京:电子工业出版社,2003.

[2]阮毅,陈伯时.电力拖动自动控制系统(第4版)[M].北京:机械工业出版社,2010.

[3]李尔东.交流电机数字控制系统[M].北京:机械工业出版社,2002.

[4]冬雷,李永东.变频调速系统的发展现状与前景展望[J].变频器应用,2003(3):2-5.

[5]李华德,李擎,白晶.电力拖动自动控制系统[M].北京:机械工业出版社,2008.

[6]陈伯时,陈敏逊.交流调速系统(第2版)[M].北京:机械工业出版社,2003.

[7]M.Depenbrock.Directself-controlofInverter-fedInductionMachine[J].IEEETransactionsonPowerElectronics.1988,3(4):420-429.

[8]王兆安,黄俊.电力电子技术(第4版)[M].北京:机械工业出版社,2003.

[9]吴红星,谢宗武,张强.基于DSP的电动机控制技术[M].北京:中国电力出版社,2008.

[10]Isao.Takahashi.ANewQuick-responseandHigh-efficiencyControlstrategyofanInductionMotor[J].IEEETransactionsonIndustryApplication.1986,22(5):820-827.

[11]Isao.Takahashi,Y.Ohmori.High-performanceDirectTorqueControlofInductionMotor[J].IEEETransactionsonIndustryApplication.1989,25(2):257-264.

[12]王成元,夏加宽,杨俊友,孙宜标.电机现代控制技术[M].北京:机械工业出版社,2006.

[13]张春梅,尔桂花.直接转矩控制研究现状与前景[J].微电机,2000,33(6):25-28.

[14]曾岳南,陈伯时.异步电动机无速度传感器的矢量控制[J].电气传动自动化,2000,22(4):3-6.

[15]葛宝明,王祥珩,苏鹏声,蒋静坪.交流传动系统控制策略综述[J].电气传动自动化,2001,23(4):3-9.

[16]李夙.异步电动机直接转矩控制[M].北京:机械工业出版社,1999.

[17]RusiaDevendra.ReviewofDirectControlTorqueMethodsforVoltageIverter-FedInductionMotors[J].IEEETransactionsonIndustryApplication.1996,43(2):321-330.

[18]陶红明,龚春文,程善美,李浚源.基于DSP的全数字化异步电动机直接转矩控制系统[J].电气传动,1997,3(4):3-6.

[19]唐浦华,刘飞,黎亚元.感应电机直接转矩控制系统[J].电机与控制学报,2007,11(1):1-5.

[20]冯亮,王芳林.异步电机直接转矩控制的滞环控制器研究[J].电气传动,2008,38(8):28-31.

[21]张继勇,薛丰进,袁如明.改进型滞环控制器感应电动机直接转矩控制研究[J].微电机,2006,39(9):46-50.

[22]Y.Li,J.Shao,B.Si.DirectTorqueControlofInductionMotorsforLowSpeedDriversConsideringDiscreteEffectofControlandDeadTimeofInverters[C].1997,inConf.Rec.IEEE-IASAnnualMeeting:781-788.

[23]J.K.Kang,S.K.Sul.TorqueRippleMinimizationStrategyforDirectTorqueControlofInductionMotor[C].1998,inConf.Rec.IEEE-IASAnnualMeeting:438-443.

[24]CasadiDomenico,SerraGiovanni.ImplementationofADirectTorqueControlAlgorithmforInductionMotorsBasedonDiscreteSpaceVectorModulation[J].IEEETransactiononPowerElectronics,2000,15(4):769-778.

[25]刘军峰.定子磁场定向无速度传感器系统研究与开发[D].武汉:华中科技大学博士学位论文,2005.

[26]RomeralL.,AriasA.,AldabasE.NovelDirectTorqueControlSchemeWithFuzzyAdaptiveTorque-RippleReduction[J].IEEETransactiononPowerElectronics,2003,50(3):487-493.

[27]张海龙.基于MRAS方法的无速度传感器直接转矩控制系统的研究[J].电力学报,2005,20(2):121-124.

[28]靳建军,杨建国.基于模型参考自适应的无传感器直接转矩控制[J].电机与控制应用,2007,2:35-38.

[29]石海峰.基于神经网络速度辨识直接转矩控制系统的研究[D].上海:同济大学硕士学位论文,2003.

[30]陈坚.交流电机数学模型及调速系统[M].北京:国防工业出版社,1989.

[31]祝龙记.直接转矩控制变频调速系统的研究与应用[D].徐州:中国矿业大学博士学位论文,2005.

致谢

值此论文完成之际,我首先要感谢我尊敬的导师赵俊梅老师。本论文的研究工作是在赵老师的悉心关怀和精心指导下进行的,从论文的选题、研究工作的开展到最后的撰写和定稿,无不倾注了赵老师的心血。赵老师严谨求实的治学态度、丰富渊博的学术知识、严肃认真的工作作风和兢兢业业的敬业精神,使我深受教育和启发,并成为我今后学习和工作的榜样。在此,谨向赵老师表示我最崇高的敬意和最诚挚的感谢。

另外,特别要感谢我的父母和朋友们,感谢他们多年来对我学习和生活上的默默支持与鼓励,使我能够专心完成学业。

最后,向所有评阅论文的老师、专家和学者们表示诚挚的谢意!

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

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]={2

温馨提示

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

评论

0/150

提交评论