使用机器学习瞄准太阳阵列中的镜子?


10

我一直在思考太阳能收集器,其中几个独立的镜将光聚焦在太阳能收集器上,类似于Energy Innovations的以下设计。

太阳能电池板

由于此太阳能电池阵列的组装会有缺陷,因此,我在进行以下假设(或缺乏假设):

  • 该软件知道每个镜像的“位置”,但不知道此位置与现实世界或其他镜像的关系。这将说明反射镜校准不佳或其他环境因素可能会影响一个反射镜,而不会影响其他反射镜。

  • 如果镜子在一个方向上移动10个单位,然后在相反方向上移动10个单位,则它将在最初开始的位置结束。

我想使用机器学习来正确放置镜子并将光线聚焦在收集器上。我希望我将其作为一个优化问题,优化反射镜的位置,以最大化收集器内部的热量和功率输出。

问题是在嘈杂的高维空间中找到一个小的目标(考虑到每个反射镜都有2个旋转轴)。我预期的一些问题是:

  • 多云的日子,即使您偶然碰到了完美的镜子对准,在当时也可能是多云的

  • 噪声传感器数据

  • 太阳是一个移动的目标,它沿着一条路径移动,并且每天遵循不同的路径-尽管您可以随时计算太阳的确切位置,但是您不知道该位置与镜子之间的关系

我的问题不是关于太阳能电池板,而是可能的机器学习技术,它可以帮助解决“嘈杂的高维空间中的小目标”问题。我提到太阳能电池板是因为它是这个问题的催化剂和一个很好的例子。

哪种机器学习技术可以在嘈杂的高维空间中找到如此小的目标?

编辑:

一些其他想法:

  • 是的,您可以计算太阳在现实世界中的位置,但是您不知道镜子的位置与现实世界之间的关系(除非您以某种方式了解了它)。您可能知道太阳的方位角是220度,太阳的仰角是60度,并且您可能知道镜子在位置(-20,42);现在告诉我,那面镜子与太阳正确对准了吗?你不知道

  • 假设您进行了一些非常复杂的热量测量,并且知道“在此热量水平下,必须正确对齐2个反射镜”。现在的问题是,哪两个镜子(25个或更多)正确对齐?

  • 我考虑的一种解决方案是使用神经网络来逼近正确的“对准函数”,该神经网络将太阳的方位角和仰角作为输入并输出一个大型数组,每个数组的2个值对应于每个镜子的2轴。我不确定最好的训练方法是什么。

更多想法:

  • 镜子确实具有软件可以访问的坐标系,但是软件不知道该坐标系与现实世界之间的关系。假设镜子位于位置(4,42);这意味着什么?我不知道,软件也不知道。但是我确实知道,如果我移动镜子,然后再将其移回(4,42),镜子将处于以前的位置。另外,两个镜子可能在位置(4、42),但在现实世界中指向相反的方向。

  • 是的,有了很多高质量的传感器,这个问题很容易解决。据我所知,Energy Innovations停业了,这可能是因为它们使用了一堆非常棒的传感器,而且人们说:“我只买太阳能电池板,它们更便宜。”

  • 系统中唯一的传感器在收集器头中。


抱歉,没有回答您的问题,但是我突然有一个念通通您的帖子的想法。使用另一项的度量来确定谁的对齐方式最佳,以及使标准偏差尽可能小并且每个人都应产生等于或大于总体最大值的总体目标,这是不合理的吗?
AlexanderBrevig


2
在任何移动电话都知道它在哪里以及如何定位的世界中,定日镜的镜面不是不可能的假设是不现实的。
mouviciel 2012年

1
只要知道阵列的位置,每个反射镜相对于该点的位置,收集器相对于每个反射镜的位置以及阵列的定位方式(方位角方向),您要做的一切都是可以计算的。这不是机器学习问题,而是几何。
Blrfl 2012年

1
我看到了您的新编辑。在我看来,您的问题归结为将镜像坐标转换为方位角和仰角。它不需要数组,也不需要机器学习。它可能只是几个带有一些常数的简单数学方程式。
罗伯特·哈维

Answers:


15

太阳的路径是可以预测的,所以我想如果您知道一天中的时间,一年中的一天以及纬度和经度,就可以使镜子非常紧密地对齐。

您不需要为此进行机器学习。

如果您的镜子不知道它们指向的方向(即您无法将它们的位置与仰角和方位角的测量值相关联),则可以尝试使用宽视野的摄像机,将天空扫过直到变亮白点出现在相机的视图中。然后,您可以将反射镜移向该点(使用一些简单的x / y计算),直到亮点位于相机视图的中心。在相机上放一个深色滤镜,使它只能看到太阳。

但是,您的问题表明您确实知道镜子的指向。如果镜子上的传感器告诉您它们的位置,则可以将这些位置测量值与实际的方位角和仰角数字相关联。

我想如果用单个太阳能电池来检测阴天,或者镜子上没有任何热量,这将非常简单。


5
您仍然需要考虑组装缺陷,但这是一个校准问题,不涉及机器学习。控制工程将是一个更相关的理论框架。
mouviciel 2012年

2
@FrustratedWithFormsDesigner:我想如果您的镜子安装在有轨电车上。常规的GPS和水平传感器可以解决该问题。
罗伯特·哈维

3
@RobertHarvey:但这会一样有趣吗?;)
FrustratedWithFormsDesigner 2012年

7
您拥有数百个镜像的事实并不重要,每个单独的镜像的行为并不取决于其邻居。您故意使这个问题变得比实际困难。
whatsisname 2012年

4
@ Buttons840:如果您无法将位置传感器相对于镜子的实际位置的含义进行关联,那么机器学习将无法帮助您定位它们。如果没有这些数据,您所做的任何事情本质上都是酒鬼走的路。粗略校准应该是设计的一个因素。可以通过将每个反光镜对准太阳并观察收集器的输出来完成精细校准。Whatsisname是完全正确的:您正在使这一过程变得比它需要的困难。
Blrfl 2012年

9

对于这种应用,一个镜面试图指向一个太阳能收集器,您可以非常多地计算出您认为太阳应该在哪里,镜应该在哪里,镜应该处于什么角度以及如何定位它们。他们指向您的收藏家。你知道,一个数学模型。快关门了 可能足够接近。

至于校准反射镜以处理模型的瑕疵和偏差:一次
摆动一个反射镜。如果您的输出增加,请保留更改。将更改存储为calOffset。称它完成。

我同意哈维(Harvey)的观点,机器学习对此太过严格了。

但是,嘿,假设您想要一个可移动的自主系统,该系统可以在长时间打na后醒来并找到太阳。而且我们买不起$ 0.05的电池来节省时间。而且由于它是可移动的,所以太阳可能会朝天知道方向。所有人类都死了。我们的太阳能电池霸主机器人举足轻重,他们不知道自己在世界的哪个角落醒来。而且他们的GPS无法接收信号。他们的好友都不知道发生了什么。

1)用一面镜子扫一下该区域,并注意功率输出的任何尖峰。重复几次以确保它不是云或其他东西。
2)现在您知道了太阳的位置。git它。
3)等待一个小时。
4)用镜子再次扫整个区域。尖刺。云。亚达亚达
5)您现在知道了太阳的路径。跟随它直到达到伺服驱动器的极限或直到电源断开为止
6)旋转180度并等待12个小时。
7)做扫除的事情。
8)现在,根据太阳落山位置和上升位置的不同,您大致了解纬度/季节*。(至少,您距赤道的偏移量。仍然不知道从南向北)。相应地调整。
9)等一天。注意日出位置的差异。您现在知道冬至的哪一侧。
10)向上等待6个月。请注意日出方向的峰值。现在,您知道您是在冬季还是夏季,并且可以安全地确定下一个EON的太阳路径。

如果不清楚“现在知道”的任何步骤,答案是MATH(以及地球的轨道力学**)。Math先生是你的朋友。他可以告诉你事情。除非平等公理或某些公理证明是错误的,否则您甚至可以相信他。

*优惠在北极圈或南极圈内无效。
**优惠在火星,金星,泰坦,艾奥和其他选定地点也无效。


如前所述,我在不了解现实世界中镜像位置的假设下进行,并且声称通过一些数学运算我可以“足够接近”是没有根据的。
Buttons840 2012年

当您说您不知道镜子在现实世界中的位置时,这到底是什么意思?我的手机上有一个GPS,可以为您提供经度和纬度坐标,精度在几米之内。
罗伯特·哈维

2
假设GPS被太阳耀斑或凯斯勒炸弹炸毁了。
世界工程师

@WorldEngineer-假设除了机器学习之外的所有东西都无法使用,机器学习会成为解决方案吗?
mouviciel 2012年

@mouviciel不,没有一些伺服器或传感器,机器学习没有什么可学的,而所有的思考都无所作为。
菲利普(Philip)

2

您的问题似乎与机器学习的关系不大,它与对一组设备的自动校准的关系不大。您已经有了带有位置传感器的设备(镜子),并且知道要指向该设备的位置,但是您不知道传感器的输出与现实世界之间的关系。因此,您实际上只需要校准设备-找到正确的位置,即可确定传感器读数与实际位置的关系。校准后,听起来您可以依靠传感器来定位设备。

考虑到所有这些,您可能应该分别校准每个设备。您可以使用某种搜索算法自动执行此操作。吉尔伯特·勒布朗克(Gilbert Le Blanc)描述了一种应该起作用的方法。另一种方法是假设传感器数据正确,然后使用它将反射镜大致对准正确的位置;然后以向外旋转的方式移动镜子,直到您击中目标。

如果您真的想一次调整所有反射镜,则可能需要一种遗传算法:

  • 为每个镜像选择一个随机设置,并将其存储在阵列中。重复进行,以便您具有一定数量的镜像字段配置。
  • 接下来,运行反射镜场配置,为每个反射镜设置所有反射镜,然后测量产生的热量。
  • 从列表中删除产生热量最少的镜像字段配置。
  • 通过重新组合列表中剩余的部分配置来生成一些新配置。
  • 重复进行直到配置收敛到单个解决方案,或者每次迭代的改进降低到某个阈值以下(即您已经达到“足够好”)。

另外,我应该指出,如果您尝试上述方法,则要优化的是镜面传感器校准,而不是位置。每个步骤都将花费一些时间,因此您需要考虑到该过程进行过程中太阳的移动。每个反射镜的“设置”不是位置,而是传感器误差,即传感器读数与理想读数之间的差。


1

我几乎不喜欢写这个。

  • 从太阳能电池中确定太阳是否发光。
  • 如果阳光明媚,请从(0,0)处的镜子开始。
  • 在x轴上将镜像旋转到0。
  • 沿整个Y轴旋转镜子。在每个步骤中,测量一下太阳能收集器的热量输出是否增加。如果是这样,请停止,然后移至阵列中的下一个镜像。
  • 沿X轴旋转镜子一步。重复上一步。
  • 如果在不增加热量输出的情况下沿整个x和y轴旋转了镜子,则将镜子标记为需要维护,然后移至x = 0和y = 0。
  • 对镜像阵列中的每个镜像重复所有步骤。
  • 等待一个小时,然后重复所有步骤。

很简单,但是这种方法是远远没有达到最佳,假设镜的转动费精力.....
mikera

不过那不值得发表。
工作

3
@Job哦,很抱歉,您想要SE.Programmer帮助您完成论文吗?我知道家庭作业是一个问题,但是现在我们有应届毕业生,他们希望我们完成工作吗?
菲利普(Philip)

@mikera:是的,这是蛮力解决方案。但是,由于澄清说明之一是“另外,两个镜像可能位于位置(4,42),但在现实世界中指向相反的方向。”,所以我看不到任何捷径。
吉尔伯特·勒布朗克

@Gilbert-您需要使用之前的测量结果中的信息。例如,两次测量足以获得部分梯度估算值。然后,您可以开始使用诸如梯度下降之类的方法来找到最佳位置。比蛮力好得多,尤其是因为这种情况下的优化问题可能是凸的!
mikera
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.