⛄一、配电网潮流计算与经济调度模糊满意度评价软件介绍
单击guimh.m文件打开系统主界面,如图1所示,界面友好、简单、易于操作。主界面上方有一个“开始”按钮,可以控制整个软件的执行。主界面右方有三个选项,分别为“配电网潮流计算模块”、“经济调度模糊满意度评价模块”和“退出”选项,可以方便用户进行软件操作。
 
 图1
 单击“开始”按钮,出现与主界面右方相同的三个选项,选择“配电网潮流计算模块”(或直接点击主界面右方的“配电网潮流计算模块”)进入下一个界面。如图2所示。
 
 图2
 该界面第一栏有两个选择按钮:“开始”、“绘图”。界面左边为原始数据导入区,右上部分为结果显示区,右下部分则为四个选择按钮,分别为:“执行潮流计算”、“功率分布图”、“电压分布图”和“返回”按钮,方便用户进行不同的功能操作。
 单击“开始”按钮出现下拉菜单,选择“操作说明”选项,出现如图3所示的介绍。这对该模块进行了简洁明了的说明。
 
 图3
 在“原始数据导入区”输入原始数据,用户根据自己的电力网络进行数据输入,其中包括了:1、“电力系统基本参数”,如图4所示。
 
 图4
 2、B1矩阵数据。单击“导入B1矩阵数据”按钮,出现如图5所示的对话框:
 
 图5
 用户选择需要导入的数据,如选择cc.xls,单击打开后在B1矩阵数据区出现如图6所示的界面。
 
 图6
 B1矩阵解释如下:第一列数据代表支路首端的节点号,第二列代表支路末端的节点号,第三列代表支路电阻,第四列代表支路电抗,第五列代表支路对地电纳,第六列代表支路中变压器的变比,第七列的数据为0或1,若支路首端的节点位于变压器的高压侧则为1,若位于低压侧则为0。每一行则代表每一条支路。
 3、B2矩阵数据。单击“导入B2矩阵数据”按钮,出现如图7所示的对话框:
 
 图7
 用户选择需要导入的数据,如选择dd.xls,单击打开后在B2矩阵数据区出现如图8所示的界面。
 
 图8
 B2矩阵解释如下:第一列数据代表该节点的发电机功率,第二列代表该节点的有功功率,第三列数据代表该节点的无功功率,第四列代表节点电压的初始值(标幺值形式),第五列代表PV节点的电压给定值(电压幅值且为标幺值形式),第六列代表节点所接无功补偿设备的容量,第七列代表节点的分类标号。每一行则代表每一个节点。
 原始数据输入完毕后则可进行潮流计算。单击右下方“执行潮流计算”按钮如图,或者单击“开始”按钮选择“执行潮流计算”选项进行潮流计算。在结果显示区可以看到7项结果。如图9所示。
 
 图9
 单击“各节点电压标幺值”会在结果显示区出现如图10所示的结果:
 
 图10
 单击“节点电压幅值和相角”会在结果显示区出现如图11所示的结果:
 
 图11
 相应的单击其他5个选项会出现对应的结果,这里不再赘述。
 另外可以观察到本次潮流计算的迭代次数,如图9所示,迭代次数为4.
 该软件还可以以图形的形式直观的观察潮流计算的结果。单击主界面右下方的“功率分布图”按钮或者单击第一栏的“绘图”按钮选择“功率分布图”选项,出现如图12结果。
 
 图12
 功率为正代表从该节点或支路流进功率,功率为负则代表流出功率。
 单击主界面右下方的“电压分布图”按钮或者单击第一栏的“绘图”按钮选择“电压分布图”选项,出现如图13结果。
 
图13
 左图为各节点电压标幺值(幅值),右图则为电压相角。
 单击右下方的“返回”按钮,如图,或单击“开始”按钮选择“返回”选项,则可返回系统主界面。
 返回系统主界面后,单击“开始”按钮,选择“经济调度模糊满意度评价模块”(或直接点击主界面右方的“经济调度模糊满意度评价模块”)进入该模块。如图14所示。
 
图14
 该界面第一栏有两个选择按钮:“开始”、“操作”。界面左边为经济调度满意度评价平台,右上部分为结果显示区,右下部分则为“返回主界面”按钮。
 单击“开始”按钮出现下拉菜单,选择“操作说明”选项,出现如图15所示的介绍。这对该模块进行了简洁明了的说明。
 
图15
 在“经济调度满意度评价平台”处导入原始数据。
 其中包括了:1、评价集。评价集则是由各因素在不同等级下的限值组成的矩阵。单击“导入评价集”按钮或者单击“操作”按钮选择导入参数中的导入评价集选项,出现如图16所示的对话框
 
图16
 用户选择需要导入的数据,如选择a.xls,单击打开后在评价集处出现如图17所示的界面。
 
图17
 2、每级满意度等值分数。单击“导入每级满意度值”按钮或者单击“操作”按钮选择导入参数中的导入每级满意度分值选项,也出现如图16所示的对话框
 用户选择需要导入的数据,如选择adf.xls,单击打开后在“每级满意度等值分数”处出现如图18所示的界面。
 
图18
 3、因素集。因素集则是由评价对象所组成的矩阵(归一化后)。操作过程与1,2类似,这里不再赘述。选择ad.xls文件,导入数据后在因素集处出现如图19所示的界面。
 
图19
 原始数据导入成功后,可以单击界面右侧结果显示区中的“满意度测评”按钮,如图或者单击“操作”按钮选择“执行”中的“满意度测评”选项,进行满意度测评。测评结果会显示在“结果显示区”内,如图20所示:
 
图20
 结果中得分最高的一项则为经济调度满意度最高的一项。此外在“结果显示区”还有其他四个选项。单击“查看模糊矩阵”或者单击“操作”按钮选择“结果”中的“查看模糊矩阵”选项出现如图21所示的结果。
 
图21
 同样可以查看满意度和满意度分布图,操作过程类似,不再赘述。结果分别如图22,图23所示
 
图22
 
图23
 单击右下侧的“返回主界面按钮”或者单击“开始”按钮选择“返回”选项则可以返回到主界面进行其他操作。
⛄二、部分源代码
function varargout = guimh(varargin)
 % GUIMH MATLAB code for guimh.fig
 % GUIMH, by itself, creates a new GUIMH or raises the existing
 % singleton*.
 %
 % H = GUIMH returns the handle to a new GUIMH or the handle to
 % the existing singleton*.
 %
 % GUIMH(‘CALLBACK’,hObject,eventData,handles,…) calls the local
 % function named CALLBACK in GUIMH.M with the given input arguments.
 %
 % GUIMH(‘Property’,‘Value’,…) creates a new GUIMH or raises the
 % existing singleton*. Starting from the left, property value pairs are
 % applied to the GUI before guimh_OpeningFcn gets called. An
 % unrecognized property name or invalid value makes property application
 % stop. All inputs are passed to guimh_OpeningFcn via varargin.
 %
 % *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
 % instance to run (singleton)”.
 %
 % See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help guimh
% Last Modified by GUIDE v2.5 02-Jul-2022 16:23:55
% Begin initialization code - DO NOT EDIT
 gui_Singleton = 1;
 gui_State = struct(‘gui_Name’, mfilename, …
 ‘gui_Singleton’, gui_Singleton, …
 ‘gui_OpeningFcn’, @guimh_OpeningFcn, …
 ‘gui_OutputFcn’, @guimh_OutputFcn, …
 ‘gui_LayoutFcn’, [] , …
 ‘gui_Callback’, []);
 if nargin && ischar(varargin{1})
 gui_State.gui_Callback = str2func(varargin{1});
 end
if nargout
 [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
 else
 gui_mainfcn(gui_State, varargin{:});
 end
 % End initialization code - DO NOT EDIT
% — Executes just before guimh is made visible.
 function guimh_OpeningFcn(hObject, eventdata, handles, varargin)
 % This function has no output args, see OutputFcn.
 % hObject handle to figure
 % eventdata reserved - to be defined in a future version of MATLAB
 % handles structure with handles and user data (see GUIDATA)
 % varargin command line arguments to guimh (see VARARGIN)
% Choose default command line output for guimh
 handles.output = hObject;
% Update handles structure
 guidata(hObject, handles);
 set(gcf,‘NumberTitle’, ‘off’, ‘Name’, ‘经济调度模糊满意度评价模块’);
% UIWAIT makes guimh wait for user response (see UIRESUME)
 % uiwait(handles.figure1);
% — Outputs from this function are returned to the command line.
 function varargout = guimh_OutputFcn(hObject, eventdata, handles)
 % varargout cell array for returning output args (see VARARGOUT);
 % hObject handle to figure
 % eventdata reserved - to be defined in a future version of MATLAB
 % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
 varargout{1} = handles.output;
% — Executes on button press in pushbutton1.
 function pushbutton1_Callback(hObject, eventdata, handles)
 % hObject handle to pushbutton1 (see GCBO)
 % eventdata reserved - to be defined in a future version of MATLAB
 % handles structure with handles and user data (see GUIDATA)
 a = cell2mat(get(handles.pjjtable,‘data’));
 d = cell2mat(get(handles.ysjtable,‘data’));
 ci = cell2mat(get(handles.pjftable,‘data’));
 % a=v;
 % d=u;
 [m,n]=size(a);
 [x,y]=size(d);
 TheResultMoHu=[];
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 for s=1:x
 for p=1:n
 b§=d(s,p);
 end
 for i=1:n %计算每一个列的平均值
 ColAverage(i)=0;
 for j=1:m
 ColAverage(i)=ColAverage(i)+a(j,i);
 end
 ColAverage(i)=ColAverage(i)/m;
 end
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 ETotal = 0; %超标加权法计算权重
 for j = 1: n
 ETotal = ETotal + (b(j) / ColAverage(j));
 end
 for i = 1: n
 EResult(i) = (b(i) / ColAverage(i)) / ETotal; %EResult为计算结果
 end
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %使用隶属函数,做预处理对每一列进行排序
 SortedMatrix=a;
 for j=1:n
 for i=1:m
 for k=i:m
 if SortedMatrix(i,j)>SortedMatrix(k,j)
 tmp=SortedMatrix(i,j);
 SortedMatrix(i,j)=SortedMatrix(k,j);
 SortedMatrix(k,j)=tmp;
 end
 end
 end
 end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%计算单因素隶属度
c=SortedMatrix;
for j = 1 : n
           for i = 1 : m
                for k = 1 : m
                    if a(i, j) == c(k, j)
                        if k == 1
                            if b(j) < c(k, j)
                                LSDResult(j, i) = 1;
                            end
                            if b(j) >= c(k, j) & b(j) < c(k + 1, j)
                                LSDResult(j, i) = ((c(k + 1, j) - b(j)) / (c(k + 1, j) - c(k, j)));
                            end
                            if b(j) >= c(k + 1, j)
                                LSDResult(j, i) = 0;
                            end
                        end
                        if k > 1 & k < m
                            if b(j) < c(k - 1, j)
                                LSDResult(j, i) = 0;
                            end
                            if b(j) >= c(k - 1, j) & b(j) < c(k, j)
                                LSDResult(j, i) = ((b(j) - c(k - 1, j)) / (c(k, j) - c(k - 1, j)));
                            end
                            if b(j) >= c(k, j) & b(j) < c(k + 1, j)
                                LSDResult(j, i) = ((c(k + 1, j) - b(j)) / (c(k + 1, j) - c(k, j)));
                            end
                            if b(j) >= c(k + 1, j)
                                LSDResult(j, i) = 0;
                            end
                        end
                        if k == m
                            if b(j) < c(k - 1, j)
                                LSDResult(j, i) = 0;
                            end
                            if b(j) >= c(k - 1, j) & b(j) < c(k, j)
                                LSDResult(j, i) = ((b(j) - c(k - 1, j)) / (c(k, j) - c(k - 1, j)));
                            end
                            if b(j) >= c(k, j)
                                LSDResult(j, i) = 1;
                            end
                        end
                    end
                end
           end
end
⛄三、运行结果

 
 
 
 
⛄四、matlab版本及参考文献
1 matlab版本
 2014a
2 参考文献
 [1]李安乐,田晶京,赵峰,高锋阳.含光伏电源的配电网潮流计算[J].电测与仪表. 2020,57(10)



![[附源码]计算机毕业设计JAVA旅游景点推荐系统](https://img-blog.csdnimg.cn/a962a69f30b345fbafe270e1f9faf976.png)






![[附源码]java毕业设计医院管理系统](https://img-blog.csdnimg.cn/0e32114616bf48c5ac190e57a1c99872.png)








