-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCalcPTDF_3d.m
More file actions
65 lines (58 loc) · 1.66 KB
/
Copy pathCalcPTDF_3d.m
File metadata and controls
65 lines (58 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
clear
p='c:\users\zactus\feederReduction\13Bus\IEEE13Nodeckt.dss';
global o;
o = actxserver('OpendssEngine.dss');
o.Start(0);
dssText = o.Text;
dssText.Command = 'Clear';
cDir = pwd;
dssText.Command = ['Compile "' p '"'];
cd(cDir);
dssText.Command = 'Set controlmode = off';
dssText.Command = ['Set mode = snapshot' ];
dssText.Command = ['Set stepsize = 30s'];
dssText.Command = 'Set number = 1'; % number of time steps or solutions to run or the number of Monte Carlo cases to run.
dssCircuit = o.ActiveCircuit;
dssSolution = dssCircuit.Solution;
dssSolution.MaxControlIterations=1000;
dssSolution.MaxIterations=500;
dssSolution.InitSnap; % Initialize Snapshot solution
dssSolution.dblHour = 0.0;
%% Run Base Simulation
for kk=1:10
dssCircuit.Loads.First;
for ii=1:15
dssCircuit.Loads.kw=dssCircuit.Loads.kw*(kk/10);
dssCircuit.Loads.Next;
end
NodeOrder=dssCircuit.AllNodeNames;
dssSolution.Solve;
V_o(:,kk)=dssCircuit.AllBusVmagPu;
dssCircuit.Loads.First;
for ii=1:15
loadOrig=dssCircuit.Loads.kw;
kvarOrig=dssCircuit.Loads.kvar;
dssCircuit.Loads.kw=dssCircuit.Loads.kw*((kk-1)/10);
dssCircuit.Loads.kvar=kvarOrig;
dssSolution.Solve;
Vp(ii,:,kk)=dssCircuit.AllBusVmagPu;
dVp(ii,:,kk)=V_o-Vp(ii,:,kk);
dP(ii,:,kk)=loadOrig;
PTDF_p(ii,:,kk)=dVp(ii,:,kk)./dP(ii,:,kk);
dssCircuit.Loads.kw=loadOrig;
dssCircuit.Loads.kvar=kvarOrig;
dssCircuit.Loads.Next;
end
% dssCircuit.Loads.First;
% for ii=1:15
% loadOrig=dssCircuit.Loads.kvar;
% dssCircuit.Loads.kvar=0;
% dssSolution.Solve
% Vq(ii,:)=dssCircuit.AllBusVmagPu;
% dVq(ii,:)=V_o-Vq(ii,:);
% dQ(ii,:)=loadOrig;
% PTDF_q(ii,:)=dVq(ii,:)./dQ(ii,:);
% dssCircuit.Loads.kvar=loadOrig;
% dssCircuit.Loads.Next;
% end
end