ArcEngine下架空线之悬链线的模拟
最近在做电力方面的东西,需要对架空线进行三维建模。经过前端时间的搜索与实践,最终实现了AE下悬链线的模拟。首先说明几个问题:
(1)实地架设杆塔时,两个相邻杆塔的高程一般是不相同的,这就需要用到不等高悬点架空线的悬链线方程,在线路三维建模时要进行点位的判断
(2)在计算悬链线高度时要进行三维空间XYZ到二维空间ZU的转换,这里的u坐标轴是杆塔连线在XY平面的投影,zu所在三维空间Z=低悬点的高程值。
(3)采样精度设置为1。采样完成后将二维点再转换成三维点即可。
这里用AE写了一个类,用于悬链线的生成,公式主要参考《架空输电线路设计- 孟遂民》这本书,没有考虑复杂的温度、风力、覆冰等条件。代码如下:
/// <summary>/// 根据起点和终点生成悬链线/// 不等高悬点架空线方程/// 悬链线长度方程/// </summary>class PowerLineCreator{public IPoint FromPoint //起点{ get; set;}public IPoint ToPoint //终点{ get; set; }public double HorizontalStress //弧垂最低点应力 (已知条件、水平应力) σ0{get;set;}public int SampleAccuracy //插值精度{get;set;}public double r //比载:单位长度架空线上所受的荷载折算到单位载面积上的数值{get;set;}public double PlaneLength//悬链线档距{get{double planelength_ = Math.Sqrt(Math.Pow(FromPoint.X - ToPoint.X,2) + Math.Pow(FromPoint.Y - ToPoint.Y,2));return planelength_;}}public double L //不等高悬点架空线长度{get{return Math.Sqrt(Math.Pow(L_h0,2) + Math.Pow(H,2));}}public double H // 悬点高程差{get {return Math.Abs(FromPoint.Z - ToPoint.Z); } }public double L_h0 //等高悬点架空线的档内悬链线长度{get{double L = 2 * HorizontalStress / r * Math.Sinh(r * PlaneLength / (2 * HorizontalStress));return L;}}public double a //低悬点至弧垂最低点的水平距离 {get{return PlaneLength / 2 - HorizontalStress / r * SpecialFunction.asinh(H / L_h0);}}public double b //弧垂最低点至高悬点的水平距离{get{return L_h0 - a;}}public PowerLineCreator (){}/// <summary>/// 悬链线方程/// </summary>/// <param name="u">二维空间下u坐标</param>/// <returns>悬链线高度</returns>public double Get_Z (double u) {double Z = H / L_h0 * (2 * HorizontalStress / r * Math.Sinh(r * u / 2 / HorizontalStress) * Math.Cosh(r * (L_h0 - u) / 2 / HorizontalStress)) -Math.Sqrt(1 + Math.Pow(H / L_h0,2)) * 2 * HorizontalStress / r * Math.Sinh(r * u / 2 / HorizontalStress) * Math.Sinh(r * (L_h0 - u) / 2 / HorizontalStress);return Z;}/// <summary>/// 根据起始点生成悬链线插值点/// </summary>/// <returns></returns>public IPointCollection CreateLinePoints (){IPointCollection ptCollection = new PolylineClass();ILine line_ = new LineClass();line_.PutCoords(FromPoint,ToPoint);double pAngle = line_.Angle;//采样悬链线点for(int i = 0;i < PlaneLength-1;i+=SampleAccuracy){//二、三维空间坐标的转换IPoint point_ = new PointClass();(point_ as IZAware).ZAware = true;point_.X = FromPoint.X + i * Math.Cos(pAngle);point_.Y = FromPoint.Y + i * Math.Sin(pAngle);point_.Z = FromPoint.Z + Get_Z(i);ptCollection.AddPoint(point_);}ptCollection.AddPoint(ToPoint);return ptCollection;}}
最终实现效果图:
转载请注明出处:http://blog.csdn.net/liushuo_whu/article/details/21323807谢谢!
ArcEngine下架空线之悬链线的模拟相关推荐
- 在ArcEngine下实现图层属性过滤的两种方法
转自chanyinhelv原文 在ArcEngine下实现图层属性过滤的两种方法 有时候,我们要对图层上的地物进行有选择性的显示,以此来满足实际的功能要求. 按下面介绍的方法可轻松实现图层属性过滤显示 ...
- UA MATH575B 数值分析下 统计物理的随机模拟方法5
UA MATH575B 数值分析下 统计物理的随机模拟方法5 Ising Model Gibbs Sampling Glauber Dynamics 这一讲介绍Ising Model,它是MCMC与G ...
- UA MATH575B 数值分析下 统计物理的随机模拟方法4
UA MATH575B 数值分析下 统计物理的随机模拟方法4 这一讲介绍MCMC方法,这个方法最早出现在Metropolis在1953年发在J Chem Phys上的Equation of state ...
- 基于AcrGIS平台实现三维场景下的积水效果动态模拟
文章目录 1.前言 2.环境准备 3.开发过程 3.1 软件安装 3.2 共享(发布)场景服务 3.3 积水区三维可视化 3.4 动态模拟 4. 完整代码 5. 效果图 6. 在线演示 1.前言 现有 ...
- 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制
交互系统的构建之(二)Linux下鼠标和键盘的模拟控制 zouxy09@qq.com http://blog.csdn.net/zouxy09 交互系统的构建之(一)http://blog.csdn. ...
- 计算机图形学流体仿真mac网格,正交网格下不可压缩流体的图形学模拟
摘要: 本文主要讨论了正交网格下不可压缩流体的图形学模拟.基于物理的动画模拟出像水,烟和火这样的流体现象在视觉效果上越来越重要,而且在实时游戏中也开始产生影响. 本研究主要内容包括:第一章阐述了用于描 ...
- 说说android下TV版本UC浏览器模拟鼠标的实现
说说android下TV版本UC浏览器模拟鼠标的实现 无意中下载了一个TV版本的UC浏览器安装到机顶盒上,顺便体验了一把.感觉吗还行,原先以为UC浏览器会针对Android下TV的遥控器操作 ...
- 地理模块化施工的优点_河南省郑州市2018届高三下学期第三次模拟考试文综地理试题...
河南省郑州市2018届高三下学期第三次模拟考试 文综地理试题 风滚草是植物中的"流浪汉",当干旱来临时,其根部从土层中收起,植株形成团状,随风滚动(图1).在风滚草找到合适环境后, ...
- Linux 网络tc,linux下使用tc和netem模拟复杂网络环境
netem(Network Emulator)可以用来对网卡发出的数据包进行增加延迟.丢包.重复.乱序等处理,来模拟复杂网络环境.netem的设置依赖tc命令,tc是Linux内核提供的流量控制工具. ...
最新文章
- PHP环境配置文件php.ini详解注释 --转贴
- 【视频】vue组件的全局注册
- filter过滤器实现验证跳转_返回验证结果
- c语言solaris中图形库,成功弄出simics下的CDE登录界面,与大家分享
- 我们为什么需要 SpringBoot?
- fullcalendar小结
- 计算机网络第五次笔记
- PHP curl请求https
- 1、使用Keras构建图像分类器
- 容器技术Docker K8s 27 容器服务ACK基础与进阶-监控管理
- 2019 计蒜之道 初赛 第三场 - 淘宝商品价格大PK
- ECSHOP整合第三方登录,QQ登录、新浪微博登录、支付宝登
- MPSK 通信系统的 Monte Carlo 仿真
- SIM7600CE-CNSE 4G模块 树莓派/Windows连网指南
- 在ue4的CBL中查询(函数、变量)的几点提示
- LevalSet水平集分割算法 matlab程序源码
- Oracle - 【连接1】广义笛卡儿积+一般连接+自连接
- 【数据库】MySQL的sql语句详解
- android百度语音导航开放
- halcon算子——highpass_image--从图像中提取高频分量((过滤--图像边缘处理))
热门文章
- 【OWA】02加入域控:将owa服务器加入域控(把计算机加入到域中)
- HijackThis日志细解--清净网络(复杂详尽)
- JFinal入门教程
- 微信小程序 | 小程序系统API调用
- 【小月电子】安路国产FPGA开发板系统学习教程-LESSON7串口通信
- Java高尔夫_java基础视频教程 高尔夫球基础视频教程
- PHP图片转base64
- java读取绝对路径文件_Java 程序中使用相对和绝对路径读取文件
- android console app,iConsole+ app
- 彼得·蒂尔:别浪费你的无知,去做那些没人做过的事