艾琳·伯恩,MathWorks公司
本视频展示了一个使用Simulink设计信号处理系统的例子万博1manbetx®。
你具有空白Simulink模型开始和设计的信号处理算法万博1manbetx,以预测是否将是晴天还是阴天,以便从太阳能电网产生优化功率。该视频将为您分析传感器信号,设计滤波器,最后针对硬件配置生成代码。
通过视频的最后,你会学到的Simulink的基础知识以及如何基于模型的设计可以用于建模,仿真,测试和实施现实万博1manbetx世界的信号处理系统。在本例中使用的模型文件可以在下面的链接中找到。
我们生活在一个传感器的世界。它们存在于工厂的机器人中,在我们的汽车里,在我们的手腕上,甚至在我们的冰箱里,以确保我们的食物保持新鲜。这些传感器产生信号。
在这个视频中,我们将使用Simulink来处理来万博1manbetx自传感器的信号。我们将进行频谱分析来探索信号。在此基础上,我们将设计和构建数字滤波器作为信号处理算法的一部分。我们将评估算法的性能,一旦准备好,将我们的模型转换为可以嵌入到实时硬件中的C代码。让我们开始吧……
The MathWorks公司总部设在马萨诸塞州的Natick,有产生电能的太阳能电池板。我们将使用由每15分钟的阵列产生的功率的测量。这是我们的信号。
当然,功率取决于日照量,这取决于一天的时间......和天气。
预测和管理变化的生产和需求是可再生能源发电的重要组成部分。为了使产生的电力平稳,在阳光明媚的日子里,我们可以把一些电力储存在电池里。然后在阴天,我们用它来补充较低的发电量。
让我们来设计,如果它要在Simulink中晴天或阴天使用信号处理技术,可以预测的系统。万博1manbetx
你可以通过点击MAT万博1manbetxLAB工具条上的Simulink按钮来启动Simulink。这将打开起始页,您可以在这里创建新模型、查找示例,甚至找到基本训练。
我们要从头开始创建模型,所以我们选择Blank model并将其保存为sunnyvscloudy。
万博1manbetxSimulink模型是由模块和信号线组成的。打开库浏览器查看所有可用的块。
从一个阳光灿烂的日子,一个来自阴天 - 我们将通过可视两个功率信号启动。
为了查看信号,让我们将两个输入端口(简称Inports)拖放到模型中。然后添加一个Scope块。
让我们来标注两个INPORT块“阳光灿烂的日子”和“阴天”和范围块“时域”。
我们可将块连同信号线通过单击并拖动连接。要标记信号线,双击并键入名称。
现在我们需要数据。在MATLAB中,我们有两个向量,sunnyDay和cloudyDay,代表六月中两个特定日子的功率测量。相应的时间戳以今天为单位。
我们还具有样本频率,每天样本,在变量FS中。每15分钟抽样一次意味着我们每天得到96个样本。
我们必须设置两个导入的Sample Time,因此双击每个导入来调整它的块参数。在“信号属性”页签下,将采样时间设置为采样频率的倒数。
要将数据带入Simulink,我们可以转到“模万博1manbetx型设置”窗口,然后进出“数据导入/导出”窗格,然后将时间和两个电源信号添加为输入。我们还应该将总模拟时间设置为1天。
现在,我们可以通过单击工具条中的run按钮来运行模型。
让我们双击Scope块来查看信号。
我们用直线连接数据点。
光滑的黄线是阳光灿烂的日子。蓝线表明阴天会产生较少的力量,如您所期望的那样,并且在云通过太阳能阵列时也具有许多短期变化。
那么,如何才能使用这些功能来决定,如果我们有一个晴天或阴天?
我们也来看看频域中的这些信号。我们将使用频谱分析,它帮助我们测量每个信号的频率含量。我们首先从DSP系统工具箱中添加一个频谱分析仪块,然后将两个信号连接到它。
要分支信号线,您可以在将信号行拖到块时右键单击。
我们有短的信号,所以我们需要改变的频谱分析仪块数的设置,所以我们可以正确地看到它们。
这一次,我们可以在Spectrum Analyzer中通过按顶部的绿色按钮运行我们的模型。让我们打开图例看看哪一天是哪一天。
那么,什么是我们在看什么?
x轴是频率值。y轴表示在给定频率下信号的功率。尽管默认的时间单位是秒,但我们实际上是以天为单位度量时间的。所以x轴是每天的周期数,而不是每秒的周期数(或Hz)。
我们可以看到,这两天的低频内容大致相同,但多云的那一天有更多的高频内容。还记得那些短期变化吗?这就是它们在频域中的样子。
所以也许我们可以通过比较高频率和某个阈值的功率来区分晴天和阴天。
然而,太阳能板在夏季产生的电力更多,而在冬季产生的电力更少,这意味着全年的阈值必须改变。
我们希望一年四季都有一个固定的门槛。如果我们将高频功率与低频功率归一化,我们就可以使用一个固定的阈值。那么,让我们试着计算顶部75%频率的总功率与底部25%频率的总功率的比值。
那么,我们如何分离低频和高频呢?通过构建数字滤波器。我们需要一个低通滤波器为低频内容和高通滤波器为高频内容。
为了建立这两个过滤器,我们先剥去DSP系统工具箱我们的模型回单运行轨迹和范围....座和阻力在滤波器的实现向导块。
双击该块以打开过滤器设计器应用程序。如果你在MATLAB中设计过过滤器,你可能以前使用过这个应用程序。让我们点击“设计过滤器”图标开始设计低通滤波器。
因为我们每15分钟才会得到样本,所以我们需要一个能过滤少量样本的过滤器。我们将使用Chebyshev Type 1 IIR过滤器,并将过滤器的顺序设置为4。
然后我们必须指定一个截止频率。记住,我们想让较低的25%的频率通过。所以我们将选择标准化频率并设置wpass为0.25。我们将使通带纹波小于0.05 dB。
最后,按设计筛选按钮在底部。我们看到,新的响应是我们想要的。
我们可以通过单击Group delay Response按钮来检查过滤器引入的延迟。对于小于0.25的频率,延迟约为3个采样。我们以后再记。
现在,我们就完成了设计滤波器,让我们将它添加到我们的Simulink模型通过点击实现模型图标。万博1manbetx我们将调用块“低通滤波器”,并选择选项“使用基本元素构建的模型”。这样,我们可以看到用于制作过滤器的基本Simulink模块,万博1manbetx如延迟,乘法,并添加块。
当我们点击“实现模式”按钮...
......新的子系统在我们的模型创建的。让我们双击这个看看里面。
果然,过滤器只是单位延迟,增益和添加块,现代DSP芯片和FPGA优化以实现。
现在的高频内容。我们可以重复同样的过程,设计并实现了高通滤波器。在这种情况下,高通滤波器由1个样品延迟输入信号。
好吧,让我们来测试电源信号我们新的过滤器。
我们添加三个并行路径:一为原始功率信号,一个用于低通滤波版本,一个为高通滤波版本。我们要对它们进行比较。
但是记住低通滤波器引入了3个样本的延迟,高通滤波器引入了1个样本的延迟。所以我们需要添加一些延迟块来确保三个信号是对齐的。双击模型,输入“delay”,对3个样本的原始信号快速添加一个延迟块,对2个样本的高通信号快速添加一个延迟块。
我们将对模型进行修改,使其适用于我们拥有的更长的2年半数据集,该数据集存储在时间戳为t的可变电源中。
让我们在望远镜上放大六天。
黄线是原始功率信号。蓝线是低通的信号,它代表了一般平滑的趋势。和红线是高通信号,其捕获的变化由于云层。在时间多云,这些变化可能会很大。
现在我们已经分离出了低频和高频信号,我们准备构建Sunny测试。
我们需要积累足够的时间,让我们的过滤器给出合理的结果,但我们不想等太久才得到答案。所以我们将使用3小时的窗口,也就是12个尺寸!
要存储在时间窗口滤波器输出,我们将使用缓冲块从DSP系统工具箱。
双击缓冲区,我们可以将缓冲区大小设置为12,以处理3小时的窗口。我们需要在每个过滤器路径上设置一个缓冲区。
现在,我们将使用一些基本的数学运算块来计算sunny测试,比如绝对值、元素的和和块的划分。
让我们添加一个块来比较比率和阈值。使用Sim万博1manbetxulink,您可以很容易地进行实验,以找到这个阈值的合适值。22可以很好地工作,但是可以随意使用这个值,看看它如何改变结果。
比较的输出为0表示非sunny, 1表示sunny。让我们将其缩放到与最大功率匹配,这样它就能在图上很好地显示出来。
我们应该删除Scope块上的额外输入端口。
我们运行之前,请注意这些缓冲区增加了一些延迟的信号。因此,要保持与原始信号一致,我们需要通过12来增加延迟。
让我们运行一下,看看算法的效果如何。如果我们放大之前的同一天,它看起来工作得很好。
但如果我们看另一组六天,就会发现我们的方法有问题。有时它会说半夜里阳光明媚!
为了解决这个问题,让我们在日光探测器将改变我们的阳光的考验。我们将简单地比较的低频功率到另一个门槛,这让我们知道,如果太阳居然高达。我们可以用AND块的两个条件结合起来。
重新运行模型,并检查那些日子......我们看到,我们已经解决了虚假检测问题。
现在我们有了一个可行的算法,我们想将它部署到嵌入式系统中。使用Embedded Coder,我们可以部署到Arduino, Raspberry Pi, Zynq和许多其他。
让我们将模型部署到Arduino Uno板上。
我们将打开“模型设置”窗口并选择“硬件板”。然后,我们替换用于使用输出端口测试的范围块。
现在让我们生成代码。这将获取我们的Simulink万博1manbetx模型,并生成用于部署的模型编译所需的所有C文件。您还可以为其他嵌入式系统生成泛型C代码。
或... VHDL或Verilog代码部署到FPGA。
一旦我们有了生成的代码,我们就把它移植到太阳能阵列的嵌入式硬件上。
看看我们用Simulink做了什么!万博1manbetx我们现在有稳定的可再生能源来源。
您已经了解了如何从空白画布转换到在嵌入式系统上运行的信号处理应用程序。你也可以试试这个。你可以下载这些文件。
现在您已经对如何使用Simulink有了一些感觉,是时候学习它了。万博1manbetx学习Simulink最好的方法就是使用它。万博1manbetx因此,启动Simulin万博1manbetxk OnRamp,它将教你基本知识。它是免费的,只需要几个小时。
欢迎来到仿真软件!万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
本网站使用cookie来改善您的用户体验,个性化内容和广告,并分析网站流量。通过继续使用本网站,您同意我们使用cookie。请看我们隐私政策要了解有关cookie的更多信息以及如何更改设置。