大连海事大学
硕士学位论文
船舶运动控制平台控制器的设计
姓名:赵志谦
申请学位级别:硕士
专业:控制理论与控制工程
指导教师:杨承恩
20100601
中文摘要
摘要
随着世界经济的不断进步,航运业的发展也十分迅速,海上航行船舶的类型,数量都发生着巨大变化。同时对船舶运动控制的要求也在日益增高,针对船舶运动控制的各种算法也是层出不穷,而船舶靠离泊操纵是船舶航行过程中困难但又重要的一个环节,随着船舶大型化和船员数量越来越少,船舶靠离泊的操作比以往更加困难和复杂,因此船舶自动靠离泊已成为船舶运动控制中的一个难题。但当前国内的船舶运动控制的各种算法研究工作主要集中在纯计算机仿真,局限性较大,本设计中的船舶运动控制平台为解决这一难题提供了平台。
船舶运动控制平台是一个由PCI04工控机,步进电机驱动系统,步进电机组,激光测距传感器和4条轨道组成的运动平台,用于模拟船舶在海浪干扰下的运动情况。该仿真平台用于验证针对船舶的各种控制算法在海浪干扰下的适用性,相比于单纯的计算机仿真和其他仿真平台,本船舶运动控制平台的优势在于船舶运动控制层和海浪干扰层由两台工控机分别控制,模型互不相干,仿真结果更具说服力。
国内外在仿真方面进行着大量的工作,为本设计提供理论依据。本文首先介绍了船舶运动控制平台的硬件构成,接着介绍了船舶运动控制平台的船舶运动层和海浪干扰层,接着又介绍了海浪的相关参数及模型,并求出船舶对于海浪的响应函数,然后将位移响应函数和速度响应函数离散化,通过工控机PCI04发出速度响应函数离散化后对应频率的脉冲,用来控制步进电机驱动器,最终将船舶对海浪的响应反映在海浪干扰层上,从而实现海浪层对上层船舶运动层的干扰,以达到验证算法的目的。关键词:船舶运动控制平台;步进电机;海浪干扰
ABSTRACT
Wimthehelpofcontinuousdevelopmentoftheworldtrade.themarinetransportationisdevelopingfastdayafterday,reflectedfromthetypeandthenumberofvesselstremendouschanges.Atthesametime,therequirementofshipmotioncontrolisincreasing,and
positioningarevariousalgorithmsafterofshipmotionberthingcontrolanddynamicemergingoneanother.Themaneuverisverydelicateanddifficultbutimportantphaseinship’Snavigation.Itismoredifficultandmore
oncomplicatedthanever、加也theappearanceofhugevesselsandthedecreaseofcrew
board.Thustheproblemofautomaticberthingis
controlalgorithmsofshipmotionaremainly
existenceofsignificant
thisproblem.anopenoneinshipcontr01.Currently,focusedononcomputersimulation,withtosolvelimitation.Theplatformshipmotioncontrolisused
Theplatform
ItisonshipmotioncontroliscomposedofanindustrialcomputerofPC104,steppingmotorgroupandthedrivingsystem,laserrangesensorsandfourorbits.usedtosimulatetheship’Smovementinthewavedisturbance.Thesimulationplatformisusedtovalidatetheapplicabilityofvariouscontrolalgorithmofsteeringgearinthewaveinterference.Compared、析thsimplecomputersimulationandothersimulationplatform,theadvantageofthisplatformisthatshipsimulationlayerandwavesimulationlayerareseparatelycontrolledbytwoindustrialcomputers.Because
arethemodelsareindependentofeachother,theresultsofthesimulation
convincing.
Thisthesismoreisdonewimtheoreticalbasisprovidedby
structurealargeamountofsimulationworkintheworld.Thehardwareoftheshipmotioncontrol
platformisintroducedfirst,followedbythewaveparametersanditsmathematicalmodel,andnexttheshipforthewaveresponsefunctionisderived.Following,thediscretizationofthedisplacementandvelocityresponsefunctionisdone.ThesteppingmotordriveriscontrolledbypulsesofdifferentfrequenciesgeneratedbyPC104,correspondingtothediscretedvelocityresponsefunction.Finally,responseoftheshiponwavesisreflectedfromthewavedisturbancelayer,witllrealizationofthedisturbancetotheupperlayer,andthepurposeoftestingalgorithmsisachievedatlast.KeyWords:ShipMotionControlPlatform;SteppingMotor;WaveDisturbance
大连海事大学学位论文原创性声明和使用授权说明
原创性声明
本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果,撰写成博/硕士学位论文==篮艟运动控剑垩鱼控剑墨的退让:。除论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开发表或未公开发表的成果。本声明的法律责任由本人承担。
学位论文作者签名:盘乏霪
学位论文版权使用授权书
本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学位论文的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。同意将本学位论文收录到《中国优秀博硕士学位论文全文数据库》(中国学术期刊(光盘版)电子杂志社)、《中国学位论文全文数据库》(中国科学技术信息研究所)等数据库中,并以电子出版物形式出版发行和提供信息服务。保密的论文在解密后遵守此规定。
本学位论文属于:保密口在——年解密后适用本授权书。
不保密日(请在以上方框内打“4’’)
论文作者签名:奄《谭导师签名:日期:乃厶年多月乃日
船舶运动控制平台控制器的设计
第1章绪论
1.1选题背景及意义
随着世界经济的快速发展,资源及能源问题成为人类的一个重要议题,而蕴含着丰富矿物资源的海洋,如今也已经成为国家之间激烈竞争的对象。海洋作为一个矿产和海洋生物丰富的水域,蕴含着许多可以帮人类实现可持续发展的已知和未知的能源,合理的利用这些新能源,科学的研究和开发海洋,对人类的发展具有深远的意义。
随着人类对资源和能源需求增长和科技的发展,人类对海洋资源和能源的探索在不断地深入,对海洋研究探索的活动范围也在不断扩大,已经从水上扩展到水下,从海洋沿岸扩展到更加广阔的海域。这些探索活动,不论是军用性质还是民用性质,如水产品的养殖捕捞,石油燃气的开采,水中布雷扫雷等都需要船只进行水下或者水上作业。但是海洋环境是变幻莫测,相对比较恶劣的环境,对海洋的开发必须有先进的船舶来提供支持,否则,即使拥有广阔的海域,也不能对其的进行最大限度的合理开发利用。这也造就了近几年来船舶修造相关行业的大好形势。
随着世界航运业和造船业的快速发展,我国对造船产业更加重视,2004年,国家国防科工委发布《国防科工委关于加快建立现代造船模式的指导意见》,要求不仅要加大对造船产业的资金投入,同时还要在船舶系统的设计过程中引入更加科学高效的计算方式和设计理剁11。从我国造船业的现状来看,虽然每年的产出很高,但是与日本、韩国等国家的先进造船模式相比较,我国在技术创新、生产管理等方面还有很大的差距,主要表现在信息化程度和设备总装化程度较低,配套体系的专业程度不高,基础管理部分薄弱,生产管理依然沿用经验式的管理方式等方面。针对以上不足,为了让我国造船业发展更加快速、更加科学,先对船舶系统进行准确的计算、设计,并以此为基础对该系统进行建模和仿真的技术路线来加快船舶制造业的技术创新,推进系统的改造,就显得格外重要。随着世界船舶制造业的不断发展和各种新技术、新设备在船舶中的应用,船
第1章绪论
舶运动控制算法的研究显得尤为重要。目前船舶算法的研究主要是通过仿真来实现。对于研究的船舶运动控制系统的测试和试验手段主要有以下三种。
(1)建立船舶运动的数学模型,并在计算机环境中进行仿真实验。这种方法因具有成本低、方法简便易行的特点而为目前大多数研究者所青睐,但是由于数学模型的精确度限制和模拟海况的真实性不高和研究等方面的缺点,使得这种方法只适合作为初步实验的手段,对控制策略进行初级验证;
(2)利用按照实际船舶进行比例缩小的模型代替实际船只进行各种船舶运动控制实验。这种实验方式以其真实性强,数据来源可靠等优点得到了越来越多的研究人员的重视。目前纽芬兰纪念大学船舶仿真实验中心与船舶协会已经联合开发了船舶仿真器,该仿真器可以进行船舶自动舵的操控和船只自动靠离码头等方面的实验【2J.
(3)直接利用实船进行船舶运动控制实验,对其控制算法和控制策略进行验证。这种方法虽然是最真实、最贴近实际的实验手段,但是实施起来耗资巨大,并且具有很强的破坏性,特别是在恶劣海况下的船舶耐波性实验,可能会给实验船舶带来不可恢复的破坏。这种实验手段实施的难度较大,实际实验过程中很难达到预期的目标。要想进行实船的船舶运动控制实验,必须要经过仿真实验的研究,最好还要在船舶半物理平台进行验证,使被检测的设备和控制策略最接近实用状态,再进行实船的实验,以达到取得最可靠的实验数据并将损失降到最小的目的。
本人所查资料显示,目前我国绝大多数船舶运动控制研究者都是利用计算机仿真来验证算法,之后直接用于实船控制。而国际上关于大尺度模型的物理仿真试验,英、法、美、日等国在此领域研究工作有相当的发展,由于各国国情不同,其大尺度船模的仿真试验手段也各不相同,如日本,主要对一些高性能船在实际海浪环境中进行船模试验,法国、英国、美国等对一些新研究的船舶以大尺度模型的形式进行仿真试验。但有一个共同特点是这类试验均是在真实的自然海域海况下实施的,试验内容是极丰富的,包括:快速性、耐波性、操纵性、波浪载荷、振动、稳性、航态控制、爆炸等试验,使其能得到新研发的船舶的最真实可靠的
船舶运动控制平台控制器的设计
相关数据。
图I1船舶运动控制平台
Fig11Shipmotioncont】'olplatform
在上述背景下,本课题开发一个基于步进电机的船舶运动控制平台(圈1.1)的控制器.提供一个可以检验船舶抗风浪能力的平台。本文涉及的船舶运动控制平台为位置控制平台,用于模拟x,Y两个自由度上船舶对于海浪的响应,另有一个姿态模拟平台,用于模拟艏摇,横摇,纵摇对于环境干扰的响应,下文中提到的船舶运动控制平台均指位置控制平台,不再说明。船舶运动控制平台可用来验证计算机仿真中已验证的算法,提高算法的可信度,同时也减少实船实验的次数与实验费用并减小危险性,利用船舶运动控制平台进行反复、有效的实验,可获得更系统,更真实的实验数据,为有效安全地进行实船实验,促进研究成果的产品化打下举实的基础。整个运动平台由两组共四层轨道组成,上两层用来模拟
第1章绪论
船舶运动,下两层用来模拟海浪干扰。本平台可结合不同海浪条件模拟不同的航行环境,如船舶离靠港时情况,船舶动力定位等。
1.2主要研究内容
本文所研究的方向国内比较少见,属理论应用型,研究方法作为作者的尝试。在使用本平台时,首先要建立起船舶运动模型,各级海况的响应模型,分别由两台计算机进行控制,考虑到稳定性和特殊的速度要求,我们采用PCI04作为系统平台,采用DOS作为操作系统。在参阅大量文献资料的基础上,主要做了以下几个方面的工作:
(1)参照海浪的相关资料建立起船舶对海浪的响应模型
(2)船舶运动控制平台的部分搭建工作
(3)保护电路的设计
(4)平台测试程序的编写
(5)在平台上实现船舶位移响应曲线程序的仿真
1.3本章小结
本章首先介绍了海洋战略地位的重要性、国家对船舶发展的重视以及船舶仿真的重要性。接着说明了国内外船舶运动仿真的发展状况,介绍了常见的三种仿真方法即计算机仿真、半物理仿真和大尺度模型的仿真,然后介绍了船舶运动控制平台的主要应用领域和主要特点,最后说明了本文的主要研究内容。
第2章船舶运动控制平台概述
2.1控制系统组成
整个船舶运动控制平台以PCI04工控机为控制核心,发送的控制命令通过步进电机驱动器带动步进电机运动,同时轨道上的限位保护装置用于保证平台的正常运转,采用激光测距传感器测试步进电机当前的运行位置,并通过串口将状态信息反馈给PCI04工控机。
图2.1船舶运动控制平台构成
Fig.2.1Thediagramofshipmotioncontrolplatform
2.2硬件结构
如图2.1所示,整个平台由PCI04工控机,PCI04输入输出模块,步进电机驱动模块,激光测距传感器,保护电路组成,下面分别予以描述。
2.2.1PCI04工控机
70,UNO.21本控制平台采用的PCI04工控机型号为UNO.2170是一种高度集
成的,mM.PC/AT兼容的工控机。UNO.2170采用赛扬600MHz作为CPU,256M的板载内存,提供2个RS.232串行接口和2个RS232/422/485可更改串行接口,鼠标键盘接口;还提供VGA显示适配器,可支持CRT及LCD等显示器。
2.2.2PCI04输入输出模块
运动控制平台的PCI04配置的输入输出模块为HT-7484,HT-7484板是为PCI04工业计算机设计的一种多功能综合接口板。板上有12位单端16路模拟量输入A/D、4路12位独立模拟量电压输出D/A、16路TTL电平开关量输入、16路TTL电平开关量输出等多项功能。适用于各种工业现场的数据测量及控制,集成度高,功能强大,可靠性好,数据采集稳定,且价格低廉,深受用户欢迎。符合PCI04总线标准,占用连续8个I/O地址。A/D转换芯片采用高性能的AD774芯片,D/A芯片采用BB7625。在本系统中主要使用其中的16路TTL电平开关量输出。其工作原理框图如2.2所示。
A,DO
A,Dl
加14
~D15嗍洲
I/oo
I/01眦吣I,014
I/015
图2.2HT-7484工作原理图
Fig.2.2TheprinciplemapofHT-7484
其DI/DO的技术指标如下:
16路TTL电平开关量输入,输入范围:0"-"5V。
16路TTL电平开关量输出,输出范围:0"-'5V。
由J2-40芯IDC插座接入接出,HT-7484占用8个I/O端口地址(HT-7484板卡的基地址,可自由设定。出厂时定义Base=190H),各端口功能定义如下:
表2.1I/o端口地址功能分配表
Tab.2.1ThetableofYOportaddressfunctiondistribution
口地址
Bas}卜0HBaLse+1HBase+0H
操作写操作写操作读操作读操作读/写操作读/写操作写操作写操作读操作读操作写操作写操作
功能定义
选择A仍转换通道O.15启动A仍转换
读A/D转换数据低8位
读A/D数据高4位并判断STA是否为0写D/A通道低八位数据,启动D/A0写D/A通道高四位数据,启动D/A
1
BaLS时lH
Base+4HBase+5HBaLse+6HBase+7HBaLse+2HBaLse+3HBaSe+2HBaLse+3H
启动D眦
启动D/A3
读开关量输入0.7路读开关量输入8—15路写开关量输出0.7路写开关量输出8.15路
如在0x192端口输出全高电平,在Turboc++中表示方法为:
outportb(0x192,0x∞;
如在0x192端口输出全低电平,在Turboc++中表示方法为:
outportb(0x192,Ox00);
2.2.3步进电机驱动模块
本运动平台采用的步进电机驱动器为上海固若金电子科技有限公司生产,型号为2HB808MA,共五个,每个步进电机对应一个驱动器,其主要接线端口说明
如下:
(1)PUL+(+5V)脉冲信号:单脉冲控制方式时为脉冲控制信号,此时脉冲上升沿有效。
(2)DIR+(+5V)方向信号:单脉冲控制方式时为高/低电平信号。
(3)ENA+(+5V)使能信号:此输入信号用于使能/禁止。高电平使能,低电平
时驱动器不能工作,不用时悬空即可。
外界控制信号连接到这三个接口上,即可完成对步进电机即船舶运动控制平
台的操作。
2.2.4激光测距传感器
本运动平台共有4个激光测距传感器,分别对着墙壁,通过检测和墙的距离来反映平台4层轨道的当前运行位置,并通过串行接口将当前运行位置以帧的数据结构发送给PCI04工控机。
本运动平台采用的激光测距传感器型号为GLS.B200,测程为0.05.500m,串行接121(RS232),供电范围5.15V均可。运行模式有受控模式和自动模式,在受控模式下,GLS.B200每一次操作都可以通过串行线由主机系统发送指令来进行。自动模式下不需要主机控制。
测距模块通信协议:波特率1200bps,8数据位,1位起始位,1位停止位,无奇偶校验。主机发送命令码控制测距模块完成相关功能,命令码均为单字节。测距模块每收到一个主机命令码后,必须先回一个字节相同的代码以通知主机通讯
正常,再完成相应功能。
常用的命令码及数据格式如下:
(1)打开测距仪(上电)主机发:BBH测距仪回:无
(2)关闭测距仪(掉电)主机发:AOH
测距仪回:无
(3)读测距仪状态(自检)主机发:B2H
测距仪回:B2H+状态码+0DH(3字节)
状态码取值及意义:
00H:测距系统正常
FFH:测距系统故障(4)单次测距
主机发:B4H
测距仪回:状态码+距离数据+0DH(6字节)
其中:距离数据为四字节压缩BCD码,单位为ini/1,如1234.567m,表示为
01H,23H,45H,67H。
状态码取值及意义:
DDH:数据有效
D1H:光强太弱
D2H:光强太强
D3H:测量失败
(5)重复测距
主机发:B5H
测距仪跟踪测距并向主机发送数据,数据格式同(4),直至收到主机的停止命
令为止。
(6)停止重复测距主机发:B6H
测距仪回:无
(7)跟踪测距主机发:B9H
测距仪跟踪测距并向主机发送数据,数据格式同(4),直至收到主机的停止命令为止。
(8)开关激光指示主机发:B7H测距仪回:无
2.3保护电路设计
船舶运动控制平台的每层轨道的两端都设计有限位开关,在整个平台运行过程中,用于避免上层平台在运行过程中脱离轨道。本设计采用GALl6V8为电路的
核心。
2.3.1
GAI_器件介绍
Array
通用阵列逻辑器件GAL(GenericLogic)是美国Lattice公司在20世纪80
年代推出的一种在PAL器件基础上发展出来的新一代增强型器件。本设计选用型号为GALl6V8的GAL器件。GALl6V8为20脚器件,器件型号中的16表示最多有16个引脚作为输入端,器件中的8表示器件内含有8个OLMC(Output
MacroCell)。
Logic
GALl6V8共有简单型、复杂型和寄存器型三种工作模式,在此我们使用简单型工作模式。简单型工作模式的引脚更能如表2.2所示。
表2.2GALl6V8的简单型工作模式
Tab.2.2SingleModeofGALl6V8
引脚号
2010l-9.1115,
16
功能
Vet
地
仅能作为输入
仅能作为输出(无反馈通路)输入或输出(无反馈通路)
12-14,17-19
2.3.2限位保护电路的设计
限位保护电路共有5路输入信号,3路输出信号,如图2.3所示。
1拌开关2拌开关
,r
位能输出。
GALl6V8
r
使能输入。r方向输入。脉冲输入。
方向输出。r
脉冲输忆
图2.3限位保护电路原理图
Fig.2.3Theschematicoflocationprotectioncircuit
每条轨道设有l{6}和2钾眄个开关,分别位于轨道的两端,在当前轨道1群和2群开关在未被碰到时,GALl6V8的输入端为低电平信号,当开关被碰到则相应的输入信号断开,对应的开关输入引脚变为悬空,GALl6V8的输入管脚在悬空时默认为高电平(不存在两个开关同时被碰到的情况),此时说明限位开关被碰到,平台有脱离轨道的危险,则使能输出信号变为低电平的同时停止脉冲信号的输出,只有当方向输入信号改变时,使能输出信号才会重新变为高电平,同时开始输出脉冲信号。同样的电路共有4组,用于保证4层轨道的正常运转,其逻辑表如表2.3
所示。
表2.3保护电路逻辑表
Tab.2.3Thelogictableofprotectioncircuit
1撑01100X
2群OOO1】X
使能输入
l1111O
方向输入
X1O01X
脉冲输入
XXXXXX
使能输出
lOl010
方向输出
Xl00】X
脉冲输出
X0X0X0
有了上述的逻辑表及原理图,应用可编程逻辑器件开发软件ISPSynario中,
第2章船舶运动控制平台概述
用ABEL语言即可对GALl6V8编程。此软件可以把现有的小规模集成电路所实现的功能直接用GAL器件来实现,而不必去把现有的电路用语言描述。在编写过程中,首先要根据ABEL的语法格式和逻辑设计方案用文本编辑GAL源程序。源程序中包括器件的型号、GAL引脚表、功能逻辑表达式。在此不再详述。
2.4本章小结
本章主要首先介绍了船舶运动控制平台的构成框架,接着分别对PCI04、输入输出模块、步进电机驱动模块、激光测距传感器的参数进行了详细的介绍,最后介绍了GALl6V8芯片和以GALl6V8为核心的保护电路的原理及设计工作。
船舶运动控制平台控制器的设计
第3章船舶运动概论
船舶在海上航行或要求静止不动时,会受到环境干扰作用,使船位和艏向发生变化。作用在船舶上的最普通的干扰因素为风、波浪、流。在研究时通常假定风、波浪、流是独立地作用于船体,即不考虑互相干涉的影响,将三者叠加到一起即为总的环境力【3】。本文中的船舶运动控制平台主要模拟各种海浪条件下船舶的响应情况,平台分为船舶运动层和海浪干扰层。平台的运动建立在现有理论的基础上,对于船舶运动层,首先要建立船舶运动模型,对参数进行设置。对于海浪干扰层,关键在于求出船舶对海浪干扰的响应函数。
在如图3.1中所示的附体坐标系中【4】,本平台模拟的是x,Y两个自由度上船舶对于海浪的响应。本章首先对海浪及海浪谱作了介绍,接着针对船舶对海浪在X,Y两个自由度上的响应进行了分析,最终推导出船舶对海浪的位移和速度响应模
型。
Z
垂荡
图3.1附体坐标系中的船舶状态
Fig.3.1Thestateofcoordinateframeattachedto
a
boat
第3章船舶运动概论
3.1浅水域船舶运动概述
由于本平台主要用于模拟船舶靠离泊时的运动情况,讨论船舶浅水域内运动时,有两个问题必须要考虑,就是浅水和低速问题【5】o而且由于船舶的大型化,船舶航行水域的水深相对变浅,船舶在港内或锚地内航行在水深小于船舶吃水的4
倍的水域中,此时浅水效应就会显现出梨6。91。
在浅水域中,随着水深的变化,船舶运动数学模型也会有所变动,如附加质量及附加惯性矩。若坐标系和运动变量的定义沿用MMG(ManoeuvringModelGroup)的规定,坐标系的原点取在船舶的重心G,基本方程为:
(朋+‰)铲(聊+聊讷)订=x|
1
、
(,,2+%)卜(聊+‰)“厂=】,}化+厶)厂=Ⅳ一Y・Xcl
J
(3.1)
式(3.1)中浅水域中船舶的附加质量聊妫,聊伽和附件惯性矩√砌较深水的相
应值大。根据所查资料显示到目前为止,附加质量和附加惯性矩的计算方法已提出了三种方法:切片法或细长体理论法、有限元法和奇点分布法。
低速域船舶操纵是船舶离靠洎中的另一个不得不考虑的问题,船舶在低速运行时受风、浪、流外力影响大,因为当船舶具有相当的前进速度时,舵力可以克服这些外力影响。然而舵力和航速的平方成正比,没有速度也就没了舵力,所以只能依靠其他设备如侧推器、拖轮、锚、缆来协助操纵船舶。
鉴于上述船舶在低速域时的这些特点,船舶运动中作用在船体上的流体动力,螺旋桨推力和舵力都需要重新进行计算,另外还要考虑侧推器、拖轮、锚、缆等力的计算方法。
由于本人能力有限,无法对船舶在浅水域的低速运动做深入研究,本文仅研究船舶在深水域中运动的相关内容。
3.2海浪基本理论
海浪由风产生,“无风不起浪”这句俗语形象地说明了风和浪的关系。当风吹
船舶运动控制平台控制器的设计
过水面时,水面上会出现很小的水纹。随着风不断地吹动海面,这些水纹逐渐成长为海浪。海洋上的波浪变化是十分复杂的,并且是随机的,所以船舶对于海浪的响应也是复杂多变的‘10‘111。3.2.1波浪的基本参数
为了研究船舶的运动特性,首先需要对波浪进行描述。在形成波浪时,水面上任何一点看来都在上下运动。在(x,y)处的波浪高度可以用一个简单的正弦函数来描述:
亏(f)=芎。sin(cot+£)
(3.2)
式(3.2)中芎口表示波浪高度的幅值,∞表示波浪的圆频率,8表示相位差。
表征波浪的主要因素有:
波长:九为两相邻波峰或波谷的水平距离波高:H为从波谷到波峰的垂直距离
波幅:∈=丢H
周期:T为两相邻波峰(或波谷)经过海面上某一固定点所需要的时间
波速:c=尘T,又称为相速,是波峰相对于地面的移动速度
波数:K:姿
波频率:∞:堡
’I’
上述参数中的波浪绝对周期T,可能与船舶航行中遇到的波浪周期并不相等。当船舶迎面驶向波浪时(项浪),这些波浪看起来具有更短的周期。当船舶在随浪中航行时,它将驶离波浪,从而使波浪看起来具有更长的周期。这里引入遭遇周期Te的概念【12】,在所有的船舶计算中,都应该用遭遇周期T。来代替绝对的波浪周
期T。
第3章船舶运动概论
遭遇角z是船首和海浪传播方向之间的夹角,是计算船舶对波浪响应的重要参数-并由波浪船舶方向按顺时针进行度量。当前向速度U较大时,如果Iz|<90。,则遭遇角可能为负值。也就是说,对于观测者来说,海浪是从船首移动到船尾。遭遇角定义如图3.2所示。
x=60
横浪
、
x=120。7
尾斜浪
x
2
30
5、
、
、▲j/一7~、、’/7x2瑚
//
,,首斜浪
随浪
X=0。—————_+
+——一Z=180。
图3.2船舶波浪适遇角
顶浪
Fig3.2WaveCtlcOtllltcrange
在这旱我们假设海浪是重力波,并且有无限水深,则下列关系成立:
co:√i:星
r331
表达式(3.3)用来描述重力波的扩散。波浪扩散速度与它的频率成反比,与它的波长成正比。即长波波浪的传播速度要比短波波浪的传播速度快。
那么一艘船在随浪海面上向前航行将会超越某些短波长的波浪,而又会被某些长波长的波浪超越。那么以一定遭遇角航行的船最多会遭遇三种不同波长的波的作用。一个通用的简化方法是将某一特定海面的海浪看作是若干来自不同方向的波的叠加,这些波具有不同的幅值、频率和相位。那么船舶对海浪的响应就可认作为对其中的每一种波的响应的加权和。通常海浪是由若干不同频率、不同幅
值的波组合成的㈣。即:
㈨=∑;,sin(qt+£,)
Ⅳ一
ooc(c3;(lh-3(e
船舶运动控制平台控制器的设计
其中波中频率为∞。的第i个成分,其幅值为亏,,初相角为£p那么相应的波谱密度函数为:
号f2=2S(cof)ACO(3.4)
式(3.4)中Aco是频率间隔,S∞,)为波浪谱。则有波浪谱的情况下,我们可以计算出各个频率下波浪的幅值‘14-16]。
3。2.2波浪谱
海洋波浪的谱密度函数是海浪的重要统计信息,因此求得这一函数是十分重要的。海浪谱随着海浪的气象水文情况而变化,很难有一个统一的表达式。为了海洋气象水文预测的需要,海洋动力学家提出了各种海洋生成模式和一系列半经验半理论的海浪谱。海浪可视作由无限多个振幅不同、频率不同、方向不同、相位杂乱的波组成。这些波便构成海浪谱。通常假定海浪由许多随机的正弦波叠加而成。不同频率的组成波具有不同的振幅,从而具有不同的能量【171。
由于推导过程用到的数据与修正的PM波谱有关,在此作简单介绍。为了预报船舶和在公海的近岸设施对海浪的响应,第2届国际船舶和近岸设施会议(ISSC,1964),第12届国际船模试验水池会议(ITTC,1969)和第15届ITTC会议推荐使用PM波谱的修正版:
P(器’s):而4rei丁P巧。s)2(3.5)(3・5)
PM波谱的表达式使用了两个参数,有义波高h彰和平均零相交周期T:。由于T:和峰值周期To以及平均海浪周期T1之间有下列关系存在:
t=0.7104To=0.920STl
所以我们如果觉得方便的话,我们可以在MPM(PIERSON.MOSKOWITZ)波谱中使用To或T1。若用T1来表示则为:
sb17。3/'h;,3)一z。∞,器’毛‘0(3.6)(3・6)
第3章船舶运动概论
这个s(∞)的表达式仅适用于无限水深的充分发展了的海面。本设计中用到的修正的PM波谱,条件为平均海浪周期为8s,有义波高为3m,波谱曲线如图3.3。
图3.3修正的PM波谱
Fig3.3Pierson-PMwavespectrarn
33船舶对海浪的响应
船舶对海浪的响应是相当复杂的。在一定航速下,船舶受到海浪在某个遭遇频率下的激励。这个频率和海浪频率间的关系不是线性的,从某一固定点来看,这种关系和船舶的速度以及海浪的攻角呈非线性关系【I”。更进一步说,海浪作用在船体上的力和力矩由入射的波长以及海浪频率的平方根来确定。
当船舶的航行速度为0时,船舶对海浪谱的响应可表达为:
G五@。,X,∽。。=G。(co。,z,∽。。=
E{z(f,U)z7(f,∽‰=(37)
IR%(co。,?c,u)12。。吒(m。,x)
式(37)中心为船舶对于海浪的幅值响应算子(RAo)。在船舶以速度U向前运
船舶运动控制平台控制器的设计
动时,在方程中波浪频率CO。应该换成遭遇频率CO。。在波浪频率和遭遇频率之间的关系为:
∞e2∞w一二U∞。:∞。一堕uCOS艽艽(3.8)
g
式(3.8)中∞:=堙(假设在无限水深)。
由于研究海浪的模型较为复杂,通常我们通过有限个随机初始相位的正弦波之和来近似海浪谱:
zo)=∑qsin(o叫t+0f+o删,)(3.9)
对于不同的响应算子来说,z(f)应该分别是“。(f),.1,,.,(f),这取决于在式(3.9)中用足‘还是R‘去取代R瓦。每一个正弦波的幅值可以很方便的由两个频率的中间点得到。而这些频率上响应算子是已知的。频率∞P,f和相位角0,是响应算子表中的歹0表值。初始相位e拥打是在初始化时便用的一个随机数。正弦波的幅值a,由F式计算:
三口;2=e”1G荔佃。,x,u№。=eI尺巧佃。,)C,U)12吒@。,2)d03。
如果令:
。:‰,∞:,沪eJ
方程:1吒(∞。)do。当列表中的海浪频率间隔取为△。时,那么fDw,t+l=03训+△,,可以得到下列al=压恢(co∥z,u)f属丽
。洳u如):警2(P(嚣)一P(嚣’)其中o:(∞”,CO:。,)表示第i个正弦波的功率。
第3章船舶运动概论
∞1.f:(Owa_I+COw,#)么2,f-1,2,...,以
由上述公式可以得到船舶在各个频率下的正弦波功率。只需求得各个频率下的幅值相应算子就可求得X,Y两个自由度下船舶对于海浪的响应。响应幅值算子既能用分析方法确定,又能通过模型试验确定。在后一种情况中,让船模在波长不同但波幅相同的规则波中航行。把同时记录下的每个运动的幅值和波幅联系起来,直接可以得到响应算子。在对不规则海浪的情况进行计算时,需要将波浪频率换成遭遇频率。
表3.4幅值响应算子表
Tab.3.4T{出leofRAO
∞e∞
(2PI/s)
0.279
O.312X/H0.67横荡相位角.61.1lY/H0.81纵荡相位角90.09(2PI/s)0.2360.258O.66-66.610.8190.23
0.2720.333
0.3600.65O.65.69.58.72.700.80O.8090.350.288
0.30890.5991.02
91.680.3940.650.64.75.97.79.430.790.770.333
0.345O.44l0.465
0.4930.64.80.870.7791.530.358
0.373
0.389O.630.610.58.82.360.7688.6882.990.5270.569.83.90.85.510.680.5380.19
0.407
0.4270.624O.520.41—87.24.89.210.370.2084.3193.10
.172.210.6970.8050.445
0.449O.190.02.92.48.115.780.040.090.882
0.986.116.830.4450.1495.580.04.106.55
船舶运动控制平台控制器的设计
x删。=∑√2Rq向wmUj|、压:舢∽∞2√)s姐∞“f十甲,,)
12J(310)
】o。=∑√2R。油州x.u)I√6:汹∽0):。)mn和。,,+牛。)(3ii)
得到上述方程(3.10),(31I)后,根据表3.4中各个频率下对应的幅值响应算子,即可求出在一定频率范围内船舶对于海浪的响应曲线。此种计算方法是建立在船舶对于任一波浪成分的响应与其他波浪成分的响应是独立无关这个假设基础上的。
整理上述的参数和公式,就可以计算出船舶对海浪的响应函数。首先在响应算子表3:4中根据频率值查找到对应的横荡纵荡值,即可计算出对应的月。,R。,然后根据频率值计算出这个频率下的正弦波功率/o:如。。,∞,。).将这两个参数带入式(39)和式(310)中,即可计算出X轴方向和Y轴方向上的位移和速度响应函数。此时条件为船长15850m,排水量16648.200m3,航速15节。遭遇角为45度。有义波高为3m,海浪周期为8s。将响应函数在MATLAB中进行仿真,可得图3.4和35中所示的曲线。
图3.4X轴位移和速度响应曲线
Fig3.4X-axisdisplacementandvelocityreaponse
第3章船舶运动概论
图3.5Y轴位移和速度响应曲线
Fig3.5Y-axisdisplacementandveiocityresponse
34本章小结
本章首先对船舶运动控制平台进行了大体的介绍,接着对海浪的基本特征进行了描述,然后介绍了表征海浪的各种参数以及海浪谱的概念,最后推导了船舶在航行过程中遇到的海浪类型,井根据响应算子推导出了船舶在x,Y轴上的位移及速度响应函数,并在MATLAB中进行了仿真。
船舶运动控制平台控制器的设计
第4章调试阶段
船舶运动控制平台的步进电机驱动器需要的脉冲周期为微秒级的,需要对工控机底层的8253定时器进行直接编程,但W'mdows操作系统的所能获得的最小时间片段为55ms,并且无法直接对底层硬件进行操作,而DOS系统可以直接对底层硬件进行操作,所以整个海浪干扰程序在DOS环境下运行。
整个海浪干扰的模拟程序采用TurboC++3.0编写,程序需要一个定时器来完成精确定时,按照需求发出两路相应的微秒级脉冲,从而达到要求的频率。再通过激光测距传感器反馈的信息,使整个轨道按照位移和速度曲线运动。
4.1船舶运动控制平台的仿真和要求
在整个仿真过程中,PCI04的作用类似于一个时刻在发出不同频率的脉冲信号发生器,目的在于输出两路信号来控制步进电机运动,而PCI04的输入信号实际上来自激光传感器。由于步进电机驱动器为上升沿驱动,故对占空比没有要求。整个仿真过程即为首先根据模型给出的数据建立数据表,整个运动过程用查表的方式,从而实现控制平台轨道运动速度和位移的目的。
4.2驱动脉冲的生成
IBMPC/XT使用8253,PC/AT使用8254作为系统定时的核心芯片,两者的外形引脚和功能都是兼容的【201,本文以8253为例进行说明。
通常,一个可编程定时/计数器的主要用途有:
(1)以均匀分布的时间间隔中断的分时操作系统,利于程序之间的切换;(2)为输入输出设备提供精准的定时信号,由程序控制信号的周期;
(3)用做可调节的波特率或速率发生器使用;
(4)检测外部事件发生的周期或频率;
(5)在计数或定时达到编程预定的值后,产生输出信号并且向CPU申请中断。8253的内部结构框图如图4.1所示,主要由控制寄存器、读写控制电路、数据总线缓冲器以及三个功能相同且相互独立的定时器组成【201。
第4章调试阶段
内部总线
CLKO
\n//1卜数据总线缓冲器℃>\厂]//1八通道0
▲GATEOOUTo
RD————斗
————斗
—————◆
JWR————-◆AOAl读/写控制电路LCLKl/Lr、—]/\厂通道1GATElOUTl
-_
●_一
CS控制字寄存器卅/1一八CLK2
N\广—]/通j苣2
▲GATE20UT2
图4.18253内部结构图
Fig.4.1Theinternalstructuremapof8253
与CPU相连的信号线有:
数据总线DO.D7。三态双向数据线,用于传输数据和控制信号,计数器的计数值也通过数据总线来读取。
写输入信号WR。输入信号,用于对8253寄存器进行写操作,低电平有效。读输入信号RD。输入信号,用于对8253寄存器进行读操作,低电平有效。片选信号CS。输入信号,根据CPU送出的地址信号译码产生片选信号,低电平有效。即CS为低电平时表示CPU选中8253,可对8253进行读写操作,否则表示未选中。
片内寄存器地址输入信号A0、A1。8253内部计数器和控制寄存器编码选择信号,用于选择8253内部寄存器,以便对它们进行读写操作,A1A0编码与8253内部寄存器的对应关系如表所示。
(1)数据总线缓冲器:双向、三态的8位数据缓冲器,用于将8253和系统控制总线连接。CPU执行输入输出指令时,缓冲器发送或接收数据,实现装入计数初值、读出当前计数值或者写入8253控制字的功能。
船舶运动控制平台控制器的设计
(2)读/写控制电路:读/写逻辑电路接收来自系统总线的信息,并产生控制整个芯片工作的控制信号。
(3)控制寄存器:当A1A0为“11"时,它接收并储存来自数据总线缓冲器的数据。每个计数器的二进制或十迸制BCD计数方式、工作方式、以及各个计数器的初始值也都由此控制寄存器管理。8253控制寄存器只能写不能读。
(4)计数器:这三个计数器通道的结构是完全相同的。每个通道各有一个16位减法计数器(二进制或十进制BCD计数),门控输入GATE、时钟输入CLK、和输出OUT引脚,其选通、输入和输出是由方式控制字来选定的。每个计数器都是独立工作的,彼此之间没有影响。
4.2.18253工作方式
对可编程接口芯片来说,首先要对其控制寄存器写入控制字才能使其正常工作,亦称初始化。8253没有复位引脚,在软件初始化之前,其计数值、计数器输出状态和工作方式都是不定的。8253计数器的编程步骤为:首先要写入控制字,为定时器选定工作方式,然后再写入计数初值。若在计数器工作时,想要改写计数初值,或要取出计数器的当前计数值,需要先写一个适当的控制字,然后再进行读写操作。
(1)写控制字8253控制字的控制字格式如图4.2所示,共八位,D7D6用于选择通道,D5D4
第4章调试阶段
图4.28253控制字
Fig.4.2Thecontrolwordof8253
用于选定计数值的读写范围,D3D2D1用于选择D7D6选定计数器的工作方式,DO用于决定计数的模式,0表示二进制,1表示十进制。
(2)写计数初值
写入控制字后,应该给计数器写入计数初值。根据控制字的规定,计数初值可以是单字节,也可以是双字节,但在8253内部全部被认为是双字节,未赋值的字节被自动置0。当采用二进制计数时,计数初值的范围是从1到FFFFH+I,用十进制计数时范围是从1到9999+1。当计数初值为0时,系统进行减一计数,重新减到0时认为是计数结束。所以0表示最大的计数值。
(3)8253的六种工作方式
8253共有六种工作方式供选择。在不同的工作方式下,计数过程的启动方式不同,OUT端输出的波形不同,GATE的控制作用以及更新计数初值的影响也不完全一样。8253中的三个计数器的工作方式由方式控制字确定,先选中一个计数器即可改写其工作方式。本设计只涉及到计数器0,使用工作方式0,所以只介绍工作方式0,其余的
船舶运动控制平台控制器的设计
工作方式就不再介绍。
方式0的工作特点有:
①当计数器写完计数值开始计数时,输出端OUT就开始变为低电平,并且在计数到达0之前一直保持低电平;当计数器减至0时,OUT立即输出高电平,并且一直保持高电平,直到写入新的计数值。
②选通信号GATE为高电平时,计数器工作;GATE为低电平时,计数器停止工作,其计数值保持不变;GATE不影响输出端OUT的电平,因此在计数过程中若GATE有一段时间为低电平,则输出端OUT的低电平持续时间将会延长。
③在计数器的工作期间,如果重新写入新的计数值,那么下一个时钟脉冲到来时,新的计数初值被送到计数执行部件,计数器将按新的初值重新计数。需要注意的是,方式“0"不具备初值自动重装的功能。
(4)8253的应用
本设计中,利用8253的计数器0作为定时器,中断服务程序中加入两段子程序,用于发送两路不通频率的脉冲。DOS操作系统中8253定时器0的原定时时间为55ms,我们可以将其更改为10us的周期。相关源程序如下:
V0idSetTimerlOusO
{
outportb(0x43,OxlO);
outportb(0x40,0x75);
}
说明:
①在本系统使用的PCI04中8253的三个计数器端口地址为40H、41H、42H,43H为控制寄存器的地址。
②控制字为00010000b:选通道0;直接读/写低8位,方式0,二进制计数。计数初值为75H。
4.2.28253中断应用在51系列单片机中,每一个定时器对应一个中断服务程序的入口地址,而
第4章调试阶段
DOS并没有为8253定时器提供独立的中断服务程序的入口地址,这样我们需要借助其他的设备的中断地址来实现。下面对中断过程和如何采用DOS产生我们所需要的8253定时器中断进行一一阐述。
4.2.2.1中断和中断响应过程
在CPU正在执行程序时,由于外部某事件的发生使程序暂停,而系统指针指到另外一段程序中,执行完毕后再返回暂停点继续执行原来的程序,这就完成了一次中断响应。根据中断源和CPU的关系,中断分为内部中断和外部中断两种,其中每一种中断又可分为很多类型瞄】。
(1)内部中断,由于CPU执行某些特定指令或出现错误而引起的中断称为内部中断。内部中断包括以下几种情况:被零除中断(类型号为0)、单步中断(类型号为1)jINT0溢出中断(类型号为4)。
(2)外部中断,由CPU外部硬件电路发生信号跳变引起的中断称为外部中断。外部中断又分为可屏蔽中断和非屏蔽中断两种:
①可屏蔽中断,若CPU的INTR引脚外部为高电平信号,且中断允许标志IF被置l,则会产生一次可屏蔽中断。当IF为0时,即使INTR外部引脚为高电平,中断请求依然会被屏蔽。在mMPC/XT中,所有可屏蔽的中断源都先经过中断控制电路8259管理之后才可以向CPU发出INTR请求。
②非屏蔽中断,如果CPU的NMI(Non.MaskableInterrupt)引脚接收到一个正跳变信号,则可能产生一次非屏蔽中断。这种中断的响应不受中断允许标志的控制。IBMPC/XT中的非屏蔽中断源有三个:扩展插槽中的I/O通道错,系统板上RAM的奇偶校验错和浮点运算协处理器8087的中断请求。
一个完整的中断响应过程包括:中断请求、中断优先级判断、中断响应、中断响应程序和中断返回这五个阶段。
以可屏蔽中断的响应过程为例:首先中断源发出中断请求信号,然后进入中断优先级判断阶段。CPU找出这一时刻优先级别最高的中断源(一般由可编程中断控制器8259管理中断优先权),首先响应它的中断请求,处理完该中断后,再按照中断优先级依次响应其他级别较低的中断源请求。
船舶运动控制平台控制器的设计
而且中断优先级判断还可以决定能否实现中断嵌套。中断嵌套指当CPU在响应一个中断源的请求,在中断服务程序中运行的同时有优先级更高的中断产生,则中断优先级判断电路就允许新的优先级更高的中断源向CPU提出中断请求,从而中止正在服务的原中断服务程序,转去响应新的中断。在新的中断响应完毕后,再返回到原中断服务程序断点处继续执行,这种现象就叫做中断嵌套。若新的中断源优先级较低,则中断优先级判断电路对新的中断请求暂时搁置,在原中断服务程序处理完后,再响应优先级较低的中断请求。
CPU在每执行完一条指令后,都要去查询是否有中断请求。如果只有中断请求,而CPU内部的中断允许触发器不允许中断,则中断不能实现。如80x86CPU,只有当其Ⅲ标志位为“1"(即开中断)时,CPU才能响应可屏蔽中断;在IF标志位为“0’’(中断关闭)时,即使有可屏蔽中断请求信号,CPU也不会响应。这里有两点要注意的是:
(1)CPU复位时,中断允许触发器的标志位为“0”,不能响应中断。所以当程序运行过程中要使用中断时,必须先开中断,即将中断允许触发器置“1"。
(2)CPU响应中断后,会关闭中断。因此,如果程序中有中断嵌套,必须在进入中断服务程序后就用指令开中断。
当CPU响应中断时,还会自动进行一些处理,如保护断点、获得中断服务程序的入口地址、保护状态标志等。有了中断服务程序的入口地址即可去执行中断服务程序,进行相应的中断处理。以下工作必须在中断服务程序中完成:
(1)保护现场:保护现场是指把主程序和中断服务程序中的寄存器的原内容压入堆栈保存起来,防止影响主程序的运行。由于中断的发生具有随机性,如果不将一些公用的变量压入栈中,那么有可能造成变量值混乱的情况。通常在中断服务程序的开始处采用压栈指令,如汇编语言中的PUSH指令,把要用到的变量的内容压入堆栈,压栈的顺序没有严格要求。
(2)开中断:进入中断服务程序之后,系统会自动关闭中断,若程序中允许中断嵌套的话,那么需要加入开中断指令。(3)执行中断服务程序。
第4章调试阶段
(4)关中断:相应的中断处理指令执行结束后需使用指令关中断,以确保有效地恢复现场。
(5)恢复现场:是指将保护现场时将存入栈中变量弹出堆栈,恢复原变量的值。但须注意出栈的顺序。中断服务处理程序结尾部分是中断返回指令,执行后CPU会自动地弹出断点信息送给系统指针(如IP),并恢复标志寄存器FR的值,使程序回到断点处继续执行。
4.2.2.2
Intel80x86/pentiUlB中断系统80x86系列微机有一个灵活的中断系统,最多允许有256种中断,为了区别它们,给每一种中断分配一个中断号,又称中断类型码。中断源可来自CPU外部,也可以来自CPU内部,分为两大类:硬件中断和软件中断,80x86CPU只有2个引脚(INTR和NMI)可以接收外部的中断请求脉冲。中断分类如图4.3所示【23】。
可
屏
蔽
中
断
请
求
硬件中断
图4.38086/8088中断分类
Fig.4.3Thecategoryof8086/8088Interrupt
中断向量表
80x86CPU在响应中断后,必须先在中断向量表中找到中断服务程序的入口地址,然后才能转入中断服务程序。中断向量实际上是中断处理子程序的入口地址。一种类型的中断,其中断向量为4个字节,256种中断,共占用1024个字节。CPU规定中断向量集存放在系统RAM最低端的1024个单元中(物理地址为00000H~
船舶运动控制平台控制器的设计
003FFH区域)。图4.4表示n型中断向量4字节的存放规律,以及11型中断向量和存放向量的单元地址之间的关系。
4n+o
4n+ln型服务程序入口的偏移地址
n型服务程序所在代码段的段基址4n+24n+3
图4.4
Fig.4.4nn型中断向量typeinterruptvector
如中断类型码为1CH的中断源,它所对应的中断向量存放在0000:0070H(4X1CH=70H)开始的四个单元中占用70H,71H,72H,+73H四个字节的空间。
中断向量的引导作用
启动DOS系统之后,假设1CH型服务程序存放在地址为XX;YY开始的内存区,其中断向量XX:YY存放在4XlCH一4XlCH+3的单元中。
CPU在执行主程序的过程中,当取出INT1CH指令后,CS:IP等于标号NEXT所在单元的逻辑地址。通过上述过程我们清楚地看到中断向量是如何引导CPU完成整个中断过程的。执行INT1CH:
(1)首先保存寄存器的内容,CS、Ⅲ的当前值被压入堆栈;
(2)CPU从4X1CH~4X1CH+3单元中取出1CH型中断向量写入IP、CS;
(3)CPU根据取到的CS、P值转向1CH型服务程序;
(4)1C型服务程序执行完毕,执行IRET指令时,CPU从栈顶弹出NEXT的两个分量IP和CS,接着弹出中断前的标志寄存器内容;
(5)CPU根据CS:口返回断电NEXT,完成整个中断过程。
4.2.3船舶运动控制平台中中断应用
在本平台用到的PCI04中,利用8253定时/计数器0作为系统的时钟计时。OUT0端输出的方波信号频率为18.2Hz,接至可编程中断控制器8259A的IRQ0
第4章调试阶段
端,周期性(周期为55ms)地向CPU申请中断服务,执行类型号为08H的日时钟中断程序TIMER—INT。该服务程序除执行对日时钟计时(对时、分、秒等单元计数)和磁盘驱动器超时检测控制外,接着又进行INT1CH的软中断调用。8253在计算机中的接法如图所示:
图4.58253在PC机中的应用
Fig.4.5Theapplicationof8253inPC
INT1CH软中断只有一条空操作返回指令IRET,该服务程序由系统的08型中断每隔55ms调用一次。它不作什么事情,因而我们可以改写它的内容,使其变我们所需要的软中断服务程序。在中断服务程序中改变I/O口的电平,实现变频脉冲的发生。具体做法是:先在主程序中保存原中断向量(INT1CH)内容并且关中断,接着将该中断向量表的内容设置为新的中断服务程序入口地址,然后再开启中断,等待中断并执行新的中断服务程序,执行结束之后恢复原中断向量表的内容。4.2.4用TurboC++编写中断服务程序
用TurboC++编写中断服务程序的分为三步:首先编写中断服务程序,再安装中断服务程序,最后激活中断服务程序。
首先,关系到DOS的重入问题,DOS重入问题比较复杂,详细讨论已经超出本文范围。故中断服务程序中不能出现与DOS系统调用有关的库函数,如printf0,sp血tf()等【24】。
船舶运动控制平台控制器的设计
(1)编写中断服务程序
在响应中断时,必须保存被中断程序中断时的一些现场数据,即保存断点,这些值都在寄存器中(若不保存,当中断服务程序用到这些寄存器时,将改变它们的值),以便恢复中断时,使这些值复原,以继续执行原来被中断的程序。TurboC++为此提供了一种新的函数类型interrupt,它将保存由该类型函数参数指出的各寄存器的值,而在退出该函数,再恢复这些寄存器的值,因而用户的中断服务程序必须定义成这种类型的函数。中断服务程序中不使用上述的寄存器,也就不会改变这些寄存器原来的值,因而也就不需要保存它们,这样在定义这种中断类型的函数时,可不写这些寄存器参数。如中断服务程序名定为Count,则可将这个函数说明成这样:
voidinterruptCount(・getvect(iminto)(void)
{)
在中断服务程序中,若不允许别的高优先级的中断打扰它,则要禁止中断。可用函数disable()来实现,若允许中断嵌套,则可用开中断函数enable()来使能中断。
(2)安装中断服务程序
定义了中断服务函数后,需要将这个函数的入口地址填入中断向量表,以便产生中断时程序能转入新的中断服务程序去执行。为了防止正在改写中断向量表的同时又产生了别的中断而导致程序崩溃,可以先关闭中断,当中断向量表改写完毕后,在开启中断。常定义一个安装中断向量表的函数来实现这些操作,如下:
voidinstall(voidinterrupt(幸Counter)O,intanother)
{
disableO;
seWect(another,Counter);
enable();
>其中Counter是中断服务程序的入口地址,其函数名就代表了入口地址,而
第4章调试阶段
another表示中断类型号,servectO函数就是设置中断向量的函数,上述定义的insmllO函数,将完成把中断服务程序入口地址填入中断向量another中去的功能。如本程序中使用的8253中断,由于8253的定时器0产生中断时会调用Ox08中断向量中的地址,故主程序中的安装过程描述为:
setvevt(Ox08,Counter);
(3)中断服务程序的激活
在程序设置好中断服务程序后,当8253的计数值到时,系统便自动跳转到中断向量another中的入口地址去执行程序,即执行Counter这个中断服务程序。
(4)恢复修改过的中断向量
当用户采用系统己定义过的中断向量,并且将其中断服务程序进行了改写,或用新的中断服务程序代替了原来的中断服务程序,为了在主程序结束后,恢复原来的中断向量以指向原中断服务程序,可以在主程序开始时,存下原中断向量的内容,这可以用取中断向量函数getvect()来实现,如j=(char*)getvect(Oxlc),这样j指针变量中将是Oxlc中断服务程序的入口地址。当主程序要结束时,为了保持系统的完整性,可用setvect(Oxlc,j)来恢复原来的中断服务入口地址。4.3控制平台程序流程图
由于目前PCI04只需生成两路脉冲来控制海浪层运动即可。采用8253定时器进行生成,在定时器的中断服务程序入口处加入判断语句,用来判断应该更改哪一路脉冲的电平值,在未来控制上层船舶运动时,也采用相同方案。
测试程序的功能为对控制平台的轨道进行操作,用于验证平台能否正常工作。此程序能够按要求调节两层轨道的运转速度和方向,通过串口读取轨道当前运行的位置。流程图如图4.6所示。
船舶运动控制平台控制器的设计
图4.6测试程序主程序流程图
Fig.4.6Theflowchartofmaintestprogram
中断服务程序用来改变两路脉冲的电平,每次定时器引发中断时,程序跳转去执行中断服务程序,首先将计数次数减1,然后判断应该改变哪路脉冲的电平,
改变结束后重置计数初值,在中断服务程序的最后向20H端口送20H,最终退出中断。流程图如图4.7所示。
图4.7中断服务程序流程图
Fig4.7Theflowchartofinterruptserviceroutine
图4.8中N点即为预先在位移平台上设定的定点,程序在运行过程中,不断从预先制定好的表格当中取出数据,每个特定的位移点都对应一个速度。在程序执行过程中,按下‘c’键可以改变运行条件,如改变航速,改变遭遇角等;出于安全性的考虑,按下‘ESC’程序会终止执行。
整个仿真阶段取的是图3.3和图3.4所示曲线的一个时间段,每当此阶段的曲线仿真完毕后,程序复位重新执行。
船舶运动控制平台控制器的设计
I改写中断向量并
设置定时器
图4.8船舶位移响应程序流程图
Fig4.8Theflowchartofdisplacementresponseprogram
4.4调试方案及结果
由于计算机系统不是连续系统,我们将船舶对海浪干扰的速度响应曲线进行离散化,先用能够达到的速度对速度曲线进行离散化,离散化后的各个时间点对
第4章调试阶段
应到船舶对海浪干扰的位移响应曲线上,从而得到每个速度点所对应的位移点。在程序的运行过程中,每到达一个预定的位移点,平台采用不同的速度运行,整个过程用查表实现。
船舶运动控制平台的尺寸和运动速度都是有限制的,下两层轨道的x,Y方向长度分别为:44m.3lm。在对每条轨道进行控制时,脉冲的频率范围为lKIqz
0058rrds~o~10KIb.实测速度线性地对应为O058m/s,但仿真结果中的速度峰值
为0.7trds,综合考虑需要对求得的速度和位移响应函数进行缩小处理。
系统运行时屏幕显示如图4.9,图中显示的为船舶在x方向的位置格式为第二章中介绍的,图49中昂上部分表示轨道1和墙壁的距离为003172m,当前条件为航速15节,遭遇角45度。
I芏j4.9船舶位移响应程序显示
Fi94,9Viewofdisplacementresponseprogeam
在运行过程中可以更改海浪条件,遭遇角等参数。且系统总是读取出当前的运行位置,并显示在屏幕上。
船舶运动控制平台控制器的设计
4.5本章小结
本章首先讲述了船舶运动控制平台的要求,然后讲述了以8253为核心的脉冲产生方案,介绍了8253在PC机的应用以及DOS下中断的产生方式,最后介绍了测试程序以及船舶响应函数的离散化。
第5章总结与展望
第5章总结与展望
5.1总结
船舶运动控制平台所包含的内容十分丰富,可以模拟各种航行情况。平台的四层轨道中,上两层轨道反映船舶运动,可以模拟船舶动力定位,船舶在海洋中航行以及船舶离靠港时的情况;下两层轨道模拟船舶对海浪的响应,根据不同的波谱可以模拟不同海域的船舶响应,还可模拟各种海况,只要有模型,此平台均可进行仿真。
本次设计过程中根据Blanke[181提供的幅值相应算子的数据模拟了船舶在时速15节,遭遇角为45度时海浪对船的干扰。平台采用GAL为核心的位置保护电路串联起了PCI04和步进电机驱动器,构成了船舶运动控制平台的整个硬件环境。采用DOS作为操作系统,并开发了基于DOS的串口通讯程序和整个平台的运动控制程序,经调试,系统达到了预期的设计要求。
另外,本课题中编写的8253定时器中断的控制程序,发出的两路并行信号完全满足要求,为船舶运动控制平台的后期调试提供了保证。该平台的出现为船舶运动控制仿真提供了一种新的选择,并且结果具有一定说服力。
5.2展望
由于本课题时间所限,采用的海浪模型较为单一,未能建立起船舶运动过程中对各种海况的响应函数,使得海浪层的模拟不够丰富。而PCI04定时器的精度偏低,导致输出的脉冲波最小可调节范围过大,不能达到各种速度都能找到对应的定时值的要求,致使仿真结果有误差。如果能有更可靠的方案来发生精度更高的脉冲,则会使仿真结果更为准确。
由于DOS系统的局限性,无法显示出船舶的实时运动曲线,无法制作出友好的界面,只能采用字符输入的方式,所有的操作都需要通过输入命令来完成,造成很大不便。目前Linux系统日渐壮大,凭借其独特的优势,成为当今发展的趋势,Linux下的C语言编程与DOS下的相差不多,也有类似与TurboC的开发工具,标准库函数都一样。如果程序只是用到标准C,稍加编译即可很容易的移植到Linux
船舶运动控制平台控制器的设计
上。只是在操作底层硬件8253时,用户程序需要取得相应的访问权限。未来如果整个平台的程序如果能在Linux下编写,那么无论是界面还是可操作性都将大大提高。
参考文献
参考文献
[1]黄祥鹿.船舶与海洋结构运动的随机理论.北京:北京航空航天大学出版社,2005.
[2]孙树政,李积德,赵晓东.实际海浪环境下大尺度模型试验研究.哈尔滨:哈尔滨工程大学学报,2009.
[3]苎艳蓉.海洋工程波浪力学.天津:天津大学出版社,1991.
[4]张显库,贾欣乐.船舶运动控制.北京:国防工业出版社,2006.
[5]贾欣乐,杨盐生.船舶运动数学模型一机理建模与辨识建模.大连:大连海事大学出版社,1999.
[6]夏尚钮,陈厚甫.超大型船及其在浅水中航行的一些问题.船舶力学情报,1984.
[73郑环宇,吴唏,宋崇利等.浅水域中船舶的操纵运动仿真研究.船舶工程,2009.
[8]李迎军.浅谈中小型船舶靠离泊的特点.大连:大连海事大学学报,2008.
[9]吴秀恒,张乐文,王仁康.船舶操纵性与耐波性.北京:人民交通出版社,1988.
[10]张潞怡,董国祥.船舶操纵运动的一种实用预报方法.船舶工程,1996.
[11]赵希渭.波浪中船舶操纵性计算研究动态.舰船力学情况,1984.
[12]李积德.船舶耐波性.哈尔滨:哈尔滨船舶工程学院出版社,1992.
[13]李文魁,张博,田蔚风等.一种波浪中的船舶动力定位运动建模方法研究.仪器仪表学报,2007.
[141黄国梁,楼连根,卢军.船舶在波浪中操纵运动仿真.中国航海,1998.
[15]范余明,周兴邦,余滋红等.船舶在波浪中操纵运动的模型试验研究。船舶工程,2000[16]范佘明,盛子寅,陶尧森等.船舶在波浪中的操纵运动预报.中国造船,2001.
[173杨怀平,孙家广.基于海浪谱的海浪模拟.系统仿真学报,2002.
[18]杨承恩,贾欣乐,毕英君.船舶舵阻横摇及其鲁棒控制.大连:大连海事大学出版社,2001.[19]R.巴塔杳雅.海洋运载工具动力学.北京:海洋出版社,1982.
[203Robertjourdian陈学谦等译.IBMPC编程指南.北京:电子工业出版社,1995.
[21]孙力娟,李爱群,仇玉章等.微型计算机原理与接口技术.北京:清华大学出版社,2007.[22]邱书波.利用定时器中断设计PC工控软件.电子技术应用技术,1996.
[23]王正智.8086/8088宏汇编语言和程序设计教程.北京:电子工业出版社,1998.
[24]赵世栋.基于嵌入计PCI04的飞飞行参数转录统的研制.南京:南京航空航天大学.硕士论文,2003.
[25]贾欣乐,张显库.船舶运动智能控制与Hoo鲁棒控制.大连:大连海事大学出版社,1993..42-
船舶运动控制平台控制器的设计
[263求伯君.深入DOS编程.北京:北京大学出版社,1993.
[27]潘金贵,陆庆文,陈兆乾等.学习和使用TurboC语言(续编)一TurboC实用工具与库函数大全.南京:南京大学出版,1995.
[28]王士元.C高级实用程序设计.北京:清华大学出版,2001.
[293廖彬山.PC中断调用大全.北京:科学技术文献出版社,1993.
[30]易仲芳.80x86微型计算机原理及应用.北京:电子工业出版社,1998.
[313Pd-IEEKP,KIMSH.Amodelingoffrequency—dependentverticalshipmotionsinirregularwaves[C].Proc.3rdInternationalConferenceforHighPerformanceMarineVehicles,2000.
a[323BERNTSENPIB,PEREZT,ROSSA.Hydrodynamicmodelingofshipinaseaway—sea
keepingmodels.http:}}飞阑.cesos.ntnu。no|mss.2009—11.
[33]周昭明,盛子寅,冯悟时.多用途货船的操纵性预报.船舶工程,1983.
[34]张显库,金一丞.控制系统建模与数字仿真.大连:大连海事大学出版社,2004..[35]王鹰翔.TurboC高级程序设计.北京:宇航出版社,2008.
[36]薛定宇,陈阳泉.基于MATLAB/Simulink的系统仿真技术与应用.北京:清华大学出版社,2002.
[37]龚建伟,熊光明.VisualC++/TurboC串口通信编程实践.北京:电子工业出版社,2005.[38]KrisJamsa.DOS
[39]Borland.TurboProgramming:TheCompleteCUserGuide.1997.Reference.OsborneMcGraw-HiII,1992.
[40]金鸿章,姚续梁.船舶控制原理.哈尔滨:哈尔滨工程大学出版社,2001.
[41]李俊兴译.由航行中的船体运动实时推算海浪谱.北京:舰船力学情报,1994.
[42]范尚雍.船舶操纵性.北京:国防工业出版社,1980.
[43]张原.可编程逻辑器件设计及应用.北京:机械工业出版社,2003.
[44]张亦华,肖冰编著.数字逻辑设计实验与EDA技术.北京:北京邮电大学出版社,2006.[45]HerbertSchiidt.TurboC/C++:TheComplete
1994.Reference.OsborneMcGraw—Hiii,
[46]王青春.常规船舶操纵运动仿真.情报指挥控制系统与仿真技术.1998.
[47J孟宪尧,韩新洁,白广来.海上作业多用途工作船自动控制系统(一)一动力定位系统的控制与冗余技术.世界海运,2004.06.
[48]金鸿章.长峰波随机海浪的实时仿真和频谱分析.船舶工程,1995.
[49]绪方胜.现代控制工程.北京:科学出版社,1976..43.
参考文献
[50]文圣常,余宙文.海浪理论与计算原理.北京:海洋出版社,1984.
[51]王科俊,海洋运动体控制原理.哈尔滨:哈尔滨工程大学出版社,2005.
[52]缪国平,刘应中,高等流体力学,上海:上海交通大学出版社,2003.
[53]蒋学炼,李炎保,波浪作用下船舶运动的数值模拟,天津:天津大学硕士论文,2003.[54]李红霞,唐友刚,船舶随机海浪中非线性横摇及倾覆机理研究.天津:天津大学硕士论文,2005.
[55]徐琳琳,彭秀艳,船舶运动仿真及建模预报研究.哈尔滨:哈尔滨工程大学硕士论文,2007.
[56]蔡岭梅,王兴权,杨万柏,船舶静力学.北京:人民交通出版社,1995.
[57]缪国平,刘应中,船舶在波浪上运动理论.上海:上海交通大学出版社,1986.
[58]盛振邦,刘应中,船舶原理.上海:上海交通大学出版社,2004.
[59]王献孚,周树新等,计算船舶流体力学.上海:上海交通大学出版社,1991.
[60]黄祥鹿,范菊,船舶与海洋结构运动的随机理论.北京:北京航空航天大学出版社,2005.[61]徐德伦,于定勇,随机海浪理论.北京:高等教育出版社,2001..44.
致谢
致谢
本设计的开发和研究是在导师杨承恩教授的悉心关怀指导下完成的。在我两年的硕士生学习期间,杨老师对我的关怀是无微不至的,这使我逐渐的成长起来。杨老师还给我提供了宝贵的实践锻炼机会,使我对项目的把握能力大大提高;同时杨老师以身作则、严谨求实、谦虚的作风对我影响很深,必将使我受益终生。
本人在收集资料,撰写论文期间得到了同学陆金金和王丽丽的许多帮助,在此表示感谢。
同时,我深深感谢我的父母和家人,正是他们平凡而又博大的爱指引着我热爱生活、热爱工作。亲人们的爱心和奉献促使我在人生的道路上奋发进取、努力工作。
衷心感谢大连海事大学为我提供了六年的学习机会和环境。
最后,向在攻读学位期间的所有任课教师、实验室的师兄师弟们和所有给予关心和帮助的朋友们表示衷心的感谢!
大连海事大学
硕士学位论文
船舶运动控制平台控制器的设计
姓名:赵志谦
申请学位级别:硕士
专业:控制理论与控制工程
指导教师:杨承恩
20100601
中文摘要
摘要
随着世界经济的不断进步,航运业的发展也十分迅速,海上航行船舶的类型,数量都发生着巨大变化。同时对船舶运动控制的要求也在日益增高,针对船舶运动控制的各种算法也是层出不穷,而船舶靠离泊操纵是船舶航行过程中困难但又重要的一个环节,随着船舶大型化和船员数量越来越少,船舶靠离泊的操作比以往更加困难和复杂,因此船舶自动靠离泊已成为船舶运动控制中的一个难题。但当前国内的船舶运动控制的各种算法研究工作主要集中在纯计算机仿真,局限性较大,本设计中的船舶运动控制平台为解决这一难题提供了平台。
船舶运动控制平台是一个由PCI04工控机,步进电机驱动系统,步进电机组,激光测距传感器和4条轨道组成的运动平台,用于模拟船舶在海浪干扰下的运动情况。该仿真平台用于验证针对船舶的各种控制算法在海浪干扰下的适用性,相比于单纯的计算机仿真和其他仿真平台,本船舶运动控制平台的优势在于船舶运动控制层和海浪干扰层由两台工控机分别控制,模型互不相干,仿真结果更具说服力。
国内外在仿真方面进行着大量的工作,为本设计提供理论依据。本文首先介绍了船舶运动控制平台的硬件构成,接着介绍了船舶运动控制平台的船舶运动层和海浪干扰层,接着又介绍了海浪的相关参数及模型,并求出船舶对于海浪的响应函数,然后将位移响应函数和速度响应函数离散化,通过工控机PCI04发出速度响应函数离散化后对应频率的脉冲,用来控制步进电机驱动器,最终将船舶对海浪的响应反映在海浪干扰层上,从而实现海浪层对上层船舶运动层的干扰,以达到验证算法的目的。关键词:船舶运动控制平台;步进电机;海浪干扰
ABSTRACT
Wimthehelpofcontinuousdevelopmentoftheworldtrade.themarinetransportationisdevelopingfastdayafterday,reflectedfromthetypeandthenumberofvesselstremendouschanges.Atthesametime,therequirementofshipmotioncontrolisincreasing,and
positioningarevariousalgorithmsafterofshipmotionberthingcontrolanddynamicemergingoneanother.Themaneuverisverydelicateanddifficultbutimportantphaseinship’Snavigation.Itismoredifficultandmore
oncomplicatedthanever、加也theappearanceofhugevesselsandthedecreaseofcrew
board.Thustheproblemofautomaticberthingis
controlalgorithmsofshipmotionaremainly
existenceofsignificant
thisproblem.anopenoneinshipcontr01.Currently,focusedononcomputersimulation,withtosolvelimitation.Theplatformshipmotioncontrolisused
Theplatform
ItisonshipmotioncontroliscomposedofanindustrialcomputerofPC104,steppingmotorgroupandthedrivingsystem,laserrangesensorsandfourorbits.usedtosimulatetheship’Smovementinthewavedisturbance.Thesimulationplatformisusedtovalidatetheapplicabilityofvariouscontrolalgorithmofsteeringgearinthewaveinterference.Compared、析thsimplecomputersimulationandothersimulationplatform,theadvantageofthisplatformisthatshipsimulationlayerandwavesimulationlayerareseparatelycontrolledbytwoindustrialcomputers.Because
arethemodelsareindependentofeachother,theresultsofthesimulation
convincing.
Thisthesismoreisdonewimtheoreticalbasisprovidedby
structurealargeamountofsimulationworkintheworld.Thehardwareoftheshipmotioncontrol
platformisintroducedfirst,followedbythewaveparametersanditsmathematicalmodel,andnexttheshipforthewaveresponsefunctionisderived.Following,thediscretizationofthedisplacementandvelocityresponsefunctionisdone.ThesteppingmotordriveriscontrolledbypulsesofdifferentfrequenciesgeneratedbyPC104,correspondingtothediscretedvelocityresponsefunction.Finally,responseoftheshiponwavesisreflectedfromthewavedisturbancelayer,witllrealizationofthedisturbancetotheupperlayer,andthepurposeoftestingalgorithmsisachievedatlast.KeyWords:ShipMotionControlPlatform;SteppingMotor;WaveDisturbance
大连海事大学学位论文原创性声明和使用授权说明
原创性声明
本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果,撰写成博/硕士学位论文==篮艟运动控剑垩鱼控剑墨的退让:。除论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开发表或未公开发表的成果。本声明的法律责任由本人承担。
学位论文作者签名:盘乏霪
学位论文版权使用授权书
本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学位论文的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。同意将本学位论文收录到《中国优秀博硕士学位论文全文数据库》(中国学术期刊(光盘版)电子杂志社)、《中国学位论文全文数据库》(中国科学技术信息研究所)等数据库中,并以电子出版物形式出版发行和提供信息服务。保密的论文在解密后遵守此规定。
本学位论文属于:保密口在——年解密后适用本授权书。
不保密日(请在以上方框内打“4’’)
论文作者签名:奄《谭导师签名:日期:乃厶年多月乃日
船舶运动控制平台控制器的设计
第1章绪论
1.1选题背景及意义
随着世界经济的快速发展,资源及能源问题成为人类的一个重要议题,而蕴含着丰富矿物资源的海洋,如今也已经成为国家之间激烈竞争的对象。海洋作为一个矿产和海洋生物丰富的水域,蕴含着许多可以帮人类实现可持续发展的已知和未知的能源,合理的利用这些新能源,科学的研究和开发海洋,对人类的发展具有深远的意义。
随着人类对资源和能源需求增长和科技的发展,人类对海洋资源和能源的探索在不断地深入,对海洋研究探索的活动范围也在不断扩大,已经从水上扩展到水下,从海洋沿岸扩展到更加广阔的海域。这些探索活动,不论是军用性质还是民用性质,如水产品的养殖捕捞,石油燃气的开采,水中布雷扫雷等都需要船只进行水下或者水上作业。但是海洋环境是变幻莫测,相对比较恶劣的环境,对海洋的开发必须有先进的船舶来提供支持,否则,即使拥有广阔的海域,也不能对其的进行最大限度的合理开发利用。这也造就了近几年来船舶修造相关行业的大好形势。
随着世界航运业和造船业的快速发展,我国对造船产业更加重视,2004年,国家国防科工委发布《国防科工委关于加快建立现代造船模式的指导意见》,要求不仅要加大对造船产业的资金投入,同时还要在船舶系统的设计过程中引入更加科学高效的计算方式和设计理剁11。从我国造船业的现状来看,虽然每年的产出很高,但是与日本、韩国等国家的先进造船模式相比较,我国在技术创新、生产管理等方面还有很大的差距,主要表现在信息化程度和设备总装化程度较低,配套体系的专业程度不高,基础管理部分薄弱,生产管理依然沿用经验式的管理方式等方面。针对以上不足,为了让我国造船业发展更加快速、更加科学,先对船舶系统进行准确的计算、设计,并以此为基础对该系统进行建模和仿真的技术路线来加快船舶制造业的技术创新,推进系统的改造,就显得格外重要。随着世界船舶制造业的不断发展和各种新技术、新设备在船舶中的应用,船
第1章绪论
舶运动控制算法的研究显得尤为重要。目前船舶算法的研究主要是通过仿真来实现。对于研究的船舶运动控制系统的测试和试验手段主要有以下三种。
(1)建立船舶运动的数学模型,并在计算机环境中进行仿真实验。这种方法因具有成本低、方法简便易行的特点而为目前大多数研究者所青睐,但是由于数学模型的精确度限制和模拟海况的真实性不高和研究等方面的缺点,使得这种方法只适合作为初步实验的手段,对控制策略进行初级验证;
(2)利用按照实际船舶进行比例缩小的模型代替实际船只进行各种船舶运动控制实验。这种实验方式以其真实性强,数据来源可靠等优点得到了越来越多的研究人员的重视。目前纽芬兰纪念大学船舶仿真实验中心与船舶协会已经联合开发了船舶仿真器,该仿真器可以进行船舶自动舵的操控和船只自动靠离码头等方面的实验【2J.
(3)直接利用实船进行船舶运动控制实验,对其控制算法和控制策略进行验证。这种方法虽然是最真实、最贴近实际的实验手段,但是实施起来耗资巨大,并且具有很强的破坏性,特别是在恶劣海况下的船舶耐波性实验,可能会给实验船舶带来不可恢复的破坏。这种实验手段实施的难度较大,实际实验过程中很难达到预期的目标。要想进行实船的船舶运动控制实验,必须要经过仿真实验的研究,最好还要在船舶半物理平台进行验证,使被检测的设备和控制策略最接近实用状态,再进行实船的实验,以达到取得最可靠的实验数据并将损失降到最小的目的。
本人所查资料显示,目前我国绝大多数船舶运动控制研究者都是利用计算机仿真来验证算法,之后直接用于实船控制。而国际上关于大尺度模型的物理仿真试验,英、法、美、日等国在此领域研究工作有相当的发展,由于各国国情不同,其大尺度船模的仿真试验手段也各不相同,如日本,主要对一些高性能船在实际海浪环境中进行船模试验,法国、英国、美国等对一些新研究的船舶以大尺度模型的形式进行仿真试验。但有一个共同特点是这类试验均是在真实的自然海域海况下实施的,试验内容是极丰富的,包括:快速性、耐波性、操纵性、波浪载荷、振动、稳性、航态控制、爆炸等试验,使其能得到新研发的船舶的最真实可靠的
船舶运动控制平台控制器的设计
相关数据。
图I1船舶运动控制平台
Fig11Shipmotioncont】'olplatform
在上述背景下,本课题开发一个基于步进电机的船舶运动控制平台(圈1.1)的控制器.提供一个可以检验船舶抗风浪能力的平台。本文涉及的船舶运动控制平台为位置控制平台,用于模拟x,Y两个自由度上船舶对于海浪的响应,另有一个姿态模拟平台,用于模拟艏摇,横摇,纵摇对于环境干扰的响应,下文中提到的船舶运动控制平台均指位置控制平台,不再说明。船舶运动控制平台可用来验证计算机仿真中已验证的算法,提高算法的可信度,同时也减少实船实验的次数与实验费用并减小危险性,利用船舶运动控制平台进行反复、有效的实验,可获得更系统,更真实的实验数据,为有效安全地进行实船实验,促进研究成果的产品化打下举实的基础。整个运动平台由两组共四层轨道组成,上两层用来模拟
第1章绪论
船舶运动,下两层用来模拟海浪干扰。本平台可结合不同海浪条件模拟不同的航行环境,如船舶离靠港时情况,船舶动力定位等。
1.2主要研究内容
本文所研究的方向国内比较少见,属理论应用型,研究方法作为作者的尝试。在使用本平台时,首先要建立起船舶运动模型,各级海况的响应模型,分别由两台计算机进行控制,考虑到稳定性和特殊的速度要求,我们采用PCI04作为系统平台,采用DOS作为操作系统。在参阅大量文献资料的基础上,主要做了以下几个方面的工作:
(1)参照海浪的相关资料建立起船舶对海浪的响应模型
(2)船舶运动控制平台的部分搭建工作
(3)保护电路的设计
(4)平台测试程序的编写
(5)在平台上实现船舶位移响应曲线程序的仿真
1.3本章小结
本章首先介绍了海洋战略地位的重要性、国家对船舶发展的重视以及船舶仿真的重要性。接着说明了国内外船舶运动仿真的发展状况,介绍了常见的三种仿真方法即计算机仿真、半物理仿真和大尺度模型的仿真,然后介绍了船舶运动控制平台的主要应用领域和主要特点,最后说明了本文的主要研究内容。
第2章船舶运动控制平台概述
2.1控制系统组成
整个船舶运动控制平台以PCI04工控机为控制核心,发送的控制命令通过步进电机驱动器带动步进电机运动,同时轨道上的限位保护装置用于保证平台的正常运转,采用激光测距传感器测试步进电机当前的运行位置,并通过串口将状态信息反馈给PCI04工控机。
图2.1船舶运动控制平台构成
Fig.2.1Thediagramofshipmotioncontrolplatform
2.2硬件结构
如图2.1所示,整个平台由PCI04工控机,PCI04输入输出模块,步进电机驱动模块,激光测距传感器,保护电路组成,下面分别予以描述。
2.2.1PCI04工控机
70,UNO.21本控制平台采用的PCI04工控机型号为UNO.2170是一种高度集
成的,mM.PC/AT兼容的工控机。UNO.2170采用赛扬600MHz作为CPU,256M的板载内存,提供2个RS.232串行接口和2个RS232/422/485可更改串行接口,鼠标键盘接口;还提供VGA显示适配器,可支持CRT及LCD等显示器。
2.2.2PCI04输入输出模块
运动控制平台的PCI04配置的输入输出模块为HT-7484,HT-7484板是为PCI04工业计算机设计的一种多功能综合接口板。板上有12位单端16路模拟量输入A/D、4路12位独立模拟量电压输出D/A、16路TTL电平开关量输入、16路TTL电平开关量输出等多项功能。适用于各种工业现场的数据测量及控制,集成度高,功能强大,可靠性好,数据采集稳定,且价格低廉,深受用户欢迎。符合PCI04总线标准,占用连续8个I/O地址。A/D转换芯片采用高性能的AD774芯片,D/A芯片采用BB7625。在本系统中主要使用其中的16路TTL电平开关量输出。其工作原理框图如2.2所示。
A,DO
A,Dl
加14
~D15嗍洲
I/oo
I/01眦吣I,014
I/015
图2.2HT-7484工作原理图
Fig.2.2TheprinciplemapofHT-7484
其DI/DO的技术指标如下:
16路TTL电平开关量输入,输入范围:0"-"5V。
16路TTL电平开关量输出,输出范围:0"-'5V。
由J2-40芯IDC插座接入接出,HT-7484占用8个I/O端口地址(HT-7484板卡的基地址,可自由设定。出厂时定义Base=190H),各端口功能定义如下:
表2.1I/o端口地址功能分配表
Tab.2.1ThetableofYOportaddressfunctiondistribution
口地址
Bas}卜0HBaLse+1HBase+0H
操作写操作写操作读操作读操作读/写操作读/写操作写操作写操作读操作读操作写操作写操作
功能定义
选择A仍转换通道O.15启动A仍转换
读A/D转换数据低8位
读A/D数据高4位并判断STA是否为0写D/A通道低八位数据,启动D/A0写D/A通道高四位数据,启动D/A
1
BaLS时lH
Base+4HBase+5HBaLse+6HBase+7HBaLse+2HBaLse+3HBaSe+2HBaLse+3H
启动D眦
启动D/A3
读开关量输入0.7路读开关量输入8—15路写开关量输出0.7路写开关量输出8.15路
如在0x192端口输出全高电平,在Turboc++中表示方法为:
outportb(0x192,0x∞;
如在0x192端口输出全低电平,在Turboc++中表示方法为:
outportb(0x192,Ox00);
2.2.3步进电机驱动模块
本运动平台采用的步进电机驱动器为上海固若金电子科技有限公司生产,型号为2HB808MA,共五个,每个步进电机对应一个驱动器,其主要接线端口说明
如下:
(1)PUL+(+5V)脉冲信号:单脉冲控制方式时为脉冲控制信号,此时脉冲上升沿有效。
(2)DIR+(+5V)方向信号:单脉冲控制方式时为高/低电平信号。
(3)ENA+(+5V)使能信号:此输入信号用于使能/禁止。高电平使能,低电平
时驱动器不能工作,不用时悬空即可。
外界控制信号连接到这三个接口上,即可完成对步进电机即船舶运动控制平
台的操作。
2.2.4激光测距传感器
本运动平台共有4个激光测距传感器,分别对着墙壁,通过检测和墙的距离来反映平台4层轨道的当前运行位置,并通过串行接口将当前运行位置以帧的数据结构发送给PCI04工控机。
本运动平台采用的激光测距传感器型号为GLS.B200,测程为0.05.500m,串行接121(RS232),供电范围5.15V均可。运行模式有受控模式和自动模式,在受控模式下,GLS.B200每一次操作都可以通过串行线由主机系统发送指令来进行。自动模式下不需要主机控制。
测距模块通信协议:波特率1200bps,8数据位,1位起始位,1位停止位,无奇偶校验。主机发送命令码控制测距模块完成相关功能,命令码均为单字节。测距模块每收到一个主机命令码后,必须先回一个字节相同的代码以通知主机通讯
正常,再完成相应功能。
常用的命令码及数据格式如下:
(1)打开测距仪(上电)主机发:BBH测距仪回:无
(2)关闭测距仪(掉电)主机发:AOH
测距仪回:无
(3)读测距仪状态(自检)主机发:B2H
测距仪回:B2H+状态码+0DH(3字节)
状态码取值及意义:
00H:测距系统正常
FFH:测距系统故障(4)单次测距
主机发:B4H
测距仪回:状态码+距离数据+0DH(6字节)
其中:距离数据为四字节压缩BCD码,单位为ini/1,如1234.567m,表示为
01H,23H,45H,67H。
状态码取值及意义:
DDH:数据有效
D1H:光强太弱
D2H:光强太强
D3H:测量失败
(5)重复测距
主机发:B5H
测距仪跟踪测距并向主机发送数据,数据格式同(4),直至收到主机的停止命
令为止。
(6)停止重复测距主机发:B6H
测距仪回:无
(7)跟踪测距主机发:B9H
测距仪跟踪测距并向主机发送数据,数据格式同(4),直至收到主机的停止命令为止。
(8)开关激光指示主机发:B7H测距仪回:无
2.3保护电路设计
船舶运动控制平台的每层轨道的两端都设计有限位开关,在整个平台运行过程中,用于避免上层平台在运行过程中脱离轨道。本设计采用GALl6V8为电路的
核心。
2.3.1
GAI_器件介绍
Array
通用阵列逻辑器件GAL(GenericLogic)是美国Lattice公司在20世纪80
年代推出的一种在PAL器件基础上发展出来的新一代增强型器件。本设计选用型号为GALl6V8的GAL器件。GALl6V8为20脚器件,器件型号中的16表示最多有16个引脚作为输入端,器件中的8表示器件内含有8个OLMC(Output
MacroCell)。
Logic
GALl6V8共有简单型、复杂型和寄存器型三种工作模式,在此我们使用简单型工作模式。简单型工作模式的引脚更能如表2.2所示。
表2.2GALl6V8的简单型工作模式
Tab.2.2SingleModeofGALl6V8
引脚号
2010l-9.1115,
16
功能
Vet
地
仅能作为输入
仅能作为输出(无反馈通路)输入或输出(无反馈通路)
12-14,17-19
2.3.2限位保护电路的设计
限位保护电路共有5路输入信号,3路输出信号,如图2.3所示。
1拌开关2拌开关
,r
位能输出。
GALl6V8
r
使能输入。r方向输入。脉冲输入。
方向输出。r
脉冲输忆
图2.3限位保护电路原理图
Fig.2.3Theschematicoflocationprotectioncircuit
每条轨道设有l{6}和2钾眄个开关,分别位于轨道的两端,在当前轨道1群和2群开关在未被碰到时,GALl6V8的输入端为低电平信号,当开关被碰到则相应的输入信号断开,对应的开关输入引脚变为悬空,GALl6V8的输入管脚在悬空时默认为高电平(不存在两个开关同时被碰到的情况),此时说明限位开关被碰到,平台有脱离轨道的危险,则使能输出信号变为低电平的同时停止脉冲信号的输出,只有当方向输入信号改变时,使能输出信号才会重新变为高电平,同时开始输出脉冲信号。同样的电路共有4组,用于保证4层轨道的正常运转,其逻辑表如表2.3
所示。
表2.3保护电路逻辑表
Tab.2.3Thelogictableofprotectioncircuit
1撑01100X
2群OOO1】X
使能输入
l1111O
方向输入
X1O01X
脉冲输入
XXXXXX
使能输出
lOl010
方向输出
Xl00】X
脉冲输出
X0X0X0
有了上述的逻辑表及原理图,应用可编程逻辑器件开发软件ISPSynario中,
第2章船舶运动控制平台概述
用ABEL语言即可对GALl6V8编程。此软件可以把现有的小规模集成电路所实现的功能直接用GAL器件来实现,而不必去把现有的电路用语言描述。在编写过程中,首先要根据ABEL的语法格式和逻辑设计方案用文本编辑GAL源程序。源程序中包括器件的型号、GAL引脚表、功能逻辑表达式。在此不再详述。
2.4本章小结
本章主要首先介绍了船舶运动控制平台的构成框架,接着分别对PCI04、输入输出模块、步进电机驱动模块、激光测距传感器的参数进行了详细的介绍,最后介绍了GALl6V8芯片和以GALl6V8为核心的保护电路的原理及设计工作。
船舶运动控制平台控制器的设计
第3章船舶运动概论
船舶在海上航行或要求静止不动时,会受到环境干扰作用,使船位和艏向发生变化。作用在船舶上的最普通的干扰因素为风、波浪、流。在研究时通常假定风、波浪、流是独立地作用于船体,即不考虑互相干涉的影响,将三者叠加到一起即为总的环境力【3】。本文中的船舶运动控制平台主要模拟各种海浪条件下船舶的响应情况,平台分为船舶运动层和海浪干扰层。平台的运动建立在现有理论的基础上,对于船舶运动层,首先要建立船舶运动模型,对参数进行设置。对于海浪干扰层,关键在于求出船舶对海浪干扰的响应函数。
在如图3.1中所示的附体坐标系中【4】,本平台模拟的是x,Y两个自由度上船舶对于海浪的响应。本章首先对海浪及海浪谱作了介绍,接着针对船舶对海浪在X,Y两个自由度上的响应进行了分析,最终推导出船舶对海浪的位移和速度响应模
型。
Z
垂荡
图3.1附体坐标系中的船舶状态
Fig.3.1Thestateofcoordinateframeattachedto
a
boat
第3章船舶运动概论
3.1浅水域船舶运动概述
由于本平台主要用于模拟船舶靠离泊时的运动情况,讨论船舶浅水域内运动时,有两个问题必须要考虑,就是浅水和低速问题【5】o而且由于船舶的大型化,船舶航行水域的水深相对变浅,船舶在港内或锚地内航行在水深小于船舶吃水的4
倍的水域中,此时浅水效应就会显现出梨6。91。
在浅水域中,随着水深的变化,船舶运动数学模型也会有所变动,如附加质量及附加惯性矩。若坐标系和运动变量的定义沿用MMG(ManoeuvringModelGroup)的规定,坐标系的原点取在船舶的重心G,基本方程为:
(朋+‰)铲(聊+聊讷)订=x|
1
、
(,,2+%)卜(聊+‰)“厂=】,}化+厶)厂=Ⅳ一Y・Xcl
J
(3.1)
式(3.1)中浅水域中船舶的附加质量聊妫,聊伽和附件惯性矩√砌较深水的相
应值大。根据所查资料显示到目前为止,附加质量和附加惯性矩的计算方法已提出了三种方法:切片法或细长体理论法、有限元法和奇点分布法。
低速域船舶操纵是船舶离靠洎中的另一个不得不考虑的问题,船舶在低速运行时受风、浪、流外力影响大,因为当船舶具有相当的前进速度时,舵力可以克服这些外力影响。然而舵力和航速的平方成正比,没有速度也就没了舵力,所以只能依靠其他设备如侧推器、拖轮、锚、缆来协助操纵船舶。
鉴于上述船舶在低速域时的这些特点,船舶运动中作用在船体上的流体动力,螺旋桨推力和舵力都需要重新进行计算,另外还要考虑侧推器、拖轮、锚、缆等力的计算方法。
由于本人能力有限,无法对船舶在浅水域的低速运动做深入研究,本文仅研究船舶在深水域中运动的相关内容。
3.2海浪基本理论
海浪由风产生,“无风不起浪”这句俗语形象地说明了风和浪的关系。当风吹
船舶运动控制平台控制器的设计
过水面时,水面上会出现很小的水纹。随着风不断地吹动海面,这些水纹逐渐成长为海浪。海洋上的波浪变化是十分复杂的,并且是随机的,所以船舶对于海浪的响应也是复杂多变的‘10‘111。3.2.1波浪的基本参数
为了研究船舶的运动特性,首先需要对波浪进行描述。在形成波浪时,水面上任何一点看来都在上下运动。在(x,y)处的波浪高度可以用一个简单的正弦函数来描述:
亏(f)=芎。sin(cot+£)
(3.2)
式(3.2)中芎口表示波浪高度的幅值,∞表示波浪的圆频率,8表示相位差。
表征波浪的主要因素有:
波长:九为两相邻波峰或波谷的水平距离波高:H为从波谷到波峰的垂直距离
波幅:∈=丢H
周期:T为两相邻波峰(或波谷)经过海面上某一固定点所需要的时间
波速:c=尘T,又称为相速,是波峰相对于地面的移动速度
波数:K:姿
波频率:∞:堡
’I’
上述参数中的波浪绝对周期T,可能与船舶航行中遇到的波浪周期并不相等。当船舶迎面驶向波浪时(项浪),这些波浪看起来具有更短的周期。当船舶在随浪中航行时,它将驶离波浪,从而使波浪看起来具有更长的周期。这里引入遭遇周期Te的概念【12】,在所有的船舶计算中,都应该用遭遇周期T。来代替绝对的波浪周
期T。
第3章船舶运动概论
遭遇角z是船首和海浪传播方向之间的夹角,是计算船舶对波浪响应的重要参数-并由波浪船舶方向按顺时针进行度量。当前向速度U较大时,如果Iz|<90。,则遭遇角可能为负值。也就是说,对于观测者来说,海浪是从船首移动到船尾。遭遇角定义如图3.2所示。
x=60
横浪
、
x=120。7
尾斜浪
x
2
30
5、
、
、▲j/一7~、、’/7x2瑚
//
,,首斜浪
随浪
X=0。—————_+
+——一Z=180。
图3.2船舶波浪适遇角
顶浪
Fig3.2WaveCtlcOtllltcrange
在这旱我们假设海浪是重力波,并且有无限水深,则下列关系成立:
co:√i:星
r331
表达式(3.3)用来描述重力波的扩散。波浪扩散速度与它的频率成反比,与它的波长成正比。即长波波浪的传播速度要比短波波浪的传播速度快。
那么一艘船在随浪海面上向前航行将会超越某些短波长的波浪,而又会被某些长波长的波浪超越。那么以一定遭遇角航行的船最多会遭遇三种不同波长的波的作用。一个通用的简化方法是将某一特定海面的海浪看作是若干来自不同方向的波的叠加,这些波具有不同的幅值、频率和相位。那么船舶对海浪的响应就可认作为对其中的每一种波的响应的加权和。通常海浪是由若干不同频率、不同幅
值的波组合成的㈣。即:
㈨=∑;,sin(qt+£,)
Ⅳ一
ooc(c3;(lh-3(e
船舶运动控制平台控制器的设计
其中波中频率为∞。的第i个成分,其幅值为亏,,初相角为£p那么相应的波谱密度函数为:
号f2=2S(cof)ACO(3.4)
式(3.4)中Aco是频率间隔,S∞,)为波浪谱。则有波浪谱的情况下,我们可以计算出各个频率下波浪的幅值‘14-16]。
3。2.2波浪谱
海洋波浪的谱密度函数是海浪的重要统计信息,因此求得这一函数是十分重要的。海浪谱随着海浪的气象水文情况而变化,很难有一个统一的表达式。为了海洋气象水文预测的需要,海洋动力学家提出了各种海洋生成模式和一系列半经验半理论的海浪谱。海浪可视作由无限多个振幅不同、频率不同、方向不同、相位杂乱的波组成。这些波便构成海浪谱。通常假定海浪由许多随机的正弦波叠加而成。不同频率的组成波具有不同的振幅,从而具有不同的能量【171。
由于推导过程用到的数据与修正的PM波谱有关,在此作简单介绍。为了预报船舶和在公海的近岸设施对海浪的响应,第2届国际船舶和近岸设施会议(ISSC,1964),第12届国际船模试验水池会议(ITTC,1969)和第15届ITTC会议推荐使用PM波谱的修正版:
P(器’s):而4rei丁P巧。s)2(3.5)(3・5)
PM波谱的表达式使用了两个参数,有义波高h彰和平均零相交周期T:。由于T:和峰值周期To以及平均海浪周期T1之间有下列关系存在:
t=0.7104To=0.920STl
所以我们如果觉得方便的话,我们可以在MPM(PIERSON.MOSKOWITZ)波谱中使用To或T1。若用T1来表示则为:
sb17。3/'h;,3)一z。∞,器’毛‘0(3.6)(3・6)
第3章船舶运动概论
这个s(∞)的表达式仅适用于无限水深的充分发展了的海面。本设计中用到的修正的PM波谱,条件为平均海浪周期为8s,有义波高为3m,波谱曲线如图3.3。
图3.3修正的PM波谱
Fig3.3Pierson-PMwavespectrarn
33船舶对海浪的响应
船舶对海浪的响应是相当复杂的。在一定航速下,船舶受到海浪在某个遭遇频率下的激励。这个频率和海浪频率间的关系不是线性的,从某一固定点来看,这种关系和船舶的速度以及海浪的攻角呈非线性关系【I”。更进一步说,海浪作用在船体上的力和力矩由入射的波长以及海浪频率的平方根来确定。
当船舶的航行速度为0时,船舶对海浪谱的响应可表达为:
G五@。,X,∽。。=G。(co。,z,∽。。=
E{z(f,U)z7(f,∽‰=(37)
IR%(co。,?c,u)12。。吒(m。,x)
式(37)中心为船舶对于海浪的幅值响应算子(RAo)。在船舶以速度U向前运
船舶运动控制平台控制器的设计
动时,在方程中波浪频率CO。应该换成遭遇频率CO。。在波浪频率和遭遇频率之间的关系为:
∞e2∞w一二U∞。:∞。一堕uCOS艽艽(3.8)
g
式(3.8)中∞:=堙(假设在无限水深)。
由于研究海浪的模型较为复杂,通常我们通过有限个随机初始相位的正弦波之和来近似海浪谱:
zo)=∑qsin(o叫t+0f+o删,)(3.9)
对于不同的响应算子来说,z(f)应该分别是“。(f),.1,,.,(f),这取决于在式(3.9)中用足‘还是R‘去取代R瓦。每一个正弦波的幅值可以很方便的由两个频率的中间点得到。而这些频率上响应算子是已知的。频率∞P,f和相位角0,是响应算子表中的歹0表值。初始相位e拥打是在初始化时便用的一个随机数。正弦波的幅值a,由F式计算:
三口;2=e”1G荔佃。,x,u№。=eI尺巧佃。,)C,U)12吒@。,2)d03。
如果令:
。:‰,∞:,沪eJ
方程:1吒(∞。)do。当列表中的海浪频率间隔取为△。时,那么fDw,t+l=03训+△,,可以得到下列al=压恢(co∥z,u)f属丽
。洳u如):警2(P(嚣)一P(嚣’)其中o:(∞”,CO:。,)表示第i个正弦波的功率。
第3章船舶运动概论
∞1.f:(Owa_I+COw,#)么2,f-1,2,...,以
由上述公式可以得到船舶在各个频率下的正弦波功率。只需求得各个频率下的幅值相应算子就可求得X,Y两个自由度下船舶对于海浪的响应。响应幅值算子既能用分析方法确定,又能通过模型试验确定。在后一种情况中,让船模在波长不同但波幅相同的规则波中航行。把同时记录下的每个运动的幅值和波幅联系起来,直接可以得到响应算子。在对不规则海浪的情况进行计算时,需要将波浪频率换成遭遇频率。
表3.4幅值响应算子表
Tab.3.4T{出leofRAO
∞e∞
(2PI/s)
0.279
O.312X/H0.67横荡相位角.61.1lY/H0.81纵荡相位角90.09(2PI/s)0.2360.258O.66-66.610.8190.23
0.2720.333
0.3600.65O.65.69.58.72.700.80O.8090.350.288
0.30890.5991.02
91.680.3940.650.64.75.97.79.430.790.770.333
0.345O.44l0.465
0.4930.64.80.870.7791.530.358
0.373
0.389O.630.610.58.82.360.7688.6882.990.5270.569.83.90.85.510.680.5380.19
0.407
0.4270.624O.520.41—87.24.89.210.370.2084.3193.10
.172.210.6970.8050.445
0.449O.190.02.92.48.115.780.040.090.882
0.986.116.830.4450.1495.580.04.106.55
船舶运动控制平台控制器的设计
x删。=∑√2Rq向wmUj|、压:舢∽∞2√)s姐∞“f十甲,,)
12J(310)
】o。=∑√2R。油州x.u)I√6:汹∽0):。)mn和。,,+牛。)(3ii)
得到上述方程(3.10),(31I)后,根据表3.4中各个频率下对应的幅值响应算子,即可求出在一定频率范围内船舶对于海浪的响应曲线。此种计算方法是建立在船舶对于任一波浪成分的响应与其他波浪成分的响应是独立无关这个假设基础上的。
整理上述的参数和公式,就可以计算出船舶对海浪的响应函数。首先在响应算子表3:4中根据频率值查找到对应的横荡纵荡值,即可计算出对应的月。,R。,然后根据频率值计算出这个频率下的正弦波功率/o:如。。,∞,。).将这两个参数带入式(39)和式(310)中,即可计算出X轴方向和Y轴方向上的位移和速度响应函数。此时条件为船长15850m,排水量16648.200m3,航速15节。遭遇角为45度。有义波高为3m,海浪周期为8s。将响应函数在MATLAB中进行仿真,可得图3.4和35中所示的曲线。
图3.4X轴位移和速度响应曲线
Fig3.4X-axisdisplacementandvelocityreaponse
第3章船舶运动概论
图3.5Y轴位移和速度响应曲线
Fig3.5Y-axisdisplacementandveiocityresponse
34本章小结
本章首先对船舶运动控制平台进行了大体的介绍,接着对海浪的基本特征进行了描述,然后介绍了表征海浪的各种参数以及海浪谱的概念,最后推导了船舶在航行过程中遇到的海浪类型,井根据响应算子推导出了船舶在x,Y轴上的位移及速度响应函数,并在MATLAB中进行了仿真。
船舶运动控制平台控制器的设计
第4章调试阶段
船舶运动控制平台的步进电机驱动器需要的脉冲周期为微秒级的,需要对工控机底层的8253定时器进行直接编程,但W'mdows操作系统的所能获得的最小时间片段为55ms,并且无法直接对底层硬件进行操作,而DOS系统可以直接对底层硬件进行操作,所以整个海浪干扰程序在DOS环境下运行。
整个海浪干扰的模拟程序采用TurboC++3.0编写,程序需要一个定时器来完成精确定时,按照需求发出两路相应的微秒级脉冲,从而达到要求的频率。再通过激光测距传感器反馈的信息,使整个轨道按照位移和速度曲线运动。
4.1船舶运动控制平台的仿真和要求
在整个仿真过程中,PCI04的作用类似于一个时刻在发出不同频率的脉冲信号发生器,目的在于输出两路信号来控制步进电机运动,而PCI04的输入信号实际上来自激光传感器。由于步进电机驱动器为上升沿驱动,故对占空比没有要求。整个仿真过程即为首先根据模型给出的数据建立数据表,整个运动过程用查表的方式,从而实现控制平台轨道运动速度和位移的目的。
4.2驱动脉冲的生成
IBMPC/XT使用8253,PC/AT使用8254作为系统定时的核心芯片,两者的外形引脚和功能都是兼容的【201,本文以8253为例进行说明。
通常,一个可编程定时/计数器的主要用途有:
(1)以均匀分布的时间间隔中断的分时操作系统,利于程序之间的切换;(2)为输入输出设备提供精准的定时信号,由程序控制信号的周期;
(3)用做可调节的波特率或速率发生器使用;
(4)检测外部事件发生的周期或频率;
(5)在计数或定时达到编程预定的值后,产生输出信号并且向CPU申请中断。8253的内部结构框图如图4.1所示,主要由控制寄存器、读写控制电路、数据总线缓冲器以及三个功能相同且相互独立的定时器组成【201。
第4章调试阶段
内部总线
CLKO
\n//1卜数据总线缓冲器℃>\厂]//1八通道0
▲GATEOOUTo
RD————斗
————斗
—————◆
JWR————-◆AOAl读/写控制电路LCLKl/Lr、—]/\厂通道1GATElOUTl
-_
●_一
CS控制字寄存器卅/1一八CLK2
N\广—]/通j苣2
▲GATE20UT2
图4.18253内部结构图
Fig.4.1Theinternalstructuremapof8253
与CPU相连的信号线有:
数据总线DO.D7。三态双向数据线,用于传输数据和控制信号,计数器的计数值也通过数据总线来读取。
写输入信号WR。输入信号,用于对8253寄存器进行写操作,低电平有效。读输入信号RD。输入信号,用于对8253寄存器进行读操作,低电平有效。片选信号CS。输入信号,根据CPU送出的地址信号译码产生片选信号,低电平有效。即CS为低电平时表示CPU选中8253,可对8253进行读写操作,否则表示未选中。
片内寄存器地址输入信号A0、A1。8253内部计数器和控制寄存器编码选择信号,用于选择8253内部寄存器,以便对它们进行读写操作,A1A0编码与8253内部寄存器的对应关系如表所示。
(1)数据总线缓冲器:双向、三态的8位数据缓冲器,用于将8253和系统控制总线连接。CPU执行输入输出指令时,缓冲器发送或接收数据,实现装入计数初值、读出当前计数值或者写入8253控制字的功能。
船舶运动控制平台控制器的设计
(2)读/写控制电路:读/写逻辑电路接收来自系统总线的信息,并产生控制整个芯片工作的控制信号。
(3)控制寄存器:当A1A0为“11"时,它接收并储存来自数据总线缓冲器的数据。每个计数器的二进制或十迸制BCD计数方式、工作方式、以及各个计数器的初始值也都由此控制寄存器管理。8253控制寄存器只能写不能读。
(4)计数器:这三个计数器通道的结构是完全相同的。每个通道各有一个16位减法计数器(二进制或十进制BCD计数),门控输入GATE、时钟输入CLK、和输出OUT引脚,其选通、输入和输出是由方式控制字来选定的。每个计数器都是独立工作的,彼此之间没有影响。
4.2.18253工作方式
对可编程接口芯片来说,首先要对其控制寄存器写入控制字才能使其正常工作,亦称初始化。8253没有复位引脚,在软件初始化之前,其计数值、计数器输出状态和工作方式都是不定的。8253计数器的编程步骤为:首先要写入控制字,为定时器选定工作方式,然后再写入计数初值。若在计数器工作时,想要改写计数初值,或要取出计数器的当前计数值,需要先写一个适当的控制字,然后再进行读写操作。
(1)写控制字8253控制字的控制字格式如图4.2所示,共八位,D7D6用于选择通道,D5D4
第4章调试阶段
图4.28253控制字
Fig.4.2Thecontrolwordof8253
用于选定计数值的读写范围,D3D2D1用于选择D7D6选定计数器的工作方式,DO用于决定计数的模式,0表示二进制,1表示十进制。
(2)写计数初值
写入控制字后,应该给计数器写入计数初值。根据控制字的规定,计数初值可以是单字节,也可以是双字节,但在8253内部全部被认为是双字节,未赋值的字节被自动置0。当采用二进制计数时,计数初值的范围是从1到FFFFH+I,用十进制计数时范围是从1到9999+1。当计数初值为0时,系统进行减一计数,重新减到0时认为是计数结束。所以0表示最大的计数值。
(3)8253的六种工作方式
8253共有六种工作方式供选择。在不同的工作方式下,计数过程的启动方式不同,OUT端输出的波形不同,GATE的控制作用以及更新计数初值的影响也不完全一样。8253中的三个计数器的工作方式由方式控制字确定,先选中一个计数器即可改写其工作方式。本设计只涉及到计数器0,使用工作方式0,所以只介绍工作方式0,其余的
船舶运动控制平台控制器的设计
工作方式就不再介绍。
方式0的工作特点有:
①当计数器写完计数值开始计数时,输出端OUT就开始变为低电平,并且在计数到达0之前一直保持低电平;当计数器减至0时,OUT立即输出高电平,并且一直保持高电平,直到写入新的计数值。
②选通信号GATE为高电平时,计数器工作;GATE为低电平时,计数器停止工作,其计数值保持不变;GATE不影响输出端OUT的电平,因此在计数过程中若GATE有一段时间为低电平,则输出端OUT的低电平持续时间将会延长。
③在计数器的工作期间,如果重新写入新的计数值,那么下一个时钟脉冲到来时,新的计数初值被送到计数执行部件,计数器将按新的初值重新计数。需要注意的是,方式“0"不具备初值自动重装的功能。
(4)8253的应用
本设计中,利用8253的计数器0作为定时器,中断服务程序中加入两段子程序,用于发送两路不通频率的脉冲。DOS操作系统中8253定时器0的原定时时间为55ms,我们可以将其更改为10us的周期。相关源程序如下:
V0idSetTimerlOusO
{
outportb(0x43,OxlO);
outportb(0x40,0x75);
}
说明:
①在本系统使用的PCI04中8253的三个计数器端口地址为40H、41H、42H,43H为控制寄存器的地址。
②控制字为00010000b:选通道0;直接读/写低8位,方式0,二进制计数。计数初值为75H。
4.2.28253中断应用在51系列单片机中,每一个定时器对应一个中断服务程序的入口地址,而
第4章调试阶段
DOS并没有为8253定时器提供独立的中断服务程序的入口地址,这样我们需要借助其他的设备的中断地址来实现。下面对中断过程和如何采用DOS产生我们所需要的8253定时器中断进行一一阐述。
4.2.2.1中断和中断响应过程
在CPU正在执行程序时,由于外部某事件的发生使程序暂停,而系统指针指到另外一段程序中,执行完毕后再返回暂停点继续执行原来的程序,这就完成了一次中断响应。根据中断源和CPU的关系,中断分为内部中断和外部中断两种,其中每一种中断又可分为很多类型瞄】。
(1)内部中断,由于CPU执行某些特定指令或出现错误而引起的中断称为内部中断。内部中断包括以下几种情况:被零除中断(类型号为0)、单步中断(类型号为1)jINT0溢出中断(类型号为4)。
(2)外部中断,由CPU外部硬件电路发生信号跳变引起的中断称为外部中断。外部中断又分为可屏蔽中断和非屏蔽中断两种:
①可屏蔽中断,若CPU的INTR引脚外部为高电平信号,且中断允许标志IF被置l,则会产生一次可屏蔽中断。当IF为0时,即使INTR外部引脚为高电平,中断请求依然会被屏蔽。在mMPC/XT中,所有可屏蔽的中断源都先经过中断控制电路8259管理之后才可以向CPU发出INTR请求。
②非屏蔽中断,如果CPU的NMI(Non.MaskableInterrupt)引脚接收到一个正跳变信号,则可能产生一次非屏蔽中断。这种中断的响应不受中断允许标志的控制。IBMPC/XT中的非屏蔽中断源有三个:扩展插槽中的I/O通道错,系统板上RAM的奇偶校验错和浮点运算协处理器8087的中断请求。
一个完整的中断响应过程包括:中断请求、中断优先级判断、中断响应、中断响应程序和中断返回这五个阶段。
以可屏蔽中断的响应过程为例:首先中断源发出中断请求信号,然后进入中断优先级判断阶段。CPU找出这一时刻优先级别最高的中断源(一般由可编程中断控制器8259管理中断优先权),首先响应它的中断请求,处理完该中断后,再按照中断优先级依次响应其他级别较低的中断源请求。
船舶运动控制平台控制器的设计
而且中断优先级判断还可以决定能否实现中断嵌套。中断嵌套指当CPU在响应一个中断源的请求,在中断服务程序中运行的同时有优先级更高的中断产生,则中断优先级判断电路就允许新的优先级更高的中断源向CPU提出中断请求,从而中止正在服务的原中断服务程序,转去响应新的中断。在新的中断响应完毕后,再返回到原中断服务程序断点处继续执行,这种现象就叫做中断嵌套。若新的中断源优先级较低,则中断优先级判断电路对新的中断请求暂时搁置,在原中断服务程序处理完后,再响应优先级较低的中断请求。
CPU在每执行完一条指令后,都要去查询是否有中断请求。如果只有中断请求,而CPU内部的中断允许触发器不允许中断,则中断不能实现。如80x86CPU,只有当其Ⅲ标志位为“1"(即开中断)时,CPU才能响应可屏蔽中断;在IF标志位为“0’’(中断关闭)时,即使有可屏蔽中断请求信号,CPU也不会响应。这里有两点要注意的是:
(1)CPU复位时,中断允许触发器的标志位为“0”,不能响应中断。所以当程序运行过程中要使用中断时,必须先开中断,即将中断允许触发器置“1"。
(2)CPU响应中断后,会关闭中断。因此,如果程序中有中断嵌套,必须在进入中断服务程序后就用指令开中断。
当CPU响应中断时,还会自动进行一些处理,如保护断点、获得中断服务程序的入口地址、保护状态标志等。有了中断服务程序的入口地址即可去执行中断服务程序,进行相应的中断处理。以下工作必须在中断服务程序中完成:
(1)保护现场:保护现场是指把主程序和中断服务程序中的寄存器的原内容压入堆栈保存起来,防止影响主程序的运行。由于中断的发生具有随机性,如果不将一些公用的变量压入栈中,那么有可能造成变量值混乱的情况。通常在中断服务程序的开始处采用压栈指令,如汇编语言中的PUSH指令,把要用到的变量的内容压入堆栈,压栈的顺序没有严格要求。
(2)开中断:进入中断服务程序之后,系统会自动关闭中断,若程序中允许中断嵌套的话,那么需要加入开中断指令。(3)执行中断服务程序。
第4章调试阶段
(4)关中断:相应的中断处理指令执行结束后需使用指令关中断,以确保有效地恢复现场。
(5)恢复现场:是指将保护现场时将存入栈中变量弹出堆栈,恢复原变量的值。但须注意出栈的顺序。中断服务处理程序结尾部分是中断返回指令,执行后CPU会自动地弹出断点信息送给系统指针(如IP),并恢复标志寄存器FR的值,使程序回到断点处继续执行。
4.2.2.2
Intel80x86/pentiUlB中断系统80x86系列微机有一个灵活的中断系统,最多允许有256种中断,为了区别它们,给每一种中断分配一个中断号,又称中断类型码。中断源可来自CPU外部,也可以来自CPU内部,分为两大类:硬件中断和软件中断,80x86CPU只有2个引脚(INTR和NMI)可以接收外部的中断请求脉冲。中断分类如图4.3所示【23】。
可
屏
蔽
中
断
请
求
硬件中断
图4.38086/8088中断分类
Fig.4.3Thecategoryof8086/8088Interrupt
中断向量表
80x86CPU在响应中断后,必须先在中断向量表中找到中断服务程序的入口地址,然后才能转入中断服务程序。中断向量实际上是中断处理子程序的入口地址。一种类型的中断,其中断向量为4个字节,256种中断,共占用1024个字节。CPU规定中断向量集存放在系统RAM最低端的1024个单元中(物理地址为00000H~
船舶运动控制平台控制器的设计
003FFH区域)。图4.4表示n型中断向量4字节的存放规律,以及11型中断向量和存放向量的单元地址之间的关系。
4n+o
4n+ln型服务程序入口的偏移地址
n型服务程序所在代码段的段基址4n+24n+3
图4.4
Fig.4.4nn型中断向量typeinterruptvector
如中断类型码为1CH的中断源,它所对应的中断向量存放在0000:0070H(4X1CH=70H)开始的四个单元中占用70H,71H,72H,+73H四个字节的空间。
中断向量的引导作用
启动DOS系统之后,假设1CH型服务程序存放在地址为XX;YY开始的内存区,其中断向量XX:YY存放在4XlCH一4XlCH+3的单元中。
CPU在执行主程序的过程中,当取出INT1CH指令后,CS:IP等于标号NEXT所在单元的逻辑地址。通过上述过程我们清楚地看到中断向量是如何引导CPU完成整个中断过程的。执行INT1CH:
(1)首先保存寄存器的内容,CS、Ⅲ的当前值被压入堆栈;
(2)CPU从4X1CH~4X1CH+3单元中取出1CH型中断向量写入IP、CS;
(3)CPU根据取到的CS、P值转向1CH型服务程序;
(4)1C型服务程序执行完毕,执行IRET指令时,CPU从栈顶弹出NEXT的两个分量IP和CS,接着弹出中断前的标志寄存器内容;
(5)CPU根据CS:口返回断电NEXT,完成整个中断过程。
4.2.3船舶运动控制平台中中断应用
在本平台用到的PCI04中,利用8253定时/计数器0作为系统的时钟计时。OUT0端输出的方波信号频率为18.2Hz,接至可编程中断控制器8259A的IRQ0
第4章调试阶段
端,周期性(周期为55ms)地向CPU申请中断服务,执行类型号为08H的日时钟中断程序TIMER—INT。该服务程序除执行对日时钟计时(对时、分、秒等单元计数)和磁盘驱动器超时检测控制外,接着又进行INT1CH的软中断调用。8253在计算机中的接法如图所示:
图4.58253在PC机中的应用
Fig.4.5Theapplicationof8253inPC
INT1CH软中断只有一条空操作返回指令IRET,该服务程序由系统的08型中断每隔55ms调用一次。它不作什么事情,因而我们可以改写它的内容,使其变我们所需要的软中断服务程序。在中断服务程序中改变I/O口的电平,实现变频脉冲的发生。具体做法是:先在主程序中保存原中断向量(INT1CH)内容并且关中断,接着将该中断向量表的内容设置为新的中断服务程序入口地址,然后再开启中断,等待中断并执行新的中断服务程序,执行结束之后恢复原中断向量表的内容。4.2.4用TurboC++编写中断服务程序
用TurboC++编写中断服务程序的分为三步:首先编写中断服务程序,再安装中断服务程序,最后激活中断服务程序。
首先,关系到DOS的重入问题,DOS重入问题比较复杂,详细讨论已经超出本文范围。故中断服务程序中不能出现与DOS系统调用有关的库函数,如printf0,sp血tf()等【24】。
船舶运动控制平台控制器的设计
(1)编写中断服务程序
在响应中断时,必须保存被中断程序中断时的一些现场数据,即保存断点,这些值都在寄存器中(若不保存,当中断服务程序用到这些寄存器时,将改变它们的值),以便恢复中断时,使这些值复原,以继续执行原来被中断的程序。TurboC++为此提供了一种新的函数类型interrupt,它将保存由该类型函数参数指出的各寄存器的值,而在退出该函数,再恢复这些寄存器的值,因而用户的中断服务程序必须定义成这种类型的函数。中断服务程序中不使用上述的寄存器,也就不会改变这些寄存器原来的值,因而也就不需要保存它们,这样在定义这种中断类型的函数时,可不写这些寄存器参数。如中断服务程序名定为Count,则可将这个函数说明成这样:
voidinterruptCount(・getvect(iminto)(void)
{)
在中断服务程序中,若不允许别的高优先级的中断打扰它,则要禁止中断。可用函数disable()来实现,若允许中断嵌套,则可用开中断函数enable()来使能中断。
(2)安装中断服务程序
定义了中断服务函数后,需要将这个函数的入口地址填入中断向量表,以便产生中断时程序能转入新的中断服务程序去执行。为了防止正在改写中断向量表的同时又产生了别的中断而导致程序崩溃,可以先关闭中断,当中断向量表改写完毕后,在开启中断。常定义一个安装中断向量表的函数来实现这些操作,如下:
voidinstall(voidinterrupt(幸Counter)O,intanother)
{
disableO;
seWect(another,Counter);
enable();
>其中Counter是中断服务程序的入口地址,其函数名就代表了入口地址,而
第4章调试阶段
another表示中断类型号,servectO函数就是设置中断向量的函数,上述定义的insmllO函数,将完成把中断服务程序入口地址填入中断向量another中去的功能。如本程序中使用的8253中断,由于8253的定时器0产生中断时会调用Ox08中断向量中的地址,故主程序中的安装过程描述为:
setvevt(Ox08,Counter);
(3)中断服务程序的激活
在程序设置好中断服务程序后,当8253的计数值到时,系统便自动跳转到中断向量another中的入口地址去执行程序,即执行Counter这个中断服务程序。
(4)恢复修改过的中断向量
当用户采用系统己定义过的中断向量,并且将其中断服务程序进行了改写,或用新的中断服务程序代替了原来的中断服务程序,为了在主程序结束后,恢复原来的中断向量以指向原中断服务程序,可以在主程序开始时,存下原中断向量的内容,这可以用取中断向量函数getvect()来实现,如j=(char*)getvect(Oxlc),这样j指针变量中将是Oxlc中断服务程序的入口地址。当主程序要结束时,为了保持系统的完整性,可用setvect(Oxlc,j)来恢复原来的中断服务入口地址。4.3控制平台程序流程图
由于目前PCI04只需生成两路脉冲来控制海浪层运动即可。采用8253定时器进行生成,在定时器的中断服务程序入口处加入判断语句,用来判断应该更改哪一路脉冲的电平值,在未来控制上层船舶运动时,也采用相同方案。
测试程序的功能为对控制平台的轨道进行操作,用于验证平台能否正常工作。此程序能够按要求调节两层轨道的运转速度和方向,通过串口读取轨道当前运行的位置。流程图如图4.6所示。
船舶运动控制平台控制器的设计
图4.6测试程序主程序流程图
Fig.4.6Theflowchartofmaintestprogram
中断服务程序用来改变两路脉冲的电平,每次定时器引发中断时,程序跳转去执行中断服务程序,首先将计数次数减1,然后判断应该改变哪路脉冲的电平,
改变结束后重置计数初值,在中断服务程序的最后向20H端口送20H,最终退出中断。流程图如图4.7所示。
图4.7中断服务程序流程图
Fig4.7Theflowchartofinterruptserviceroutine
图4.8中N点即为预先在位移平台上设定的定点,程序在运行过程中,不断从预先制定好的表格当中取出数据,每个特定的位移点都对应一个速度。在程序执行过程中,按下‘c’键可以改变运行条件,如改变航速,改变遭遇角等;出于安全性的考虑,按下‘ESC’程序会终止执行。
整个仿真阶段取的是图3.3和图3.4所示曲线的一个时间段,每当此阶段的曲线仿真完毕后,程序复位重新执行。
船舶运动控制平台控制器的设计
I改写中断向量并
设置定时器
图4.8船舶位移响应程序流程图
Fig4.8Theflowchartofdisplacementresponseprogram
4.4调试方案及结果
由于计算机系统不是连续系统,我们将船舶对海浪干扰的速度响应曲线进行离散化,先用能够达到的速度对速度曲线进行离散化,离散化后的各个时间点对
第4章调试阶段
应到船舶对海浪干扰的位移响应曲线上,从而得到每个速度点所对应的位移点。在程序的运行过程中,每到达一个预定的位移点,平台采用不同的速度运行,整个过程用查表实现。
船舶运动控制平台的尺寸和运动速度都是有限制的,下两层轨道的x,Y方向长度分别为:44m.3lm。在对每条轨道进行控制时,脉冲的频率范围为lKIqz
0058rrds~o~10KIb.实测速度线性地对应为O058m/s,但仿真结果中的速度峰值
为0.7trds,综合考虑需要对求得的速度和位移响应函数进行缩小处理。
系统运行时屏幕显示如图4.9,图中显示的为船舶在x方向的位置格式为第二章中介绍的,图49中昂上部分表示轨道1和墙壁的距离为003172m,当前条件为航速15节,遭遇角45度。
I芏j4.9船舶位移响应程序显示
Fi94,9Viewofdisplacementresponseprogeam
在运行过程中可以更改海浪条件,遭遇角等参数。且系统总是读取出当前的运行位置,并显示在屏幕上。
船舶运动控制平台控制器的设计
4.5本章小结
本章首先讲述了船舶运动控制平台的要求,然后讲述了以8253为核心的脉冲产生方案,介绍了8253在PC机的应用以及DOS下中断的产生方式,最后介绍了测试程序以及船舶响应函数的离散化。
第5章总结与展望
第5章总结与展望
5.1总结
船舶运动控制平台所包含的内容十分丰富,可以模拟各种航行情况。平台的四层轨道中,上两层轨道反映船舶运动,可以模拟船舶动力定位,船舶在海洋中航行以及船舶离靠港时的情况;下两层轨道模拟船舶对海浪的响应,根据不同的波谱可以模拟不同海域的船舶响应,还可模拟各种海况,只要有模型,此平台均可进行仿真。
本次设计过程中根据Blanke[181提供的幅值相应算子的数据模拟了船舶在时速15节,遭遇角为45度时海浪对船的干扰。平台采用GAL为核心的位置保护电路串联起了PCI04和步进电机驱动器,构成了船舶运动控制平台的整个硬件环境。采用DOS作为操作系统,并开发了基于DOS的串口通讯程序和整个平台的运动控制程序,经调试,系统达到了预期的设计要求。
另外,本课题中编写的8253定时器中断的控制程序,发出的两路并行信号完全满足要求,为船舶运动控制平台的后期调试提供了保证。该平台的出现为船舶运动控制仿真提供了一种新的选择,并且结果具有一定说服力。
5.2展望
由于本课题时间所限,采用的海浪模型较为单一,未能建立起船舶运动过程中对各种海况的响应函数,使得海浪层的模拟不够丰富。而PCI04定时器的精度偏低,导致输出的脉冲波最小可调节范围过大,不能达到各种速度都能找到对应的定时值的要求,致使仿真结果有误差。如果能有更可靠的方案来发生精度更高的脉冲,则会使仿真结果更为准确。
由于DOS系统的局限性,无法显示出船舶的实时运动曲线,无法制作出友好的界面,只能采用字符输入的方式,所有的操作都需要通过输入命令来完成,造成很大不便。目前Linux系统日渐壮大,凭借其独特的优势,成为当今发展的趋势,Linux下的C语言编程与DOS下的相差不多,也有类似与TurboC的开发工具,标准库函数都一样。如果程序只是用到标准C,稍加编译即可很容易的移植到Linux
船舶运动控制平台控制器的设计
上。只是在操作底层硬件8253时,用户程序需要取得相应的访问权限。未来如果整个平台的程序如果能在Linux下编写,那么无论是界面还是可操作性都将大大提高。
参考文献
参考文献
[1]黄祥鹿.船舶与海洋结构运动的随机理论.北京:北京航空航天大学出版社,2005.
[2]孙树政,李积德,赵晓东.实际海浪环境下大尺度模型试验研究.哈尔滨:哈尔滨工程大学学报,2009.
[3]苎艳蓉.海洋工程波浪力学.天津:天津大学出版社,1991.
[4]张显库,贾欣乐.船舶运动控制.北京:国防工业出版社,2006.
[5]贾欣乐,杨盐生.船舶运动数学模型一机理建模与辨识建模.大连:大连海事大学出版社,1999.
[6]夏尚钮,陈厚甫.超大型船及其在浅水中航行的一些问题.船舶力学情报,1984.
[73郑环宇,吴唏,宋崇利等.浅水域中船舶的操纵运动仿真研究.船舶工程,2009.
[8]李迎军.浅谈中小型船舶靠离泊的特点.大连:大连海事大学学报,2008.
[9]吴秀恒,张乐文,王仁康.船舶操纵性与耐波性.北京:人民交通出版社,1988.
[10]张潞怡,董国祥.船舶操纵运动的一种实用预报方法.船舶工程,1996.
[11]赵希渭.波浪中船舶操纵性计算研究动态.舰船力学情况,1984.
[12]李积德.船舶耐波性.哈尔滨:哈尔滨船舶工程学院出版社,1992.
[13]李文魁,张博,田蔚风等.一种波浪中的船舶动力定位运动建模方法研究.仪器仪表学报,2007.
[141黄国梁,楼连根,卢军.船舶在波浪中操纵运动仿真.中国航海,1998.
[15]范余明,周兴邦,余滋红等.船舶在波浪中操纵运动的模型试验研究。船舶工程,2000[16]范佘明,盛子寅,陶尧森等.船舶在波浪中的操纵运动预报.中国造船,2001.
[173杨怀平,孙家广.基于海浪谱的海浪模拟.系统仿真学报,2002.
[18]杨承恩,贾欣乐,毕英君.船舶舵阻横摇及其鲁棒控制.大连:大连海事大学出版社,2001.[19]R.巴塔杳雅.海洋运载工具动力学.北京:海洋出版社,1982.
[203Robertjourdian陈学谦等译.IBMPC编程指南.北京:电子工业出版社,1995.
[21]孙力娟,李爱群,仇玉章等.微型计算机原理与接口技术.北京:清华大学出版社,2007.[22]邱书波.利用定时器中断设计PC工控软件.电子技术应用技术,1996.
[23]王正智.8086/8088宏汇编语言和程序设计教程.北京:电子工业出版社,1998.
[24]赵世栋.基于嵌入计PCI04的飞飞行参数转录统的研制.南京:南京航空航天大学.硕士论文,2003.
[25]贾欣乐,张显库.船舶运动智能控制与Hoo鲁棒控制.大连:大连海事大学出版社,1993..42-
船舶运动控制平台控制器的设计
[263求伯君.深入DOS编程.北京:北京大学出版社,1993.
[27]潘金贵,陆庆文,陈兆乾等.学习和使用TurboC语言(续编)一TurboC实用工具与库函数大全.南京:南京大学出版,1995.
[28]王士元.C高级实用程序设计.北京:清华大学出版,2001.
[293廖彬山.PC中断调用大全.北京:科学技术文献出版社,1993.
[30]易仲芳.80x86微型计算机原理及应用.北京:电子工业出版社,1998.
[313Pd-IEEKP,KIMSH.Amodelingoffrequency—dependentverticalshipmotionsinirregularwaves[C].Proc.3rdInternationalConferenceforHighPerformanceMarineVehicles,2000.
a[323BERNTSENPIB,PEREZT,ROSSA.Hydrodynamicmodelingofshipinaseaway—sea
keepingmodels.http:}}飞阑.cesos.ntnu。no|mss.2009—11.
[33]周昭明,盛子寅,冯悟时.多用途货船的操纵性预报.船舶工程,1983.
[34]张显库,金一丞.控制系统建模与数字仿真.大连:大连海事大学出版社,2004..[35]王鹰翔.TurboC高级程序设计.北京:宇航出版社,2008.
[36]薛定宇,陈阳泉.基于MATLAB/Simulink的系统仿真技术与应用.北京:清华大学出版社,2002.
[37]龚建伟,熊光明.VisualC++/TurboC串口通信编程实践.北京:电子工业出版社,2005.[38]KrisJamsa.DOS
[39]Borland.TurboProgramming:TheCompleteCUserGuide.1997.Reference.OsborneMcGraw-HiII,1992.
[40]金鸿章,姚续梁.船舶控制原理.哈尔滨:哈尔滨工程大学出版社,2001.
[41]李俊兴译.由航行中的船体运动实时推算海浪谱.北京:舰船力学情报,1994.
[42]范尚雍.船舶操纵性.北京:国防工业出版社,1980.
[43]张原.可编程逻辑器件设计及应用.北京:机械工业出版社,2003.
[44]张亦华,肖冰编著.数字逻辑设计实验与EDA技术.北京:北京邮电大学出版社,2006.[45]HerbertSchiidt.TurboC/C++:TheComplete
1994.Reference.OsborneMcGraw—Hiii,
[46]王青春.常规船舶操纵运动仿真.情报指挥控制系统与仿真技术.1998.
[47J孟宪尧,韩新洁,白广来.海上作业多用途工作船自动控制系统(一)一动力定位系统的控制与冗余技术.世界海运,2004.06.
[48]金鸿章.长峰波随机海浪的实时仿真和频谱分析.船舶工程,1995.
[49]绪方胜.现代控制工程.北京:科学出版社,1976..43.
参考文献
[50]文圣常,余宙文.海浪理论与计算原理.北京:海洋出版社,1984.
[51]王科俊,海洋运动体控制原理.哈尔滨:哈尔滨工程大学出版社,2005.
[52]缪国平,刘应中,高等流体力学,上海:上海交通大学出版社,2003.
[53]蒋学炼,李炎保,波浪作用下船舶运动的数值模拟,天津:天津大学硕士论文,2003.[54]李红霞,唐友刚,船舶随机海浪中非线性横摇及倾覆机理研究.天津:天津大学硕士论文,2005.
[55]徐琳琳,彭秀艳,船舶运动仿真及建模预报研究.哈尔滨:哈尔滨工程大学硕士论文,2007.
[56]蔡岭梅,王兴权,杨万柏,船舶静力学.北京:人民交通出版社,1995.
[57]缪国平,刘应中,船舶在波浪上运动理论.上海:上海交通大学出版社,1986.
[58]盛振邦,刘应中,船舶原理.上海:上海交通大学出版社,2004.
[59]王献孚,周树新等,计算船舶流体力学.上海:上海交通大学出版社,1991.
[60]黄祥鹿,范菊,船舶与海洋结构运动的随机理论.北京:北京航空航天大学出版社,2005.[61]徐德伦,于定勇,随机海浪理论.北京:高等教育出版社,2001..44.
致谢
致谢
本设计的开发和研究是在导师杨承恩教授的悉心关怀指导下完成的。在我两年的硕士生学习期间,杨老师对我的关怀是无微不至的,这使我逐渐的成长起来。杨老师还给我提供了宝贵的实践锻炼机会,使我对项目的把握能力大大提高;同时杨老师以身作则、严谨求实、谦虚的作风对我影响很深,必将使我受益终生。
本人在收集资料,撰写论文期间得到了同学陆金金和王丽丽的许多帮助,在此表示感谢。
同时,我深深感谢我的父母和家人,正是他们平凡而又博大的爱指引着我热爱生活、热爱工作。亲人们的爱心和奉献促使我在人生的道路上奋发进取、努力工作。
衷心感谢大连海事大学为我提供了六年的学习机会和环境。
最后,向在攻读学位期间的所有任课教师、实验室的师兄师弟们和所有给予关心和帮助的朋友们表示衷心的感谢!