书签 分享 收藏 举报 版权申诉 / 11

类型基于Java语言的虚拟实验表显示程序设计.doc

  • 上传人:涵涵文库
  • 文档编号:1562798
  • 上传时间:2018-08-05
  • 格式:DOC
  • 页数:11
  • 大小:724.93KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于Java语言的虚拟实验表显示程序设计.doc
    资源描述:

    《基于Java语言的虚拟实验表显示程序设计.doc》由会员分享,可在线阅读,更多相关《基于Java语言的虚拟实验表显示程序设计.doc(11页珍藏版)》请在微传网上搜索。

    1、基于 Java 语言的虚拟实验表显示程序设计The Design of Display Program of Virtual Experiment Table Based on the Java张彦军 马法平(青岛科技大学自动化与电子工程学院,山东 青岛 266042)摘要:采用虚拟图表来显示自控实验的各种数据,能够直观地反映出实验过程中各种参数的变化对整个实验过程的影响。倒立摆系统作为控制理论研究中的一种比较理想的实验手段,为自动控制理论的教学、实验和科研构建了一个良好的实验平台。本文以倒立摆系统作为研究对象,就自动控制实验的虚拟图表的绘制进行程序设计,论述如何使用 java语言结合第三方类

    2、库 Jfreechart来设计程序使其自动绘制自动控制虚拟实验表。关键词:虚拟实验;虚拟实验表;倒立摆系统;Java.Ma Fa-ping(School of Automation and Electronic Engineering, Qingdao University of Science Virtual experiment table; Inverted pendulum system; Java.引言随着计算机技术的飞速发展,人们越来越多地采用计算机对倒立摆实验进行虚拟仿真研究。虚拟实验是指借助于多媒体、仿真和虚拟现实等技术在计算机上营造可辅助、部分替代甚至全部替代传统实验各操作环

    3、节的相关软硬件操作环境,实验者可以像在真实的环境中一样完成各种实验项目,所取得的实验效果等价于甚至优于在真实环境中所取得的效果。 虚拟实验建立在一个虚拟的实验环境(平台仿真)之上,而注重的是实验操作的交互性和实验结果的仿真性。虚拟实验的实现将有效缓解很多高校在经费、场地、器材等方面普遍面临的困难和压力,而且开展网上虚拟实验教学能够突破传统实验对“ 时、空” 的限制,无论是学生还是教师,都可以自由、无顾虑地随时随地上网进入虚拟实验室,操作仪器,进行各种实验,有助于提高实验教学质量。 一 倒立摆系统简介及其研究的理论意义倒立摆系统是一个典型的快速、多变量、带有非线性和强耦合特性的机械系统,是进行控

    4、制理论教学及开展各种控制实验的理想实验平台。在实际中有很多这样的系统,像卫星发射架系统和海上钻井平台系统等都与之相似。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。因此,对它的研究在理论上和方法论上均有深远的意义1. 倒立摆的分类倒立摆系统按摆杆数量的不同,可分为一级,二级,三级倒立摆等,多级摆的摆杆之间属于自有连接(即无电动机或其他驱动设备)。现在由中国的北京师范大学李洪兴教授

    5、领导的“模糊系统与模糊信息研究中心”暨复杂系统智能控制实验室采用变论域自适应模糊控制成功地实现了四级倒立摆。是世界上第一个成功完成四级倒立摆实验的国家。2.倒立摆的控制目标倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。3.倒立摆的控制方法倒立摆系统的输入为小车的位移(即位置)和摆杆的倾斜角度期望值,计算机在每一个采样周期中采集来自传感器的小车与摆杆的实际位置信号,与期望值进行比较后,通过控制算法得到控制量,再经数模转换驱动直流电机实现倒立摆的实时控制。直流电机通过皮带带动小车在固定的轨道上运

    6、动,摆杆的一端安装在小车上,能以此点为轴心使摆杆能在垂直的平面上自由地摆动。作用力 u平行于铁轨的方向作用于小车,使杆绕小车上的轴在竖直平面内旋转,小车沿着水平铁轨运动。当没有作用力时,摆杆处于垂直的稳定的平衡位置(竖直向下)。为了使杆子摆动或者达到竖直向上的稳定,需要给小车一个控制力,使其在轨道上被往前或朝后拉动。图 1 倒立摆实物图二单级倒立摆的数学建模 在忽略了空气阻力,各种摩擦之后,可将直线一级倒立摆系统抽象成小车和均质杆组成的系统,如下图所示:其中,: 为小车的质量M: 为摆杆和球的质量m:小车摩擦系数b: 为摆杆转动轴心到杆质心的长度l:为加在小车上的力)(tf:为小车的位置ty:

    7、摆杆与垂直向上方向的夹角)(t(1)在 作用下,小车加速运动,根据牛顿第二定律得:tfcossin)( in2xmlglmlI fxbM(1)(2)设 ,进行近似处理:1, 0,sin,1co2dt则有: xmlglIfbxM)(2(2)(3)系统的状态方程为:(其中: ) cxyBuA )(tfu(3) 2222 200()()10 0()()ImlbmglMIMAllIIl 220()()ImlMBlI二图表绘制工具简介1Applet 类简介Applet(小应用程序)采用 Java创建的基于 HTML的程序。浏览器将其暂时下载到用户的硬盘上,并在 Web页打开时在本地运行。一般的 Appl

    8、et只能通过 appletviewer或者浏览器来运行,一般的 Java程序通过继承 Applet类也可以嵌入网页运行。2.Applet的工作原理含有 Applet的网页的 HTML文件代码中部带有 和这样一对标记,当支持 Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该 Applet。Java Applet 是用 Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持 Java的浏览器(IE 或 Netscape)解释执行能够产生特殊效果的程序。它可以大大提高 Web页面的交互能力和动态执行能力。包含 Applet的网页被称为 Java-

    9、powered页,可以称其为 Java支持的网页。 当 Applet用户访问这样的网页时,Applet 被下载到用户的计算机上执行,但前提是用户使用的是支持 Java的网络浏览器。由于 Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者 Modem存取速度的限制,用户可以更好地欣赏网页上 Applet产生的多媒体效果。 在 Java Applet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。 Applet还提供了名为抽象窗口工具箱(Abstract Window Toolkit, AWT)的窗口环境开发工具。 AWT利用用户计算机的 GU

    10、I元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。目前,在网络上有非常多的 Applet范例来生动地展现这些功能,读者可以去调阅相应的网页以观看它们的效果。 Applet 小应用程序的实现主要依靠 java. Applet 包中的 Applet类。与一般的应用程序不同,Applet 应用程序必须嵌入在 HTML页面中,才能得到解释执行;同时 Applet可以从 Web页面中获得参数,并和 Web页面进行交互。 Applet是一种 Java的小程序,它通过使用该 Applet的 HTML文件,由支持 Java的网页浏览器下载运行。也可以通过 java开发工具的 appletviewe

    11、r来运行。Applet 程序离不开使用它的 HTML文件。这个 HTML文件中关于 Applet的信息至少应包含以下三点: 1)字节码文件名(编译后的 Java文件,以.class 为后缀) 2)字节码文件的地址3)在网页上显示 Applet的方式。 3.Jfreechart简介JFreeChart是开放源代码站点 SourceF上的一个 JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。这些不同式样的图表基本上可以满足目前的要求。当在项目中客户需要图标分析时,JFreeChart便是最好的选

    12、择,JFreeChart 是开源项目,可以方便的从其官方网站上获得其源代码,可以方便的与 Swing相结合使用,还可以导入到 Web页面中,更是可以方便的利用其工厂方法将图表写入 jpeg或者 png格式的图片中。JFreeChart 是一个免费的 Java 图表库,让开发人员开发出专业的图表显示在他们的应用程序。 JFreeChart 的广泛的功能包括: 详实的 API,支持各种各样的图表类型; 一种灵活的设计,易于扩展,和指标均服务器端和客户端的应用; 支持多种类型的输出,包括 Swing 界面,图像文件(包括 PNG 和 JPEG格式) ,和矢量图形文件格式; JFreeChart 是“

    13、开源” ,或更具体 的免费软件 。 4. Jfreechart图表绘制与画曲线图密切相关的几个类:1)TimeSeriesCollection 曲线数据的集合。2)TimeSeries 曲线信息序列。3)ChartFactory 可以利用该类的 createTimeSeriesChart 方法来创建曲线的JFreeChart 对象。为了观察图表显示效果,编写了一个利用 Jfreechart 绘制折线图的程序,利用 Eclipse运行程序,结果如下图所示:图 2 折线图绘制由上图可以看出,我们运用 Jfreechart 绘制,能够得到比较美观的图表显示界面。图表能使数据形象直观的表现,给数据统计

    14、也提供了方便,JFreeChart 目前是最好的 java图形解决方案,基本能够解决目前的图形方面的需求。四倒立摆控制虚拟仿真的实时图表显示1主类 InvertedPendulum.class 的构成思路1.1 程序的显示目标我们编程所显示的图表应该是这样的:(1)下方是虚拟实验部分,即对小车进行的仿真部分和一些控制按钮;(2)上方是图表显示部分,实时显示的倒立摆仿真实验中的小车的位置和摆杆角度。1.2 程序的构成思路(1)对小车仿真部分运用 applet中的动画实现,小车各个部分的运动轨迹为所建立的系统模型中传递的参数控制;(2)获得倒立摆模型中小车的角度和位置实时变化的数据,并利用Jfre

    15、echart实现图表显示出来。 2 编写 Java 程序并结合 Jfreechart 显示图表2.1 运用 applet 动画模拟小车的运动(1)画出小车运动时的背景部分程序如下:Public void Clear Plot (Graphics g)offScrGC = offScrImage.getGraphics();/获得画布offScrGC.clipRect(0, 0, size().width, size().height - controlPanel.size().height);/画布的尺寸,它定义为控制面板以上的区域g = offScrGC;xSize = size().wid

    16、th;YSize = size ().height;PlotX = plotY = border;plotW = xSize - 2 * border;plotH = (ySize - 2 * border - 3)/2;PicX = border;picY = border +plotH;picW = xSize - 2 * border;/球杆框的宽度picH = (ySize - 2 * border - 3)/2;/球杆框的高度(2)绘制小车的部分程序如下:g.clipRect(picX, picY, picW, picH);/做球杆所在的框g.setColor(Color.white

    17、);g.fillRect(oldrect0 - 30, oldrect1 - 30, oldrect2 + 50, oldrect3 + 50 + 200);/框变大y = picX + (int) (-yMinScale + data 0) * (double) plotW) / (yMaxScale - yMinScale) +80;g.setColor(Color.blue); /画轮子g.fillOval(y-12, (picY + (3*picH)/4) +45, 8, 8);g.setColor(Color.blue);/画轮子g.fillOval(y+4, (picY + (3*

    18、picH)/4)+45, 8, 8);g.setColor(Color.darkGray);/画轨道g.drawLine(plotX, (picY + (3*picH)/4)+58-5, plotX+plotW, (picY+(3*picH)/4)+53);g.drawLine(plotX, (picY + (3*picH)/4)+58-5, plotX+plotW, (picY+(3*picH)/4)+59-5);g.setColor(Color.gray); /画出小车 g.fillRect(y - 15, (picY + (3 * picH) / 4)+32, 30, 15);2.2 小

    19、车运动轨迹的控制 根据所建立的系统模型来仿真小车运动,可见小车各个部分的运动轨迹为所建立的系统模型传递的参数控制。 小车框的坐标和大小与 oldrect有关:oldrect0 y 或 y+车面杆投影长,取其小者oldrect1 一横值或横值加杆到杆低的垂直位移,取其小者oldrect2 杆投影长oldrect3 杆到杆底的垂直距离if(Math.abs(40D * Math.sin(data1) = 40D) g.drawLine(y, (5 + picY + (3 * picH) / 4) +33, y + (int) (scale * Math. Sin (data1), (5 + pic

    20、Y + (3 * picH) / 4) - (int)(scale * Math.cos(data 1) - 10);g.setColor (Color. Red);g.fillOval (y + (int) (scale * Math.sin (data 1) - 5, (5 + picY + (3 * picH) / 4) - (int) (scale * Math.cos (data 1) - 15, 10, 10);Oldrect 0 = Math.min(y, y + (int) (scale * Math.sin (data 1);Oldrect 1 = Math.min (5 +

    21、 picY + (3 * picH) / 4) - 10, (5 + picY + (3 * picH) / 4) - (int) (scale * Math.cos (data 1) - 10);Oldrect 2 = Math.abs (int) (scale * Math.sin (data 1);Oldrect 3 = Math.abs (int) (scale * Math.cos (data 1); else Oldrect 0 = y;Oldrect 1 = (5 + picY + (3 * picH) / 4) - 10;Oldrect 2 = 0;Oldrect 3 = 0;

    22、2.3 用 Jfreechart 显示图表仔细观察我们在上面贴出来的那个图表就会发现,它的横轴是时间系列,用来表示时间的进度,而不是表示固定不变的几个坐标,它不是静止的,是动态的。这里的两条曲线的任意点的取值是符合某种运动控制规律的,需要配合倒立摆模型的数据来完成。设计思路:在 applet 中绘制实时曲线图比较复杂,由于 applet 的坐标系定义是左上角为零,顺屏幕向右、向下建立坐标轴,这与我们一般坐标建立相悖。利用 jfreechart 的 time series chart 可以建立时序图,利用后台线程产生需要的曲线数据,这里可采用 timer 类实现。利用 timeseries 类可

    23、以产生 chart 需要的数据形式。由于使用 jfreechart 的自带类库,chart 还可动态完成图表形式的改变给图表增加了实用的附加功能:利用功能菜单可以对坐标轴、背景色、字体等进行动态改变,还可利用鼠标关联,显示任意时刻的图表数据。程序仿真结果如图3 所示:图 3 倒立摆仿真实验表从上面结果我们可以看到,并不是所有的数据都是我们需要的。我们可以这样进行改进,当鼠标放置在折线上时才显示我们想要的数据。改进后的显示图表如图 4所示:图 4 改进后仿真实验表五总结 本文以单级倒立摆为对象研究采用虚拟图表来显示自控实验的各种数据,目的是通过虚拟实验表能够直观地反映出实验过程中各种参数的变化对

    24、整个实验过程的影响。通过仿真实验可以观察到随着小车来回的运动,运动参数可以自动显示在生成的虚拟图表上,以便于对实验结果的分析研究。参考文献1 Graham C. Goodwin, Stefan F.Graebe, Mario E. Salgado. Control system design.2 文福安 王昀 基于 JAVA 技术的虚拟仪器元件库设计与实现 ,计算机应用技术,2010,26-30.3 马幼捷 安小东 虚拟实验技术的应用研究 天津理工大学电力系统及其自动化,2008,40-46.4 吕正 虚拟仿真实验在实验室中的应用 华北电力大学 大学物理实验5 杨世勇 徐莉苹 王培进 单级倒立摆的 PID 控制 控制工程 20076 邵丽萍 邵光亚 张后杨.Java 语言程序设计 清华大学出版社 2004附注:作者简介:张彦军:(1960-),男,教授,硕士研究生导师,研究方向:过程控制和自动化装置的研究。马法平,男,(1988-),研究生,过程控制和自动化装置的研究,青岛科技大学通讯地址:山东青岛四方区郑州路 53 号青岛科技大学自动化与电子工程学院,邮编:266042联系电话:15854288531 mfp_

    展开阅读全文
    提示  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:基于Java语言的虚拟实验表显示程序设计.doc
    链接地址:https://www.weizhuannet.com/p-1562798.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    微传网用户QQ群:732276833  微博官方号:微传网官方   知乎号:微传网

    Copyright© 2025 微传网 weizhuannet.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号   营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png


    收起
    展开