本帖最后由 137550162 于 2016-6-6 18:38 编辑
最近在做一个GUI界面,涉及调用Simulink谐波分析功能及修改Simulink模型中的功能块参数。为了方便以后处理这个问题,重做了一个界面程序进行交流。
主界面:
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.(以后会继续编辑上传,不知道能不能申请精华帖。^_^)