8cFORTRAN语言的造波机控制软件的研究与开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于VC6.0和FORTRAN语言的造波机
控制软件的研究与开发
张瑞波1。王收军1。朱国良2
(1.天津理工大学机械工程学院,天津300191;2.约翰迪尔天津有限公司,天津300456)摘要:文章介绍了基于VC++6.o和FORTRAN语言混合编程的造波机控制软件的研究与开发。用Vc++6.o调用FORTRAN编译生成的动态链接库的方法实现了Vc和FORTRAN语言的混合编
程。使用windows的W.nlo库实现了控制软件和造波机伺服系统间的通信。使用windows
×P环境下的高精度定时的方法满足了造波系统对控制软件定时精度的要求。
关键词:VC++6.o;FORTRAN;混合编程;造波机控制软件
中囝分类号:TP273.5文献标识码:B文章编号:1009—0134(2008)08—0037—04
Researchanddesignofqavemaker-sCOntrOIsOf.twarebasedOnVC6.0andFCIRTRANZHANGRu.-bo,WANGShou-iun,ZHUGuo-¨ang
(Co¨egeofMachineryEngineering,TianjinUniVers耐ofTechnology,Tianjin300191,China)Abstract:ThispaperIntroducestheresearChanddesign0fwavemakerJscontroIsoftvva旧basedOnmixed-IangueprOgrammingbetweenVC++6.0andFOF汀RANIanguage.Themixed・
IangueprogrammingbetweenVC++6.0andFORTF乇ANhasbeenachievedbyca¨ingthe
Dynamic-LinkLibra吖generaledbyFOFtTRANIanguageusingV(:++6.O.The∞mmunica-
tionbetweenthecOntr0IsOftwareandtheservOsyslemOfthewavemakerhasbeen
achieVedbyusingtheWinl0Librarybased0nWindows.AndthewaVemakerJsrequirement
OfthetimingprecisiOnhasbeenmetbyusingHighAccuracyTimjngMethodinthe
envirOnmentOfWindOwSXP.
Keywords:VC++6.O:FORTRAN;mixed—IangueprOgramming;waVemaker.scOntrolsOfCwa怕
0引言
造波机是港口工程试验中用于模拟自然波浪,研究海浪对港口建筑的冲击作用的专用设备。造波机系统性能的好坏,除了与其伺服驱动系统的性能有关外,主要取决于系统控制软件的性能。造波机控制软件负责造波参数设置、目标波浪数据的计算、板前水位的实时显示、控制信号的生成与输出、造波机工作状态的监控等,是造波机控制系统的一个重要组成部分,其设计的好坏对于整个造波机系统的性能有着决定性的影响。
为了提高造波机系统的控制精度,加快运算和响应速度,方便用户使用,应用软件采用了基于Windows平台的VisualC++6.0和FORTRAN编程软件进行混合编程。VisualC++6.0与操作系统的结合十分紧密,是一种具有高度综合性能的软件开发工具。用它开发出的程序有着运行速度快,可移植能力强、图形处理能力强等特点,但它在科学运算的实现过程上却相对复杂。FORTRAN语言是一种面向过程的、适用于科学计算的高级语言,虽然它在人机交互和图形处理等方面的效果不理想,但它在实现数据的精确计算上很有简便易行的优势。因此,用VC++6.0和FORTRAN两种语言进行混合编程可以使它们取长补短,编制出具有友好界面和良好计算功能的应用程序。
1控制软件的控制原理
控制软件对造波机系统的控制通过造波机的传递函数实现。在假定造波机控制系统是线性系统的前提下,传递函数反映了拟实现的波高、波长与控
收稿日用:2008-03-17
基金项目:交通部基金项目(交规划发f20051578号)
作者简介:张瑞波(1982一),男,河北邢台人,在读硕士研究生,研究方向为机电控制及应用。
第30卷第8期2008—08【37】万方数据
制信号之间的关系。当进行模拟实验时,控制程序首先根据实验要求计算需要模拟的波浪波高序列,然后根据造波机系统的传递函数生成控制造波机的数字信号,数字信号经数模转换(D/A)模块转换为模拟信号控制造波机伺服系统运行。同时,控制软件实时采集推波板前的波浪信号以提取反射波信号,并将该信号反馈到控制系统,实现造波机吸收二次反射波的功能。
造波机控制软件具有一套完善可靠的控制算法,能够实现吸收式造波的控制功能;采用高精度时间函数实现精确定时,提高了造波机系统的控制精度;采用端口输入、输出函数GetPortVal()与SetPortVal()实现PC并行端口数字信息的输入/输出,完成了数值计算与控制系统的通信;将目标波波高序列的计算、造波机的控制、板前波浪信号的采集、控制信号与板前波浪信号的显示以及造波机状态监控集于一体,增强了控制界面的友好性,使得不熟悉控制理论和波浪理论的操作人员也能够方便、灵活地使用设备。
2控制软件的开发研究
2.1控制软件的功能及控制过程
造波机控制软件主要包括以下功能:造波机的启动、推波板的零点定位、造波参数的设置、规则波波高序列的计算、不规则波波高序列的计算、板前波浪信号的实时采集、规则波的生成、不规则波的生成、其他波(孤立波、奇异波等)的生成、推波板运动的显示、实测板前波浪的显示等。
造波机系统启动后,先检查推波板的位置是否在零位,若不在零位程序会通过WinIo库函数向控制系统发出信号,控制造波机进行推波板调零定位。调零完成后,程序计算用户输入的波谱数据,并将其转化为控制推波板运动的电信号,达到控制推波板运动,模拟出目标波浪的目的。
造波机控制软件的程序流程如图l所示。2.2VC++6.O和FORTF狐N语言混合编程的实现VC++6.0和FORTRAN语言混合编程通过用VC++6.0调用FORTRAN语言编译的动态链接库来实现,其实现过程如下:
首先使用FORTRAN语言在其开发环境MSDeveloperStudio下编译生成动态链接库(如TEsT.d11),然后用VC++6.0实现对该动态链接库的调用。
【38】第30卷第8期2008一08
系统初始化
主
调零定位
==亡
参数设簧
计算理想值并像存鲐襞
向传感嚣发送韧始敦揩
读取传感嚣数掘
分忻传癌器数据
计算水俄甲均值
计算控制参敦
通过D,^板辘出控制麓
向传盛器矬j盖采集命令
倪存控捌过程参数
图1控制程序流程图
结束
在VC6.0调用动态链接库编译链接时,不需要动态链接库的导入库,但要在程序代码中调用Library()函数,它负责将指定的可执行模块映射到调用进程的地址空间中。调用GetProcAddress()函数获得一个动态链接库地址的句柄,并将返回指定的动态链接库函数的入口地址。在调用动态链接库执行完成后,调用FreeLib聊了()函数释放动态链接库。
由于港口工程中处理各种波谱的FORTRAN代码都较复杂,不便在这里列出。以下以一段简单的FORTRAN代码编译的动态链接库(TEST.d11)为例,说明VC++6.0与FORTRAN语言混合编程的实现。
用于生成动态链接库的FORTRAN代码如下:
SUBROUTINEARRAYTEST(n,a哪
¥ATrRIBUTESDLLeXPORT::ARRAYTEST
刀N]陋GERn,功
REAL(4)a呱3,3)
万方数据