基于vb的矩阵位移法的fortrans的可视化开发本科毕业论文(编辑修改稿)内容摘要:

序 ,用生成子程序求解非结点荷载作用下的单元固端力。 这样处理后, 不论杆件两端的约束情况如何,统一看作固定端,用位移法计算杆端支座反力,再将反力反向加在杆端,作为等效结点荷载。 非负载共同 结点 有四种形式,可以采用加载一 个程序来解决编码来区分 荷载 的类型的类型。 在根据荷载作用的结点、 位置 、 大小 、 方向作为参数来选择计算式, 从而求出各单元下的非结点荷载。 这样就可以得到结点荷载和 等效 的非 结点荷载叠加起来 的向量 为 {P}的总负荷。 建立求解刚度方程 各结点的位移是刚度方程中的未知量。 刚度方程是一个多元的线性方程组{ P} = [ K] {  },用易于实现程序化的高斯消元法、矩阵分解法进行开发运算。 这样就把复杂,重复的运算用计算机来解决,实现矩阵位 移法的程序化。 计算杆端力 泰山学院本科毕业设计 9 根据得到的结点位移,利用下列公式就可以求出单元坐标系中单元杆端位移产生的单元杆端力:        )()(e ee TKF )( 注意的是最终结果的确定是根据由单元的非结点荷载产生的单元固端力)e( )(FF 叠加确定的各单元的杆端力。 公式拓展为:        )()(e ee TKF )( +)e( )(FF 这一步利用矩阵乘法进行运算。 矩阵乘法程序化也很容易实现,这样就把复杂,重复的运算用计算机来解决,实现矩阵位移法的程序化。 例题:求解图 l 所示刚架内力的数据输入和结果输出。 输入数据: 3, 5, 3, l, l “单元数、结点数、特殊点数、结点荷载数目、非结点荷载数目” , , , , , , , , , “各结点坐标(按结点编号顺序输入)” l, 3, + 07, + 05, 4, 5, + 07, + 05, 2, 5, + 07, + 05“各单元定义,包括单元两端结点编号、的值(按单元编号顺序输入)” l, l, l, l, 2, l, l, l, 4, 3,3, 0 “约束信息( l 代表有约束, 0 代表无约束)” , “结点荷载信息”, , , “非结点荷载信息(正负号号代表方向)”结果输出:NE = 3 NJ = 5 NS = 3 NPJ = l NPF = l NODAL POINT COORDINATES NODE X Y l .0000 .0000 2 .0000 3 .0000 4 .0000 5 ELEMENT DATA NUMBER NODE I NODE J EA EI 泰山学院本科毕业设计 10 1 l 3 .3l20xxE + 07 .4l6000E + 05 2 4 5 .3l20xxE + 07 .4l6000E + 05 3 2 5 .3l20xxE + 07 .4l6000E + 05 SPECISL NODAL POINT DATA NUMBER XX YY ZZ 1 l l l 2 l l l 4 3 3 0 NODAL POINT LOAD DATA NODE PX PY PZ NO NODAL POINT LOAD DATA NUMBER CLASS RANGE LOAD l. l. DISPLACEMENTS OFNODES ELEMENT NUMBER V SATA l .000000E + 00 .000000E + 00 .000000E + 00 2 .000000E + 00 .000000E + 00 .000000E + 00 3 .94l2l2E 02 .l99973E 04 .288852E 02 4 .94l2l2E 02 .l99973E 04 .989866E 03 5 .935873E 02 .l99973E 04 20xx73E 02 ELEMENT THRUSE/ SHEAR/MOMENT ELEMENT NUMBER THRUSE SHEAR MOMENT 1 Nl = Ql = Ml = N2 = Q2 = M2 = .0000 泰山学院本科毕业设计 11 2 Nl = Ql = Ml = .0000 N2 = Q2 = M2 = 3 N1 = Q1 = M1 = N2 = Q2 = M2 = 矩阵位移法 Fortran 程序 矩阵位移法中的整体刚度方程为 {F}= K (1) 式中 K 为 nn方阵,是杆系的整体刚度矩阵。 n= ms ,s 为结点位移的自由度数。 m 为结点数。 拉伸 (压缩 )、扭转、 s=1。 弯曲 s=2。 弯扭组合 s=3。 平而析架 s=2。 平而刚架 s=3 等等。 {F}为结点载荷列阵。  为结点位移列阵。 单元的基本变形有三种 :拉 (压 )、扭转、弯曲。 一般的变形形式都可以认为是这三种基本变形的组合。 整体刚度矩阵可由单元刚度矩阵叠加而成。 因为拉 (压 )与扭转的单元刚度矩阵形式相同,这样就只有两种单元刚度矩阵。 整体刚度矩阵形成后,需要把单元刚度矩阵的各元素放到相 应位置,在操作时是十分繁琐的。 单元较多时更是让人难以忍受,很容易出错。 所以要进行以下处理。 对于析架、刚架等,各单元轴线方向各异。 在整体坐标中的单元刚度矩阵不能直接写出。 但在以各单元轴线为 x 轴的局部坐标中的单元刚度矩阵可由基本变形的单元刚度矩阵直接写出,然后得到整体坐标系下的单元刚度矩阵:        mTm KK  (2) 注:式中为整体坐标中的单元刚度矩阵。  为坐标变换矩阵。 T 为坐标变换矩阵的转置矩阵。  mK 为局部坐标中单元刚度矩阵。 根据  mK 叠加得到整体刚度矩阵 K .整体刚度方程式 (1)也可写成: 泰山学院本科毕业设计 12  K =F (1) 对于实际结构都可以知道有一定数量的结点位移。 假定有 p个位移已知,则要在式 (1)中将结点位移的项移到方程的右边并将对应的行由方程中去掉。 这时方程的阶数变为 r=     rrr FK  (3) 通过这方程解出未知位移 r ,再加上已知位移就得到了所有结点位移 。 再将其代入原方程中可解出未知结点力,再加上已知结点力即可得到全部结点力 F .单元结点力 mF =  mmK  ( 4) 式中 m 为单元结点位移,由  中相应元素组成。 对于桁架、刚架等应给出局部坐标中的结点力和结点位移     Mm FF  (5)     mm   (6) 由局部坐标中的 ,u 点力和结点位移就可以进行单元的强度和刚度计算。 将上述过程写成了图 1所示的程序,可以解决 :拉伸 (压缩 )、 扭转、弯曲、拉扭组合、拉弯组合、弯扭组合、拉扭弯组合、平面桁架、平面刚架等 9 个方面的问题。 把已知条件按设定的格式输入就能运算出问题的解。 为了便于数据的输入和修改,已知条件要以文件的形式给出。 泰山学院本科毕业设计 13 泰山学院本科毕业设计 14 3 基于 VB 的矩阵位移法 Fortran 的可视化开发 基于 VB 的矩阵位移法 Fortran 的混合编程及可视化开发 基于 VB 的 Fortran 混合编程的两种方法及对比 实现 VB 与 Fortran 的混合编程主要方法有两种:第一种, VB 直接调用可执行文件 ( 利用 Shell 函数直接调用 Fortran 编译出来的可执行文件 ) ;第二种,利 用 动态 链 接 库 DLL( Dynamic Link Library) 与 Fortran 混合编程 ( 1)采用 VB 直接调用 Fortran 可执行文件的方法 利用 VB 编写程序的界面部分 , 后将 Fortran 的应用程序编译成可执行的应用程序。 计算时 , 由 VB 应用程序启动由 Fortran 编译成的可执行文件。 在计算结束后 , 将计算数据以数字或者图形的形式显示在 VB 的界面上。 程序整个运 行过程 ,Fortran 应用程序编译成的可执行文件一直在后台运行 ,建立连接接口,通过磁盘文件对 VB 和 Fortran 之间的所有数据进行交换。 具体步骤是先在 Fortran Power Station 中编写 Fortran 的源程序代码 , 并编译成可执行文件。 然后在 VB 需要调用时 , 利用 Shell 函数调用就可以了。 Shell 函数语法如下 : Shell(pathname, [window style] ) pathname 是可执行文件的程序名 , 含有所必需的目录、文件夹、驱动器。 Windowstyle 表示在程序运行时 ,Fortran 窗口的样式。 例如 , 在 VB 中调用Fortran 编译成的可执行文件生成的 work 目录下的计算程序 , 语法如下 : Call shell ( D: worktest. exe, vbNormalfocus) 此方法适合于交互操作不多的情况。 Shell 函数是以异步方式执行的 , 这种执行方式使 VB Fortran 程序计算结束就继续执行后续的程序 , 使最终运算过程错乱,结果非常容易出现错误。 ( 2)调用 Fortran 动 态链接库 此方法是 将 Fortran 的源代码分成若干个子程序或函数 , 并编译生成 .DLL 文泰山学院本科毕业设计。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。