艾琳·伯恩,MathWorks
开始使用MATLAB®通过一个例子。这个视频向你展示了基础知识,它让你了解在MATLAB中工作是什么样的。
视频介绍了如何计算太阳能电池板的能源产量。您将看到如何使用MATLAB桌面环境的各种元素导入数据、定义变量和执行计算,包括命令窗口、工作区浏览器和变量编辑器。使用预先构建的地块可视化数据,然后自定义这些可视化。您还将学习如何使用文档查找内置函数、语法指导以及演示如何使用这些函数的代码示例。
最后,您将看到如何使用Live Editor创建脚本,将代码、输出和格式化文本组合在可执行笔记本中,并与他人共享。
MATLAB®是用于各种技术计算的环境,如数据分析、仿真和算法开发。这个视频将向你展示基本知识,让你知道在MATLAB中工作是什么样子的。一定要坚持到底,找出下一步去哪里深入学习MATLAB。所以,让我们开始吧。
这是MathWorks位于马萨诸塞州纳蒂克的总部大楼之一。看到那些漂亮的太阳能电池板了吗?好吧,让我们看看它们是否正常工作。有一个理论模型告诉我们生产应该是什么样的。让我们实现它,并将其与面板中记录的实际数据进行比较。
首先,我们需要一些常量:纳蒂克的纬度和“太阳赤纬”,赤纬只是告诉我们某一天太阳在天空中的高度的一个角度。这些是我们可以查到的值。让我们用6月21日的值,一年中最长的一天,这样我们就能得到最大的产量。我们的计算将在命令窗口中输入并立即执行,我们可以在工作区中看到我们刚刚创建的变量。
我们刚进入的角度是以角度为单位的,但是如果我们要用它们来做数学运算的话,最好把它们转换成弧度。我们可以进行标准的数学计算,并将结果赋给一个新变量,甚至覆盖同一个变量。这里我们使用内置的pi值手动进行转换。但我们也可以使用许多内置MATLAB函数中的一个。
接下来,我们想要计算全天的产量,所以我们需要一个时间范围。让我们用一个向量来表示一天中的时间。我们将在5:30开始,日出后不久,每15分钟增加一次,直到8点,日落前。
我们的公式使用当地太阳时。这与时钟上的时间并不完全相同,因为有像时区和夏令时这样的惯例。我们用向量乘以,然后进行平移。
现在我们可以计算太阳和太阳能板之间的夹角了。这个方程很长,但MATLAB代码看起来就像数学,所以它很容易实现。同样,公式的这一部分是假设角度而不是弧度,所以我们可以转换或。我们可以在文档中找到更多关于三角函数的信息,在文档中我们发现有一个cosd函数可以接受角度而不是弧度的输入。MATLAB具有各种各样的功能,从三角函数到离群值检测、曲线拟合、图论到信号滤波。所以检查文档总是好的。
现在我们知道了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次测量对应着一个月30天中的每一天的96次测量——每小时4次。我们用重塑函数把长向量变成一个96 × 30的矩阵。
现在提取任何一天的数据都很容易。为了得到第21列的数据,我们进入矩阵取第21列的所有行。这些数据全天都在记录,所以我们需要做一个从午夜到午夜的时间矢量,现在我们可以把它画出来。让我们添加一个样式规范来显示实际的数据点。
现在我们可以把理论和数据都给绘图函数,这样我们就可以一起看了。正如预期的那样,21世纪的数据不是很好。但请记住,26号看起来不错,几天也不会改变太阳的角度,所以让我们看看这一天。值得庆幸的是,它很容易改变到不同的一天,并重新运行部分。
现在我们可以看到,数据与模型一致,嗯,在多大程度上逆变器可以处理的阈值。对于我们的系统,面板可以产生高达270千瓦的功率,但逆变器的功率限制在207千瓦。我们可以回过头来用min函数把这个极限行为添加到我们的模型中。重新运行脚本…现在我们看到数据和理论模型非常吻合。
我们做了一些很好的工作。所以,我们应该分享它。如果我们只是想与某人分享我们的发现,我们可以将脚本的副本保存为静态文档,比如PDF。但是我们也可以把这个脚本(连同数据文件)给任何使用MATLAB的人,他们可以自己运行它并重现我们的结果。他们可以编辑脚本,研究数据,改进模型,并执行新的分析。
你也可以。这些文件可供您下载。
而且,现在您对在MATLAB中工作是什么样子有了一个感觉,是时候正确地学习它了。没有比使用MATLAB更好的学习方法了。所以,转到MATLAB Onramp,它将交互式地教你MATLAB的基础知识-你将在我们的在线培训环境中实际输入MATLAB命令,并得到即时反馈。这是免费的,应该只需要几个小时。你可以随时离开,过一会儿再来。欢迎来到MATLAB !
你也可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。