艾琳·伯恩,MathWorks
开始使用MATLAB®通过走过一个例子。这个视频向您展示了基础知识,它会让您了解Matlab的工作原因。
视频通过如何计算太阳能电池板能量生产。您将看到如何使用MATLAB桌面环境的各种元素导入数据,定义变量和执行计算,包括命令窗口,工作区浏览器和变量编辑器。使用预构建绘图可视化数据,然后自定义这些可视化。您还将了解如何使用文档来查找内置函数,对其语法的指导以及演示如何使用该功能的代码示例。
最后,您将了解如何使用Live Editor创建可与其他人共享的可执行笔记本中组合代码,输出和格式化文本的脚本。
马铃薯®是用于各种技术计算的环境,如数据分析、仿真和算法开发。这个视频将向你展示基本知识,让你知道在MATLAB中工作是什么样子的。一定要坚持到底,找出下一步去哪里深入学习MATLAB。所以,让我们开始吧。
这是马萨塞特尼尼克马克斯总部的建筑物之一。看到所有那些漂亮的太阳能电池板?好吧,让我们看看他们是否正常工作。有一个理论模型,表明生产应该是什么。让我们实现它,并将其与从面板记录的实际数据进行比较。
首先,我们需要一些常量:纳蒂克的纬度和“太阳赤纬”,赤纬只是告诉我们某一天太阳在天空中的高度的一个角度。这些是我们可以查到的值。让我们用6月21日的值,一年中最长的一天,这样我们就能得到最大的产量。我们的计算将在命令窗口中输入并立即执行,我们可以在工作区中看到我们刚刚创建的变量。
我们刚进入的角度是以角度为单位的,但是如果我们要用它们来做数学运算的话,最好把它们转换成弧度。我们可以进行标准的数学计算,并将结果赋给一个新变量,甚至覆盖同一个变量。这里我们使用内置的pi值手动进行转换。但我们也可以使用许多内置MATLAB函数中的一个。
接下来,我们希望全天计算生产,因此我们需要一系列时间。让我们制作一个矢量来表示一天的时间。我们将在日出后的5:30开始,并在8:00之前以15分钟的增量,就在日落之前。
我们的配方使用当地的太阳时间。由于时区和夏令时,这与时钟的时间完全相同。所以,我们将采用我们的时间向量并申请班次。
现在我们已经准备好计算了太阳和面板之间的角度的效果。这个等式很长,但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认为k是一个矩阵指数。但这并不是我们的本意——我们想要数组中每个元素的指数,所以让我们使用向上箭头回想那个命令,然后执行错误消息所说的操作,并将指数操作更改为dot-carat。
最后,我们只需要将这两个强度因子相乘(我们从之前的错误中吸取了经验教训,所以这次我们将使用点星),再乘以面板的大小,就可以得到总的理论能量产出。检查一下图,看起来是合理的,所以它是:理论上我们应该从太阳能电池板获得的最大产量。这是我们在6月21日应该看到的,如果它是一个完美的晴天。接下来,我们需要得到实际数据并比较两者。
但是在此之前,保存我们在脚本中所做的事情可能是一个好主意。让我们回顾一下命令历史,并选择我们在这里使用的命令,右键单击并选择Create Live Script。这将打开带有包含所选命令的脚本的编辑器。我们现在可以编辑命令,而且因为我们有一个实时脚本,我们可以通过将其划分为多个部分、添加文本、注释、标题、图像、方程式等等来使其更有用。现在我们可以运行部分代码或整个脚本,输出将出现在代码旁边的输出面板中。我们可以使用交互工具来清理我们的情节。再一次,我们得到了代码,所以我们可以把它添加到脚本中。
现在来看数据。在当前文件夹浏览器中,我们可以看到我们有一个包含2018年6月记录的生产的电子表格。让我们导入该数据。导入工具查看文件的内容。它将第一列识别为时间戳,因此希望以适合日期和时间的数据类型导入这些时间戳。它还想把所有数据都导入到一个表格中,这是一种为电子表格数据设计的数据类型其中我们有一些不同变量的观察数据。那么,让我们在这个表单中导入数据,但可能用一个稍微简单一点的变量名。现在我们有了这个变量,production,这个表包含了三个变量的2880个观测值。这三个变量是时间和两个不同的太阳能电池板阵列产生的电力。
导入一些数据之后,一个好的第一步通常是绘制数据图,以便了解要处理的内容。我们用绘图函数。为了获取表中的单个变量,我们使用点符号——表名、点和变量名。并注意提示完成的有用编程辅助。运行脚本的这一部分以查看结果。因为时间戳是作为datetime变量导入的,所以图的x轴被标记为日期,因此我们可以看到6月份的30个每日峰值。我们可以使用互动工具来稍微探索一下情节。我们可以看到有一些阴天,包括21日,不幸的是。但在这里,你可以看到26号是完美的。
那么我们如何为一个选择的一天获得生产?好吧,我们可以做几种不同的方式,但如果我们有兴趣在日常或时间的时间切片,从一个连续时间序列重新排列到时代和天的网格可能有用。这种方法对该数据进行了一次均匀记录的数据,每15分钟均匀地记录,因此6月的2880次测量值对应于每小时的96次测量 - 每小时4个 - 每月30天。因此,让我们使用重塑函数将长向量更改为96×30矩阵。
现在提取任何一天的数据都很容易。为了得到第21列的数据,我们进入矩阵取第21列的所有行。这些数据全天都在记录,所以我们需要做一个从午夜到午夜的时间矢量,现在我们可以把它画出来。让我们添加一个样式规范来显示实际的数据点。
现在我们可以向绘图功能提供理论和数据,以便我们可以将它们一起看到。如预期的那样,21st的数据不是很好。但请记住,26日看起来不错,几天不会改变太阳的角度,所以让我们看看那一天。值得庆幸的是,易于改变到不同的一天并重新运行该部分。
现在我们可以看到,数据与模型一致,嗯,在多大程度上逆变器可以处理的阈值。对于我们的系统,面板可以产生高达270千瓦的功率,但逆变器的功率限制在207千瓦。我们可以回过头来用min函数把这个极限行为添加到我们的模型中。重新运行脚本…现在我们看到数据和理论模型非常吻合。
我们在这里做了一些很棒的工作。所以,我们应该分享它。如果我们只想与某人分享我们的调查结果,我们可以将脚本的副本作为静态文档保存为PDF。但是,我们还可以将此脚本(以及数据文件以及数据文件一起提供给Matlab的任何人,他们可以为自己运行并重现我们的结果。他们可以编辑脚本,探索数据,完善模型,并执行新分析。
你也可以。这些文件可供您下载。
而且,现在您对在MATLAB中工作是什么样子有了一个感觉,是时候正确地学习它了。没有比使用MATLAB更好的学习方法了。所以,转到MATLAB Onramp,它将交互式地教你MATLAB的基础知识-你将在我们的在线培训环境中实际输入MATLAB命令,并得到即时反馈。这是免费的,应该只需要几个小时。你可以随时离开,过一会儿再来。欢迎来到MATLAB !
你也可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。