艾琳·伯恩,MathWorks
开始使用MATLAB®通过一个例子。这个视频向你们展示了基础知识,让你们了解在MATLAB中工作是什么样子的。
该视频介绍了如何计算太阳能电池板的能量生产。您将看到如何导入数据、定义变量和使用MATLAB桌面环境的各种元素执行计算,包括命令窗口、工作区浏览器和变量编辑器。使用预构建的图可视化数据,然后自定义这些可视化。您还将学习如何使用文档查找内置函数、关于它们的语法指导以及演示如何使用这些函数的代码示例。
最后,您将看到如何使用Live Editor创建脚本,将代码、输出和格式化文本组合到可执行笔记本中,并与他人共享。
MATLAB®是一个用于各种技术计算的环境,如数据分析、仿真和算法开发。本视频将向你们展示基础知识并让你们了解在MATLAB中工作是什么样子的。请务必停留到最后,找出下一步去哪里,以深入学习MATLAB。我们开始吧。
这是MathWorks位于马萨诸塞州纳蒂克的总部大楼之一。看到那些漂亮的太阳能电池板了吗?让我们看看它们是否能正常工作。有一个理论模型告诉我们生产应该是怎样的。让我们实现它,并将它与面板中记录的实际数据进行比较。
首先,我们需要一些常数:纳蒂克的纬度和“太阳赤纬”,这只是一个角度,告诉我们在给定的一天太阳在天空中的高度。这些是我们可以查找的值。让我们使用6月21日的值,这是一年中最长的一天,这将为我们提供最大产量。我们的计算被输入到命令窗口并立即执行,我们可以在工作区中看到我们刚刚创建的变量。
我们刚刚输入的角度是以度为单位的,但如果我们要用数学来计算,最好把它们转换成弧度。我们可以进行标准的数学计算,并将结果赋给一个新变量,甚至覆盖相同的变量。这里我们使用pi的内置值手动进行转换。但我们也可以使用许多内置的MATLAB函数之一。
接下来,我们想要计算一整天的产量,所以我们需要一个时间范围。让我们做一个向量来表示一天中的时间。我们将在日出后的5:30开始,然后在日落前的8点开始15分钟。
我们的公式使用当地太阳时。这和时钟上的时间不完全一样,因为时区和夏令时等惯例。我们取乘向量,并进行平移。
现在我们准备计算太阳和电池板之间的角度的影响。这个等式很长,但是MATLAB代码看起来就像数学,所以很容易实现。同样,公式的这一部分假设的是角度而不是弧度,所以我们可以转换或者。我们可以在文档中找到更多关于三角函数的信息,我们发现有一个cosd函数可以接受角度而不是弧度的输入。MATLAB具有各种功能,从三角函数到离群点检测到曲线拟合到图论到信号滤波。所以检查文档总是好的。
既然我们知道了cosd,我们就可以完成我们的公式了。让我们在行尾添加一个分号,这样就不会显示结果。如果我们想查看这些值,可以在工作区中双击sunangle变量:它会打开变量编辑器。但以图形方式查看可能会提供更多信息。我们可以选择变量t和sunangle,然后转到toolstrip中的Plots选项卡。选择一个绘图,它就在那里。现在我们也有了代码,所以我们知道下次如何通过编程实现。当太阳升起和落下时,由于太阳角度引起的辐射强度应为0,并在当地正午达到峰值。当太阳直接照射在面板上时,我们应该得到100%的强度。但在马萨诸塞州,即使是在六月,太阳也不会直接从头顶升起,所以情节看起来是正确的。
好吧,这就是太阳的角度。为了完成这个模型,我们需要计算大气的影响。光线穿过的空气越多,进入电池板的能量就越少。让我们输入这个实验式和....哦,出问题了。幸运的是,这个有用的错误消息让我们知道我们犯了一个常见的错误。MATLAB可以很自然地处理向量和矩阵,包括做矩阵数学。默认情况下,MATLAB认为克拉是矩阵指数。但这不是我们的意思——我们想要数组中每个元素的指数,所以让我们使用向上箭头来回忆这个命令,然后按照错误消息所说的做,将指数操作更改为dot-carat。
最后,我们只需要将两个强度因子相乘(我们已经从之前的错误中学习过,所以这次我们将使用点星号),并乘以面板的大小,就可以得到总理论能量产出。检查一下图——看起来是合理的,所以它就是:理论上我们应该从太阳能电池板获得的最大产量。这是我们在6月21日应该看到的,如果天气晴朗的话。接下来,我们需要获取实际数据并将两者进行比较。
但在此之前,最好将我们所做的保存在脚本中。让我们回顾命令历史,选择我们在这里使用的命令,右键单击,并选择Create Live Script。这将使用包含所选命令的脚本打开编辑器。我们现在可以编辑命令,而且因为我们有一个实时脚本,所以我们可以通过将命令分成部分、添加文本、注释、标题、图像、方程等来使其更有用。现在我们可以运行部分代码,或者整个脚本,输出将出现在代码旁边的输出面板中。我们可以使用互动工具来清理我们的情节。同样地,我们得到了代码,所以我们可以将它添加到脚本中。
现在来看数据。在当前的文件夹浏览器中,我们可以看到一个电子表格,其中包含2018年6月的生产记录。让我们导入这些数据。导入工具查看文件的内容。它将第一列识别为时间戳,因此希望导入适合日期和时间的数据类型。它还希望将所有数据作为一个表一起导入,这是一种为这种电子表格数据设计的数据类型,在这种数据类型中,我们对几个不同变量进行了大量观察。所以,让我们以这种形式导入数据,但可能使用稍微简单一点的变量名。现在我们有了这个变量,production,这是一个包含三个变量的2880个观测值的表。这三个变量是时间和两个不同太阳能电池板阵列产生的电能。
导入一些数据后,一个好的第一步通常是绘制它,以了解您正在处理的内容。那么,让我们使用plot函数。为了获得表中的各个变量,我们使用点表示法——表名、点和变量名。请注意建议完成的有用编程辅助工具。运行脚本的此部分以查看结果。因为时间戳是作为datetime变量导入的,所以我们绘图的x轴标记为日期,因此我们可以看到6月份的30个每日峰值。我们可以使用交互式工具稍微探索一下情节。不幸的是,包括21日在内,我们可以看到有一些阴天。但是在这里你可以看到26号非常完美。
那么我们如何得到某一天的产量呢?好吧,有几种不同的方法可以做到这一点,但如果我们感兴趣的是按天或每天的时间切片数据,它可能是有用的重新安排我们的数据从一个连续的时间序列到网格的时间和天。这种方法对于每15分钟记录一次的数据来说是有意义的,所以6月份的2880次测量值对应着该月30天中的每一天的96次测量值——每小时4次。那么,让我们用重塑函数把这个长向量变成96 × 30的矩阵。
现在很容易提取任何一天的数据。为了得到第21列的数据,我们进入我们的矩阵并获取第21列的所有行。这些数据一整天都在记录,所以我们需要做一个从午夜到午夜的时间向量,现在我们可以绘制它。让我们添加一个样式规范来显示实际的数据点。
现在我们可以把理论和数据结合到绘图函数中,这样我们就能同时看到它们了。正如预期的那样,21世纪的数据不是很好。但是记住,26号看起来不错,几天也不会改变太阳的角度,所以让我们看看这一天。幸运的是,更改日期并重新运行该部分是很容易的。
现在我们可以看到,数据与模型一致,嗯,直到一个阈值,多少逆变器可以处理。对于我们的系统,面板可以产生高达270kw,但逆变器有207kw的限制。我们可以返回并使用最小函数将这个极限行为添加到我们的模型中。重新运行脚本…现在我们看到数据与理论模型非常吻合。
我们在这里做了一些伟大的工作。所以,我们应该分享它。如果我们只是想与他人分享我们的发现,我们可以将脚本保存为静态文档,比如PDF。但是我们也可以把这个脚本(连同数据文件)给任何使用MATLAB的人,他们可以自己运行它并复制我们的结果。他们可以编辑脚本、研究数据、精炼模型,并执行新的分析。
你也可以。你可以下载这些文件。
现在,你已经有了在MATLAB中工作的感觉,是时候正确学习它了。没有比使用MATLAB更好的学习方法了。所以,去MATLAB Onramp,它将教你的基础MATLAB交互式-你将实际输入MATLAB命令在我们的在线培训环境,并得到即时反馈。这是免费的,应该只需要几个小时。你什么时候走都行,一会儿再来。欢迎来到MATLAB !
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。
本网站使用cookie来改善您的用户体验,个性化内容和广告,并分析网站流量。继续使用本网站,即表示您同意我们使用cookies。请参阅我们的隐私政策了解有关cookie的更多信息以及如何更改设置。