资讯详情

教程:利用GUI对Simulink模型进行谐波分析

本帖最后由 137550162 于 2016-6-6 18:38 编辑

最近在做一个GUI界面,涉及调用Simulink谐波分析功能及修改Simulink模型中的功能块参数。为了方便以后处理这个问题,重做了一个界面程序进行交流。

主界面:

b9164c297c1e6113d9993a299b09e735.png

11.jpg (15.9 KB, 下载次数: 146)

2016-6-6 18:33 上传

点击负载设置:

12.jpg (34.97 KB, 下载次数: 101)

2016-6-6 18:33 上传

点击执行:

13.jpg (21.73 KB, 下载次数: 111)

2016-6-6 18:33 上传

执行后界面:

14.jpg (20.4 KB, 下载次数: 110)

2016-6-6 18:33 上传

点击绘图区域执行图形重绘界面:

15.jpg (34.13 KB, 下载次数: 109)

2016-6-6 18:33 上传

下面将详细介绍具体步骤和源程序。

1.首先要有一个能正常模拟的Simulink将需要谐波分析的信号引入示波器

1.jpg (27.93 KB, 下载次数: 103)

Simulink相关信号连接方式

2016-6-6 09:11 上传

2.jpg (25.91 KB, 下载次数: 86)

GUI界面设计

2016-6-6 09:22 上传

如左上图所示,本GUI将对负载(Load)设置参数,谐波分析A相电流(示波器第三通道)。右上图为GUI设计界面(简化界面)。

2、MATLAB提供了对示波器数据进行谐波分析的功能,前提是需要将示波器的波形数据保存到工作空间,让其调用,相关设置如下:

3.jpg (15.45 KB, 下载次数: 80)

示波器设置1

2016-6-6 09:40 上传

4.jpg (13.7 KB, 下载次数: 121)

示波器设置2

2016-6-6 09:40 上传

双击示波器-->点击参数设置图标-->选择‘History’选项-->将‘Save ..’项勾上-->设置‘Variable name(此名称在谐波分析中GUI调用时需要),设置‘Fomat’为‘Structure with time(即以时间为基准保存数据的结构体)-->点击‘OK’即可。

3、(用过‘powergui这一步可以忽略)Simulink在中间进行谐波分析时,我们可以使用powergui’中的‘FFT Analysis在分析之前,需要进行模拟。否则,没有数据可供分析:

5.jpg (4.24 KB, 下载次数: 125)

powergui

2016-6-6 09:46 上传

6.jpg (21.58 KB, 下载次数: 91)

powergui界面

2016-6-6 09:46 上传

双击‘powergui块,进入选项界面-->点击‘FFT Analysis进入谐波分析界面:

7.jpg (119.99 KB, 下载次数: 108)

谐波分析

2016-6-6 09:46 上传

因为需要分析的是示波器的第三通道,所以会‘input设置为3。其他设置需要根据分析的具体情况来确定,但应注意开始时间的设置,不得小于模拟结束时间。建议分析周期为一个周期,上述波形中的红色范围是分析的一部分。此呼叫主要是为了验证GUI调用结果。

4.检查负载模型的可操作参数和参数属性:

双击负载块,进入参数设置界面,可以看到几个可以设置的参数,我们需要知道这些参数是如何在的Simulink中传递(貌似我所知道的基本都是字符串传递),以及这些参数在Simulink具体参数名(一般与设置界面中的名称不同,具体属性可靠)。我们在这里需要使用的函数是‘get_param('objpath','ObjectParameters在命令窗口输入命令,查看我们需要知道的具体数据(具体函数描述可以查看帮助文档)。

8.jpg (24.79 KB, 下载次数: 116)

Load

2016-6-6 10:36 上传

9.jpg (8.48 KB, 下载次数: 123)

get_param命令

2016-6-6 10:14 上传

10.jpg (26.44 KB, 下载次数: 137)

参数结构体

2016-6-6 10:14 上传

我们可以看到返回到h变量中的是一个结构体数据,这些数据包含了所有有关‘Load块信息,我们在这里需要使用以下数据(在‘MaskObject之后的参数名是我们需要调用和传递的参数)‘BranchType负载桥类型,Resistance电阻值,Inductance’电感值,‘Capacitance’电容值。进一步查看,我们会发现这些数据的类型是‘string虽然在‘,’BanchType参数中的参数enum类型,但字符串数据仍然传递。这可以让我们清楚,那就是GUI我们只需要用字符串统一表示要设置的数据(尤其是编辑框中的数据传输,因为从编辑框中获得的数据本身就是字符串类型,所以不需要转换就可以直接传输)。

5.(以后会继续编辑上传,不知道能不能申请精华帖。^_^)

标签: 15抗谐波智能电容器铸造辉煌

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台