1. 项目缘起与整体设计思路
光伏电站的运维里,有一件事看起来不起眼,但长期算下来能吃掉相当一部分发电收益,那就是组件表面的积灰。我最早接触这个方向,是因为一个做分布式电站运维的朋友吐槽:他们那片屋顶电站,夏天一场雨过后看着挺干净,可一到干燥季节,组件上那层灰肉眼可见,发电量曲线跟着往下掉。人工清洗吧,屋顶面积大、阵列密,请人上去擦既慢又危险;不洗吧,一个月下来发电损失能到百分之几。这个痛点,就是“光伏组件智能清洁机器人”这类项目存在的根本理由。
这个项目标题拆开来看,其实包含了两块硬骨头:一是机器人本体设计,二是路径规划。很多人一上来就盯着“机器人”三个字,想着怎么把机械结构做出来,但真正决定这套系统好不好用的,往往是后半截——路径规划。因为光伏阵列不是一块板,而是一大片规则排列的组件矩阵,机器人怎么走、走多快、怎么覆盖全、怎么不掉队、怎么省电,这些才是运维现场最关心的问题。我见过一些demo,机械臂擦得挺干净,但一走起来就漏擦、重复擦、卡在阵列边缘,实际根本没法用。
所以这个项目的整体设计思路,我倾向于把它定位成一个面向光伏阵列的自主移动清洁系统。它的核心目标不是“做一个会擦板的机器人”,而是“让一片光伏阵列在尽量少的人工干预下,保持稳定的清洁度”。围绕这个目标,设计上要同时考虑几个约束:组件表面不能划伤、机器人要能适应阵列的平整度和缝隙、续航要撑得住一片区域的作业、路径要覆盖完整且不重复太多。
从方案选型上看,常见的做法有几种路线。一种是轨道式,在阵列上铺导轨,机器人沿着轨道走,优点是定位简单、路径固定,缺点是安装成本高、灵活性差,适合大型地面电站的固定阵列。另一种是自主移动式,机器人靠轮子或履带在组件表面或边框上行走,靠传感器定位,优点是部署灵活,缺点是对路径规划和定位精度要求高。这个项目标题里强调“智能”和“路径规划”,我判断它更偏向后者,也就是自主移动+智能路径规划的路线。
为什么这么判断?因为如果只是轨道式,路径规划的空间其实很小,基本就是一条直线来回走,谈不上“研究”。而自主移动式才需要认真解决“我在哪、我要去哪、怎么走最合理”这一整套问题。这也是这个项目最有技术含量、最值得展开的部分。接下来的内容,我会围绕本体设计的关键点、路径规划的核心算法、实操中的参数选择和避坑经验,把这块讲透。
2. 机器人本体设计的关键细节
2.1 行走机构与吸附方式的取舍
光伏组件表面是玻璃,光滑但脆弱,机器人要在上面稳定行走,行走机构的选择直接决定了它能不能干活。我梳理下来,主流方案无非几种:轮式、履带式、以及带吸附的爬壁式。
轮式结构简单、能耗低、控制容易,适合平整度好的组件阵列。但光伏组件之间通常有边框和缝隙,轮子过缝时会有颠簸,如果轮径太小,容易卡住或者打滑。我的经验是,轮径不要小于组件边框高度的两倍,这样过缝时至少有一个轮子还在支撑面上。履带式接触面积大、越障能力强,但转向时对玻璃的剪切力更大,长期使用有划伤风险,而且履带本身容易积灰,维护麻烦。
吸附方式上,负压吸附是常见选择,靠风机在底盘和玻璃之间形成负压,把机器人“压”在组件上。这个方案的好处是适应一定倾角,屋顶电站那种十几度的倾角也能稳住。但负压吸附有个坑:吸力太大会增加行走阻力,耗电猛增;吸力太小又容易在风大的时候被掀翻。我实测下来的经验是,吸力控制在能让机器人静态不下滑、动态不打滑的最小值附近,通常通过试验确定,而不是拍脑袋定一个固定值。
注意:吸附风机的进风口一定要加过滤,否则灰尘被吸进风机,用不了多久风压就衰减,机器人开始打滑,你还以为是控制问题。
2.2 清洁执行机构的设计要点
清洁机构看起来简单,无非是滚刷或者刮条,但细节决定成败。滚刷的转速、刷毛材质、压紧力,这三个参数要一起调。转速太高,刷毛对玻璃的摩擦热增加,长期可能损伤镀膜;转速太低,清洁力不够。刷毛材质上,尼龙软毛比较稳妥,硬毛虽然去污强,但风险大。
压紧力这块,我踩过的坑是:一开始为了让清洁更彻底,把刷子压得很紧,结果机器人行走阻力大增,续航直接掉了一半,而且电机发热严重。后来改成弹性压紧,让刷子靠自身重量和轻微弹簧力贴合组件,清洁效果没差多少,续航却回来了。这个道理其实和擦桌子一样,你用死力压着抹布擦,和轻轻贴着擦,对灰尘的去除差别没那么大,但费力程度差很多。
另外,清洁机构最好设计成可快拆的。现场运维时,刷子磨损、缠绕异物是常事,如果换个刷子要拆半个机器人,运维人员会骂人。快拆结构能大幅降低维护时间,这一点在实际部署中比想象中重要。
2.3 传感器配置与定位方案
自主移动的前提是知道自己在哪。光伏阵列环境有个特点:视觉特征重复性极高,一排排组件长得几乎一样,纯视觉定位很容易“迷路”。所以传感器配置上,我建议采用多传感器融合的思路,而不是单靠某一种。
常见的组合是:轮式编码器+惯性测量单元+视觉或激光。编码器提供相对位移,惯性测量单元提供姿态变化,视觉或激光提供绝对位置修正。为什么不能只用编码器?因为轮子打滑是常态,尤其在灰尘多的组件上,编码器累积误差会越来越大,走几排就偏了。惯性测量单元能补姿态,但也会漂移。所以必须有一个能“看”到环境参照的传感器来兜底。
视觉方案里,可以用组件边框作为特征,或者在地面/阵列边缘布置标记点。激光方案成本高一些,但在阵列边缘和障碍物检测上更可靠。我的建议是,如果预算有限,优先保证边缘检测和防跌落,因为机器人从组件边缘掉下去是灾难性的,而定位精度差一点,大不了多走两遍。
3. 路径规划的核心算法与实现
3.1 为什么路径规划是这个项目的灵魂
回到标题里的“路径规划研究”,这五个字才是真正拉开项目水平的地方。机器人本体做得再漂亮,如果路径规划不行,实际作业就是一场灾难。我见过最典型的问题有三种:漏擦、重复擦、以及“迷路式”乱走。
漏擦好理解,就是有些区域没走到。重复擦是同一块板擦了好几遍,浪费时间和电。迷路式乱走最要命,机器人走着走着偏离了阵列,甚至卡在缝隙里出不来。这三个问题的根源,都在路径规划算法上。
光伏阵列的路径规划,本质上是一个覆盖路径规划问题。它的目标是在一个已知或部分已知的区域内,规划一条路径,使得机器人能够覆盖所有需要清洁的表面,同时满足一些约束:路径尽量短、转弯尽量少、不重复太多、不遗漏。这和扫地机器人的全覆盖路径规划很像,但光伏阵列更规则,理论上更容易做,前提是你把阵列的几何模型建对。
3.2 栅格法与几何法的选择
覆盖路径规划常见两类方法:栅格法和几何法。
栅格法是把作业区域划分成一个个小格子,机器人逐个格子覆盖。优点是实现简单,对不规则区域适应好;缺点是格子大小不好定,太小计算量大,太大容易漏边角。几何法是把阵列抽象成规则的矩形或平行四边形,直接按行或列规划“弓”字形路径。优点是路径规整、转弯少、效率高;缺点是对阵列的规整度要求高,遇到异形阵列就不好使。
光伏阵列绝大多数是规则排列的,所以我更推荐几何法为主、栅格法为辅的混合思路。具体来说,先把整个阵列按组件行划分成若干条“清洁带”,每条带内用“弓”字形来回走,带与带之间用连接路径串起来。这样路径规整,转弯次数可控,覆盖也完整。
这里有个关键参数:清洁带的宽度。它应该等于清洁机构的有效宽度,通常略小于机器人本体宽度,留一点重叠量防止漏擦。重叠量我一般取有效宽度的百分之五到百分之十,太小容易漏,太大浪费。这个值不是固定的,要根据机器人的定位精度来调。定位精度差,重叠量就得加大。
3.3 “弓”字形路径的参数计算
“弓”字形路径看起来简单,但里面的参数要算清楚。假设一条清洁带长度为L,宽度为W,机器人行走速度为v,转弯时间为t_turn,那么走完一条带的时间大约是:
T = (L / v) + t_turn
整个阵列有N条带,总时间就是N乘以T,再加上带与带之间的转移时间。这个估算看起来粗糙,但用来评估续航够不够非常实用。我一般会先算这个,如果算下来总时间超过电池续航的百分之八十,那就要考虑减少单次作业面积,或者提高速度、减少转弯。
转弯时间是容易被忽略的。机器人转弯不像汽车那么利索,尤其是带吸附的,转弯时要先松吸附、转向、再吸附,这个过程可能好几秒。如果一条带很短,转弯时间占比就会很高,效率急剧下降。所以清洁带的划分要尽量让每条带足够长,减少转弯次数。我的经验是,单条带长度最好不要小于机器人本体长度的五倍,否则转弯损耗太大。
3.4 避障与异常处理
路径规划不能只考虑理想情况,还要考虑异常。光伏阵列上可能有什么异常?组件破损、异物遮挡、边框变形、以及机器人自身故障。这些都要在路径规划里留出处理逻辑。
我的做法是,在路径执行过程中加入实时避障层。主路径是预先规划好的,但机器人前方传感器检测到障碍时,能够临时绕行,绕行后再回到主路径。这个绕行逻辑要简单可靠,不能太复杂,否则容易死循环。常见做法是“侧移-前进-回位”三步走,绕开障碍后继续沿原路径走。
另外,防跌落逻辑必须独立于路径规划,作为底层安全机制。也就是说,不管路径怎么规划,只要边缘传感器检测到悬空,机器人立即停止或后退。这个逻辑不能依赖上层算法,必须是硬件或底层固件级别的,否则一旦上层出错,机器人就掉下去了。
4. 实操过程与核心环节实现
4.1 从阵列建模到路径生成
实际做的时候,第一步是把光伏阵列的几何模型建出来。如果阵列是标准矩形排布,可以直接用参数描述:行数、列数、单块组件尺寸、组件间距、阵列倾角。这些参数现场量一下就有。如果阵列不规则,就需要用激光或视觉扫一遍,生成占据栅格地图。
建模完成后,路径生成分三步走。第一步,按行划分清洁带,确定每条带的起止点和宽度。第二步,在每条带内生成“弓”字形路径点序列。第三步,把各条带的路径用转移路径连接起来,形成完整路径。这个完整路径通常表示为一串坐标点,机器人控制器按点走就行。
这里有个实操细节:路径点的密度。点太密,机器人频繁启停,走得慢;点太稀,走出来的路径不直。我一般按每米五到十个点来设,具体看机器人的控制精度。如果机器人循迹做得好,点可以稀一些。
4.2 定位与路径跟踪的调试
路径生成好了,能不能走准,取决于定位和路径跟踪。调试阶段我建议分两步:先静态测定位,再动态测跟踪。
静态测定位,就是把机器人放在阵列上几个已知位置,看它自己算出来的坐标和真实坐标差多少。如果误差超过清洁带重叠量的一半,那定位就不合格,得调传感器融合参数。动态测跟踪,就是让机器人按路径走,用外部测量(比如拉尺子)看它实际走的轨迹和规划轨迹偏多少。偏得多,就要调路径跟踪控制器,通常是调前视距离和转向增益。
前视距离这个参数很关键。太小,机器人走起来左右摇摆;太大,转弯时切内角,容易漏擦。我的经验是,前视距离取机器人轴距的一到两倍比较合适,具体还要看速度,速度快就取大一点。
4.3 清洁效果与效率的平衡
实际作业时,清洁效果和效率是一对矛盾。走得慢、擦得重,干净但费时间;走得快、擦得轻,省时间但可能不干净。这个平衡点怎么找?我的方法是做对比试验:在同一片脏污程度相近的组件上,用不同的速度和压紧力组合各擦一遍,测发电量恢复情况。
实测下来,速度对清洁效果的影响没有想象中大,只要刷子转速够、压紧力合适,中速走也能擦干净。真正影响大的是压紧力和刷子磨损程度。刷子用久了,刷毛变形,清洁力下降,这时候要么换刷子,要么加大压紧力补偿,但加大压紧力又费电。所以刷子的更换周期要按实际清洁效果来定,而不是按固定时间。
提示:建议在运维记录里加一栏“清洁后发电量恢复率”,用这个指标来判断什么时候该换刷子,比看刷毛外观靠谱得多。
5. 常见问题与排查技巧实录
5.1 机器人走偏与打滑的排查
走偏和打滑是现场最高频的问题。排查思路我整理成一张表,方便对照。
| 现象 | 可能原因 | 排查方法 | 解决方向 |
|---|---|---|---|
| 直线走偏 | 编码器误差累积 | 对比起点终点坐标 | 增加视觉修正频率 |
| 转弯打滑 | 吸附力不足或轮面磨损 | 测静态下滑力 | 调吸附或换轮 |
| 过缝卡顿 | 轮径太小或速度太快 | 观察过缝姿态 | 加大轮径或减速 |
| 定位跳变 | 视觉特征重复 | 看定位输出曲线 | 增加标记点或换特征 |
打滑这个问题特别常见,尤其是组件表面有露水或薄灰的时候。我的经验是,轮子材质选软一点的橡胶,比硬塑料抓地好很多。另外,行走速度在过缝和转弯时要降下来,不要全程一个速度。
5.2 续航不足的优化思路
续航不足往往不是电池不够大,而是能耗没管好。吸附风机、行走电机、刷子电机,这三个是耗电大户。优化顺序我建议是:先看吸附能不能间歇工作,直线行走时吸附可以小一点,转弯和越障时再加大;再看行走速度能不能优化,不是越快越省电,太快风阻和振动都增加;最后才考虑加电池,因为加电池增加重量,又反过来增加能耗。
我实测过一个案例,把吸附从全程恒定改成动态调节,续航提升了将近三成,而稳定性没有下降。这个优化性价比很高,值得优先做。
5.3 清洁均匀性的保障
清洁不均匀,有的地方干净有的地方还有灰,通常是路径重叠不够或者刷子压紧力不均。重叠不够就加大重叠量,压紧力不均就要检查刷子安装是否水平、弹簧是否老化。还有一个容易被忽略的点:组件表面的灰尘分布本身就不均匀,边缘和角落积灰更多。所以路径规划时,边缘区域可以适当降低速度或增加一遍清洁,这个可以在路径里做标记,让机器人对重点区域特殊处理。
6. 一些实操心得与后续扩展方向
做这个项目最大的体会是,机器人本体和路径规划必须一起设计,不能分开做。我见过先做本体、再套路径规划的做法,结果本体的一些尺寸和运动特性跟路径规划对不上,返工很痛苦。正确的顺序应该是先明确阵列的几何特征和清洁要求,再定本体的尺寸、速度和转弯半径,最后据此设计路径规划参数。
另外,现场部署时一定要留人工干预接口。再智能的机器人也有搞不定的情况,比如遇到大面积异物、组件破损、或者自己卡住了。这时候运维人员能一键暂停、手动遥控脱困,比什么都实用。全自主是目标,但可干预是底线。
后续这个方向还能怎么扩展?我想到两个。一个是多机协同,大片阵列用一台机器人太慢,多台分工、路径协调,能大幅提升效率,但通信和任务分配会复杂很多。另一个是基于脏污检测的按需清洁,不是定期全擦,而是先用传感器测哪里脏,只擦脏的地方,这样能省大量时间和电。这两个方向都挺有意思,但都需要在现有基础上再往前走一步。
最后分享一个小技巧:路径规划的参数不要一次定死,留几个可调项在配置文件里。现场不同电站的阵列尺寸、倾角、脏污情况都不一样,能现场调参比重新烧录程序方便太多。我一般会把清洁带宽度、重叠量、行走速度、转弯速度这几个做成可配置的,运维人员培训一下就能自己调,省得每次都要开发人员跑现场。