登录
首页 » Others » linux-selinux功能及源码分析

linux-selinux功能及源码分析

于 2020-12-04 发布
0 1376
下载积分: 1 下载次数: 1

代码说明:

该书详细介绍了linux中关于selinux部分功能的实现流程和关键代码分析7.1.1.3基于创建者SID的文件系统.,,7.1.2 Gcncralizcd Sccurity Context labeling,,,,637.1.4 Mount-Point labeling667.1.5 Initial SId87.1.5.1 Initia1SID和 Initial sc的定义7.1.5.2 Initia1SID和 Initial sc的写出和解析707.1.5.3 Initia1SID和 Initia1SC的使用717.1.6进程创建的内核数拥结构的标签727.2何时需要为应用程序开发pp?●··垂·看垂723设计pp的一般过程7.4为vock程序编写v1ock.pp●垂春·垂767.4.1第一阶段:定义基本的te,fc和.if文件767.4.2第二阶段:根据 AVC Denied msg补充相应的规则807.4.3第三阶段:使用 don audit规则屏蔽与冗余操作枓关的错误信息7.4.4其他注意事项87.5为 samhain程序编写 samhain.pp..857.5.1第一阶段:定义基本的.te,,fc和.if文件事垂垂7.5.2第二阶段:根据 AVC Denied msg补充相应的规则07.5.3第三阶段:使用 don audi t规则屏蔽与冗余操作相关的错误信息927.5.4图解:使用 samhain时的 Domain transition过程春春鲁看D垂垂春,,937.6使用 SLIDE来开发pp,分析 SELinux源代码.7.7编写pp时的注意事项中垂鲁鲁··●,,,,,,,,,,,948. SELinux问题分析步骤总结.8.1排除DAC权限的问题,,,968.2检查用户当前所扮演的角色963分析 AvC Denied message: Target的标签正确吗?,8.4在系统启动过程中适时地修复错误的文件标签97应用程序的实际行为要和其pp的假设相一致,,,,988.6明确相应 domain所缺少的权限8.7其他注意事项8.7.1在 Permissive模式卜调试,998.7.2取消所有的 dontaudit规则.8.7.3当心 MLS Constraints1008.7.4检査 SeLinux- aware应用程序的配置和编译选项,.1018.7.5积极地和社区交互.1018.7.6使用 strace直接定位失败的系统调用(重要!).………1028.8 selinux问题分析过程和方法举例( Revisited),,1028.8.1实例一:用户无法在 console上正常登录-使用 strace定位失败操作1028.8.2实例二: sysadm r无法正确使用 useradd命令108SELinux开发笔记.…,,1149.1使能对/dev/ console的支持1149.1.1提出问题:20101213及之前的 epolicy缺乏对 conso1e的支持9.1.2分析问题··p9.1.3解决问题.1169.1.4测试结果1179.1.5使用 strace观察 consolo被重新打标签的细节(new),,,,1179.2 Socket labeling开发,1189.2.1提出问题: socket默认继承其创建者的SID的副作用,,,,,1189.2.2分析问题1199.2.3解决问题1199.2.4测试结果.,.1239.3给 role transition规则添加c1ass的支持,,..,,1249.3.1提出问题-当前 role transition规则只对 process类有效,,1249.3.2分析问题..,,,,,.1249.3.3解决问题D垂垂垂,,,,,1259.3.4测试结果,,,,,1319.3.5其他说明.1339.3.6经验总结●非春…1359.4增加 role attribute的攴持(new).,,,1369.4.1提出问题之一:roe- dominance规则的局限性1369.4.2提出问题之二:期望的 role attribute使用模型..1409.4.3分析问题1429.4.4解决问题D1439.4.5测试结果639.4.6一个有意思的编译问题,,,,1689.4.7有关role- types规则语法的讨论.,,.1719.5区分 tuna1e和 boolean(new).···1729.5.1提出问题无用的 tunable分支被写入 policy.X.729.5.2分析问题1739.5.3解决问题,,1749.5.4测试结果.1879.5.5其他经验总结9.N在策略中指定 newcontext的缺省设置方法(todo)1929.N.Ⅰ提出问颋- newconteκt的设置策略被硬编码到机制中19210. SeLinux内核驱动分析小记19410.1LSM核心数据结构及相应回调函数,19410.2 sELinux核心数据结构.19410.2.1 selinux对内核数据结构的扩展19410.2.1.1进程的安全属性19510.2.1.2文件和打开文件描逋符的安全属性.,,.,,,,,,..19510.2.1.3 socket的安全属性10.2.1.4文件系统超级块的安全属性1960.2,2AVC数据结构.19710.2.3內核 policy中保存TE规则的数据结构.,19910.2.4內核 policy中保存RBAC规则的数据结构.鲁鲁,,,,,20010.2.5 SeLinux规则在内核中的检查点总结(new)..,,,,,,20110.3情景分析:打开文件时的相关函数调用链20110.4通过 SEL inuxfs访问内核 Security Server,,,,,,,,,,,,,,20810.4.1/ selinux/load和1 oad policy命令一装载冰解析 policy.二进制文件20910.4.2/sc1inux/ relate1及 compute relabel命令-查询 type change规则21110.4.3/ selinux/ create及 compute create命令-查询type_ transition规则21110.4.4/ selinux/ member及 compute member命令-查询 type member规则.21210.4.5/ selinux/ access文件和 compute av命令-查询a11ow规则...21310.4.6/ selinux/user文件和 compute_user命令-查询用户登录后可能的SC21310.4.7/ selinux/ initial contexts/-查询 Initia1SI对应的安全上下文21410.4.8/ selinux/ class/-查询内核 class datum数拥结构(todo10.5情景分析: Domain transition的实现●··垂·看垂,,,,,,,,,,,,,,,,,,,,,21510.5.1 selinux setprocattr凼数-/proc/lpid/attr/“文件驱动21610.5.2 do execve的行为和相关 seLinux内核驱动垂垂看21810.6情景分析:文件系统的挂载和新文件的创建2110.6.1文件系统的挂载过程(new)..22110.6,2确定新创建文件的标签...23610.7 Context数据结构和u32sid之间的映射24110.7.1 sidtab node的定义和 sidtab的组织结构.24110.7.2 sidra_ insert函数- sidtab node的插入·,,,,,,,,,,,,,,24210.7.3 sidtab context to sid函数返回或分配sid..24310.7.4 security transition sid函数-计算新 subject/ object的sid....24410.7.5创建 context并注册到 sidtab以获得sid的时机.24910.7.6 security context to sid函数返回Sc字符对应的sid....25010.7.7 sidtab scarch corc囪数- sidtab node的查找,,,25110.7.8 security sid to context core函数-返回sid所对应的SC宇符串25210.8 Class Mapping..25410.8,1C1 ass mapping的作用..,,,,,25410.8,2 Class Mapping的创建垂垂垂·,,,,,,,,,,,,,,,,25410.8.3 Class mapping的使用-c1ass/perm内核态和用户态索引的转换.25710.8,4增加 class或者权限的方法25810.9和文件操作相关的回调数9. 1 selinux file mprotect回调函数25910.10和 AF UNIX SOCket相关的回调函数(todo),26310.11和程序执行相关的操作(todo).26410.11.1se1 inux bprm secureexec凼数-扩展 AT SECURE机制26410.11.1.1C库 AT SECURE机制介绍26410.11.1.2C库 AT SECURE机制演示26710.11.1.3 SELinux对 AT SECURE机制的扩展( Revisited).26911.用户态应用程序对 SeLinux的支持27211.11 selinux相关文件分析,27211.1.1 selinux config,c文件.,,27211.1.2 gelfilecon.c文件,,,,,27211.1.3 procattr.c文件.27211.1.4 compute relate1.c文件(访问/ selinux/ relate1)..27311.2 newrole源代码分析,27411.2.0 newrole命令的使用模型2742.1main函数7311.2.2 parse command linc arguments函数.,,,27611.2.3 relabel tty函数2761.3PAM模块分析..,27711.3.1 pam sC1inux.so作用分析(TODO27711.3.2pam1 oginuid,so作用分析,27811.3.3 pam name space.so作用分析.,27911.3.3.1多态( polyinstantiation)的作用,,,,,,,,,,,27911.3.3.2LSP对多态的配置,,,,,,,,,,,,,,28111.3.3.3 SELinux对 polyinstantiation的支持.,,,,28111.3.3.4解决在使能多态后 crond的使用间题28211.3.3.5 pam namespace,so源代码分析(IODO11.3.3.6有关 pam namespace.so的剩余问题8412. refpolicy的编译,链接,扩展,,,,,,,,,28512.1描朮标识符的数据结构8512.1.1 type datum t8512.1.2 common datum t12.1.3c1 ass datum t.,,,,,.,,,,.28612.1.4ro1 e datum t..,,,,,,曲D,.,28712.2描朮规则的数据结构..28812.2.1 AVTAB AV和 AVTAB TYPE类规则..,,,,28812.2.2 rolc transition规则●·垂,,,,,,,,,,,,,,,,,29012.3用户态 policy t数据结构分析.12.3.1 policy t数据结构综诚29012.3.2 symtab符号表.29412.3.3 avrule block t, avrule decl t FH scope stack t12.3.4 scope datum t-描迒标识符的定义者和使用者29712.3.5 scope index t-描逋一个b1ock/dec1内定义或引用的标识符.29712.3.6 cond node t-描朮一个ir- else conditiona29812.4 module的编译- checkmodu1e..30112.4.1编译过程核心数拥结构关系图30112.4.2 define policy- policy module词法分析....30212.4.3 begin optional- optional_ policy词法分析30412.4.4 declare type-type标识符的定义,,30312.4.5 require type-声明对type标识符的外部依赖31512.4.6 define te_ arab-TE规则的词法分析..31812.4.7 define role_ trans- role transition规则的词法分析32412.4.8 define conditional-if- else conditiona1的词法分析.2912.5 module的链接- semodule1ink.12.5.1链接过程核心数据结构关系图34012.5.2 symtab符号表的拷贝...,,,,,,34112.5.2.1 p types符号表的拷贝,,..34112.5.2.2所有其他标识符符号表的拷贝,,,,,,,,,,,,,,34412.5.2.3 p roles符号表的修正12.5.3 Scope符号表的拷贝34912.5.4链接过程的主要囪数调用链12.6 module的扩展- semodule_ expand37012.6.1 expand过程核心数据结构关系图..37012.6.2type的拷贝..37112.6.3 common的拷贝,,,37412.6.10 expand过程的核心函数调用链,.,,,37612.6.11展开规则的“字面”描诚- copy and expand avrule block囪数..38312.71ink和 expand过程的图解(new),,,,,,,,40012.7.1Role/ attribute标识符的1ink和 expand..…………40012.7.2 symtab的1ink和 expand,,,,,,403128规则中的m4宏定义(new)..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40513. seLinux的应用41013. 1 Labeled Networking (half-baked),,,,,,,,,,,,,,,,,,,,,,,41013.1.1 IPsec简介,,,,,41013.1.2 seLinux对本地网络的控制( compat-net),,,,,,。,,,,,,,41613.1.3用 Labeled ipsec实现分布式网络控制..41713.1.4 Linux內核ⅹIM相关数据结构.41813.1.5和 IPsec相关的类,权限和援囗D41813.1.6LSM中和 Labeled ipsec相关的回调函数,41913.1.6.1检查一个f1ow(发送或接收)能否使用一个SPD条目41913.1.6,2给SPD/SAD分配安全属性.,,,42113.1.6.3释放SPD/SAD中的安全属性,,,,,,,,,,,,,,,.42413.1.6.5逐包检查一个 socket能够接收一个skb42413.1.6,4获取发送方的安全上下文字符串..,,4231.7 Labeled ipsec环境的搭建.13.1.8观察 Labeled ipsec的行为43013.1.9和 Labeled ipscc相关的 SeLinux规则,432参考文献434简化 selinux操作的bash配置方法本文档各个版本的说明437注第1至5章包含自己对《 SELinux By example》一书的学习心得;第6至9章包含自己实际经验的总结第10和11章为 selinux内核和用户态源代码分析总结第12章为 refpolicy的编译过程源代码情景分析;第13章打算收录些 SeLinux在内核或者用户态的应用,比如 Labeled Networking,XACl等。l, Refpolicy有300+个p的实现,了解核心pp的实现,必须首先了解应用程序的行为以及安全目标2,阅读 sELinux- aware应用程序源代码,看如何使用 libselinux库函数,学习 sELinux用户态编程3,了解 sELinux语法,标识符的二进制表示形式,内核态和用户态的数据结构;4,学习 policy module的 compile/ expansion/1ink过程5,按照类别,逐步掌握LSM回调囪数的调用时机,所在内核子系统的原理,以及 SELinux对LSM回调函数的实现(参考《 Implementing sElinux as a lsm module》一文)6,掌握 seLinux对各个内核子系统核心数据结构的扩展7,学习XAC规范,体会如何开发 Userspace Ob、 ject Manager;8,积极阅读 Joshua,Dan等人的b1og,向前奉们学与。9,积极关注 selinux邮件列表上的问答和讨论,丰富自己的视野希望能通过自己坚持不懈的努力,证得同满的 sELinκ知识和智慧。引子1,软件的缺陷不可避免(无论过去,现在,或将来);2,没有底层操作系统的支持就无法真正实现上层软件的安全性D. Baker,《 Fortresses Built Upon Sand》操作系统中访问控制模型的演化1.1访问控制模型的概念( Reference moni tor)subjectsAccessobjectsAlertYes or No?Feference validation MechanismRuleelampcrpra吋DBVerifiableRY M由上图可见,访问控制模型由如下四部分组成1, Subjects:访间的发起者,比如系统中的进程2, Objects:被访闩的对象,比如架作系统所管理的仼何资源丶数捃(包拈进程,任意类型文件,Tc尸端口,甚至单个网络报文。总而言之,任何内核数据结构都可能成为被访问的对象)3, Rules de:规则库,在用户态实现的访问策略,定义 Object的属性并规定哪些Sub、ect可以通过什么样的方式对它进行访问;4,RVM( Reference validation mechanism):在操作系统内实现的机制,是汸问控制策略的执行者,在访问操作过程中根据规则库判断当前操作是否合法;Hinx首先需要标识访问者和被访问的对象,由下文可知相关信息保存在进程的 task struct以及其他内核数据结构中 security指针所指向的数据结构中(注意这些数据结构都是运行时动态创建的,安全属性信息来源于文件在辅存上的扩展属性,以及规则库中的 Initia1S1定义等)。白用户态定义的访问规则库指定哪些访闩老能够以何种方弌访问哪些对象,而内核屮的SεLix机制则根据当前操作的访问者和被访问对象,查询规则库得到Yes/No结论。1.2DAC( Discretionary Access Contro1)的致命伤¨ discretionary”一词的含义为“ not contro1 led bv strict rules, but decided on by someonein a position of authority”,所以DAc的本质是由文件的属主定义其它用户对该文件的许可访问方式,其“ owner-group-wor ld”模型如下:S 1s -1 /usr/bin/passwdrwsr-xr-x I rootroot 37084 2009-04-04 13: 49/usr/bin/passwd系统中所有文件属主给各自文件所定义的“ owner-group-wor d”模型的总和,即为DAC下访问规则库的实现。DAC的开发环境(相对封闭的开发社区,或大学实验室)和对软件使用环境的假设(软件没有缺陷且运行环境友好)注定了DAC存在着天生缺陷:进程和文件的安全属性都基于(且总是基于)uid/euid和gid/egid,无论进程执行什么应用程序,其uid/euid都不改变(暂不考虑 setuid类程序),无法将进程所执行程序的行为和可靠性(安全性)标识到进程的安全属性中,导致操作系统无法有针对性地对进程施加访问控制比如,用户登录 shell进程会创建子进程以执行shel1的外部命令,子进程继承父进程的uid/gid,所以无法通过uid/gid来区分父子进程,即无法区分用户人为的操作和通过程序执行的操作。比如,无法限制 passwd程序只能被用户在命令行执行,而不能被属于该用户的其它进程执行。显然,“用户(登录hc11进程)是可信的”绝对不等于“用户执行的程序(后继fork的子进程)也是可信的”。登录sh1进程的行为由用户有意识地支配,而属于该用户的进程的行为则由其执行的实际程序决定。但是程序可能冇在安全漏洞,一巨被攻击植入恶意代码,黑客将具有该用户在系统上的所有权力(比如恶意删除用户的文件,盗取uid/gid所能读取的文件的内容,执行 passwd程序修改用户的密码)另外,用户进程可以执行各种应用程序,而这些程序自身的行为丶对系统安仝性的景响都不尽相同,比如网络类应用程序更容易受到外界病毒的攻击,相应地操作系统应该对此类应用施加更为严格的访冋控制。显然无法通过进程的uid/gid来描当前进程所执行的程序的安全性,因此操作系统也无法有针对性地实施访问控制。综上所逋,仪将uid/gid来作为进程和文件的安全属性是远远不够的最后,DAC的另一个缺点是对权力的管理和划分不够细致(只有两种情况:root或non-root),无法进步细分丶限制root用户的能力。一旦euid/ egid为0的进稈被攻破,将危害整个系统的安全1.3MAC( Mandatory access Contro1)的起源针对DAC的缺点,在ⅥAC中不再由访问对象的属主定义不同用户对其的许可访问方式,而是由匿定的规则库决定。MAC最初的研究由美国军方的MLS(u1ti- Leve1 Security)应用所推动,它将访问主体和被访问对象分成不同的安全级别,严格控制信息只能从低安全级别向高安全级别流动:低安全级别的丰体只能向高安全性的数捃对象中追加新的数据,并∏禁上读取;高安全级别的主体能够读取低安全级别的数据,并且禁止任何形式的写入(即“ no read up, no write down”)ⅥS只定位于数据保密性而并不关心数据完整性和最小权能原则( east, Privilege),以及对进程的能力进行分类。后来的FASK安全系统模型着眼于解决这些不足,而 SELinux则是FASK在 Linux内核中的实现1.4 Selinux的TE( Type Enforcement)模型SELinux作为MAC的一和实现,通过中央规则库( policy.x,二进制数据文件)给所有进程丶所有文件内核数据结构定义各自的安全标识(标签,1abel/type),明碓定义被访问对象所支持的访问方式,并规定进程标签对被访问对象的合法的访问方式。在配置 SELinux时给整个文件系统上的所有文件设置标签,在系统启动过程中init进程经由 selinux接口装载 policy.X到內核空间,由內核中的 SecuritvServer在处理用户态系统调用时实时査询(注,这里所说的“ Security server”,即为 sELinux内核驱动中定义的各种数据结构,比如 sistah, policy, AVC cache,以及在 services.c文件中定义的各种以“ security”开头的函数)

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • ppt常用图标
    制作ppt所需的一些图标
    2021-10-09 00:30:57下载
    积分:1
  • 使用Matlab和CCS设计FIR滤波器
    详细讲解FIR滤波器的原理,Matlab的实现及导入CCS中的应用全过程。从中导出滤波器系数。在中,选择,如图。在出现的对话框中选择输出文件类型为,输出系数类型为如图所点击按钮,选择路径,即输出前一步设计出的滤波器的系数表。(假设生成的系数表文件为g Filter Dcaign Analzaia Too1-[untitled.fda]e Edi共书田田国回Sruct rForm FipStab er婴Fr eMei LY (kHzfilter Manage图A Export to Code Co poser Studio (tu)IDE□ Disaale memory trVariable names in c header fie:BNume"ator lengthFiata lype to l e In evpTarget selec 3○ Export suggestedDot Ele-c-recision⊙ Export asSg16H量 t integerFractional lengrh: 15Selectiarqet.HelE图利用产生噪声信号用于滤波器测试将下面代码另存为文件,在中运行后将会生成文件。该数据文件中含有三种频卒的信号,用于滤波器滤波效果测试。信号的时域图和频谱分别图、图所小采样数据个数米样周期待滤波信号波形待滤波信号频谱归一化打开文件输出文件头输出图图在中编写滤波器程序(本文以语言为例)新建工程,作者是以为例,新建工程的过程就不再赘述。编写语言源代码并导入工程,如下为生成的系数表头文件如运行不通过,请修改中的代码,将这行修改为如下:也就是自己机器上的安装的绝对路径滤波器的级数,本例中滤波器级数为待滤波的数据长度输入缓冲,在仿真时将从内存载入输出缓冲,直接存放在内存中文件如下,其实是从软件中的例子里复制过来的另外还要导入文件,在文件夹下。、滤波器仿真测试在第部分编译成功后会在工程所以目录文件夹下产生文件,在软件的里打开这个文件(图)TehCartsSave AALlLoad prReload p图将滤波器设计文件载入到内存中选择打开之前生成的文件(图)7/C54x Simulator (Texas Instruments)/dg Fi Edit View Project Debug Profiler GEL自Eea了eA11L。adPTR Load symbol10Adf SymbolReload pr.Load gelEiLe工图将设置为设置为设置为(图)Loading File into LAddressinputFagOK上ance1Hely2运行程序,点击叫按钮,程序即开始运行查看滤波器滤波效果打开(图)2/C54x Simulator (Texas Instruments)CPU - C54x(Simula File Edit view Project Debug Profiler GEL Opti on Tools DSF/EI20090614pit v Project Toolbar多画函了y edit tooleStatus rs0:1434E846FilesPlugin Too_bars00:1436L 4GE0:1436F73口Pia20:1438Memor00:143877180d:143A日EE8CPU Registers00:143D6F8图在上一步出现的对话框中,按如图设置:Graph Property Dialo冈ingle Timeaph Tt art AddressInputPageDat ation Buff20囗Index工 nCP EmerⅣ1sp1 as Iata s1reISP Data Type16-bit sAmp1 ing R& e (Hi〕PLatⅡ ata FroLe上 t to RightLe ft-shi fted Data DisplayAutoscaLees DisplayILHelp图如果出现的波形图太大,在图形上点右键,将之前的勾去掉,即会变成如图的波形t1Ee+434.11540〕Lin Auto S图重复前三个步骤,只改变图形选项中的使之最后出现如下的图形:input FT了L10011gin Auto s‖m.0FFT Magoutputoutput FFIE48B+de10TAtS‖I,10516FFT MLin Auto s图左上角:输入数据时域图右上角:输入数据频谱(左下角:输出数据时域图右下角:输出数据频谱(
    2020-12-09下载
    积分:1
  • 基于jsp开发的简单web相册系统
    这是一个用jsp写的相册系统,实现基本的mysql数据库存储和增删修改,用户创建相册和上传照片,删除照片。
    2020-11-27下载
    积分:1
  • 微机原理课设计(共30个)
    成绩管理程序 小键盘按键识别数码管移位显示 微机串口通信功能综合检测 打字计时练习 定时器计数器 PWM脉宽调制等共计30个源程序
    2020-12-11下载
    积分:1
  • Nonlinear programming
    本书涵盖了非线性规划的主要内容,包括无约束优化、凸优化、拉格朗日乘子理论和算法、对偶理论和方法等,并包含了大量的实际应用案例 .本书从无约束优化问题入手,通过直观分析和严谨证明给出了无约束优化问题的最优性条件,并讨论了梯度法、牛顿法、共轭方向法等实用算法 .进而本书将无约束优化问题的最优性条件和算法推广到具有凸集约束的优化问题中,进一步讨论了处理约束问题的可行方向法、条件梯度法、梯度投影法、双矩阵投影法、坐标块下降法等算法 .拉格朗日乘子理论和算法是非线性规划的核心内容之一,也是本书的重点 .本书中的第 3、4章详尽地论述了这方面的内容 .本书首先从等式约束优化问题最优解的必要条件入手,给出了
    2021-05-06下载
    积分:1
  • 基于labview与单片机的多通道采集系统
    【实例简介】单片机串口通讯,labview显示波形
    2021-11-24 00:49:37下载
    积分:1
  • fft的labwindows实现
    fft的labwindows实现界面操作,频率可选,有加窗处理,完善详细的程序流程和注释
    2020-12-10下载
    积分:1
  • 用牛顿-雅可比迭代法求非线性方组的个根
    利用牛顿-雅可比迭代法求非线性方程组Ax=b的一个根,压缩包里包含了求解非线性方程组的代码,只要用MATLAB软件打开程序运行即可
    2020-12-05下载
    积分:1
  • 电力电子应用技术的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
  • 基于OPENGL透视图显示三视图投影变换
    利用OpenGL中的多视区,分别在四个视区内显示空间四面体的主视图、俯视图、侧视图、透视投影图。
    2020-11-28下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载