电力电子应用技术的MATLAB仿真 林飞杜欣
pdf,学习现代电力电子技术搭仿真很好用的一本教材,适合初学者及有一定研究需求的人使用电力电子四用技市的林飞杜欣编著MATLAID真忄用电力出照www.cepp.com.gh内容提要为了满足电力电子专业及其相关领域人员对计算机仿真知识的需求,使其掌握当前先进的计算机仿真工具,特编写本书。本书首先介绍了 MATLAB软件及其图形仿真界面 Simulink的基础应用知识,详细介绍了用于电力电子仿真的 SimPowerSystems中的各模块库,然后列举了DC-DC变换、DC-AC变换、AC-DC变换、直流调速、父流调速等方面的应用。全书通过大量实例介绍了电力电子应用技术的仿真方法和技巧。本书适用于高等学校电力电子专业及其相关专业的教材,也可供相关专业的工程技术人员学习和参考图书在版编目(CP)数据电力电子应用技术的 MATLAB仿真/林飞,杜欣编著.一北京:中国电力出版社,2008ISBN978-7-5083-7953-1I.电…Ⅱ.①林…②杜…Ⅲ.电力电子学-系统仿真-软件包, MATLABⅣ.TM1中国版本图书馆CIP数据核字(200)第153247号责任编辑:孙芳责任校对;王开云责任印制:郭华清书名:电力电子应用技术的 MATLAB仿真主编;林飞杜欣出版发行:中国电力出版社地址:北京市三里河路6号邮政编码:100044电话:(010)68362602传真:(010)68316497印刷:航远印刷有限公司开本尺寸:185mmx260mm印张:19字数:476千宇书号:ISBN978-7-5083-7953-1版次:209年1月北京第1版印次:2009年1月第1次印刷印数:0001-3000册定价:3200元敬告读者本书封面贴有防伪标签,加热后中心图案消失本书如有印装质量问题,我社发行部负退换版权专有翻印必究前言电力电子应用技术综合了微电子、电路、电机学、自动控制等多学科知识,是电能变换与控制的核心技术,在工业、能源、交通、国防等各个领域发挥着越来越重要的作用然而,由于电力电子器件所固的非线性特性,使得对电力电子电路及系统的分析十分困难。现代计算机仿真技术通过在计算机平台上模拟实际的物理系统,为电力电子电路及系统的分析提供了有效的方法,大大简化了电力电子和传动系统的分析与设计过程,成为相关专业学生和工程技术人员学习和研究电力电子应用技术的重要手段。计算机仿真需要用数学模型代替实际的电力电子装置,通过数值方法求解数学方程,获得电力电子电路及系统中各状态变量的运动规律。但是,复杂的数学建模、数值计算及编程过程仍然需要耗费巨大的工作量,阻碍了计算机仿真技术在工程中的应用为此,出现了 PSPICE、 SABER、 MATLAB等适用于电力电子电路及系统仿真的专用仿真软件。这些软件将各种功能子程序模块化,提供了完善的部件模型,用户只需简单的操作便可完成给定系统的仿真模型,成为广大学生和工程技术人员在学习、科研和开发过程中的必备丁具早期的 MATLAB软件主要用于数值计算及控制系统的仿真和分析,经过多年不断地扩展,目前涉及通信、信号处理、电气工程、人工智能等诸多领域,已经成为风靡全球的科学讣算软件。 MATLAB中提供的“ SimPowerSystems”,是进行电力电子系统仿真的理想工具与 PSPICE和 SABER等仿真软件进行器件级别的仿真分析不同, SimPowerSystems中的模型更加关注器件的外特性,易于与控制系统相连接。 SimPowerSystems模型库屮包含常用的电源模块、电力电子器件模块、电杋模型以及相应的驱动模玦、控制和测量模块,使用这些模块进行电力电子电路系统、电力系统、电力传动等的仿真,能够简化编程工作,以直观易用的图形方式对电气系统进行模型描述。本书正是基于该软件,向读者详细介绍电力电子应用技术的仿真方法和技巧本书可以分为两大部分:前三章属于基础知识部分,介绍了 MATLAB、 Simulink及SimPowerSystems的基木使用方法;后六章属于应用部分,分别从DCDC、DCAC、ACDC直流调速、交流调速及其他应用等六个方面介绍了相关的基础理论及仿息方法。本书力求浅显易懂,通过实例介绍仿真软件的使用方法,引导读者灵活应用书中的知识,从而进步实现自己的应用目标本书体现了如下特点:(1)内容新颖,结合目前最新版本的 MATLAB R2008a进行介绍(2)编排合理,筒单介绍电力电子应用技术的基础理论,并在此基础上详细描述了仿真模型的建立、设置、运行及分析过程。(3)通过大量实例使读者易于掌握仿真软件的使用方法本书编写过程中,林飞、杜欣确定了本书的编写大纲。第1、2、6、7章由杜欣、黄少芳撰写;第3、4章由冉旺、林飞撰写;第5、8、9章由林飞揆写。林飞负责全书的统校和审定工作。感谢研究生马亮、赵坤、盛彩飞、黄泳均、李明娟等同学,为本书提供了相关的仿真实例。编写过程中,本书参阅了许多国内外论文、论著,主要的都已列举于参考文献部分,在此向所有作者们表示深深的谢意!北京交通大学电气工程学院暨电力电子研究所为本书的出版给予了极大的支持,作者的家人、朋友和同事都以不同的方式为本书的出版给予了关怀与帮助,在此一并表示感谢!由于本书涉及范围广,作者学识有限,加之时间仓促,难免会有疏漏或不当之处,恳请读者批评指正编者2008年8月于北京交通大学目解录前吉第1章 MATLAB基础知识11 MATLAB简介……12 MATLAB环境………………213 MATLAB基本应用…1.31数据结构1.32数值运算1413.3程序设计基砷……………17134 MATLAB的基本绘图21第2章 Simulink环境和模型库…2521系统仿真( Simulink)环境………………………………………………2521.1 Simulink工作环境…………导要………25212 Simulink的基本操作29213创建 Simulink仿真模型……322.1.4创建 Simulink仿真模型的子系统……………………3922认识 Simulink的重要模块库23S-函数的设计方法◆中中·卧。省●52第3章 SimpowerSystems模型库……………………593. 1 SimPowerSystems模型厍概述5931.1 SimPowerSystems模型库简介……312 SimPowerSystems模型库内容………6032电源库a.曲自血A自品品自B看品自自省曲会·DD68321直流电压源………68322交流电压源……68323三相可编程电压源曲看。甲甲鲁即■P●。·群甲甲一一33元器件厍3.31断路器…703.3.2串联RIC支路…看D■自1萝看p山71333变压器………7334电机库…7535电力电子库3.5.1绝缘栅双极型品体管…………79352二极管80353通用桥式电路8136应用库37其他模块库3.71控制模块………833.72测量模块……………………8638图形用户界面…86381调用方法…………………8638.2属性参数对话框…383 Steady State Voltages and Currents窗口…88384 Initial States Setting窗口89385 Load Flow and machine initialization窗口●口q●看中D甲看甲要·鲁要导●38.6 Link to the lti viewer窗口…pD●看●罪香■44命甲甲甲p即命●■命自杳命命自■……90387 Impedance vs. Frequency Measurement窗口…38.8快速傅里叶分析工具窗口…··甲··副帝·新看·耳自389磁滞设置工具窗口鲁Dp,鲁d●看罪中甲d中中垂命卡备…9239应用举例……………93第4章DC-DC电路的仿真……………………………94.1降压(Buck)变换器…4,2升压( Boost)变换器………鲁鲁寸聊,年■即甲卧命申4■中■■10643升降压(Buck- Boost)变换器11444丘克(Cuk)变换器c看翻曾普晋4曹曾自看动11945带隔离变压器的DCDC变换器………………………12241单端正激变换器( Forward Converter)……………………………………123452单端反激变换器( Flyback Converter)…124第5章DC-AC电路的仿真====12951方波逆变电路…………………………………………12951单相方波逆变电路1295112三相方波逆变电路……………13252单相PwM逆变电路…………着m·d音即自费目即自唱组省……………………………136521双极性SPwM……136522单极性SPWM…142523倍频SPWM53三相PwM逆变电路………………………………148531SPWM逆变电路直中●命吾即甲是中532死区时间的影响151533电流跟踪PwM自斯甲要即量p自日日qq自·d电………………154534空间矢量PWM…………………………15854多电平逆变电路……………162第6章AC-DC电路的彷真……1686.1电容滤波的不可控整流电路……咖卡自冒甲看■1非168611电容滤波的单相不可控整流电路1686.12电容滤波的三相不可控整流电路如l萨m罪62单相有源功率因数校正电路仿真……………………………………18063桥式相控整流电路……187631单相桥式全控整流电路……18763.2三相桥式全控整流电路64PWM整流电路200第7章直流调速系统的仿真………2087.1晶闸管开环直流调速系统仿真……………………2087.2转速单闭环直流调速系统仿真…117.3带电流截止负反馈的无静差转速负反馈调速系统2157.4转速电流双闭环直流调速系统仿真…217第8章交流调速系统的仿真4…………2228.1异步电机的恒压频比控制…………………………………………22281.1异步电机的稳态数学模型…22281.2基于稳态模型的恒压频比控制●非自垂自自自自自自自日非自·非阜自自dD自P章自自·D。●·Dd自……22682异步电机的矢量控制230821坐标变换与异步电机的动态模型230822转子磁场定向矢量控制……………………………………23583异步电机的直接转矩控制…………2468.31直接转矩控制基本原理………2468.3,2直接转矩控制系统…………24784永磁同步电机矢量控制2528.5无刷直流电机控制···本.4.非命自4··自自命单….·255第9章其他应用…………--26191镍氢电池模型………26192配网静止同步补偿器269,3有源电力滤波器…………D音2739.4Ⅴ SC-HVDO……………………………………………………27895混合动力汽车28496双馈风力发电系统…289参考文献中;,p日。自e非自单日q日a;日p卡日p·即甲甲是号早举可中4自司◆……295MATLAB基础知识MATLAB软件语言系统是当今流行的第四代计算机语言,由于它在科学计算、数据分析、系统建模与仿真螅、图形图像处理、网络控制、自动控制、通信系统、DSP处理系统、航天航空、生物医学、财务、电子商务等不同领域的广泛应用以及自身的独特优势,目前 MATLAB受到各研究领域的推崇和关注。学习一种软件,首先需要了解它的特点、使用环境、最基本的使用方法和重要的操作技巧。本章的日的在于使 MATLAB软件的初学者,能够借助本章的学习,为深入理解后续章节的内容,奠定必要的知识与方法基础。11 MATLAB简介1980年,美国的 Cleve moler博士在新墨西哥大学讲授线性代数课程时,发现采用高级语言编程极为不便,于是建立了 MATLAB( Matrix Laboralory的缩写),即矩阵实验室,早期开发 MATLAB软件是为了帮助学校的老师和学生更好地授课和学习。1984年,由美国MathWorks公司推出了商业版,经过二十余年的不断升级,目前 MATLAB最新版本为 MATLABR2008a。由于使用 MATLAB编程运算与进行科学计算的思路和表达方式完全一致,所以不像学习Basic、 Fortran和C语言等其他高级语言那样难以掌握,用 MATLAB编写程序犹如在演算纸上排列出公式与求解问题。在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便会由 MATLAB以数值或图形方式显示出来。从 MATLAB诞生开始,由于其高度的集成性和应用的方便性,以及它能非常快捷地实现科研人员的设想并节省科研时间,在高校中得到了广泛的应用与推广。它可以很方便地进行图形化输入输出,同时还具有丰富的函数库(工具箱),极易实现各种不同专业的科学计算功能。另外, MATLAB和其他高级语言也具有良好的接口,可以方便地与其他语言实现混合编程,这都进一步拓宽了它的应用范围和使用领域。在各大高等院校, MATLAB软件正在成为对数值、线性代数以及其他一些高等应用数学课程进行辅助教学的有力工具;在工程技术界, MATLAB软件也被用来构建与分析一些实际课题的数学模型,其典型的应用包括数值计算、算法预设计与骑证,以及一些特殊矩阵的计算应用,如统计、图像处理、自动控制理论、数字信号处理、系统识别和神经网络等。它包括了被称作工具箱( Toolbox)的各类应用问题的求解工具。工具箱实际上是对 MATLAB软件进行扩展应用的一系列 MATLAB函数(称为M函数文件),它可用来求解许多学科门类的数据处理与分析问题
- 2020-12-03下载
- 积分:1
FreeRTOS中文入门手册
FreeRTOS中文入门手册方便初学者入门学习,讲的很好,很值得学习第一章任务管理Designed For Micr。 contr。11exs;概览附录中提供了使用源代码的实用信息小型多任务嵌入式系统简介不同的多任务系统有不同的侧重点。以工作站和桌面电脑为例:·早期的处理器非常昂贵,所以那时的多仟务用于实现在单处理器上支持多用户。这类系统中的调度算法侧重于让每个用户公平共享处理器时间。随着处理器功能越来越强大,价格却更偏宜,所以每个用户都可以独占一个或多个处理器。这类系统的调度算法则设计为计用户可以同时运行多个应用程序,而计算机也不会显得反应迟钝。例如某个用户可能同时运行了一个字处理程序,一个电子表格,一个邮件客户端和一个浏览器,并且期望每个应用程序任何时候都能对输入有足够快的响应时间。桌面电脑的输入处珒可以归类为软实时。为了保证用户的最佳体验,计算机对每个输入的响应应当限定在一个恰当的时间范围——但是如果响应时间超出了限定范闱,并不会让人觉得这合电脑无法使用。比如说,键盘操作必须在键按下后的某个时间内作出明显的提示。但如果按键提示超出了这个时间,会使得这个系统看起来响应人慢,而不致于说这台电脑不能使用。仅仅从单处理器运行多线程这一点来说,实时嵌入式系统中的多任务与桌面电脑的多任务从概念上来讲是相似的。但实时嵌入式系统的侧重点却不同于桌面电脑特别是当嵌入式系统期望提供硬实时行为的时候。硬实时功能必须在给定的时间限制之内完成——如果无法做到即意味着整个系统的绝对失败。汽车的安全气囊触发机制就是一个硬实吋功能的例子。安全气囊在撞击发生后给定时间限制内必须弹出。如果响应时间超出了这个时间限制,会使得驾驶员受到伤害,而这原本是可以避免的大多数嵌入式系统不仅能满足硬实时要求,也能满足软实时要求。Designed For Micr。 contr。11exs;术语说明在屮,每个执行线程都被称为任务。在嵌入式社区屮,对此并没有个公允的术语,但我更喜欢用任务而不是线程,因为从以前的经验米看,线程具有更多的特定含义本章的目的是让读者充分了解:在应用程序中,如何为各仟务分配处理时间。●在任意给定时刻,如何选择任务投入运行。●任务优先级如何影响系统行为。●任务存在哪些状态。此外,还期望能够让读者解:●如何实现一个任务。●如何创建一个或多个任务的实例●如何使用任务参数。如何改变一个已创建任务的优先级●如何删除任务。●如何实现周期性处理。空闲任务何时运行,可以用来干什么本章所介绍的概念是理解如何使用的基础,也是理解基于的应用程序行为方式的基础——因此,本章也是这本书中最为详尽的一章Designed For Micr。 contr。11exs;任务函数任务是由语言数实现的。唯一特别的只是任务的函数原犁,其必须返回而且带有一个指针参数。其数原型参见程序清单。void ATaskFunction( void *pvParameters )程序清单任务函数原型每个任务都是在自己权限氾围内的一个小程序。其具有程序入口,通常会运行在一个死循环中,也不会退出。一个典型的任务结构如程序清单所示。仟务不允许以任何方式从实现函数中返回一一它们绝不能有条语句,也不能执行到函数末尾。如果一个任务不再需要,可以显式地将其删除。这也在程序清单展现个任务函数可以用来创建若干个任务—创建出的任务均是独立的执行实例,拥有属于自己的栈空间,以及属于自己的自动变量栈变量,即任务函数本身定义的变量v。 d ATaskFunction(v。1d* pArameters)/*可以像普通函数一样定义变量。用这个函数创延的每个任务实例都有一个属于自己的 vAria1b1 eExamp1e变量。但如果 varial1e3 xample被定义为 static,这一点则不成立-这种情况下只存在一个变量,所有的任务实例将会共享这个变量。int ivariableExample =0;/*仨务通常实现在一个死循环中。*/for(ii)/*完成任务功能的代码将放在这里。*//*如果任务的具体实现会跳出上面的死循环,则此任务必须在函数运行完之前朋除。传入NUL参数表示删除的是当前任务*vTaskDelete( NULL程序清单典型的任务函数结构Designed For Micr。 contr。11exs;顶层任务状态应用程序可以包含多个任务。如果运行应用程序的微控制器只有一个核那么在任意给定时间,实际上只会有一个仼务被执行。这就意味着一个任务可以有一个或两个状态,即运行状态和非运行状态。我们先考虑这种最简单的模型——但请牢记这其实是过于简单,我们硝后将会看到非运行状态实际上又可划分为若千个子状态。当某个任务处于运行态时,处理器就正在执行它的代码。当一个任务处于非运行态时,该任务进行休眠,它的所有状态都被妥善保存,以便在下一次调试器决定让它进入运行态时可以恢复执行。当任务恢复执行时,其将精确地从离开运行态时正准备执行的那一条指令开始执行。A tasks that areOnly one tasknot currentcan be in theRunning are in theRunning state atNot Running Stateany one timeNot RunningRunning图顶层任务状态及状态转移任务从非运行态转移到运行态被称为切换入或切入或交换入相反,任务从运行态转移到非运行态被称为切换出或切出或交换出的调度器是能让任务切入切出的唯一实体。Designed For Micr。 contr。11exs;创建任务函数创建仟务使用的函数这可能是所有数中最复杂的函数,但不幸的是这也是我们第一个遇到的函数。但我们必须首先掌控任务因为它们是多任务系统中最基本的组件。本书中的所有示例程序都会用到,所以会有人量的例子可以参考。附录:描述川到的数据类型和命名约定。portBASE TYPE xTaskCreate( paTASK CODE pvTaskCodeconst signed port CHAR conist pcNameunsigned portSHORT usstackDepthunsigned portEASE TYPE uxPriorityxTaskHandle *pxCreatedTask程序清单函数原型表参数与返回值参数名描述任务只是永不退出的函数,实现常通常是个死循环。参数只一个指向任务的实现函数的指针效果上仅仅是函数名具有描述性的任务名。这个参数不会被使用。其只是单纯地用于辅助调试。识别一个具有可读性的名字总是比通过句柄来识别容易得多。应用程序可以通讨定义常量来定义任务名的最大长度—一包括结朿符。如果传入的字符串长度超过了这个最大值,字符串将会自动被截断。Designed For Micr。 contr。11exs;当任务创建时,内核会分为每个任务分配属于任务自己的唯一状态。值用于告诉内核为它分配多人的栈空间。这个值指定的是栈空间可以保存多少个字,而不是多少个字节比如说,如果是位宽的栈空间,传入的值为则将会分配字节的栈空间。栈深度乘以栈宽度的绩果万不能超过~个类型变量所能表达的最人值。应川程序通过定义常量来决定空闲任条任用的栈空间大小。在为微控制器架构提供的应用程序中,赋予此常量的值是对所有任务的最小建议值如果你的任务会使用大量栈空间,那么你应当赋予一个更大的值。没有任何简单的方法可以决定一个任务到底需要多大的栈空间。计算出来虽然是可能的,但人多数用户会先简单地赋予一个自认为合理的值,然后利用提供的特性来确证分配的空间既不欠缺也不浪费。第六章包括了一些信息,可以知道如何去查询任务使用了多少栈空问。仟务函数接受一个指向的指钅的值即是传递到任务中的值。这篇文档中的一些范例程序将会示范这个参数可以如何使用指定任务执行的优先级。优先级的取值范围可以从最低优先级到最高优先级是一个由用户定义的常量。优生级号并没有上限除了受限于采用的数据类型和系统的有效内存空间,但最妊使用实际需要的最小数值以避免内在浪费。如果的值超过了,将会导致实际赋给任务的优先级被自动封顶到最大合法值。Designed For Micr。 contr。11exs;用于传出任务的句柄。这个句枢将在调川中对该创建出来的任务进行引用,比如改变任务优先级,或者删除仟务。如果应用程序中不会用到这个任务的包柄,则川以被设为返回值有两个可能的返回值:表明任务创建成功。由于内存堆空间不足,无法分配足够的空间来保存任务结构数据和任务栈,因此无法创建任务。第五章将提供更多有关内存管理方面的信息。例创建任务附录:包含一些关于示例程序生成工具的信息。本例演示了创建并启动两个任务的必要步骤。这两个任务只是周期性地打印输出守符串,采用原始的空循环方式来产生周期延迟。两者在创建时指定了相同的优先级,并且在实现上除输出的字符串外完全一样—程序清单4和程序清单5是这两个仟务对应的实现代码。Designed For Micr。 contr。11ers;
- 2020-12-09下载
- 积分:1