艾琳·伯恩,MathWorks
开始使用MATLAB®通过经由示例行走。该视频显示你的基础知识,和它给你的东西在MATLAB工作就像是一个想法。
视频走过了如何计算太阳能电池板能量生产。您将看到如何导入数据,定义变量,并执行使用MATLAB桌面环境的各种元素,包括命令窗口,工作区浏览器,和变量编辑计算。使用可视化预建地块的数据,然后自定义的可视化。您还将学习如何使用文档,找到上演示了如何使用功能的语法和代码示例的内置功能,指导。
最后,你将看到如何使用Live编辑器创建,在可与他人分享的可执行的笔记本相结合的代码,输出和格式化文本脚本。
MATLAB®是一个用于各种技术计算的环境,比如数据分析、模拟和算法开发。这个视频将向你展示基本知识并让你了解在MATLAB中工作是什么样的。一定要坚持到最后,找出下一步要深入学习MATLAB的地方。所以,让我们开始吧。
这是MathWorks公司总部设在纳提克,马萨诸塞州的建筑之一。查看所有那些漂亮的太阳能电池板?好吧,让我们来看看它们是否正常工作。还有,上面写着生产应该是什么样的理论模型。让我们实现这一点,它从面板记录的实际数据进行比较。
首先,我们需要一些常数:纳蒂克纬度和“太阳赤纬”,这只是一个角度,可以告诉我们某一天太阳在天空的高度。这些是我们可以查找的价值。让我们使用6月21日的值,这是一年中最长的一天,这样我们就能得到最大的产量。我们的计算被输入到命令窗口并立即执行,我们可以在这里的工作区中看到我们刚刚创建的变量。
我们刚刚输入的角度是度数,但是如果我们要用它们来做数学运算,最好是把它们转换成弧度。我们可以进行标准的数学计算,并将结果赋给一个新的变量,甚至重写相同的变量。这里我们使用pi的内置值手动进行转换。但我们也可以使用内置的MATLAB函数。
接下来,我们要计算的生产在整个一天,所以我们需要的时间范围内。让我们做一个矢量来表示一天中的时间。我们会在日出后在5:30开始,一点点,去以15分钟为增量,直到8:00,日落前。
我们的公式使用当地太阳时。这是不完全一样的时钟的时间,因为像时区和夏令公约。因此,我们将利用我们的时间矢量和应用的转变。
现在,我们已经准备好来计算太阳和面板之间的角度的效果。这个公式很长,但在MATLAB代码看起来就像数学,所以它是很容易实现。Again, this part of the formula is assuming degrees instead of radians, so we could convert or... we could look in the documentation to get more information about trigonometric functions, where we discover that there’s a cosd function that accepts inputs in degrees rather than radians. MATLAB has functions for all sorts of things, from trigonometry to outlier detection to curve fitting to graph theory to signal filtering. So it’s always good to check the documentation.
现在我们知道了cosd,我们可以完成这个公式。让我们在行尾添加一个分号,这样就不会显示结果。如果我们想查看这些值,我们总是可以双击工作区中的sunangle变量:它会打开变量编辑器。但图形化地看可能更有用。我们可以选择变量t和sunangle,然后转到工具条中的plot选项卡。选择一个情节,它就在那里。现在我们也有了代码,所以下次我们知道如何通过编程来做这个。当太阳升起、落下和在当地中午达到顶峰时,由太阳角度引起的辐射强度应为0。当太阳直射在面板上时,我们应该得到100%的强度。但在马萨诸塞州,即使是在6月,太阳也不会直接从头顶上照下来,所以这块地看起来还不错。
这就是太阳的角度。为了完成这个模型,我们需要计算大气的影响。光需要通过的空气越多,进入电池板的能量就越少。让我们进入这个经验方程。哎呀,出了点问题。幸运的是,这个有用的错误消息让我们知道我们犯了一个常见的错误。MATLAB可以很自然地处理向量和矩阵,包括处理矩阵数学。默认情况下,MATLAB认为这个克拉是一个矩阵指数。但这不是我们的本意——我们想要数组中每个元素的指数,所以让我们使用向上箭头来回忆这个命令,然后按照错误消息的要求,将指数操作改为点-克拉。
最后,我们只需要将两个强度因子相乘(我们已经从之前的错误中吸取了教训,所以这次我们将使用点星型),再乘以面板的大小就得到了总理论能量产出。检查一下这个方案——看起来很合理,所以就是这样:理论上我们应该从太阳能板获得的最大产量。这是我们在6月21日应该看到的,如果天气晴朗的话。接下来,我们需要获得实际数据并将两者进行比较。
但在这样做之前,最好将我们所做的保存在一个脚本中。让我们回顾一下命令历史,选择我们在这里使用的命令,右键单击,并选择Create Live Script。这将打开编辑器,其中包含所选命令的脚本。我们现在可以编辑命令,而且因为我们有一个实时脚本,我们可以通过将其分成部分、添加文本、注释、标题、图像、方程等等来使其更有用。现在我们可以运行部分代码或整个脚本,输出将出现在代码旁边的输出面板中。我们可以使用交互工具来清理我们的情节。同样,我们获得了代码,这样我们就可以将它添加到脚本中。
现在来看看数据。在当前的文件夹浏览器中,我们可以看到我们有一个电子表格,其中包含了2018年6月的生产记录。让我们导入该数据。导入工具查看文件的内容。它将第一列识别为时间戳,因此希望以适合日期和时间的数据类型导入这些时间戳。它还想把所有的数据以表格的形式导入到一起,这是一种为这种电子表格数据设计的数据类型在电子表格中,我们有一些对不同变量的观察。让我们以这种形式导入数据,不过可能用一个更简单的变量名。现在我们有了这个变量,生产,这是一个包含2880个三个变量的观察值的表格。这三个变量是时间和两个不同的太阳能电池板阵列产生的电量。
在导入了一些数据之后,一个好的第一步通常是绘制它,以了解您正在处理的内容。我们用绘图函数。为了获得表中的单个变量,我们使用点符号——表名、点和变量名。并注意建议完成的有用的编程帮助。运行该脚本的这一部分以查看结果。因为时间戳是作为一个datetime变量导入的,所以我们的图的x轴被标记为日期,因此我们可以看到6月份的30个日峰值。我们可以使用交互工具来探索情节。我们可以看到有一些阴天,包括21日,很不幸。但在这里,你可以看到26号是完美的。
那么,如何才能获得生产为一体选择一天?嗯,有几种不同的方法,我们可以做到这一点,但如果我们感兴趣的切片一天或一天中的时间的数据,这可能是有用的我们从一个连续时间序列数据重排的时间和日期的网格。这种方法是有道理的,该数据被均匀地记录每15分钟,所以2880个测量为六月对应于96个测量 - 4每小时 - 为每个在该月的30天。所以,让我们使用重塑功能改变长矢量到96分30矩阵。
现在,提取任何一天的数据都很容易。为了得到第21列的数据,我们进入矩阵取第21列的所有行。这些数据记录了一整天,所以我们需要做一个从午夜到午夜的时间矢量,现在我们可以画出它。让我们添加一个样式规范来显示实际的数据点。
现在,我们可以给出的理论和数据的绘图功能,所以我们可以看到他们在一起。正如预期的那样,在21中的数据不是很好。但请记住,26日确实很好看。几天不会改变太阳的角度说多了,所以让我们看看那一天。值得庆幸的是,它很容易改变不同的一天,然后重新运行部分。
现在我们可以看到数据与模型一致,达到了逆变器能处理的阈值。对于我们的系统,面板可以产生高达270千瓦,但逆变器有207千瓦的限制。我们可以回过头来用最小值函数把这个极限行为添加到我们的模型中。重新运行脚本…现在我们看到数据和理论模型非常吻合。
我们已经在这里做了一些伟大的工作。所以,我们应该分享。如果我们只是想和其他人分享我们的研究结果,我们可以在脚本的副本保存为静态文件,如PDF。但是,我们也可以给这个脚本(与数据文件一起)与MATLAB的人,他们可以为自己运行它,并重现我们的结果。他们可以编辑脚本,探索数据,细化模型,并进行新的分析。
你也可以。您可以下载这些文件。
现在,你已经对在MATLAB中工作有了一个感觉,是时候好好学习它了。学习MATLAB最好的方法就是使用它。所以,去MATLAB Onramp吧,它会交互式地教你MATLAB的基础知识——你会在我们的在线培训环境中输入MATLAB命令,并得到即时反馈。它是免费的,而且只需要几个小时。你什么时候离开就什么时候回来。欢迎来到MATLAB !
您也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。