当前位置: 首页 » 风电资讯 » 风电百科 » 正文

BIMBase之python建模宝典:风力发电机叶片

放大字体  缩小字体 发布日期:2023-02-03   来源:风力发电   作者:风电网   浏览次数:165
核心提示:BIMBase自从2021年发布以来获得了众多关心国产BIM和业务数字化转型的圈内老法师的关注,除了是国内首款完全自主知识产权的的BIMBase系统,实现建筑信息模型(BIM)关键核心技术自主研发安全可控。同时开创了BIM X python的技术跨界混搭风,得以让建模可以通过快速编程实现。So!BIMBase团队为了在功能和场景上帮助大家了解BIMBase学习建模小技巧开设了技术专栏【BIMBase之python建模宝典】今日分享第九弹今天分享的建模案例是风力发电机叶片。风力发电机叶片是使风电发电机风轮旋

   

BIMbase自从2021年发布以来获得了众多关心国产BIM和业务数字化转型的圈内老法师的关注,除了是国内首款完全自主知识产权的的BIMbase系统,实现建筑信息模型(BIM)关键核心技术自主研发安全可控。
同时开创了BIM X python的技术跨界混搭风,得以让建模可以通过快速编程实现。
So!BIMbase团队为了在功能和场景上帮助大家了解BIMbase学习建模小技巧开设了技术专栏【BIMbase之python建模宝典】今日分享第九弹今天分享的建模案例是风力发电机叶片。
风力发电机叶片是使风电发电机风轮旋转并产生气动力的部件,是水平轴风电发电机的核心部件之一。
建模思路BIMbase风力发电机叶片风力发电机叶片的外型是由一系列的标准翼型点进行坐标变换,再按照截面位置排布得到外形曲线,最后通过叶根向叶尖的放样,完成叶片造型。
由于风力发电机叶片截面线条数据点较多,故可采用numpy.loadtxt()获取和处理数据。
图文教程BIMbase风力发电机叶片① 获取翼型点数据导入numpy模块,用loadtxt函数装填txt文件路径与参数usecols、comment,其中参数usecols表示仅导入0,1,2列,参数comment表示行的开头为“#”就会跳该行;新建空列表points、secs_points、secs、secs_height_temp、sec_height备用,定义num备用。
def replace(self):data_txt = np.loadtxt('D:/风力发电机叶片.txt', usecols=(0, 1, 2), comments='#')points = []secs_points = []secs = []secs_height_temp = []secs_height = []num = 35② 初处理翼型点数据data_txt是一个列表,包含了多个翼型点坐标。
故对data_txt中元素进行遍历,将翼型点的xyz轴坐标通过append属性分装到列表point_x、point_y、point_z中;point_x和point_y通过Vec2函数转为二维坐标点,利用append属性,将xy二维坐标填入列表points中。
point_z直接通过append追加入列表secs_height_temp。
for i in data_txt: point_x = i[0]point_y = i[1]point_z = i[2]points.append(Vec2(point_x, point_y))secs_height_temp.append(point_z)③ 再处理翼型点数据通过len函数获取points长度,使用range函数创建列表,步长为num;对上述列表进行遍历,把points[i:i+num]通过append属性装填入列表secs_points中,此时points[i:i+num]即为一个叶片截面上的翼型点的二维坐标,把secs_height_temp[i]通过append属性添加入列表secs_height中,此时secs_height_temp[i]即为对应叶片截面上的z轴坐标。
for i in range(0, len(points), num):secs_points.append(points[i:i+num])secs_height.append(secs_height_temp[i]④ 叶片建模用int对len(point)与num的除数向下取整,使用range函数进行遍历;在遍历过程中,将secs_point的点转化成Line装填入Section函数生成截面,同时将截面以translate方法进行排布,形成叶根、叶中、叶尖, 通过Loft函数装填截面,从叶根向叶尖进行放样,即可得到叶片blade,设置blade的属性smooth,使模型在线框模式下更加光滑、平整。
这样,一个风力发电叶片就完成了。
for i in range(int(len(points)/num)):secs.append(trans(0, 0, secs_height[i])*Section(Line(secs_points[i])))blade = Loft(secs)blade.smooth = Trueself['风力发电机叶片'] = blade在上述建模过程中,我们基于对numpy的应用,导入txt格式的数据文件完成了建模工作,希望这会对各位朋友有所启发。
以上就是风力发电机叶片的BIMbase-python的建模啦,敬请期待BIMbase-python更多建模案例的分享~

 
关键词: 风电网 风力发电
 
[ 风电资讯搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

免责声明:
本网站部分内容来源于合作媒体、企业机构、网友提供和互联网的公开资料等,仅供参考。本网站对站内所有资讯的内容、观点保持中立,不对内容的准确性、可靠性或完整性提供任何明示或暗示的保证。如果有侵权等问题,请及时联系我们,我们将在收到通知后第一时间妥善处理该部分内容。
扫扫二维码用手机关注本条新闻报道也可关注本站官方微信账号:"风电之家",每日获得互联网最前沿资讯,热点产品深度分析!
 
 
0条 [查看全部]  相关评论

 
推荐图文
推荐风电资讯
点击排行