包络线生成方法和装置与流程

文档序号:28279803发布日期:2021-12-31 21:22阅读:223来源:国知局
包络线生成方法和装置与流程

1.本发明实施例涉及光伏电站设计技术领域,尤其涉及一种包络线生成方法和装置。


背景技术:

2.在光伏电站的设计阶段,需要对光伏方阵的包络线进行确定以确定光伏方阵的占地区域。
3.现有技术中,常用凹包算法进行包络线的生成,其中凹包算法所生成的包络线的边界精度均与扫描距离相关。
4.然而,目前扫描距离通常需要人工手动调节,一方面造成人力的浪费;另一方面在方阵中散点距离较远时,包络线的边界精度较差。


技术实现要素:

5.本发明提供一种包络线生成方法和装置,以实现自动确定扫描距离,减少人力浪费,并且在散点距离较远时提升包络线的边界精度。
6.第一方面,本发明实施例提供了一种包络线生成方法,包括:
7.将输入数据的散点划分成多个散点块,其中,每个散点块包括可形成面的多个散点;
8.对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线;
9.将各最终子包络线合并为一个整体包络线,整体包络线为一个完整的封闭多段线,整体包络线包裹输入数据的所有散点。
10.可选的,将输入数据的散点分成多个散点块,包括:
11.根据输入数据中的各散点确定聚类距离;
12.根据聚类距离将输入数据的散点划分成多个散点块。
13.可选的,根据输入数据中的各散点确定聚类距离,包括:
14.获取输入数据中距离每个散点距离最近的散点,并将每个散点与距离最近的散点之间的距离均值确定为聚类距离。
15.可选的,根据聚类距离将输入数据的散点划分成多个散点块,包括:
16.基于密度聚类算法,按照聚类距离将输入数据的散点划分成多个散点块。
17.可选的,对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线,包括:
18.对于每一散点块,将散点块中距离最近的两个散点之间的距离作为凹包算法的初始扫描距离,并将初始扫描距离作为扫描距离;
19.基于凹包算法,根据扫描距离生成散点块对应的中间子包络线;
20.根据中间子包络线是否构成完整封闭多段线并包裹住对应散点块中的所有散点
确定中间子包络线是否作为最终子包络线,并在中间子包络线作为最终子包络线时将最终子包络线输出,以及在中间子包络线不作为最终子包络线时对扫描距离进行调整,并返回基于凹包算法,根据扫描距离生成散点块对应的中间子包络线的步骤。
21.可选的,根据子包络线是否构成完整封闭多段线并包裹住对应散点块中的所有散点确定中间子包络线是否作为最终子包络线,并在中间子包络线作为最终子包络线时将最终子包络线输出,以及在中间子包络线不作为最终子包络线时对扫描距离进行调整,并返回基于凹包算法,根据扫描距离生成散点块对应的中间子包络线的步骤,包括:
22.校验中间子包络线是否构成完整封闭多段线并包裹住散点块中的所有散点,若是,将中间子包络线作为最终子包络线并输出;
23.若否,将中间子包络线不作为最终子包络线,并根据在中间子包络线对应的扫描距离增加扫描步长更新扫描距离,并返回基于凹包算法,根据扫描距离生成散点块对应的中间子包络线的步骤。
24.可选的,将各最终子包络线合并为一个整体包络线,整体包络线为一个完整的封闭多段线,整体包络线包裹输入数据的所有散点,包括:
25.判断散点块的总个数是否大于1;
26.若是,根据各散点块两两之间的距离确定第一散点块对应的第一子包络线的第一包络点集合和第二散点块对应的第二子包络线的第二包络点集合,第一散点块和第二散点块为各散点块中距离最近的两个散点块,第一包络点集合和第二包络点集合中包络点均以设定顺序排列,其中设定顺序为顺时针或逆时针;
27.根据第一包络点集合的第一包络点和第二包络点集合的第二包络点重新确定设定包络点集合的起点元素,并以起点元素为设定包络点集合的起点以设定顺序重新排列设定包络点集合中的包络点;其中,第一包络点和第二包络点为第一包络点集合和第二包络点集合中距离最近的包络点;
28.将非设定包络点集合和重新排列后的设定第二包络点集合重组为单个包络点集合,并根据单个包络点集合将第一子包络线和第二子包络线合并为一个重组包络线,并将第一散点块和第二散点块作为一个散点块;其中,第一包络点集合和第二包络点集合中的任一者为设定包络点集合,另一者为非设定包络点集合;
29.将散点块的个数减1,并返回执行判断散点块的总个数是否大于1的步骤;
30.若否,输出重组包络线。
31.可选的,将非设定包络点集合和重新排列后的设定第二包络点集合重组为单个包络点集合,并根据单个包络点集合将第一子包络线和第二子包络线合并为一个重组包络线,并将第一散点块和第二散点块作为一个散点块,包括:
32.将重新排列后的设定包络点集合中的包络点插入非设定包络点集合中设定包络点的位置处,得到单个包络点集合,其中设定包络点集合为第一包络点集合时,非设定包络点集合的设定包络点的位置为第二包络点的位置,设定包络点集合为第二包络点集合时,非设定包络点集合的设定包络点的位置为第一包络点的位置;
33.根据单个包络点集合将第一子包络线和第二子包络线合并为一个重组包络线,并将第一散点块和第二散点块作为一个散点块。
34.可选的,散点为光伏组串的中心坐标点。
35.第二方面,本发明实施例还提供了一种包络线生成装置,其特征在于,包括:
36.划分模块,用于将输入数据的散点划分成多个散点块,其中,每个散点块包括可形成面的多个散点;
37.子包络线生成模块,用于对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线;
38.合并模块,用于将各最终子包络线合并为一个整体包络线,整体包络线为一个完整的封闭多段线,整体包络线包裹输入数据的所有散点。
39.本实施例提供的包络线生成方法和装置,通过将输入数据的散点划分成多个散点块;对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线;即通过根据散点块中距离最近的两个散点之间的距离自动确定凹包算法的扫描距离,一方面可以避免人力的浪费,另一方面可以使得确定的扫描距离不会过大,进而保证根据扫描距离得到的散点块对应的最终子包络线的边界精度较高。确定各散点块的最终子包络线后,将各最终子包络线合并为一个整体包络线,因每个散点块对应的最终子包络线的边界精度较高,则将各最终子包络线合并而成的整体包络线的精度也可以较高,进而提高包裹输入数据所有散点的整体包络线的精度。
附图说明
40.图1为本发明实施例提供的一种包络线生成方法的流程图;
41.图2是本发明实施例提供的另一种包络线生成方法的流程图;
42.图3是本发明实施例提供的另一种包络线生成方法的流程图;
43.图4是本发明实施例提供非另一种包络线生成方法的流程图;
44.图5是本发明实施例提供的一种包络线生成装置的结构示意图。
具体实施方式
45.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
46.图1为本发明实施例提供的一种包络线生成方法的流程图,本实施例可适用于光伏电站设计阶段对光伏方阵进行包络线确定的情况,该方法可以由包络线生成装置来执行,参考图1,该包络线生成方法包括:
47.步骤110、将输入数据的散点划分成多个散点块。
48.其中,每个散点块包括可形成面的多个散点。
49.可选的,输入数据的散点为光伏组串的中心坐标点,其中光伏组串可以包括至少一个光伏组件。其中,光伏电站可以包括多个光伏组串,每个光伏组串的中心坐标点对应输入数据的一个散点。在光伏电站设计阶段,需要确定光伏电站的多个光伏组串形成的方阵的包络线。本实施例中,将输入数据的散点划分成多个散点块,每个散点块中包括多个散点,且每个散点块中的散点需要满足可以形成面。具体的,当散点完全在一条直线上,或者单个散点无法满足形成面的要求,因此,每个散点块中的散点需要不是一个,且每个散点块
中的散点不能完全在一条直线上。具体的,后续形成的包络线的包络点均为散点块中的散点,或者是以散点块的每个散点外扩形成的外扩散点块中的散点,因此散点块中的散点不满足可以形成面的要求时,无法得到包络散点块的封闭的子包络线。而每个散点块中的散点满足可以形成面的要求,可以使得后续步骤中,进行子包络线的确定时,子包络线可以形成封闭的包络结构,使得子包络线能够包络住对应的散点块。每个散点块包括形成可以形成面的多个散点,则由各散点块中散点组成的输入数据的散点可形成面。可选的,将输入数据的散点划分成多个散点块时,可以采用现有聚类算法对输入数据的散点进行聚类分块,其中,采用的聚类算法可以但不限与密度聚类算法、神经网络算法、支持向量机算法。
50.步骤120、对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线;
51.其中,凹包算法的扫描距离可以作为根据包络线上一个确定的包络点找到下一个包络点的依据。可选的,包络线的初始包络点(初始包络点可以人为定义)确定后,以初始包络点为原点,扫描距离为半径进行扫描,可以确定出散点块中与初始包络点距离在扫描距离之内的散点。根据现有不同的凹包算法,可以从与初始包络点距离在扫描距离之内的散点中选取一个散点中下一包络点。示例性的,可以定义扫描的矢量方向,并将与初始包络点距离在扫描距离之内的散点中第一个扫描到的散点作为下一包络点。
52.具体的,在本步骤中,基于凹包算法得到每个散点块对应的最终子包络线。其中,最终子包络线的形状与输入到凹包算法的扫描距离相关。与现有技术中人工调节扫描距离不同,本实施例中,根据散点块中距离最近的两个散点之间的距离自动确定凹包算法的扫描距离,一方面可以避免人力的浪费,另一方面可以使得确定的扫描距离不会过大,进而保证根据扫描距离得到的散点块对应的最终子包络线的边界精度较高。
53.步骤130、将各最终子包络线合并为一个整体包络线,整体包络线为一个完整的封闭多段线,整体包络线包裹输入数据的所有散点。
54.具体的,在步骤120得到每个散点块对应的最终子包络线后,本步骤中,将各个散点块对应的最终子包络线合并为一个整体包络线,该整体包络线包裹住输入数据的所有散点。因步骤120中,确定散点块对应的最终子包络线时,凹包算法的扫描距离根据散点块中离最近的两个散点之间的距离确定,使得每个散点块对应的最终子包络线的边界精度较高,因此本步骤将各最终子包络线合并而成的整体包络线的精度也可以较高,即保证包裹输入数据所有散点的整体包络线的精度较高。并且,相对于现有技术直接人为调节扫描距离形成输入数据的所有散点对应的整体包络线,本实施例的包络线生成方法,首先将输入数据的散点划分为多个散点块,散点块的散点相对于输入数据中所有散点形成的完整散点阵来说,不容易包括距离较远的散点,相应的,散点块对应的最终子包络线的形成的边界精度也更高,进一步保证各最终子包络线合并而成的整体包络线的精度也可以较高。
55.本实施例提供的包络线生成方法,通过将输入数据的散点划分成多个散点块;对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线;即通过根据散点块中距离最近的两个散点之间的距离自动确定凹包算法的扫描距离,一方面可以避免人力的浪费,另一方面可以使得确定的扫描距离不会过大,进而保证根据扫描距离得到的散点块对应的最终子包络线的边界精度较高。确定各散点块的最终子包络线后,将各最终子包络线合并为一个整体包
络线,因每个散点块对应的最终子包络线的边界精度较高,则将各最终子包络线合并而成的整体包络线的精度也可以较高,进而提高包裹输入数据所有散点的整体包络线的精度。
56.图2是本发明实施例提供的另一种包络线生成方法的流程图,参考图2,可选的,该包络线生成方法包括:
57.步骤210、根据输入数据中的各散点确定聚类距离;
58.具体的,本步骤中,可以根据输入数据中各散点之间的距离来确定聚类距离。可选的,步骤210包括:获取输入数据中距离每个散点距离最近的散点,并将每个散点与距离最近的散点之间的距离均值确定为聚类距离,保证确定的聚类距离较小。
59.步骤220、根据聚类距离将输入数据的散点划分成多个散点块。
60.具体的,聚类距离确定后,可以根据聚类距离对输入数据的散点聚类划分成多个散点块。可选的,该步骤220包括:基于密度聚类算法,按照聚类距离将输入数据的散点划分成多个散点块。基于密度聚类算法,按照聚类距离将输入数据的散点划分成多个散点后,每个散点块中的各散点与距离最近散点的距离小于或等于聚类距离。因此采用密度聚类算法,按照聚类距离将输入数据的散点划分成多个散点块的分块方式,可以使得每个散点块中各散点与距离最近的散点的距离都较小,可以排除一些分散较远的点影响凹包算法的扫描距离的确定精度,进而保证后续步骤中散点块的最终子包络线的精度。
61.步骤230、对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线;该步骤与上述实施例中步骤120过程相同,在此不再赘述。
62.步骤240、将各最终子包络线合并为一个整体包络线,整体包络线为一个完整的封闭多段线,整体包络线包裹输入数据的所有散点;该步骤与上述实施例中步骤130过程相同,在此不再赘述。
63.本实施例的包络线生成方法,通过获取输入数据中距离每个散点距离最近的散点,并将每个散点与距离最近的散点之间的距离均值确定为聚类距离,基于密度聚类算法,按照聚类距离将输入数据的散点划分成多个散点,使得每个散点块中的各散点与距离最近散点的距离小于或等于聚类距离,进而可以使得每个散点块中各散点与距离最近的散点的距离都较小,可以排除一些分散较远的点影响凹包算法的扫描距离的确定精度,进而保证后续步骤中散点块的最终子包络线的精度。
64.图3是本发明实施例提供的另一种包络线生成方法的流程图,参考图3,可选的,该包络线生成方法包括:
65.步骤310、将输入数据的散点划分成多个散点块;该步骤与上述实施例中步骤110过程相同,在此不再赘述。
66.步骤320、对于每一散点块,将散点块中距离最近的两个散点之间的距离作为凹包算法的初始扫描距离,并将初始扫描距离作为扫描距离;
67.具体的,将散点块中距离最近的两个散点之间的距离作为凹包算法的初始扫描距离,并将初始扫描距离作为扫描距离,一方面可以使得扫描距离不会过小,即不会小于散点块中最近的两个散点之间的距离,进而减少因扫描距离过短造成的散点块内一些散点不能被对应的最终子包络线所包裹或者无法形成完整的包络线的情况;另一方面可以使得确定的扫描距离不会过大,进而减少因扫描距离确定的过大而影响最终子包络线边界精度的情
况。
68.步骤330、基于凹包算法,根据扫描距离生成散点块对应的中间子包络线;
69.具体的,将扫描距离作为凹包算法的输入参数,扫描距离确定后,根据凹包算法可以得到散点块在该扫描距离下的中间子包络线。
70.步骤340、根据中间子包络线是否构成完整封闭多段线并包裹住对应散点块中的所有散点确定中间子包络线是否作为最终子包络线,并在中间子包络线作为最终子包络线时将最终子包络线输出,以及在中间子包络线不作为最终子包络线时对扫描距离进行调整,并返回基于凹包算法,根据扫描距离生成散点块对应的中间子包络线的步骤。
71.具体的,中间子包络线有可能不能构成完整封闭多段线,或者有可能没有包裹住散点块中的所有散点,本步骤中根据中间子包络线是否构成完整封闭多段线并包裹住对应散点块中的所有散点确定中间子包络线是否作为最终子包络线,在中间子包络线不满足构成完整封闭多段线和包裹住散点块中的所有散点的至少一者时,将中间子包络线不作为最终子包络线并对扫描距离进行调整,然后返回步骤330继续基于调整后的扫描距离生成对应的中间子包络线,直至中间子包络线满足可以构成完整封闭多段线,且包裹住对应散点块中是所有散点,将该中间子包络线确定为该散点块对应的最终子包络线并输出。在中间子包络线同时满足构成完整封闭多段线和包裹住散点块中的所有散点时,直接将中间子包络线确定为散点块的最终子包络线并输出。
72.可选的,步骤340包括:
73.步骤341、校验中间子包络线是否构成完整封闭多段线并包裹住散点块中的所有散点;
74.若是,则执行步骤342、将中间子包络线作为最终子包络线并输出;
75.若否,则执行步骤343、将中间子包络线不作为最终子包络线,并根据在中间子包络线对应的扫描距离增加扫描步长更新扫描距离,并返回步骤330。
76.具体的,在中间子包络线不满足构成完成封闭多段线以及包裹住散点块中所有散点时,说明扫描距离确定的过小,因此需要增加扫描距离。本实施例中在步骤330得到的中间子包络线对应的扫描距离的基础上增加扫描步长进而增大扫描距离,实现扫描距离的自适应调节,并且通过对扫描步长的设置,保证每次增加扫描距离不会过大,进而保证生成的最终子包络线的边界精度较高。
77.步骤350、将各最终子包络线合并为一个整体包络线,整体包络线为一个完整的封闭多段线,整体包络线包裹输入数据的所有散点;该步骤与上述实施例中步骤130过程相同,在此不再赘述。
78.图4是本发明实施例提供的另一种包络线生成方法的流程图,参考图4,可选的,该包络线生成方法包括:
79.步骤410、将输入数据的散点划分成多个散点块;该步骤与上述实施例中步骤110过程相同,在此不再赘述;
80.步骤420、对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线;该步骤与上述实施例中步骤120过程相同,在此不再赘述;
81.步骤430、判断散点块的总个数是否大于1。
82.若是,执行步骤440

步骤470。
83.具体的,步骤440

步骤470为将两个散点块对应的最终子包络线合并为一个子包络线,以及将两个散点块合并为一个散点块的过程,因此,需保证散点块的个数大于1。
84.步骤440、根据各散点块两两之间的距离确定第一散点块对应的第一子包络线的第一包络点集合和第二散点块对应的第二子包络线的第二包络点集合;
85.其中,第一散点块和第二散点块为各散点块中距离最近的两个散点块,第一包络点集合和第二包络点集合中包络点均以设定顺序排列,其中设定顺序为顺时针或逆时针。
86.其中,第一子包络线为第一散点块对应的最终子包络线,第二子包络线为第二散点块对应的最终子包络线。其中,第一子包络线为包裹住第一散点块中所有散点的封闭多段线,封闭多段线中的每一段对应两个包络点,因此第一子包络线上包括多个包络点,第一子包络线上多个包络点形成第一包络点集合。同理,第二子包络线上包括多个包络点,第二子包络线上多个包络点形成第二包络点集合。其中,第一包络点集合中的各包络点以设定顺序排列,第二包络点集合中的各包络点以设定顺序排列,其中设定顺序为顺时针或逆时针。具体的,因第一子包络线和第二子包络线都为封闭多段线,因此第一子包络线上的各包络点必然可以以顺时针或逆时针在第一包络点集合中排列,同理第二子包络线上的各包络点必然可以以顺时针或逆时针在第二包络点集合中排列。第一包络点集合中各包络点以设定顺序排列时的起点,本步骤不做限定,即第一包络点集合中的第一个元素本步骤不做限定;同理第二包络点集合中的第一个元素本步骤不做限定。示例性的,在步骤440后确定的第一包络点集合为a=[a1,a2,
……
an,a1],步骤440后确定的第二包络点集合b=[b1,b2,
……
bm,b1]。
[0087]
步骤450、根据第一包络点集合的第一包络点和第二包络点集合的第二包络点重新确定设定包络点集合的起点元素,并以起点元素为设定包络点集合的起点以设定顺序重新排列设定包络点集合中的包络点;其中,第一包络点和第二包络点为第一包络点集合和第二包络点集合中距离最近的包络点。
[0088]
其中,第一包络点集合和第二包络点集合中的任一者为设定包络点集合。本步骤中首先需要确定第一包络点集合和第二包络点集合中距离最近的两个包络点,即第一包络点和第二包络点,示例性的,第一包络点为第一包络点集合a=[a1,a2,
……
an,a1]中的ak,第二包络点为第二包络点集合b=[b1,b2,,
……
bm,b1]中的bp。示例性的,第二包络点集合为设定包络点集合时,将第二包络点bp重新确定为第二包络点集合的起点元素,则重新排序后的第二包络点集合为b=[bp,

b1,b2

bp]。
[0089]
步骤460、将非设定包络点集合和重新排列后的设定第二包络点集合重组为单个包络点集合,并根据单个包络点集合将第一子包络线和第二子包络线合并为一个重组包络线,并将第一散点块和第二散点块作为一个散点块。
[0090]
其中,第一包络点集合和第二包络点集合中的任一者为设定包络点集合,另一者为非设定包络点集合。
[0091]
可选的,该步骤460包括:
[0092]
(1)将重新排列后的设定包络点集合中的包络点插入非设定包络点集合中设定包络点的位置处,得到单个包络点集合,其中设定包络点集合为第一包络点集合时,非设定包络点集合的设定包络点的位置为第二包络点的位置,设定包络点集合为第二包络点集合
时,非设定包络点集合的设定包络点的位置为第一包络点的位置。
[0093]
仍以第二包络点集合为设定包络点集合为例,则第一包络点集合为非设定包络点集合。重新排列后的设定包络点集合为b=[bp,

b1,b2

bp],将其插入到非设定包络点集合a=[a1,a2,

ak

an,a1]中ak位置处,得到的单个包络点集合为c=[a1,a2

ak bp,

b1,b2

bp,ak,

an,a1]。
[0094]
(2)根据单个包络点集合将第一子包络线和第二子包络线合并为一个重组包络线,并将第一散点块和第二散点块作为一个散点块。
[0095]
得到单个包络点集合后,可以根据该单个包络点集合得到将第一子包络线和第二子包络线合并后的一个重组包络线,相应的第一散点块和第二散点块合并为一个散点块。
[0096]
步骤470、将散点块的个数减1,并返回执行步骤430;
[0097]
若否,执行步骤480:
[0098]
步骤480、输出重组包络线。
[0099]
本发明实施例还提供了一种包络线生成装置,该包络线生成装置用于执行本发明上述任意实施例的包络线生成方法,图5是本发明实施例提供的一种包络线生成装置的结构示意图,参考图5,可选的,该包络线生成装置包括:
[0100]
划分模块510,用于将输入数据的散点划分成多个散点块,其中,每个散点块包括可形成面的多个散点;
[0101]
子包络线生成模块520,用于对于每一散点块,根据散点块中的距离最近的两个散点之间的距离确定凹包算法的扫描距离,并根据扫描距离生成散点块的最终子包络线;
[0102]
合并模块530,用于将各最终子包络线合并为一个整体包络线,整体包络线为一个完整的封闭多段线,整体包络线包裹输入数据的所有散点。
[0103]
本实施例的包络线生成装置,用以执行本发明上述任意实施例的包络线生成方法,相应的,具备本发明上述任意实施例的包络线生成方法的有益效果。
[0104]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1