基于rtlinux双轴仿真转台控制系统设计和实现论文

基于rtlinux双轴仿真转台控制系统设计和实现论文

ID:27293521

大小:796.51 KB

页数:72页

时间:2018-12-02

上传者:U-22505
基于rtlinux双轴仿真转台控制系统设计和实现论文_第1页
基于rtlinux双轴仿真转台控制系统设计和实现论文_第2页
基于rtlinux双轴仿真转台控制系统设计和实现论文_第3页
基于rtlinux双轴仿真转台控制系统设计和实现论文_第4页
基于rtlinux双轴仿真转台控制系统设计和实现论文_第5页
资源描述:

《基于rtlinux双轴仿真转台控制系统设计和实现论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

国内图书分类号:TP15国际图书分类号:623.592工学硕士学位论文基于RTLinux的双轴仿真转台控制系统设计与实现硕士导研究生:张德新师:邵长胜教授申请学位:工学硕士学科、专业:导航、制导与控制所答在单位:控制科学与工程系辩日期:2006年6月27日授予学位单位:哈尔滨工业大学 ClassifiedIndex:TP15U.D.C.:623.592DissertationfortheMasterDegreeinEngineeringDESIGNANDRELIZATIONOFDOUBLEAXISSIMULATIONTURNTABLECONTROLSYSTEMBASEDONRTLINUXCandidate:Supervisor:AcademicDegreeAppliedfor:Speciality:Affiliation:DateofDefence:Degree-Conferring-InstitutioZhangDexinProf.ShaoChangshengMasterofEngineeringNavigation,GuidanceandControlDep.ofControlScienceandEngineeringJune,2006HarbinInstituteofTechnology 哈尔滨工业大学工学硕士学位论文摘要随着我国航空、航天事业的发展,对相关仿真测试设备功能和技术指标的要求也越来越高。本文正是以某型“航空相机控制及总体装调检测装置”中的双轴仿真转台为研究背景展开工作。论文通过对多种常用数字控制器软件平台进行分析和比较,最终选择了基于Linux的RTLinux实时操作系统实现仿真转台的数字控制,其中还涉及到一些与仿真转台控制系统有关的测角和功率驱动电路问题。论文首先对双轴仿真转台控制系统的总体结构进行了较详细的分析,并以古典控制理论为依据,对控制系统进行设计,在此基础上,对转台测角系统和功率驱动电路进行了简单介绍,根据测角系统和功率驱动电路的结构确定了两者与数字控制器的通讯方式,合理的设计了数字控制器的接口电路。论文在比较基于DOS、Windows和RTLinux操作系统各自优缺点的基础上,选择RTLinux作为本双轴仿真转台数字控制器软件平台。为了理解这种方案的工作原理,文中详细介绍了RTLinux的实现原理和内核数据通讯方式,并给出了在Linux平台上构建RTLinux数字控制器软件平台的方法和步骤。根据任务书要求,本转台主要模拟飞机俯仰和滚动往复运动。针对这一特点,论文给出了基于RTLinux的数字控制器软件平台实现方案,并对方案实现过程中遇到的技术难点进行了详细分析,给出了解决办法,且附有相应程序代码。根据系统性能和技术指标要求,最终完成数字控制器软件、外围电路的设计和实现。通过对实验结果的分析,证明了基于RTLinux软件平台实现转台数字控制的可行性。关键词双轴仿真转台;数字控制;实时操作系统;RTLinux-I- 哈尔滨工业大学工学硕士学位论文AbstractWiththedevelopmentofaviationandspaceflightinourcountry,therequirementofemulateandtestequipmentishigherahdhigher.Thisdissertationiswrittenonthebackgroundofthedouble-axissimulationturntablewhichcomesfromaprojectofthecontrolanddetectionwiththeaerialcamera.Itismainlyfocusedontheanalysis、comparativenessofthenormalsoftwareplatformusedinnumericcontroller,andchoosedRTLinuxreal-timeoperatingsystemwhichisbasedonLinuxtoaccomplishthenumericcontroloftheturnable,.Inthesametime,Itinvolvedtheanglemeasuringsystemandpowerdrivecircuitwhichisrelatedtothecontroller.First,thisdissertationanalyzedthetotalstructureofthecontrolsystermoftwo-axisemulateturntableindetail.Afterthis,theworkprincipleoftheanglemeasuringsystemandpowerdrivecircuitareintroducedseparately,thepurposeistoanalyzethecommunicatefashionbetweenthistwoonewiththenumericcontroller,thisistodesignreasonablyperipherycircuit.AftercomparingtheshortcomingofthenumericalcontroloperatingsystemwhichisbasedonDOS、WindowsandRTLinux,wechosedRTLinuxasthesoftwareplatformofthenumericcontroller.Inordertocomprehendtheworkprincipleofthisproject,wemainlytalkedabuttherealizationandnumericalcommunicationwithRTLinux,andgiventhemethod、stepstosetRTLinuxwhichisbasedonLinux.Accordingtotherequirementofmission.,thisturntableismainlyemulatingthemotionoftheairplane’spitchingandrolling.Inthisspeciallycharacterist,wegiventherealizableprojectwiththenumericcontroller.,andanalysisedthetechnicaldifficultwhichwemetedintheprocessoftherealization,giventhesolutionandhomologousprocedureyard.Accordingtotherequirementofperformanceandtechnicalindextothesystem.,ittakesinner-annulusaxisasexample,usingclassicalcontroltheoriestodesignthecontrolsystemofturntable.Theconstructionandrealizationofsoftwareandperipherycircuitwithnumericcontrolhasbeenaccomplishedinfinally.Withtheanalysisofexperimentalresult,thefeasibilityofnumericcontrol-II- 哈尔滨工业大学工学硕士学位论文whichisbasedonRTLinuxplatformhasbeenproved.Keywordsdouble-axissimulationturntable;numericcontroll;real-timeoperatingsystem;RTLinux-III- 哈尔滨工业大学工学硕士学位论文目录摘要...........................................................................................................................IAbstract.......................................................................................................................II第1章绪论................................................................................................................11.1课题背景...........................................................................................................11.2仿真转台综合介绍...........................................................................................21.2.1仿真转台的发展及现状............................................................................21.2.2仿真转台控制方法分析比较....................................................................31.3嵌入式实时操作系统分析比较.......................................................................51.4RTLinux实时操作系统简介............................................................................71.5本章小结...........................................................................................................9第2章转台系统结构分析......................................................................................102.1转台系统总体结构分析.................................................................................102.2转台控制系统设计.........................................................................................112.3转台测角系统分析.........................................................................................142.3.1旋转变压器工作原理..............................................................................152.3.2感应同步器工作原理..............................................................................152.3.3双通道测角系统粗精耦合原理..............................................................162.4转台功率驱动电路分析.................................................................................172.5控制器数据通讯关系分析.............................................................................182.5.1控制器与外部通讯关系及所需端口分析..............................................192.5.2控制器与内部通讯关系及所需端口分析..............................................192.6本章小结.........................................................................................................21第3章数字控制器软件平台分析..........................................................................223.1数控系统开发平台分析比较.........................................................................223.1.1基于DOS平台的数控系统....................................................................223.1.2基于Windows平台的数控系统.............................................................233.1.3基于Linux+RTlinux平台的数控系统...................................................253.2RTLinux的实现原理和数据通讯..................................................................273.2.1RTLinux的实现原理...............................................................................27-IV- 哈尔滨工业大学工学硕士学位论文3.2.2RTlinux与Linux内核之间的通讯方式.................................................283.3RTLinux的安装步骤......................................................................................313.4本章小节.........................................................................................................32第4章数字控制器功能分析及其解决方案..........................................................334.1数字控制器数据采集、输出与处理.............................................................334.1.1数字控制器数据采集和输出..................................................................334.1.2数字控制器数据处理..............................................................................364.2创建可移植的控制程序.................................................................................374.3过零处理及转台摇摆功能实现.....................................................................404.4本章小结.........................................................................................................43第5章数字控制器设计与实现..............................................................................445.1数字控制器外围接口电路设计.....................................................................445.2数字控制器软件设计.....................................................................................455.3实验结果分析.................................................................................................485.4本章小节.........................................................................................................49结论............................................................................................................................50参考文献....................................................................................................................51附录一........................................................................................................................54附录二........................................................................................................................57攻读学位期间发表的学术论文................................................................................64哈尔滨工业大学硕士学位论文原创性声明………………………………………65哈尔滨工业大学硕士学位论文使用授权书………………………………………65致谢............................................................................................................................66-V- 哈尔滨工业大学工学硕士学位论文第1章绪论1.1课题背景成像技术伴随着其他高科技的发展被应用的越来越广泛。从留下美满幸福的生活片断,到帮助人们诊断出各种疾病;从为人们提供了解自然界的各种资源和气象信息,到为人们提供战胜敌人的军事信息……,人类在各个领域的发展都离不开成像技术。成像技术的关键是对图像的捕捉、分辨和对图像的记录与处理。对图像的分辨和记录主要依靠相机本身的技术性能来保证,而对图像的捕捉还要依赖于相机的载体。例如对全球气象的观测要靠高空人造卫星装载红外、光学相机或气象雷达来完成;而对敌方阵地的侦察,大多情况下要靠侦察机等运载设备载着相机来共同完成。因此成像质量的高低要由相机和载体的性能共同保证。由某型侦察机和中、低空全景相机组成的对敌侦察系统获得的图像质量在飞机性能确定的前提下要靠相机的技术性能来保证,因此,如何提高中、低空全景相机的技术性能成为提高侦察图像质量的关键。为了检测和提高相机的技术性能须对相机进行测试,测试目的大致可归纳为以下几个方面:1、检验装配工艺过程(通常称为验收试验);2、验证设计参数(通常称为批准试验或技术鉴定试验);3、导出相机误差模型方程式;4、确定不能按预期要求工作的原因(通常称为诊断试验);5、提出新的实验技术;6、指出需要研制的先进实验设备。对相机技术性能的测试工作最好放在侦察机上进行,但这是这不太可能。主要原因有两点:一是成本过高,二是操作不方便;因此模拟侦察机侦察飞行过程真实环境的仿真系统应运而生。实际上飞机飞行的过程中,由于气流的作用而摇摆不定,但可将这种复合运动分解成三个旋转自由度和三个直线运动自由度来处理。通过分析认为其频带很窄,尽管有效载荷相机的质量很大,也可以通过转台对此运动进行仿真。本课题主要源于模拟飞机横滚和俯仰运动的双轴转台控制系统的研究。-1- 哈尔滨工业大学工学硕士学位论文1.2仿真转台综合介绍1.2.1仿真转台的发展及现状惯性测试和仿真转台的发展,一直是以美国为代表][1~3],而且一直保持其领先地位[4~5]。转台的发展经历了从单轴、低精度、单功能到多轴、高精度、多功能的各个阶段。世界上第一台转台诞生于1945年美国的麻省理工学院仪表实验室,被定名为A型转台。随后该实验室又研制了B型转台(1950年),C型转台(1953年),D型转台(1954年).在60年代后期又研制了E型转台。目前美国制造惯性导航测试设备和运动模拟系统的主要厂商是位于美国宾夕法尼亚州匹兹堡的康特维斯—戈尔子公司(Contraves—GeorzCorporation)简称CGC[6]。CGC于60年代末至70年代初研制并生产了51系列双轴气浮轴承转台,型号为51A,51C,51D,51G等。其中转台51A,51C,51G均可测试陀螺漂移率为0.0010/h的陀螺,精度达到1角秒。CGC生产的800系列速率台,51系列双轴台及53系列多轴台,均采用了30H型模块或精密角度控制系统。该系统的速率控制系统采用了锁相伺服回路,位置控制采用了三级非线性控制。30H模块式精密角度控制系统被设计用来实现各种角度非线性读出和控制功能,它可以实现手动或自动控制,也可以与计算机连接起来实现自动测试[7~9]。自1984年起,CGC开始研制技术先进的三轴测试平台ITATT,这是为了测试高精度惯性制导与导航器件而研制的。ITATT的许多性能指标代表了当时惯导测试台的技术发展水平。设计采用的许多新技术和措施对惯导测试设备的发展来说是具有很好的指导意义。为提高转台的性能,ITAA的设计中采取了下列措施:1.外壳采用碳纤维复合材料,并做成球形,使总体结构的对称性和挠曲度得到很大的改善。2.支撑轴承采用有源磁悬浮轴承。3.力矩电机由普通采用的直流电机改为交流多相感应式电机,消除了力矩波动现象。4.角位置传感器由采用单一的感应同步器改为采用感应同步器和光学编码-2- 哈尔滨工业大学工学硕士学位论文器组合,使测角精度达到0.03角秒。5.控制系统采用了状态反馈的数字控制系统,但仍需要一个数模转换器。数字系统为受控轴偏移的误差补偿创造了条件。采用上述技术措施以后,改进的三轴测试台ITATT的综合指向精度可达0.1角秒,分配到各个轴的精度提高30—50倍;转速稳定度在速率为0.0010/s-2000/s内,可达10-6,提高了10-20倍。综合技术指标提高了一个数量级以上。国内自70年代起开始转台的研制工作,其发展的现状大致如下:1979年,由哈工大,441厂和6354所共同研制成功我国第一台双轴伺服台—“7191”双轴空气轴承转台。1982年,由6354所研制成“7191-Ⅱ”型双轴转台。该转台是在“7191”转台的基础上,本着基本不变、局部改善的原则进研制的。转台的机械结构、外形尺寸、电气框图及工作原理与“7191”转台基本一致。但在提高精度、方便操作、扩展功能、提高可靠性和增加连续工作时间方面作了改进。1983年由13所研制的SSFT伺服转台是我国最大的双轴伺服台。它设计用来测量漂移率为0.010/h的双自由度陀螺、三自由度陀螺和加速度计。1985年由哈工大研制的DPCT单轴计算机转台,是我国第一台计算机控制转台。计算机参与了控制,提高了控制精度,提高了转台的灵活性和测试自动水平。此外,计算机对测试数据进行了实时处理,提高了测试效率和精度。这台转台的测试精度达到了1角秒,设计指标为测试漂移率为0.0010/h的陀螺。我国与世界先进水平的差距主要表现在:1)角度、角速度、角加速度传感器的动态精度方面。2)驱动马达的低速性方面。3)转台台体制造工艺及安装方面。4)控制技术方面。1.2.2仿真转台控制方法分析比较惯性测试和仿真转台作为一种精密设备经常被应用在惯性器件测试、半物理仿真系统中。人们对其结构和控制方法的研究已到了相当成熟的地步。以往对仿真转台的控制多采用模拟控制方案,随着数字控制技术的发展,现在对转台的控制大多由数字控制器来完成。在由数字控制器构成的实时控制系统中影响控制性能的一个重要因素是采样频率的选择,采样频率的高低除软件质量-3- 哈尔滨工业大学工学硕士学位论文外,很大程度上由控制器本身的性能指标决定。随着材料科学、加工工艺、计算机技术等科学技术的发展与进步,电子电路的集成度越来越高,因此基于高集成度技术CPU的速度、功能、体积、功耗等都有了极快的发展。运算位数从4位、8位……发展到目前的64位;运算速度从8MHz、32MHz……发展到几个GHz。所以,目前以计算机作数字控制器的控制系统应用十分普遍。通常情况下系统设计主要包括以下几个步骤:1、根据任务要求选择系统总体方案;2、在系统总体方案确定后优选系统控制方案;3、优化组合系统的硬件结构;4、确定系统指标的检测方法。实际上每一个步骤在实现时都含有极其丰富的内容,既有理论上的又有经验方面的知识。实现对双轴仿真转台的控制除模拟控制方案外,数字控制方案也有很多。考虑到精度和快速性要求,数字控制要求数字控制系统微处理单元有足够的字长和运算速度。即具体实现时,既要考虑计算机CPU的选择,又要考虑实现控制算法软件的选择;既要考虑可实现性,又要考虑经济性。若采用单片机实现对双轴仿真转台的控制,首先要搭建一个单片机系统。而一个简单的系统至少包括有时钟电路、接口电路、D/A转换器、键盘输入和显示电路,由于本转台系统数据较多、程序较大,可能还要扩展存储器等等。显然,这是一个耗时费工的工作。单片机的另一个缺点是运算速度低,对要求同时控制两个转轴的任务很难胜任。单片机组成的控制系统优点是成本较低,但可靠性大打折扣。在计算机控制越来越普及的今天,人们更多地采用PC组成数字控制系统,特别是选用专门为适应各种环境条件而设计的工业控制计算机(简称工控机)。PC因其存储容量大,处理速度快,支持软件多等优点,在控制领域越来越受欢迎。但因其价格比单片机要贵得多,大多数简单系统仍然采用单片机控制。综合考虑双轴仿真转台控制系统的性能指标、数据处理量以及其他要求,决定选用工业控制计算机来实现对仿真转台的控制。采用工控机作为双轴仿真转台控制器要解决的问题主要有:实时软件模块开发、板卡驱动、不同处理单元数据传输等。PC机控制有很多模式,可以选用图1-1控制模式。在此结构下,PC机主要完成发送控制命令,图形界面显示、数据传输等任务,具体的实时任务由下位机去完成,系统采样频率由微处理单元的性能决定,没有充分发挥PC机处理速度快、存储容量大等优点。这-4- 哈尔滨工业大学工学硕士学位论文PC机(上位机)通讯微处理单控制对象元图1-1PC机控制结构Fig.1-1ThestructureofPCcontrol里选用另一种控制模式,即在PC机下选用满足性能指标的数据采集卡,由它完成数据传输,由PC完成数据处理,这样可以充分发挥PC机的长处。当然,要想这种控制模式得以实现,就需要一个能支持实时操作的实时操作系统。现有的WINDOWS、LINUX等通用操作系统都是多任务分时操作系统,不加以改造不适用于实时控制。1.3嵌入式实时操作系统分析比较从20世纪80年代起,国际上就有一些IT组织和公司开始进行商用嵌入式系统和专用操作系统的研发,其中涌现了一些著名的嵌入式系统。进入20世纪90年代后,国内的一些公司和科研院校也开始涉足嵌入式实时操作系统,并且已经开发出了一些可与国内外产品相媲美的实时操作系统。下面就我国广泛使用的RTOS(实时操作系统)进行相应的介绍[10~12]。1)VxWorks操作系统VxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的嵌入式实时操作系统。它是美国WindRiver公司的产品,以其良好的可靠性和卓越的实时性性被广泛地应用在通信、军事、航空等实时性要求极高的领域中,已经在包括爱国者导弹和火星探测器等许多领域上得到成功应用。它具有以下特性:·微内核结构(最小体积<8K)。·微秒级中断处理。·高效的任务管理:a.多任务,最多具有256优先级。b.优先抢占和轮转调度。-5- 哈尔滨工业大学工学硕士学位论文c.快速、确定的上下文转换。·多处理器支持。·灵活的任务间通讯。支持以下多种任务间通讯方式:a.具有优先级继承的二进制、计数器、互斥的信号量。b.消息队列。c.套接字。d.共享内存。e信号异常处理。·符合POSIX1003.1b实时扩展标准。·支持MS-DOS和RT-11文件系统。·完全符合ANSIC标准。·支持多种体系结构的处理器,如x86、i960、SunSparc、MotorolaMC68xxx、ARM、POWERPC等。2)WinCE操作系统WinCE是由微软公司推出的嵌入式实时操作系统,MicrosoftWindowsCE是从整体上为有限资源平台设计的多任务、多优先级的操作系统。其模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200KB。但它的最大缺点是实时性不好,是软实时操作系统,只能用于对实时性要求不高的场合。3)VRTX操作系统VRTX是老牌的嵌入式实时操作系统,在早期的商用嵌入式操作系统中曾扮演“领头羊”的角色。VRTX具有一组满足用户需要的模块化的编程界面和工具。无论是对存储器和耗能有限制的手持器件,还是用于电话交换的网络管理卡,VRTX都有一套工具满足开发者的需求。通过对可向上兼容编程接口和面向对象开发的支持,VRTX保证在将来支持和能重复利用其源码。VRTX的特点包括易于载入定制硬件、文件系统支持及ANSI/POSIX接口。VRTX还支持多种网络协议。VRTX目前主要有VRTXsa、VRTX5和专门支持单芯片(SOC)的CRTXmc/VRTXoc3个版本。4)pSODS操作系统ISI公司推出了RTOS,现在ISI已经被WinRiver公司兼并,pSOS属于WinRiver公司的产品。这个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或是商业化的硬件-6- 哈尔滨工业大学工学硕士学位论文上提供高性能和高可靠性。可以让开发者根据操作系统的功能和内存需求定制成每一个应用所需的系统。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。5)PalmOS操作系统3Com公司的PalmOS在PDA市场上占有很大的市场份额,它有开放的操作系统应用程序接口,开发商可以根据需要自行开发所需要的应用程序。6)DeltaOS操作系统DeltaOS是电子科技大学实时系统实验室和北京科银京成公司联合开发的,国内具有完全自主知识产权的RTOS,已经成功地应用于消费电子产品、通讯产品、工业控制及军用电子产品中。它具有高可靠性、实时性良好、可伸缩性、可移植性强(90%以上代码采用C语言编写)、支持多处理器结构的硬件环境和接口标准的开放性等特点。DeltaOS是由具有高可靠性和实时性的内核DeltaCOR、嵌入式TCP/IPDeltaNET、嵌入式文件系统DeltaFILE以及嵌入式图形接口DeltaGUI组成。7)嵌入式Linux操作系统以上介绍的RTOS都是商用的嵌入式操作系统,它们在系统可靠性和对用户的技术支持都有自己的优势。但是,这些专用操作系统均属于商业化产品,其价格昂贵;而且,由于很多时候它们的核心源代码都是不公开的。这使得每个系统上的应用软件与其他系统都无法兼容。由于这种封闭性还导致商业嵌入式系统在对各种设备的支持方面存在很大的问题,使得对它们的软件移植变得很困难。由于Linux自身诸多优势,在嵌入式这个IT产业的新的关键领域,嵌入式Linux操作系统适时出现在各嵌入式厂商面前,吸引了许多开发商的眼光,成为嵌入式操作系统的新宠。通过分析比较现有嵌入式系统的特点,本转台选用基于Linux的RTlinux嵌入式实时操作系统作为数字控制器软件开发平台,下面将对RTLinux实时操作系统作一个简单的介绍。1.4RTLinux实时操作系统简介Linux的嵌入式改造主要围绕体积和实时性展开,目前已经有许多公司在进行这方面的工作,其中比较著名的嵌入式Linux系统包括RTlinux、KURT_Linux、uClinux、Xlinux和EMbedix等。下面主要对本文使用的RTlinux平台进行介绍。-7- 哈尔滨工业大学工学硕士学位论文RTLinux[13~14]是利用Linux进行实时系统开发比较早的尝试,美国新墨西哥理工学院计算机系的VictorYodaiken和MichaelBaranov早在1996年就开始了对RTLinux的开发。目前RTLinux已成功应用于从航天飞机的空间数据采集、科学仪器测控到电影特技图像处理等众多领域。根据Linuxdevices.com的调查情况,有5%的用户已经将RTLinux应用到他们的嵌入式系统中。RTLinux的原理是采用双内核机构,即将Linux的内核代码进行少量修改,将Linux任务以及Linux内核本身作为实时内核的一个优先级最低的任务,而实时任务优先级高于普通Linux任务,即在实时任务存在的情况下运行实时任务,否则才运行Linux本身的任务。实时任务不同于Linux普通进程,它是以Linux的内核模块(LinuxLoadableKernelModule,LKM)的形式存在的。需要运行实时任务的时候,将这个实时任务的内核模块插入到内核中去。实时任务和Linux一般进程之间的通信通过共享内存或者FIFO通道来实现。RTLinux工作原理如图1-2所示。非实非实非实时任务时任务时任务FIFO共享内存实时实时实时任务任务任务Linux内核RTlinux实时内核底层硬件图1-2RTLinux原理图Fig.1-2DiagramofRTLinuxprinciple由图可以看出,RTLinux接管了机器的硬件,实时任务直接在RTLinux实时内核的调度下运行,这样保证了任务的实时性。而通过将Linux本身作为实时内核优先级最低的任务,又使得Linux的常规操作可以正常运行。同时,实时任务和Linux普通进程之间可以相互配合,将需要强实时特性的任务放在实-8- 哈尔滨工业大学工学硕士学位论文时内核运行,将界面显示和用户监控功能放在Linux内部执行。这种实现方法既可以充分利用Linux的强大功能,又可以保证关键任务的实时性。1.5本章小结本论文主要源于对“相机控制系统及总体装调检测装置研制”中双轴仿真转台控制系统的设计和实现。该转台通过模拟飞机横滚、俯仰运动给相机提供一个测试平台。在分析比较现有控制方法和实时操作系统基础上,选择合理的控制方案。明确了本论文的工作任务和目标,具体如下。1、转台总体系统结构分析及设计。通过分析转台系统结构,建立控制系统的数学模型,确定控制算法;2、开发RTLinux实时控制软件,编写实时控制程序;3、设计、安装和调试接口电路,实现对转台系统内部数据的采集和控制器与上位机(综合控制台)的通讯。4、完成双轴仿真转台控制系统的安装、调试。-9- 哈尔滨工业大学工学硕士学位论文第2章转台系统结构分析2.1转台系统总体结构分析双轴仿真转台作为“相机控制系统及总体装调检测装置”的一个部分,通过模拟飞机运动状态,给相机提供一个测试平台。它主要由机械台体和电控系统两部分组成,其中电控部分主要由测角电路、数字控制器和功率驱动电路组成。根据任务书的技术要求,结合设计好的双轴仿真转台的机械结构参数,可确定双轴仿真转台内环轴的控制系统结构如图2-1所示(另一个轴的控制系统结构同此轴类似)。èièo控制器功放电机转台—测角图2-1转台控制系统结构图Fig.2-1Diagramofturntablecontrolsystemstructure由图可知,数字控制器的任务是实时采集测角电路输出的转台轴系位置信号,与给定的控制指令进行比较得出位置跟踪误差,并对此误差信号进行处理,通过控制算法得出对转台的控制信号,以此信号控制功率放大电路驱动电机带动转轴按期望的速度转动。测角系统的任务是实时测得转台轴系的当前位置,并通过接口电路和数字控制器进行数据交换。功率放大器的任务是按照数字控制器发出的指令控制力矩电机驱动转台轴系转动。在三者的共同作用下,机械转台在力矩电机的驱动下转动,模拟飞机相应的运动以达到仿真飞机俯仰和滚动的目的。-10- 哈尔滨工业大学工学硕士学位论文2.2转台控制系统设计根据以上分析,可以确定仿真转台内环控制系统结构方框图如图2-2所示。áiK1G(s)KdTd1Js2áo—图2-2转台控制系统方框图Fig.2-2Diagramofcontrolsystemaboutturntable图中:K1——放大器Kd——功率放大器J——转台轴的转动惯量G(s)——转台控制器ái——输入角度á0——转台某轴转角Td——轴系的总干扰力矩由图可知,不加校正时系统工作在等幅振荡状态。为了使系统稳定工作必须加校正环节,下面以内环轴为例进行数字控制器设计。已知转台内环轴转动惯量J=8kg.m2,干扰力矩可做到2N.m。根据系统指∧标要求,并参考以前转台设计经验。设计系统伺服刚度为2.5N.m/sec,换算开环增益K1=57000,系统频带要求10Hz左右,相角欲度大于450。考虑到本系统采用数字控制器进行控制,故采用数字控制方法进行控制算法设计。数字控制设计方法分为两类;一、用连续系统设计校正的方法,确定校正环节的传-11- 哈尔滨工业大学工学硕士学位论文递函数D(s),再离散化为数字控制器D(z),由计算机实现;二、将被控对象离散化后,根据数字控制理论直接设计数字控制器D(z)。本设计采用第一种方法,设计步骤为:1.根据采样定理取ùs=2ð/T>10ùc,则包括零阶保持器在内的广义被控对象为其中G0(s)=1Js2G1(s)=,T为采样周期;1T/2⋅s+1G0(s)(2-1)2.用连续系统理论设计D(s);3.将D(s)离散化为D(z),本设计采用双线性变换将连续控制器转换为数字控制器,即采用S=⋅T1+z-1进行变换;4.编制计算机实时控制程序。根据该设计方法,设计中选定采样周期为2ms,针对包括零阶保持器在内的广义被控对象G1(s)=器为:110.001s+18s2,根据以上指标要求运用连续理论设计的控制D(s)=456000⋅0.16s+10.5s+170s+10.0016s+1(2-2)设计完的控制系统如图2-3所示。图2-3内环控制系统设计框图Fig.2-3Diagramofcontrolsystemdesignwithinnerannulus在此控制器作用下,内环系统bode图如图2-4所示。-12-21−z−1⋅⋅ 哈尔滨工业大学工学硕士学位论文BodeDiagramGm=27.8dB(at782rad/sec),Pm=73.1deg(at65rad/sec)3002001000-100-200-90-135-180-225-270-410-210010210410Frequency(rad/sec)图2-4内环系统仿真bode图Fig.2-4Diagramofsystemsimulationwithinnerannulus由图可知,系统剪切频率ùc=65rad/sec,相角裕度为73.1°完全满足系统性能指标要求。在干扰力矩作用下系统失调角仿真如图2-5所示。图2-5内环失调角仿真图Fig.2-5Diagramofmaladjustedanglesimulationwithinnerannulus-13-Magnitude(dB)Phase(deg) 哈尔滨工业大学工学硕士学位论文−4同理可设计外环控制器。外环转动惯量J=21kg.m2,干扰力矩可做到3N.m。根据系统指标要求,并参考以前转台设计经验。设计系统伺服刚度为5∧N.m/sec,换算开环增益K1=1029000,系统频带要求10Hz左右,相角裕度大于45°。据此设计出连续控制器为:D(s)=49000⋅(2.2s+1)⋅(0.3s+1)520s+1(2-3)在此控制器作用下,系统相角裕度为83°;剪切频率ùc=62.2rad/sec;干扰力矩作用下的失调角为0.03°。都满足系统性能指标要求。根据设计出的连续控制器,运用双线性变换的离散化方法,编写相应的控制程序,可以实现转台控制。2.3转台测角系统分析控制系统中测角子系统的精度直接影响控制系统性能指标。按任务书要求测角系统的精度为0.005o,要求较高。这里选用旋转变压器(内环轴),感应移相器(外环轴)和感应同步器组成的双通道测角方案[16]。粗测角部分由型号为160XZ02-1的旋转变压器(内环)和型号为160G2A-1感应移相器(外环)来完成,精测角分别通过8吋180对极(内环)和12吋180对极(外环)感应同步器来实现。测角系统中旋转变压器(感应移相器)、感应同步器输出信号都是模拟量,为了将此模拟信号精确的转换为控制器能够直接采集的数字信号,选用了美国AD公司生产的大规模集成电路AD2S80AJD轴角变换器。一方面,由于这种器件对旋转变压器(感应移相器)、感应同步器输出信号的波形失真、幅值稳定度技术指标要求不十分苛刻,这就为精确测角带来了方便;另一方面,这种器件输出信号更新速度很快(为微秒级),为提高数字控制方案的采样频率打下了良好的基础。本系统中对感应同步器和旋转变压器采用单相激磁、双相输出、鉴幅形式的方案,以适应轴角变换器AD2S80AJD的要求。AD2S80AJD的输出分辨率可分别选定为10位、12位、14位和16位四种方式。根据本转台工作精度要求,这里选用14位分辨率,当配以180对极-14-从图中看出失调角为4.05×10rad,合计0.023°满足系统性能指标要求。 哈尔滨工业大学工学硕士学位论文ˆˆ对旋转变压器和感应同步器的工作原理[17~18]进行简单介绍。2.3.1旋转变压器工作原理旋转变压器是角位置控制系统中较为常见的测角元件,它属于精密的控制微电机。从外形结构上看,它和电机相似,有一个定子和一个转子。从物理本质上看,它是一种可以旋转的变压器。这种变压器的原边、副边绕组分别放在定子和转子上。原、副绕组之间的电磁耦合程度与转子转角有关,因此转子绕组的输出电压也与转子的转角有关。按照输出电压与转子转角之间的函数关系,旋转变压器可分为正余弦旋转变压器、线性旋转变压器和比例式旋转变压器三种基本类型。根据实际需要,这里选用正余弦旋转变压器。这种旋转变压器在空载时输出电压与转子转角è之间可以精确地呈正弦或余弦函数关系。但实际使用时总是要接上一定的负载。负载电流产生的气隙磁场使输出特性偏离正、余弦规律,因此实际使用时旋转变压器都有补偿电路来保证输出电压呈正弦或余弦函数关系。利用旋转变压器输出电压是转角的正弦或余弦关系,可以测量角度变化。在小角度范围内,旋转变压器输出与角度成线性关系;但在大角度范围内,这种线性关系已经不能成立,而且由于不同的转角可以具有相同的输出电压,所以仅凭一个输出绕组的输出电压幅值不能唯一确定转角大小。为了使旋转变压器在大角度范围内也能作为线性测量元件使用,就要对旋变的输出电压信号进行适当的处理,使得最终的输出信号是电脉冲信号或数字信号,并且输出的脉冲数字与转角成正比。本课题选用美国AD公司生产的大规模集成电路AD2S80AJD轴角变换器完成此项功能。2.3.2感应同步器工作原理感应同步器是一中高精度转角和线位移测量元件,它是利用两个平面形印制绕组的互感随位置不同而变化的原理工作。在类型上感应同步器分为直线式和旋转式两种,分别用来检测直线位移和转角;在结构上感应同步器分为固定部件和运行部件两部分,其上各有绕组。工作时,在其中一个部件的绕组上通-15-感应同步器时,角度分辨率为0.44sec。考虑到AD2S80AJD自身误差约2.7sec,再考虑电路因素等造成的误差,可保证0.005o的测角精度。下面分别 哈尔滨工业大学工学硕士学位论文过以交流激磁电压,由于电磁耦合,在另一个部件的绕组上就产生了感应电势,该电势的有效值随固定部件和运动部件的相对位置不同呈正弦、余弦函数变化。根据实际需要,这里选用旋转式感应同步器。旋转式感应同步器的工作原理与旋转变压器相类似。它将角位移转换成周期性的模拟电信号,只要从输出信号中求出电角度,就可以得到角位移数值。为了将连续变化的周期信号转换为相应的数字输出信号,需要对感应同步器输出绕组的信号进行适当处理。感应同步器有鉴相型和鉴幅型两种信号处理方式,其中每个方式又可以采取单相激磁双向输出或双相激磁单相输出模式。为满足AD2S80A轴角变换器对输入信号的要求,这里选择单相激磁、双相输出、鉴幅形式。2.3.3双通道测角系统粗精耦合原理在粗、精双通道测角系统中,两个通道在工作时是相对独立的两套系统,且它们的测量范围和精度均不相同,粗测通道的测量范围大,精度较低;精测通道的测量范围小,但精度较高。但是要想获得大范围、高精度的测量却不能简单地把两个通道的值合并作为最终测量的结果,这就是粗、精耦合工作要解决的问题。由旋转变压器160XZ02-1组成的粗测通道的测角精度为3角分,如果要求其输出十分位数据的话,这位数据就可能同真正的角度有偏差。由180对极感应同步器组成的精测通道具有较高的测量精度,它的测角精度可达到万分之几度,故我们可以认为其数据前几位是真实的(带有精测误差的真实值)。因此所谓粗、精耦合实际上以精测的结果为标准对粗测结果进行修正,并将修正后的粗测整数位同精测的小数位合并构成最终的角度测量结果的过程。根据感应同步器极对数的不同,可以选用十分位比较判别修正法或粗、精通道个位数奇偶异同判别法进行粗精耦合。因本转台选用180对极感应同步器,通过对两种方法的比较发现,后一种方法更适合本测角方案。采用这种方案的前提条件是粗侧误差小于等于0.9o。在此前提条件下,如果由于粗测误差造成其0.1o位向1o进行错误的进、借位,肯定造成两通道的1o位值得奇偶性不同。这时由于粗测误差小于1o,则其1o位的误差或为+1或为-1。据此,耦合原则如下:(1)如果其奇偶性相同,则粗测1o位值为真实值(带有精测误差的真实值),这时直接将粗测整数为与精测小数位相耦合,得到实际角位置信号。-16- 哈尔滨工业大学工学硕士学位论文(2)如粗精通道的1o位值奇偶性不同,则必须对粗测的1o位值进行修正后再耦合,具体方法如下。a.如果粗测0.1o位值大于精测0.1o位值,则说明粗测0.1o位向其1o位有错误借位,故必须将粗测整数部分加1后再与精测部分耦合,得到实际角位置信号。b.如果粗测0.1o位值小于精测0.1o位值,则说明粗测0.1o位向其1o位有错误进位,故必须将粗测整数部分减1后再与精测部分耦合,得到实际角位置信号。由于精测通道的读数是2o,为周期溢出,故其1o位值是否奇偶性相同,则只要判断其8421码的“1”位状态的异同即可。2.4转台功率驱动电路分析转台控制系统中,功率驱动电路接受数字控制器传递的控制信号直接驱动电机按期望的速度运行。一般功率驱动电路都由模拟电路组成,只能接受模拟信号,而数字控制器通过PIO-D96数据采集卡输出的控制指令是数字信号,不能直接被功率驱动电路接受。故选用AD667(D/A转换芯片)将数字信号转换位相应的模拟信号。通过配置外围电路,该型芯片输出范围可为+5V、+10V、+2.5V等。根据实际需要,这里将其配置为+10V输出模式。功率放大器除应能满足最大输出力矩,良好的线性度,适当宽的频带等技术要求外,由于其在控制系统中所处的特殊位置,还要考虑实施转台控制系统的一些安全保障措施,例如过电流保护,超速保护,锁紧保护,限位保护及应急保护等。本功率放大器电路原理图如图2-6所示。由图中可知,这里选用了通常采用的H桥型单电源功率放大器。为了避免功率晶体管的直通发生而损坏功率晶体管,增加了防直通电路,具体体现在两下桥通道中串联的二极管。原理是同侧上下两功率管导通时,由于下桥臂二极管的导通,其下端电位必定低于上端电位,从而使上桥臂功率管的发射结处于反压状态,不能导通。这就避免了功率三极管直通的发生。为使功率放大器具有自检功能,在功放输入端设一个手动和自动转换开关,自动状态工作时接受工控机控制信号,手动工作时,由功率放大器前面板电位器控制功率放大器工作,也就是使功率放大器脱离控制系统而自检工作。-17- 哈尔滨工业大学工学硕士学位论文图2-6转台系统功率驱动电路图Fig.2-6Diagramofpowerdrivecircuitwithturntablesystem2.5控制器数据通讯关系分析控制器作为转台控制系统的一个核心部分,一般主要完成数据采集、数据处理、控制算法和数据输出等任务。这里因本转台只是“相机控制系统及总体装调检测装置”的一个子系统,必然要与其他系统进行数据通讯。由于本转台选用基于PCI插槽数据采集卡的工控机控制方案,故本小节,通过分析数字控制器在转台内部和外部的数据通讯关系,选择满足要求的硬件设备,为构建数字控制系统作准备。数字控制器与转台外部通讯主要体现在控制器与综合控制台和测角显示系统两个部分;其在转台内部的通讯关系,如2.1节所述,主要体现在控制器与测角系统和功率放大电路两个部分。下面分别就外部通讯关系和内部通讯关系两个方面,分别进行详细分析。-18- 哈尔滨工业大学工学硕士学位论文2.5.1控制器与外部通讯关系及所需端口分析数字控制器与转台控制系统以外设备的数据通讯,包括与综合控制台以及测角显示系统之间的数据通讯,如图2-7所示。综合控制台转台控制器测角显示系统图2-7转台外部通讯关系图Fig.2-7Diagramofthecommunicaterelationshipaboutturntableoutside图中标出了仿真转台系统到综合控制台和测角显示系统之间的数据流向。三者之间具体通讯数据形式分析如下:1.按总系统要求,转台控制器要从综合控制台采集8位控制指令,因此他们之间需要8位I/O端口进行通讯。2.按要求控制器在规定的时间内须向综合控制台传递测角信号。考虑系统测角精度和PC机二进制存储的特点,单轴19位的数据需要占用3个字节的存储单元,即单轴需要24位I/O端口进行通讯。对于双轴仿真转台来讲,如果不考虑端口复用的情况,双轴就需要48位I/O端口进行通讯。3.控制器在规定的周期内还要向测角显示系统传递测角信号,通过分析认为,这个信号可从控制器与综合控制台通讯的I/O端口获取而不需另占端口。2.5.2控制器与内部通讯关系及所需端口分析仿真转台控制系统结构如图2-8所示。图中给出了控制器与转台系统内其他环节之间的数据关系。下面通过对这些数据关系的分析确定其通讯数据形式。1.数字控制器与测角系统之间的数据通讯。本转台选用两片AD2S80A轴角变换器和旋转变压器、感应同步器组成粗、精双通道测角系统。根据AD2S80A的数据输出特点,每个通道应占用16位I/O端口,显然采用这种方案的单轴双通道应占用32位I/O端口。如果不加-19- 哈尔滨工业大学工学硕士学位论文数据采集卡测角系统数字控制器电机数据采集卡D/A功率驱动图2-8转台系统结构图Fig.2-8Structuraldrawingaboutturntablesysterm处理,两轴双通道将占用64位I/O端口。为了充分利用、节约系统资源,在不影响系统性能的前提下,可以采用端口分时复用的方法,即所有4片AD2S80SA输出信号共用一个16位I/O端口,由另外4位I/O端口负责分时选通相应的测角芯片。这样,完成数字控制器与测角系统之间的数据通讯只需20位I/O端口,可以节约44位I/O端口。2.数字控制器与D/A芯片之间的数据通讯。仿真转台通过AD667数模转换芯片将数字控制器输出的数字信号转换为功率驱动电路能够接受的模拟信号。因AD667芯片工作时需要输入12位数字信号,双轴控制系统则需要控制器输出48位数字信号,这样两者之间的通讯就需48位I/O端口。为了节约资源,控制器和它们之间的数据传输也可采用分时复用的方法,即用16位I/O端口完成数据传输的任务,2位I/O端口完成片选任务,可以节约30位I/O端口。通过分析,本着充分利用系统资源的理念。本系统选择泓格公司生产的PIO-D96数据采集卡。该型板卡是基于PCI总线的96位I/O板卡,它以8位端口为一个操作单元,可由独立的控制寄存器将其设置为输入/输出口,完全满足本数字控制器与外部通讯要求。在此基础上,数字控制器与各个部分之间的通讯量和通讯关系及端口分配如图2-9所示。由图可以看出数字控制器与转台系统内部及系统外部各个环节之间的通讯关系及通讯量。根据实际选用板卡的特点,以一个8位I/0端口完成所有内外环粗精通道测角输出、AD667数模转换的片选功能;根据综合控制台发送控制命令的需要,分配一个8位I/O端口接受控制指令。通过此图可以完成数字控制器具体的接口电路设计。-20- 哈尔滨工业大学工学硕士学位论文综合控制台外扩电路(各自独立)测角显示系统24位I/O输出口(内环角信号)8位I/O输入口24位I/O输出口(外环角信号)16位I/O输出口(控制指令)16位I/O输入口数字控制器内环粗测信号AD667(内环)AD667(外环)8位I/O控制口内环精测信号外环粗测信号外环精测信号图2-9数字控制器数据结构图Fig.2-9Structuraldrawingofthenumericcontroller’sdata2.6本章小结本小节在对转台控制系统总体结构分析的基础上,分别对转台测角系统和功率驱动电路的工作原理进行了分析。根据各个部分的技术要求,相连环节的通讯关系,分析了转台数字控制器与各个部分之间的具体通讯数据量,根据实际所需资源,选择了合理的器件,并运用古典控制理论对控制系统进行了设计,给出了相应的仿真曲线图。-21- 哈尔滨工业大学工学硕士学位论文第3章数字控制器软件平台分析3.1数控系统开发平台分析比较这里主要对DOS、Windows和基于Linux的RTLinux三种软件平台进行分析、比较,选择最适合本转台控制方案的实时操作系统。3.1.1基于DOS平台的数控系统DOS是一个单任务操作系统。DOS中的应用程序在运行时是过程式的,即:它顺序执行自己的代码,直到运行完毕后才放弃CPU,在此期间其它应用程序都不能运行。而转台系统的工作是一个多任务并发的过程,同时对任务运行的优先等级和实时性有严格要求。所以,基于DOS开发转台系统软件必须首先实现多任务环境,同时要保证任务调度的合理性和实时性。定时/计数器芯片(在PC中就是8253/8254)是计算机操作系统实现多任务功能的硬件基础。系统定时器的定时周期由操作系统在系统初始化时设定,DOS将其设置为大约55毫秒[19],这对于实时控制来说精度太低。但是由于DOS结构简单,允许应用程序直接访问硬件和修改中断向量,因此在DOS中可以直接对定时器重新编程而获得更高频率的定时中断(这是获得高精度定时的基础),并在此基础上实现了一个简单的多任务环境[20],这个环境就是数控系统软件的基本环境。为了保证任务调度的实时性,必须采用基于优先级的抢占式调度算法。但是这种由应用程序建立的多任务环境只是应用程序内部的多任务环境,DOS本身仍然是一个单任务环境。实践证明,用这种方法实现的数控系统基本环境在多任务能力和实时性方面都相当的好。多年来,我国的研究开发工作者在基于DOS平台的数控系统软件开发方面积累了丰富的经验,因此我国当前大部分数控系统软件都是基于DOS操作系统开发的。采用DOS作为数控系统的软件平台,有很大的局限性。首先,由于DOS是单任务操作系统,数控系统开发者自行实现多任务环境,开发周期长,而开放性、通用性和可靠性降低,往往调度代码和功能代码难以形成清晰的层次。其次,DOS提供的系统接口过于简单,可利用的软件资源很少。基于DOS的数控系统软件开发,低水平重复开发现象严重,代码复用率低,人机界面等非-22- 哈尔滨工业大学工学硕士学位论文核心功能的开发往往占用了大量的时间。DOS运行于CPU实模式下,只能管理640K内存,对系统性能造成了严重限制。DOS的开发商美国微软公司早已停止对DOS的继续开发,作为一个已经“成为历史”的操作系统,DOS对网络、数据库等现代先进数控系统功能的支持都非常弱。因此,基于DOS开发数控系统,很难跟上技术发展的潮流。总之,基于DOS开发数控系统,不符合软件工程学的科学规则,基于一个过于简陋的平台进行开发,很容易造成系统软件的层次不清晰,软件结构复杂,可维护性和可扩展性降低。从整个产业的角度来说,基于DOS开发数控系统,意味着软件的低水平重复开发:每个厂商基本上都是“从头做起”,分别开发自己的多任务环境及各种DOS没有提供的功能。目前,我国基于DOS的数控系统软件开发基本上是以相对封闭的“小生产作坊”模式进行的,规模化程度很低。3.1.2基于Windows平台的数控系统Windows无疑已经成为PC平台上最为通用的操作系统。由于Windows人机界面好,软件资源丰富,基于Windows开发数控系统具有很大的吸引力,已经成为研究开发的热点之一。Windows是非实时操作系统,其内核本质上是分时内核,无法满足数控系统的高实时要求。Windows环境的实时问题,有一些局部的解决方案。例如:在Windows3.1/3.2种利用DPMI(DOSProtectedModeInterface,DOS保护模式接口)提供的DOS环境实现高精度定时任务[21];在Windows96;WindowsNT3.5以上的版本中,由于应用程序不能绕过操作系统直接访问硬件,而只能通过系统提供的接口函数构造所需要的功能,所以高精度定时任务的实现不能采用DOS的方法。获得较高定时精度的方法是利用WindowsAPI的多媒体扩展库(MMSYSTEM.LIB)提供的多媒体定时函数[22]或者采用虚拟设备驱动程序(vxd)技术获取底层中断以实现高精度定时任务[23]。由于Windows内核的非实时本质,用这些方法获取的定时精度最高只能达到10毫秒,这对于数控系统的运动控制来说还是太低。在任务调度效率方面,由于Windows的调度器在设计时没有考虑实时应用,因而其调度效率较低。更重要的是,无论是Windows3.X还是Windows95/NT,其内核的许多机制都是与实时应用相矛盾的,很难以保证任务调度的效率和时机。基于Windows的数控系统对于实时性不足的主要解决方案是采用“PC+-23- 哈尔滨工业大学工学硕士学位论文运用控制卡”的主从体系结构。由DSP或单片机控制板构成“下位机”,完成实时任务。这种方案增加了硬件成本,而且系统结构复杂。实际上,PC的CPU所提供的上百兆甚至上千兆的运算能力,已足以满足数控系统的需要(SIEMENS等专机数控系统的主机工作频率一般只有几十兆赫兹),只是由于Windows操作系统的限制,实时性不足,才引入了下位机。图3-1基于Windows数字系统常用构建方案Fig.3-1ThepopularprojectofdigitalsystembasedonWindows图3-1简单描述了基于Windows平台数控系统的常用构建方案。在这种方案中,数控系统软件实际上分为两个部分,非实时部分和实时部分。非实时部分基于Windows平台,完成图形显示、网络通信、译码预处理等非实时任务,常采用Windows平台的VC++或VB等开发工具进行开发;实时部分在控制板(通常插在PC的PCI总线)上运行,完成插补、位控等实时性要求严格的任务。下位机控制板目前普遍采用PMAC(ProgrammableMulti-AxisController),其技术已经发展得较为成熟,可以完成高性能的伺服控制和开关量控制。如何既保留原有的Windows功能,又能够提供可靠的实时性能,一个很自然的办法就是采用第三方软件,对Windows作实时性扩展。这种实时扩展产品[24]比较著名的有美国VenturCom公司的RTX,TenAsys公司的Intime,Nematron公司的HyperKernel,这些产品均通过了严格的实时测试,完全满足数控系统的实时性要求。以VenturCom公司的RTX(RealtimeExtensionForWindows)为例,它是内置于Windows的实时操作系统,可以认为是Windows的一个实时子系统,-24- 哈尔滨工业大学工学硕士学位论文它不影响Windows原有功能,而增强了其实时性能。实际上,VenturCom公司获得了Windows的源代码,对其硬件抽象层HAL进行了实时扩展。该实时硬件抽象扩展层隔离了RTX和Windows之间的中断。在单CPU的情况下,所有RTX线程的优先级高于所有Windows线程优先级(包括Windows管理的中断和延迟过程调用DPC)。RTX可以保证任意线程的最差响应时间为50毫秒。可见,实时扩展的本质就是将Windows当作一个受实时内核调度管理的任务,其优先级最低。通过上面的分析,采用基于Windows的实时扩展系统作为开发开放式软数控的软件平台,既继承了Windows操作系统的开放性特征,又保证了数控系统所要求的实时性能,但是RTX作为商业软件产品,价格昂贵,这无疑将增加系统开发的费用。3.1.3基于Linux+RTlinux平台的数控系统数控系统的理想软件平台应该是具备多任务调度能力,又有很好的实时性的操作系统,即实时多任务操作系统。市场上有不少实时多任务操作系统产品,较有影响力的有VxWorks、iRMX、QNX等。这些实时多任务操作系统性能优秀,但开放性差,且价格非常昂贵。本课题采用Linux+RTLinux模式作为数控系统的软件平台。RTLinux[25]是Linux操作系统的一个实时扩展(标准Linux和Windows一样,是多任务非实时操作系统)。RTLinux作为数控系统软件平台的优点是:RTLinux具有多任务调度能力,且实时性很强。RTlinux支持两个域——实时域和非实时域的多任务调度。实时域任务以内核线程形式实现,非实时域任务以用户进程或用户线程的形式实现。利用RTLinux提供的基于优先级的抢占式多任务调度机制,以及丰富的任务通信机制,可以方便地实现数控系统各任务的调度和通信。在实时性能方面,RTLinux具有强实时特征,实时性能非常优秀。在一台配置Pentium120MHZCPU的机器上,其最大中断延迟时间(从处理器检测到中断信号处理程序开始运行的时间间隔)不超过34微妙,最大任务高度误差(周期性任务每次被运行时的当前时间与预期值之差)小于64微秒[26]。这些数据已经接近了硬件能力的极限。使用RTLinux提供的APT,可以保证插补、位控等实时任务以微秒级的精度被调度运行。RTLinux是源代码开放的免费操作系统。作为自由软件运动的产物,RTlinux可以免费通过网上下载获得。因此,以RTLinux作为软件平台的数控-25- 哈尔滨工业大学工学硕士学位论文系统,将具有明显的成本优势。更为重要的是,由于RTLinux的源码是开放的,基于RTLinux开发数控系统,可以从根本上掌握核心技术,而不受制于国外的技术垄断。在RTLinux中,标准Linux所拥有的强大的非实时服务仍可使用[27]。RTLinux的实现原理是把一个小的实时内核嵌在标准Linux的底部,标准Linux作为RTLinux的最低优先级线程运行。非实时任务运行于标准Linux中,可以使用所有Linux提供的服务。Linux已经发展成为一个功能非常丰富、强大的操作系统,而且还正处在迅速发展之中。利用Linux提供的网络、图形、数据库、窗口系统等功能,可以方便地实现数控系统的图形界面及网络、数据库等高级功能。这样,数控系统的开发者可以把更多的时间和精力用于加减速控制、动态误差补偿等数控核心技术的开发中。图3-2简示出了基于RTLinux的数控系统的构建方案,从图中可以看出,图3-2基于RTLinux数控系统构建方案Fig.3-2TheprojectofdigitalsystembasedonRTLinux基于RTLinux的数控系统与基于Windows的数控系统相似,系统软件可分为非实时部分和实时部分。不同的是,实时内核代替了下位机。实时任务基于实时内核,其硬件基础与非实时任务一样,是PC的CPU,而不是控制板上的DSP芯片。由于RTLinux发展历史不长,因此不可避免地还存在一些不足:与DOS和Windows相比,RTLinux的软件开发环境比较简陋,开发工具也不丰富,这给开发人员带来了许多不便。RTlinux的强实时性是基于内核线程实现的,但-26- 哈尔滨工业大学工学硕士学位论文是内核编程调试起来比较困难,处理不好容易损害系统的稳定性,且内核实时线程可以利用的资源非常有限。RTLinux尚未获得接口设备厂商的广泛支持。实时控制所需的接口板卡。如各种I/O板卡、脉冲板、总线接口板等,需要自行开发驱动程序,这加大了数控系统的开发工作量。RTLinux正处于迅速的发展中,它的这些不足,正在得到不断的改善和解决。总上所述,在综合考虑可行性、经济性、自主性的基础上,本课题采用Linux+RTLinux模式作为数控系统的软件平台。3.2RTLinux的实现原理和数据通讯为了便于理解RTlinux的工作原理,有必要对RTlinux作一些介绍,这里主要分两点来说明:1.RTlinux实现原理,主要介绍RTlinux如何对Linux内核进行改造,使一个分时、多任务操作系统适用于实时控制;2.RTlinux实时内核和linux内核之间的通讯方式,以便利用linux下丰富的软件资源。3.2.1RTLinux的实现原理前面已经对RTLinux的原理作了一个简单的介绍,这里将详细分析其实现原理[28-31]。RTLinux是源代码开放的具有硬实时特性的多任务操作系统,它是通过对Linux底层实施改造的产物。通过在Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux内核作为实时内核的一个进程与用户进程一起调度,标准的Linux内核的优先级最低,可以被实时进程抢断,中断控制硬件中断控制硬件RTLinux内核Linux内核Linux内核实时任务Linux进程Linux进程图3-3Linux内核细节与RTLinux内核细节的比较图Fig.3-3ThecomparationofinnerkerneldetailsbetweenLinuxandRTLinux-27- 哈尔滨工业大学工学硕士学位论文正常的Linux进程仍可以在Linux内核上运行,这样既可以使用标准分时操作系统Linux的各种服务,又能提供低延时的实时环境。具体如图3-3所示。从图中可以看出,本来是由Linux内核完全控制的Linux进程和硬件中断,现在由Linux内核和中断硬件之间增加的RTLinux内核完全控制。Linux的控制信号都要先交给RTLinux内核进行处理。在Linux中,用禁止中断的方法作为同步机制,通过向x86处理器发送“sti”和“cli”宏指令来开中断和关中断,由于关中断和开中断的混合使用使得中断的分派延时不可预测,而RTLinux修改了这些宏指令,分别用宏S_STI和S_CLI替换。RTLinux引入一个虚拟层,采用在Linux内核和中断控制硬件之间增加一层仿真软件的方法截取所有的硬件中断,将所有的中断分成Linux中断和实时中断两类,如果是实时中断,则继续向硬件发出中断,如果是普通Linux中断,就设置一个标志位,等到RTLinux内核空闲时通过软中断传递给Linux内核去处理。这样就使得Linux永远不能禁止中断,无论Linux处在什么状态,它都不会对实时系统的中断响应时间增加任何延迟,以致时间上的不可预测性。RTLinux在默认的情况下采用优先级的调度策略,即系统调度器[32-34]根据各个实时任务的优先级来确定执行的先后次序。优先级高的先执行,优先级低的后执行,这样就保证了实时进程的迅速调度。同时RTLinux也支持其它的调度策略,如最短时限最先调度(EDP)、确定周期调度(RM)(周期段的实时任务具有高的优先级)。RTLinux将任务调度器本身设计成一个可装载的内核模块,用户可以根据自己的实际需要,编写适合自己的调度算法。对于一个操作系统而言,精确的定时机制虽然可以提高任务调度器的效率,但会增加CPU处理定时中断的时间开销。RTLinux对时间精度和时钟中断处理的时间开销进行了折中考虑。不是像Linux那样将8254定时器设计成10ms产生一次定时中断的固定模式,而是将定时器芯片设置为终端计时中断方式。根据最近的进程的时间需要,不断调整定时器的定时间隔。这样不仅可以获得高定时精度,同时中断处理的开销又最小。3.2.2RTlinux与Linux内核之间的通讯方式RTLinux提供了RT_FIFO[35-38]和共享内存两种标准通信接口,用于RTLinux和Linux内核之间的通讯。下面分别进行介绍。1.RT_FIFO-28- 哈尔滨工业大学工学硕士学位论文RT_FIFO(First-In-First-Out,先进先出)是一种提案队列机制组织的字符设备。在Linux文件系统中,主设备号为150。一个系统平台中能够同时加载FIFO的模块数由RTF_NO定义在rt_fifo_new.c中,一般为64,在文件系统中分别对应设备文件/dev/rtf0..63。在系统资源允许的情况下,一个用户进程所能同时使用的FIFO数和每个FIFO的容量是没有限制的。RT_FIFO具有如下特征:*队列中的数据传送采用数据流形式,必须自行定义数据边界监测机制,尤其对于不定长度数据的传输。*具备完善的同步阻塞机制,利用同一FIFO进行通信的两进程间无需自行增加同步控制。*一种点对点的通信通道,不支持单生产者、多消费者的使用模式。作为一个完善的队列模块,RT_FIFO的使用简便易行,具体实现主要包括创建、读/写操作、释放三个步骤。在Linux文件系统中,RT_FIFO是一个字符设备文件,所以在非实时线程中访问RT_FIFO时,使用标准的字符设备读/写函数即可(read、write、open、close,etc)。以上函数的调用方式均为阻塞式调用:当FIFO中有数据可读时,立即返回;否则,会陷入无限等待之中。从RT进程中访问RT_FIFO,所涉及到的RTLAPI如下:#includeintrtf_create(unsignedintfifo,intsize);创建函数目的为编号fifo的RT_FIFO设备分配size字节的缓冲区。其中fifo对应于所使用RT_FIFO的次设备号。intrtf_destroy(unsignedintfifo);释放函数释放内核空间中次设备号为fifo的RT_FIFO设备缓冲区。注意:以上两个函数涉及到内核空间的缓冲区分配,必须分别在RTLinux的init_module()和cleanup_module()中调用,或者在用户空间通过PSC(theuser-levelreal-timesignallibrary,用户级实时库函数)进行调用。intrtl_get(unsignedintfifo,char*buf,intcount);内核中读函数从FIFO中读出长度为count字节的数据,存放buf之中。intrtf_put(unsignedintfifo,char*buf,intcount);内核中写函数将长度为count字节的数据写入FIFO中。intrtf_create_handle(unsignedintfifo,int(&handler)(unsignedintfifo));创建一个回调函数句柄,当FIFO被Linux进程读/写时,被调用。通常与rtl_get结合使用,用于异步的从Linux进程中接收数据,从而避免采用轮询的-29- 哈尔滨工业大学工学硕士学位论文方式。2.共享内存共享内存是指被闲置出来专用于内核空间和用户空间进行通信的内存区域。相对于FIFO具有如下特点:*应用程序必须自己定义相应的协议,对于写入共享数据区域的数据进行保护,如同步控制等。*数据可以既定格式读/写,各个数据域的更新十分便易。*不是点对点的通信通道,可以支持多生产者、多消费者的使用模式,能够同时被多个线程访问。在RTLinux下,共享内存的使用可采用以下两种方式。1.利用RTLinux中附带的mbuff模块在使用mbuff之前,要求系统中已经加载了mbuff.o模块。该模块中的两个函数被分别用于分配和释放所需的内存空间。#includevoid*mbuff_alloc(constchar*name,intsize);内存分配函数从内核空间中分配一块与name相连,大小为size字节的内存空间,返回地址指针,设备这块空间的引用标识为1。如与name相连的内存空间已经存在,就仅仅返回指向该空间的地址指针,同时将其引用标识加1。voidmbuff_free(constchar*name,intsize);内存释放函数将mbuff的引用标识减1。当引用标识被减为0时,释放mbuff。注意:①mbuff_alloc使用了vmalloc函数,由于分配内核空间的需要,会交换出一系列的内核空间页面,所以在实时线程、中断处理线程、定时器中断线程中调用这个函数是十分危险的。②在进程结束前,一定要调用mbuff_free函数。Mbuff所占内存空间不会因为其引用进程的结束而自行释放。2.高地址空间物理内存的直接隔离该方法是在系统启动时,隔离出一定大小的高地址空间物理内存,使其脱离系统运行环境,作为专用的共享内存区域。利用实时核和Linux内核提供的端口操作函数,直接对分配的内存区域进行读写操作。通过分析比较可以看出,在利用共享内存这种方法进行通讯时,如果不对同一内存区域的读/写操作进行互锁处理,就会出现多线程对同一内存区域读/写时资源冲突的情况,而且,因内核空间的特殊性,如果资源分配不当,还会造成系统崩溃、死机等现象。故本项目在实现过程中采用RT_FIFO方式实现-30- 哈尔滨工业大学工学硕士学位论文两个内核之间的通讯。3.3RTLinux的安装步骤上节详细介绍了RTLinux的实现原理和内核通讯方式。显然,数控程序必须运行在基于Linux的RTLinux实时内核上。根据RTlinux的特殊机制,不能像一般操作系统那样建立RTLinux实时操作系统平台。本节主要讲述建立本项目中基于linux-2.4.20内核的RTLinux3.2实时操作平台[39-40]的步骤。第一步:下载linux-2.4.20.tar.gz和rtlinux-3[1].2-pre2.tar.bz2的源代码。第二步:在/usr/src目录下新建rtlinux文件夹,并将下载的两个源代码放入rtlinux文件夹。第三步:在/usr/src/rtlinux目录下(图形界面下可直接双击压缩文件)解压缩源代码,解压缩命令如下:tar-jxvfrtlinux-3[1].2.tar.bz2tar-jxvflinux-2.4.20.tar.gz第四步:在/usr/src目录下创建linux文件夹并创建链接(如果在此目录下有linux文件需要删除),命令如下:cd/usr/srcln-s/usr/src/rtlinux/linux-2.4.20linux第五步:给linux-2.4.20内核打上实时补丁,命令如下:cd/usr/src/linuxpatch-p1否则编译出错。数字控制器通过PIO-D96板卡输出的是数字信号,不能直接作为功率驱动电路输入信号。两者之间必须加入一个D/A(数模)转换芯片,本课题选用的是AD667处理芯片,并取其+10V输出范围模式。该型芯片接受12位数字输入信号,输入数字量与模拟电压对应关系如表4-1所示。由表可知输入在2049~4095时输出为正电压,输入在0~2047时输出为负电压。而实际要求输表4-1AD667输入输出对应关系表Table.4-1ThemappingrelationshiptableofinputingandoutputtingaboutAD667D/A(V)+9.99756+9.99256+0.004880.0-0.00488-0.00976-9.99756-10.0D/A(V)111111111111111111111110100000000001100000000000011111111111011111111110000000000001000000000000十进制数40954094204920482047204610入为负值时输出负电压,负值越大,模拟负电压越大;输入为正值时输出正电压,正值越大,模拟正电压越大。计算机中符号位是由最高位来表示的,,且PC中一般都以16位存储,这样将16位数据放入一个12位输入口时会自动舍弃高4位,即符号位不起作用。根据图表中数据规律,输出数据加上0x800即可实现AD667输出模拟量与期望输出值一致的效果。-35-,它们分别是outb()、inb()和outw()、inw()函数。前者主要是对单字节端口 哈尔滨工业大学工学硕士学位论文4.1.2数字控制器数据处理数字控制器的数据处理主要包括数据补偿、粗精耦合和控制算法三个部分,其中控制算法根据第二章中设计的参数进行编程。本小节将着重分析数字控制器在采集到测角数据的基础上,如何实现测角数据的补偿和耦合问题。正如第二章所说,由感应同步器和旋转变压器组成的双通道测角系统可达到较高的精度。但双相激磁测角系统中,两相激磁电源的幅值不等,相位不正交及感应同步器的相邻零位误差和相邻幅值误差会造成角位置测量系统的二次谐波误差。单相激磁测角系统中,两相输出的不正交及幅值的偏差也会引起二次谐波误差。二次以上谐波误差是由失真度和感应同步器本身引起的,是造成角位置误差的主要原因,是不能靠调整激磁电源参数补偿的。当然,除二次谐波误差外,由于感应同步器安装、布线等原因还会造成角位置测量系统在感应同步器一个节距(360对极感应同步器为1o)内的一次谐波误差。在实际调试中,感应同步器的相邻幅值误差和相邻正交误差可以通过调整激磁电源的参数来补偿。而硬件不能补偿的部分只能通过软件进行补偿。因双轴仿真转台还没有安装完毕,只能在已有的单轴转台上进行实验,其原理是一致的。通过对转台实际角度位置和测得的数据进行对比发现误差很大,如图4-1400350300250200150100500050100150200250300350400图4-1测角系统未补偿误差曲线图Fig.4-1Thedeviationcurvilinearwhentheanglemeasuringsystemhaven’tcompesated所示。图中直线是期望的角位置信号,曲线是测的角位置信号。由图可知这种-36- 哈尔滨工业大学工学硕士学位论文误差变化呈现一定的规律性,既可以通过函数补偿,也可以通过分段补偿。这里选用分段补偿的方法,因为该方法简单直接、计算量小。通过对测试数据分析,将0o-360o分为14个小段分别采用线性化方法进行补偿。具体补偿函数参考附录1。补偿后的曲线如图4-2所示。由图可知,这种补偿方法效果是很明显的。对提高系统精度有很大的帮助。400350300250200150100500050100150200250300350400图4-2测角系统补偿误差曲线图Fig.4-2Thedeviationcurvilinearwhentheanglemeasuringsystemhascompesated4.2创建可移植的控制程序RTLinux中的源程序,必须通过编译生成期望的目标文件或可执行文件才能在RTLinux平台上运行。对于简单的程序来说,用gcc编译命令加上一些编译参数就能得到期望的结果;但对于一个复杂(不只指程序本身的大小也指程序使用资源的多少)的程序来说,如果仍直接用gcc命令去编译,因参数选项太多,编译命令显得长且复杂,容易出错,不利于阅读,可移植性差。本课题选用Linux常用的Makefile文件实现源代码的编译工作。Linux可以通过两种-37- 哈尔滨工业大学工学硕士学位论文方法得到Makefile文件,一种是根据Makefile的规则自己手动编写,另一种是通过Linux自带的自配置文件(autoconf)来自动生成。前一种方法在程序移植时,需要根据源代码中使用的资源在PC机中存储位置的不同,进行手动改造,而后一种则不存在这样的问题,故这里主要讨论运用后一种方法实现可移植程序控制程序的方法。在具体讨论如何运用autoconf命令生成Makefile文件之前,有必要对这种方法的意义和目的有个了解。从最基本的层次来看,可移植性是指以这样的方式编写程序,即相同的源代码不必改动就能在多种平台上编译、运行。开发这样能够运行在不同平台上的软件是需要很多技巧和努力的工作。首先,代码自身必须是可移植的,可移植代码很少对运行的硬件以及可以使用的软件库等有所假设;其次开发者必须对不同系统的编译和运行环境,甚至是硬件体系结构有足够的了解。Linux中普遍使用的GNU(自由软件)软件,虽然也存在于许多其他的操作系统和硬件平台,但是不能够保证在那些操作系统上必然能够找到所需要的软件。很显然,要满足所有的这些需求是一项让人感到畏惧的工作,但是autoconf能够减轻这项工作。虽然autoconf能够让编写真正可移植代码的工作变得容易些,但是仍然有很多任务要完成。autoconf生成一个能自动配置源代码包的shell脚本,以使程序能够在许多不同品牌的UNIX和类UNIX系统上编译和运行。这些脚本通常被命名为configure,它们检查在当前系统中是否提供程序所需要的某些功能,并在此基础上生成makefile。最好的一点是,autoconf生成的脚本是自包含的,因此在目标系统上编译软件时不需要在其系统上安装autoconf,使用者所需要做的只是在软件发布版本的源程序目录中键入./configure就能生成期望的Makefile文件。为了生成configure脚本,需要在源文件树的根目录下创建名为configure.in文件。configure.in调用一系列autoconf宏来测试程序需要的或用到的特性是否存在,以及这些特性的功能。autoconf包括很多预定义的宏(可以参考相应的书籍),可以测试常见的必要的特性。除常见的内置宏以外,也可以使用第二组宏建立自己需要的测试集,甚至可以包含自己编写的测试不常见的或特殊的功能所需要的shell脚本。在此基础上,下面主要讲述运用autoconf(自配置文件)生成实时程序Makefile文件的过程。1打开一个中断窗口,在/usr/control目录下运行autoscan命令。此命令能够生成以下两个文件:autoscan.logconfigure.scan-38- 哈尔滨工业大学工学硕士学位论文configure.scan文件是configure.in文件模板,内容如下:#-*-Autoconf-*-#Processthisfilewithautoconftoproduceaconfigurescript.AC_PREREQ(2.57)AC_INIT(FULL-PACKAGE-NAME,VERSION,BUG-REPORT-ADDRESS)AC_CONFIG_SRCDIR([control.c])AC_CONFIG_HEADER([config.h])#Checksforprograms.AC_PROG_CC#Checksforlibraries.#Checksforheaderfiles.#Checksfortypedefs,structures,andcompilercharacteristics.#Checksforlibraryfunctions.AC_OUTPUT将configure.scan修改为:#-*-Autoconf-*-#Processthisfilewithautoconftoproduceaconfigurescript.AC_INIT(control.c)AM_INIT_AUTOMAKE(control,0.18.1)其中control.c是本控制器用户空间程序,以“#”开头的行为注释行。根据实际程序利用的资源,在configure.scan文件相应的位置添加相应的测试宏(参照专业书籍),将修改好的configure.scan文件改名为configure.in文件,这就是autoconf命令操作的对象。根据configure.in文件运行autoconf就能得到configure可执行文件。但此时运行./configure还不能生成期望的Makefile文件,因为./configure命令必须依据Makefile.in文件才能生成Makefile文件。2.运行aclocal命令,该命令生成aclocal.m4文件,提供autoconf和automake操作需要的信息。3.生成Makefile.in文件。该文件是automake命令根据Makefile.am文件自生成的。Makefile.am文件一般都是自己编写的,具体内容如下:AUTOMAKE_OPTIONS=foreign/*foreign是automake的选项设置为foreign时改用一般软件包的标准来检查,一般foreign可以了,如果有特殊需要可以查阅相关资料。*/-39- 哈尔滨工业大学工学硕士学位论文bin_PROGRAMS=control/*指定要生成的可执行文件名称*/hello_SOURCES=control.c/*源代码*/次时运行automake--add–missing就得到了Makefile.in文件。其中--add-missing选项是为了运行automake命令时自动创建链接文件depcompinstall-shmissingmkinstalldirs。5运行autoconf命令生成configure可执行文件,由./configure生成控制程序的Makefile文件,最后由make命令将源代码编译成可执行代码。由上文可知,运用这种方法创建可移植程序非常方便、简洁。目前,本转台控制程序已成功运行在实验室多个装有RTLinux操作系统的实验平台上,无需进行任何修改,充分肯定了这种方法在程序可移植方面的应用。4.3过零处理及转台摇摆功能实现本转台速度控制采用的是位置牵引方法,即在固定的周期内控制转台走一定的角位置。所谓过零处理是指期望走到的位置因每个周期内增加或减小的情况,可能会出现大于360o或小于0o的情况,而实际角位置总是在0o~360o范围内变化。前面已经说过,误差信号是通过期望角位置信号与实际角位置号相减获得的,过零点时,如果期望值一直是增加的,实际位置由三百多度过渡到几度时,期望值比360o要大,此时误差大于360o不能反映实际情况;如果期望值一直是减小的,实际位置由几度过渡到三百多度时,期望值小于0o;此时误差小于-360o同样不能反映实际情况。显然导致误差出现异常变化的原因是期望角位置信号不能给出正确的角位置信号,误差大于360o是因为过零点时,期望位置比实际位置大了360o,误差小于-360o是因为过零点时,期望位置比实际位置小了360o。解决这个问题的办法有两种:一、当期望位置出现小于0o或者大于360o时,加减360o使之与实际角位置一致;二、对误差信号进行判断,如果大于360o则减去360o,如果小于-360o则加上360o。本课题选用的是两者相结合的方法,处理程序如下:if(posion_ideal>=359950){posion_ideal=posion_ideal-359950;}if(posion_ideal<=-359950){-40- 哈尔滨工业大学工学硕士学位论文posion_ideal=posion_ideal+359950;}posion_error=posion_ideal-posion_fact;if(posion_error<-200000){posion_error=posion_error+359950;}if(posion_error>200000){posion_error=posion_error-359950;}其中posion_ideal是期望位置信号,posion_error是误差信号。摇摆功能是指转台基于某一起始位置做等幅摇摆运动。实现摇摆功能要解决以下几个问题,一、保证转台在规定角位置(摆的最高点)换向,即速度控制信号v值要改变符号。假设起始位置定义为posion_base,摇摆幅度为15o,则要求当posion_fact(实际位置)大于等于posion_base+15o或小于等于posion_base-15o时,v应该改变一次符号,但是综合考虑系统各个情况,如果不加入互锁机制,当系统进入换向范围内时,,速度值在下一个周期改变符号,考虑到采样周期比较短,可能出现过渡过程时间是采样周期两倍以上的情况,此时如果不加入互锁机制,则转台因为速度值符号不断改变,围绕基值点会出现震荡的情况。二、符号改变的条件,因实验转台测角元件精度较低,而计算机中是以2进制数存储角位置信号,显然不可能出现规定角位置与测角数据完全一致的情况,即在条件判断语句中不能用恒等于符号,而是在一定的范围内改变符号。具体实现程序如下:if(flag<1){posion_ideal=posion_fact;posion_lmit0=posion_fact-15000;posion_lmit1=posion_fact+15000;if(posion_lmit0<0){-41- 哈尔滨工业大学工学硕士学位论文posion_lmit0=posion_lmit0+359950;}if(posion_lmit1>359950){posion_lmit1=posion_lmit1-359950;}if(v<0){change_bool=-1*change_bool;}if(v!=0){flag=2;posion_lmit0=posion_fact-15000;posion_lmit1=posion_fact+15000;if(posion_lmit0<0){posion_lmit0=posion_lmit0+359950;}if(posion_lmit1>359950){posion_lmit1=posion_lmit1-359950;}}}if(flag==2){if(change_bool>0){if((posion_lmit1-posion_fact)<500){v=-1*v;sudu=v;change_bool=-1*change_bool;}-42- 哈尔滨工业大学工学硕士学位论文}elseif(change_bool<0){if(posion_fact-posion_lmit0<500){v=-1*v;sudu=v;change_bool=-1*change_bool;}}}其中posion_lmit0是负向摆动最高幅度,posion_lmit1是正向摆动最高幅度。change_bool是换向符号标志位。4.4本章小结本章通过对转台数字控制器需要实现的主要功能及其解决方案进行了详细叙述,并给出了部分程序代码,为数字控制器的整体设计作准备。有利于完善数字控制器功能,加快数字控制器开发速度。-43- 哈尔滨工业大学工学硕士学位论文第5章数字控制器设计与实现5.1数字控制器外围接口电路设计通过对数字控制器通讯信息的分析,硬件方面需要满足性能指标的PC机一台,包括鼠标、键盘、显示器等;8位端口操作的96位数字I/O采集卡一块,完成模数转换的AD667两片。具体外围电路如图5-1所示。图5-1控制器外围接口电路图Fig.5-1Thecircuitfigureofcontrollerperipheryport图中描述了测角采集和数据输出的电路,但不包括与综合控制台及测角显示系统的接口电路,这是因为综合控制台和转台控制系统选用的是同一型号的数据采集卡,且该型板卡分为3个50针插座、一个37针插座,每个插座都包含3个8位操作单元,根据通讯信息量两者可直接用50针扁平电缆连接,无需外扩电路。-44- 哈尔滨工业大学工学硕士学位论文5.2数字控制器软件设计RTLinux系统提供了抢占式多任务调度机制,并将系统分为实时域和非实时域(Linux内核)两部分,实时性要求较低的任务可置于Linux核中运行,实时性要求较高的任务置于实时核中运行。RTLinux实现多任务调度主要通过两种方式:多进程和多线程。进程拥有自己独立的运行环境,而线程是一个进程中的执行分支,各线程从属于统一进程。共享同一地址空间。RTLinux系统允许多个线程并行执行,并采用CPU的时间分片和基于优先级的调度策略实现多线程调度,因而大大提高了系统和程序的运行性能。开始定义变量初始化变量打开驱动文件打开管道文件板卡初始化设置转速为0传递启始指令是while(v!=360)否关闭驱动文件关闭管道文件结束图5-2用户程序流程图Fig.5-2Thefowsheetofcustomerprogram-45-输入速度值 哈尔滨工业大学工学硕士学位论文在本系统中,利用RTLinux提供的多线程技术,通过为实时任务创建一个身实现机制,将数字控制器软件设计分为用户程序和实时任务两个部分来实现。用户程序完成初始化变量、PIO板卡初始化、传递控制指令、接收实时核传递的测角数据等任务,其中板卡初始化主要是根据系统中板卡接口的要求,将相应的端口设置为输入或者输出特性,对某些端口的输出直接设置为低或者高电平输出。具体流程如图5-2所示。实时任务由可动态装载的内核模块实现,RTLinux中一个完整的内核模块由初始化模块(init_module())和清除模块(cleanup_module)组成。当装载实时任务到内核空间时,系统首先运行init_module()模块,其次运行初始化创建的线程;当用户从内核空间卸载实时任务模块时,系统调用cleanup_module()模块释放初始化模块中分配给线程的资源。根据这些特点,内核模块设计可以分为三个部分,一、初始化模块,这部分调用RTlinux下init_modules()函数完成参数初始化,资源分配、创建线程的任务,其系统框图如图5-3所示;二、进程处理函数,系统初始化模块运行完毕后会自动转向开始参数初始化创建管道创建线程结束图5-3初始化模块流程图Fig.5-3Thefowsheetofinitialmodule初始化模块创建的进程函数,这部分将完成程序的所有功能,包括数据采集、处理和输出等。根据数字控制的特点需要对线程的属性、优先级等进行初始化,使之适合实时控制的要求,本项目在使用的过程中将其设置为周期性线程,在固定的时间内完成测角数据采集处理和补偿、控制算法等任务。具体如图5-4所示;三、清除模块,这部分调用RTLinux下的cleanup_module()完成-46- 哈尔滨工业大学工学硕士学位论文进程函数入口参数初始化进程初始化时间=2ms否是采集数据数据处理是Counter>5否I/O口通讯是Control=0?否计数清零上位机控制本系统控制控制算法数据输出图5-4进程处理函数流程图Fig.5-4Thefowsheetofprocessingfunction-47- 哈尔滨工业大学工学硕士学位论文系统资源释放的任务,主要是清除进程ID和一些有名管道,程序框图如图5-5所示。开始释放进程资源释放管道资源结束图5-5控制器资源释放模块Fig.5-5Themoduleofcontrollerresourcerelease根据程序流程图已完成程序的详细设计,具体程序见附录2。根据Makefile文件由make命令将源程序编译成*.o文件,依据RTLinux装载模块的特点,每次开机时由rtlinuxstart*.o命令将模块装载入实时核运行,由rtlinuxstop*.o命令将模块从内核中卸载出来,以实现停止程序执行的目的。5.3实验结果分析根据本论文中提供的软件操作平台、外围硬件接口电路和实时程序,能够很好的实现转台的正反向控制。实验中主要出现如下两点问题。一、转台系统在经过某些区域时会出现自振荡现象,在外力扶持下走过这些区域,系统仍然能够稳定运行。通过测试数据分析,在不稳定区域D/A输出正电压时,数据向增加方向跳变。可以认为在这些区域干扰力矩较大,系统一直积累误差,直到误差大到电机输出力矩可以克服摩擦力矩时,转台才可以前进。实验发现,此时转台实际物理位置小的变化在测角数据中呈现大的跳变,造成系统出现大偏差饱和现象。后分析原因,是测角系统元件旋转变压器激磁信号波形失真所致。二、仿真控制算法无法加入数字控制器中,尤其是开环增益无法提高。增益的无法提高意味着系统稳态误差较大。分析认为,系统是由测角系统、数字控制器、功率驱动电路和转台机械台体共同组成的。每个部分的特性都影响到-48- 哈尔滨工业大学工学硕士学位论文系统的性能。这里因实验转台干扰力矩比实际转台大、测角元件误差较大等原因造成的。无法实现实际转台提出的控制指标。通过改进控制算法、测角补偿等方法现已能完成实验转台的粗精度恒速摇摆控制。5.4本章小节本章在前几章分析的基础上,完成数字控制器外围电路设计和具体软件设计两大任务,并对实验结果和现象进行了分析。通过分析,证明了RTLinux实时操作系统在转台控制方面的可行性、可靠性。-49- 哈尔滨工业大学工学硕士学位论文结论本文以某型“航空相机控制及总体装调检测装置”中的双轴仿真转台为研究对象。在分析系统总体结构的基础上,简单介绍了转台各个环节的工作原理,明确了它们之间的通讯关系,着重分析、比较数控系统通用软件平台的优缺点,运用RTLinux实时操作系统实现转台数字控制。对设计应用中存在的难点,如实时核板卡驱动、实时核与用户核通讯、摇摆功能等进行了详细分析设计且给出了部分源代码。论文工作和主要内容如下:1.在转台系统总体结构分析基础上,以古典控制理论为依据,对控制系统进行设计,给出了相应的仿真结果。为明确转台测角系统和功率驱动电路与控制器之间的通讯关系,对两者的工作原理进行了介绍。因本转台系统只是“航空相机控制及总体装调检测装置”中的一个子系统,所以论文中还对控制器与整个检测装置中的其他系统之间的通讯关系进行了分析。根据实际需要,选择合理的电子器件设计出实用的数字控制器外围电路。2.通过对数控系统软件平台DOS、Windows、RTLinux的可行性、稳定性和经济性进行分析、比较,最终选择RTLinux作为数字控制器软件平台。为了更好的理解这种方案的工作原理,论文详细介绍了RTLinux的实现原理和内核数据通讯方式,并给出了在Linux平台上构建RTLinux的方法和步骤。3.按照转台模拟飞机俯仰和滚动的特点,给出了一种转台数字控制的实现方案,并对方案实现过程中遇到的技术难点,如摇摆功能、板卡驱动、平台可移植性等进行了详细分析,给出了具体的解决办法,且附有相应程序代码。4.根据系统性能和技术指标要求,完成数字控制器软件和外围电路设计,并对实验结果进行了分析,证实了RTLinux作数控系统软件平台的可行性。文中对RTLinux实现数字控制的过程进行了详细叙述,针对该操作系统的特点,分为用户空间程序和实时核空间程序两个部分编写、调试、执行程序代码。考虑到平台可移植问题,论文中还给出了Makefile编译文件自生成方法和步骤。通过对实验结果的分析,充分证明了基于RTLinux平台实现转台数字控制器的可行性。-50- 哈尔滨工业大学工学硕士学位论文参考文献123456789美国伺服转台的发展概况.惯导与器件.1987:1-4T.RobertandA.Richard.SiteSelectionandDesignConsiderationsandAdvancedGuidanceTestFacility.14thBlennalalGuidanceTestSympposium.1989:25-40R.W.Tripp.PositionMeasuringTransformerUSPatent.1993:2-5朱正祥.惯性测试设备技术的研究与发展.惯性技术发展动态、发展方向研讨会文集.中国惯性技术学会军工组.1994:16-34丁衡高.惯性技术文集.国防工业出版社.1994:13-32黄庆根.康特维斯—戈尔兹公司(CGC)概述.美国惯导测试设备与测试技术的现状及趋势,中国惯性技术学会,中国航空精密机械研究所.1987:2-5董传斌,黄庆根.MPACS30H系列模块化精密绝对角度编码/控制系统概述.美国惯导测试设备与测试技术的现状及趋势,中国惯性技术学会,中国航空精密机械研究所.1987:56-70LouisA.Demore.DesignStudyForHighAccuracyThree-axisTestTable.CGCInternalReport.19851-5张丽珠,郭抵,黄庆根.惯导测试设备性能指标及有关技术问题与CGC的技术交流收获.美国惯导测试设备技术的现状及趋势,中国惯性技术学会,中国航空精密机械研究所.1987:55-5910JohnLomband吴雨浓译嵌入式Linux中国电力出版社,2003:3-3611刘峥嵘张智超徐振山.嵌入式Linux应用开发详解机械工业出版社2004.6:3-1412邹思轶嵌入式Linux设计与应用清华大学出版社2002:5-613夏一名实时Linux操作系统初探计算机应用研究2001:21-2814胡桂兰蔡晓春嵌入式实时操作系统RTLinux的分析和实现计算机与信息技术2003:1-415毛德操Linux内核源代码情景分析浙江大学出版社2001:18-3516邵长胜相机控制系统及总体装调检测装置设计评审报告2005.12:12-1417梅晓榕自动控制元件及线路哈尔滨工业大学出版社2001:260-26618姜复兴庞志成惯导测试设备原理与设计哈尔滨工业大学出版社1998,12:208-21619张昆苍编著.操作系统原理DOS篇.清华大学出版社,1994:13-17-51- 哈尔滨工业大学工学硕士学位论文20陈家新,彭丁嵩.DOS环境下实时多任务调度策略的实现.计算机应用,2000.5:45-4721谢明红,蔡伯阳,朱国力,段正澄.基于Windows平台的CNC实时多任务设计.机械与电子,2001:36-3722孙勇,张东亮基于Windows95./NT的开放式数控系统实时性分析.机械与电子,2001:43-4523张正勇,熊清平,李作清.Windows系列平台下的实时控制研究.机电工程,1999:36-3724周密,李彦,苏爱林,吉华.基于WindowsNT开放式数控系统实时扩展技术研究.计算机工程与应用2004:201-20425www.rtlinux.orgorwww.fsmlabs.com26MichaelBarabanovALinux-basedRealtimeOperationSystem.NewMexicoInstituteofMiningandTechnologySocorro,NewMexico,June1,1997:5-827ViorYodaiken.ResourceControlinRTLinuxDepartmentofComputerScience,NewMexicoInstituteofMinigandTechnologySocorro,NewMexico:11-1628ARealTimeLinuxVictorYodaikenandMichaelBarabanowNewMexicoInstituteofTechnology:2-729BorkoFurhtEtalRealtimeUNIXSystems:DesignandApplicationGuide.KluwerAcademicPublishersGroup,Norwell,MA,USA,1991:7-1430OS9Real-TimeOperationgSystem.http://www.gespac.com/html/os9_arch_diagr-am.html31J.A.Stankovix.Misconceptionsaboutreal-timeconputing-ASeriousproblemfornextgenerationsystemsIEEEComputer,21(10):10-1932陈莉君冯锐牛欣源译深入理解LINUX内核中国电力出版社2004.6:116-12933Beck.M.H.Boehme,M.Dziadzka,U.Kunitz,R.Magnus,C.Schroter,andD.Verworner.LinuxKerneilProgramming(3rded.)AddisonWesley,2002157-27434Mosberger,D,S.Eranian,andB.Perens.IA-64LinuxKernelDesignandImplementation.PrenticeHall,Inc,2002:76-13535Ivchenko,A."Real-TimeLinux,"EmbeddedSystemsProgramming,May20018-1236Marsh,David."UnderstandLinuxDeviceDrivers,"Test&MeasurementWorld,April15,2000.:43-6737.Johnson,M.K.andE.W.Troan.LinuxApplicationDevelopment.Reading,MA:-52- 哈尔滨工业大学工学硕士学位论文AddisonWesleyLongman,1998:64-7238Mantegazza,P.,E.Bianchi,L.Dozio,S.Papacharalambous,S.Hughes,andD.Beal."RTAI:Real-TimeApplicationInterface.AnintroductiontoRTAIfordeterministicandpreemptivereal-timebehaviorforLinux,"LinuxJournal,April2000:82-11339RTLinuxInstallationandwritingrealtimeprogramsinLinux1.12002:3-740RTLinuxInstallationInstrctionsFSMLabs,Inc.*http://www.fsmlabs.com200141LinuxDevicesDriversJonatbanCorbet,AlessandroRubini,GregKroab-HartmanBeijingCambridgeFarnhamKolnParisSebastopolTaipeiTokyoO’ReillyMedia,Inc2005:302-32542Gorman,Mel.UnderstandingtheLinuxVirtualMemoryManager.UpperSaddleRiver,NJ:PrenticeHallPTR,2004:24-3543http://janitor.kernelnewbies.org/44GettingStartedwithRTLinuxFSMLabs,IncApril20,2001:2-7-53- 哈尔滨工业大学工学硕士学位论文附录一测角数据补偿程序,其中jiaodu_ideal是角度位置。intjiaodu_compare(intjiaodu_ideal){intm;if(jiaodu_ideal<43000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal-420*m;}elseif(jiaodu_ideal<73000){jiaodu_ideal=jiaodu_ideal-17400;}elseif(jiaodu_ideal<96000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal-700*(95-m);}elseif(jiaodu_ideal<109000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal+800*(m-95);}elseif(jiaodu_ideal<119000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal+9300+350*(m-109);}elseif(jiaodu_ideal<141000){-54- 哈尔滨工业大学工学硕士学位论文jiaodu_ideal=jiaodu_ideal+13400;}elseif(jiaodu_ideal<180000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal+370*(180-m);}elseif(jiaodu_ideal<216000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal-370*(m-180);}elseif(jiaodu_ideal<237000){jiaodu_ideal=jiaodu_ideal-12300;}elseif(jiaodu_ideal<259000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal-600*(258-m);}elseif(jiaodu_ideal<287000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal+780*(m-258);}elseif(jiaodu_ideal<334000){jiaodu_ideal=jiaodu_ideal+20100;}elseif(jiaodu_ideal<346000){m=jiaodu_ideal/1000;-55- 哈尔滨工业大学工学硕士学位论文jiaodu_ideal=jiaodu_ideal+12400+(333-m)*300;}elseif(jiaodu_ideal<359000){m=jiaodu_ideal/1000;jiaodu_ideal=jiaodu_ideal+700+(359-m)*430;}returnjiaodu_ideal;}-56- 哈尔滨工业大学工学硕士学位论文附录二RTLinux实时程序。#include#include#include#include#include#include#include#include#include"ixpio.h"intvv,vvold;intv,flag,posion_ideal,posion_lmit0,posion_lmit1;intu0,u1,u2,e0,e1,e2;intchange_bool;/*direactchangebool*/pthread_tthread;hrtime_tstart_nanosec;unsignedlongintbaseaddress;unionjiaodu{struct{charcu_L;charcu_H;}w;intangle;}get_in,out_put;intcontroll_arith(intposion_fact,intsudu){intposion_error;-57- 哈尔滨工业大学工学硕士学位论文intu;if(flag<1){posion_ideal=posion_fact;posion_lmit0=posion_fact-15000;posion_lmit1=posion_fact+15000;if(posion_lmit0<0){posion_lmit0=posion_lmit0+359950;}if(posion_lmit1>359950){posion_lmit1=posion_lmit1-359950;}if(v<0){change_bool=-1*change_bool;}if(v!=0){flag=2;posion_lmit0=posion_fact-15000;posion_lmit1=posion_fact+15000;if(posion_lmit0<0){posion_lmit0=posion_lmit0+359950;}if(posion_lmit1>359950){posion_lmit1=posion_lmit1-359950;}}}-58- 哈尔滨工业大学工学硕士学位论文rtl_printf("themaxposionis%d ",posion_lmit1);rtl_printf("theminposionis%d ",posion_lmit0);if(flag==2){if(change_bool>0){if((posion_lmit1-posion_fact)<500){v=-1*v;sudu=v;change_bool=-1*change_bool;}}elseif(change_bool<0){if(posion_fact-posion_lmit0<500){v=-1*v;sudu=v;change_bool=-1*change_bool;}}}rtl_printf("theboolis%d ",change_bool);sudu=sudu*2;rtl_printf("thefactposionis%d ",posion_fact);posion_ideal=sudu+posion_ideal;rtl_printf("thehopeposionis%d ",posion_ideal);if(posion_ideal>=359950){posion_ideal=posion_ideal-359950;-59- 哈尔滨工业大学工学硕士学位论文}if(posion_ideal<=-359950){posion_ideal=posion_ideal+359950;}posion_error=posion_ideal-posion_fact;if(posion_error<-200000){posion_error=posion_error+359950;}if(posion_error>200000){posion_error=posion_error-359950;}rtl_printf("theerrorangleis%d ",posion_error);/*shoudaddcontrollarithmetichere*/u=-1*posion_error;u=u/2;rtl_printf("thecontroloutputis%d ",u);if(u>2047){u=2047;}if(u<-2048){u=-2048;}returnu;}-60- 哈尔滨工业大学工学硕士学位论文void*start_routine(void*arg){intjiao;flag=0;v=0;vv=0;vvold=0;u0=u1=u2=0;e0=e1=e2=0;change_bool=1;structsched_paramp;hrtime_telapsed_time,now;p.sched_priority=1;pthread_setschedparam(pthread_self(),SCHED_FIFO,&p);pthread_make_periodic_np(pthread_self(),gethrtime(),2000000);while(1){pthread_wait_np();/*getAD2S80Alow8bitthroughpor1*/get_in.w.cu_L=inb_p(baseaddress+0xc4);/*getAD2S80Ahigh8bitthroughpor2*/get_in.w.cu_H=inb_p(baseaddress+0xc8);get_in.angle=get_in.angle>>4;//jiao=get_in.angle*0.08789;jiao=get_in.angle*879;jiao=jiao/10;/*getcontrollnumber*/rtf_get(0,&vv,sizeof(vv));if(vv!=vvold)-61- 哈尔滨工业大学工学硕士学位论文{v=vv;vvold=vv;}rtl_printf("thenumberisfifi0%d ",v);out_put.angle=controll_arith(jiao,v);out_put.angle=out_put.angle+0x800;rtl_printf("ADshuruis%d ",out_put.angle);/*writetoport4ADlow8*/outb_p(out_put.w.cu_L,baseaddress+0xd4);/*writetoport5ADhigh4*/outb_p(out_put.w.cu_H,baseaddress+0xd8);rtl_printf("ADlowis%d ",out_put.w.cu_L);/*xianshiDAshuchushuzhi*/rtl_printf("ADhighis%d ",out_put.w.cu_H);now=clock_gethrtime(CLOCK_REALTIME);elapsed_time=now-start_nanosec;rtl_printf("elapsed_time=%Ld ",(longlong)elapsed_time);}return0;}intinit_module(void){//intport1,port2;/*initport1port2port3port4port5address*/baseaddress=0xc400;/*creatanRTL_fifoforvectorcommunication*/-62- 哈尔滨工业大学工学硕士学位论文rtf_destroy(0);rtf_destroy(1);rtf_create(0,400);/*getvfromuserspace*/rtf_create(1,400);start_nanosec=clock_gethrtime(CLOCK_REALTIME);returnpthread_create(&thread,NULL,start_routine,0);}voidcleanup_module(void){pthread_delete_np(thread);rtf_destroy(0);rtf_destroy(1);}-63- 哈尔滨工业大学工学硕士学位论文攻读学位期间发表的学术论文1.基于RTLinux的双轴仿真转台控制方法研究(已完成)-64- 哈尔滨工业大学工学硕士学位论文哈尔滨工业大学硕士学位论文原创性声明本人郑重声明:此处所提交的硕士学位论文《基于RTLinux的双轴仿真转台控制系统设计与实现》,是本人在导师指导下,在哈尔滨工业大学攻读硕士学位期间独立进行研究工作所取得的成果。据本人所知,论文中除已注明部分外不包含他人已发表或撰写过的研究成果。对本文的研究工作做出重要贡献的个人和集体,均已在文中以明确方式注明。本声明的法律结果将完全由本人承担。作者签字:日期:年月日哈尔滨工业大学硕士学位论文使用授权书《基于RTLinux的双轴仿真转台控制系统设计与实现》系本人在哈尔滨工业大学攻读硕士学位期间在导师指导下完成的硕士学位论文。本论文的研究成果归哈尔滨工业大学所有,本论文的研究内容不得以其它单位的名义发表。本人完全了解哈尔滨工业大学关于保存、使用学位论文的规定,同意学校保留并向有关部门送交论文的复印件和电子版本,允许论文被查阅和借阅,同意学校将论文加入《中国优秀博硕士学位论文全文数据库》和编入《中国知识资源总库》。本人授权哈尔滨工业大学,可以采用影印、缩印或其他复制手段保存论文,可以公布论文的全部或部分内容。作者签名:导师签名:日期:日期:年年月月日日哈尔滨工业大学硕士学位涉密论文管理根据《哈尔滨工业大学关于国家秘密载体保密管理的规定》,毕业论文答辩必须由导师进行保密初审,外寄论文由科研处复审。涉密毕业论文,由学生按学校规定的统一程序在导师指导下填报密级和保密期限。本学位论文属于保密□,在年解密后适用本授权书不保密□(请在以上相应方框内打“√”)作者签名:导师签名:日期:日期:年年月月日日-65-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭