热门关键词:

基于Visual C++与OpenGL的风电机组仿真系统研究

  • 该文件为pdf格式
  • 文件大小:495.52KB
  • 浏览次数
  • 发布时间:2014-08-30
文件介绍:

本资料包含pdf文件1个,下载需要1积分

相对于传统发电行业,风力发电行业受到风资源分布的限制。风电机组受恶劣环境的影响 比较厉害,时常在变速变载 的条件下工作 ,受到风产生 的扭矩、弯矩和轴向推力的作用,其部件容易发生变形,产生 附加 的结构应力 ,使得风 电机组齿轮箱、轴 承、发电机等关键设备经常出现故障。对风电机组进行画面实时监控可以大大降低维修费用与停机时间,减少不必要经 济损 失。本文 仿真系统采用 OpenGL技术 ,在 Windows环境中以 Visual C为开发工具进行开发。OpenGL具有绘制三维图形 的各项功能,它可以与 Visual C紧密结合,可以实现有关计算和图形算法 ,实现j维模型的可视化 。用 OpenGL来实现三维显示 ,具有简单、直观、高效率等特点 ,它具有强大的三维建模功能及趾存动画技术,并且可以对模型进行光照 、材质、纹理、反走样等处理 ,使得动态仿真过程呈现逼真三维立体显示 。

l 建立-个 OpenGL控件OpenGL是-个独立于窗 口的图形库 ,而 图形最终是在窗口系统里绘制 出来 的,我们可 以建立-个通用的OpenGL控件,用来绘制机组各部件图形,当引入这个控件时 ,控件会 自动初始化 OpenGL 。引入控件还有-个好处 ,它可以在对话框 中显示 Open-GL渲染 的画面 ,我们可 以在对话框 中添加其 他控件 ,并在 ClassWizard中为对话框类添加事件响应 函数 ,实现与图形的交互控制。

(1)创建-个 MFC ActiveX Control应用程序框架 。在 StdAfx.h头文件 中加入与 0penGL相关 的头文件和连 接 ,在 Project”中添加静 态库 opengl32。

1ib,glu32.1ib,glaux.1ib,glut32.1ib”,在 ClassWizard中实现消息响应 函数 的设置 ,最后 为 COpenG1View添加保护型变量 HDC Il-hDC;HGLRC m-hRC;(2)设置像素格式。它反映了0penGL的绘制风格、颜色模式、颜色位数等。正确设置像素格式:①填充 PIXELFORMATDESCRIPTOR结构 ;② 用 Choos-ePixelFormat函数在硬件所支持的像素格式中选出与给定的像素格式最匹配的-个设备描述表(Dc);③用 SetPixelFormat函数将其设为当前像素格式 。

(3)建立着色描述表 (Render context)并 当前化收稿 日期:2012-10-27;修 回日期 :2012-12-06基金项目:河南势技攻关项目(0374-3211125)作者简介:尹海峰(1989-),男,河南省周口人,河南科技大学硕士研究生,研究方向为数控技术、机电仿真系统,(E-mail)yhf2006424###126.eom。

2013年 6月 尹海峰,等:基于 Visual C与 OpenGL的风 电机组仿真系统研究 ·143·着色描述表 。在进行 OpenGL绘制之前 ,必须先建立着色描述表并将其当前化,这样绘制的物体才能显示出来。

(4)设置坐标变换方式。每次窗 口创建或改变大小的时候。都要重新设置视口大小,因此我们需要在 OnSize中进行视 口设置。

2 风电机组三维模型建立在风力发电仿真中,模型要能准确的反映机组 的结构特 点、零部件的几何相对关系,因此要对每个运动部件进行单独的几何建模 ,风电机组整体结构可分为:叶片、轮毂、低速轴、高速轴、固定支架、齿轮箱、发电机、控制柜 、偏航 电机、塔架几部分 。

2.1 叶片模型建立图 l 风 电叶片风力发电机叶片专用翼型已成系列,我们可按其常规外形进行曲面造型。OpenGL中的 GLU提供了-个 NURBS接 口,该接 口是建立在 OpenGL求值程序函数的基础上,可进行曲面构造。NURBS能够比传统的网格建模方式更好地控制物体表面的曲线度 ,从而能够创建出更 逼真 、生动 的模型 。以下为/,向P阶, 向q阶的NURBS曲面的数学表达式:∑ P W N (H)N ( )s( ) 0----~ ∑∑ ( )P∑∑w,iN (u)Ⅳ ( )i0 ,0式中:JP 为曲面网格控制点; 为曲面控制点的权因子;、r ( ),Ⅳ ( )分别为P阶和q阶B样条基函数 。

对于风电叶片本仿真系统只需直观、形象的表达其外部结构,不需要严格体现其气动外形结构∩以根据风电叶片凹面弧度及弧长确定所画曲面半径,进而推算 出 NURBS曲面的控制点~控制点储存 在ctlpoints[m儿n][k]中,再通过调用gluNurbsSurface函数进行 NURBS曲面绘制。然后根据风电叶片的轮廓边界,将边界坐标存储在 edgePt[r][1]中,调用函数 gluBeginTrim进行定义修剪。修剪曲线为逆时针方 向,保 留修剪 曲线 内部部分。

2.2 轮毂模型建立风电轮毂部件可划分为两部分进行建模,前半部分为1/4椭球,后半部分为圆台形,轮毂模型如图2所示。椭球模型的建立可以从球形人手,实体球面用- 个二十面体进 行逼近 ,对二 十面体 中的三角形进行分割,再通过归-化将顶点移到球面上,通过重复这 - 分 割 过 程 得 到 - 个 实 体 球 面,再 进 行glScale(TYPE X,TYPE Y,TYPE z)缩 放 变 换 和glTranslate(TYPE X,TYPE Y,TYPE z)平移变换,使得球面 轴半径为,、z轴的2倍,向 轴正方向平移1/2X轴半径,然后添加-个剪裁面 :GLdouble eqn4 J -1.0,0.0,0.0,0.0f;glClipPlane(GL-CLIP-PLANE1,eqn);glEnable(GL-CLIP-PLANE1);可得出 1/4椭球 ,椭球 的剪 裁面 半径 为 :Y Y sin/3,其中 2y2z;由椭球剪裁 面半径可知,圆台的上底面半径为 Y.,为保证椭球到圆台的平滑过渡,选着适当的夹角 0,可推算出下底面半径 Y,Y sinO,其中日圆台高度。圆台的绘制可将其划分为许多四边形 网格 ,从下至上划分为 M 个环形面,每个环形面划分为 Ⅳ个四边形网格,每个网格上的坐标为 :, (i, )Y [(M - )/M] cos2ri/N ( , ) j/ML(i, )Y [(M - )/M]sin27ri/N其中 0≤i

图2 轮毂 图3 圆台绘制流程图2.3 其他各部件模型建立由于其他几个部件皆可用三角形 网格法和 以上圆台的建模方法进行构建,我们将在这里统-讲述。

三角网格法是 OpenGL绘制不规则图形常用的方 法之-。其绘图流程如下:首先确定物体表面各个顶点坐标,将坐标存储在 vertices[]数组中;然后,遵循环绕规则将物体表面划分为-个个环绕在物体表面的三角形,将其环绕顺序存储在 round[]数组中,最后调用函数进行绘制 :glEnableClientState(GL-VERTEX-ARRAY);glVertexPointer(3,GL-FLOAT,0,vertices);glDrawElement8(GL-TRIANGLES,N,GL-UNSIG NED-BYTE,round);Disableclientstate(GL-VERTEX-ARRAY);按照以上两种方法构建出风电机组其余各部件的三维模型。最后 ,通过 OpenGL中的 ghranslatef、gl-Rotatef、glscalef、glViewPort等函数实现模型的旋转、平移、缩放、视口变换、正交投影和透视投影等操作 ,进行各部件的合理拼装 ,得出完整的风电机组三维模型。由于 0penGL具有很强的渲染能力,我们可以对模型进行光照、材质、纹理、反走样、雾化等处理,使得模型如同在现实中-样,具有光洁度、纹理、层次感。图 4,图 5为完整风力发电机三维模型。

正在加载...请等待或刷新页面...
发表评论
验证码 验证码加载失败