diff --git a/R2021a/Library/Source_Lib.slx b/R2021a/Library/Source_Lib.slx deleted file mode 100644 index 2768556..0000000 Binary files a/R2021a/Library/Source_Lib.slx and /dev/null differ diff --git a/R2021a/Examples/2-Level/GFL/L-filter/Copy_of_GFL_test.slx b/R2021a/R2021a/Examples/2-Level/GFL/L-filter/Copy_of_GFL_test.slx similarity index 100% rename from R2021a/Examples/2-Level/GFL/L-filter/Copy_of_GFL_test.slx rename to R2021a/R2021a/Examples/2-Level/GFL/L-filter/Copy_of_GFL_test.slx diff --git a/R2021a/Examples/2-Level/GFL/L-filter/GFL_test.slx b/R2021a/R2021a/Examples/2-Level/GFL/L-filter/GFL_test.slx similarity index 100% rename from R2021a/Examples/2-Level/GFL/L-filter/GFL_test.slx rename to R2021a/R2021a/Examples/2-Level/GFL/L-filter/GFL_test.slx diff --git a/R2021a/Examples/2-Level/GFL/L-filter/Main_script.m b/R2021a/R2021a/Examples/2-Level/GFL/L-filter/Main_script.m similarity index 100% rename from R2021a/Examples/2-Level/GFL/L-filter/Main_script.m rename to R2021a/R2021a/Examples/2-Level/GFL/L-filter/Main_script.m diff --git a/R2021a/Examples/2-Level/GFM/L-Filter/GFM_L_Filter.slx b/R2021a/R2021a/Examples/2-Level/GFM/L-Filter/GFM_L_Filter.slx similarity index 100% rename from R2021a/Examples/2-Level/GFM/L-Filter/GFM_L_Filter.slx rename to R2021a/R2021a/Examples/2-Level/GFM/L-Filter/GFM_L_Filter.slx diff --git a/R2021a/Examples/2-Level/GFM/L-Filter/GFM_L_Filter_Init.m b/R2021a/R2021a/Examples/2-Level/GFM/L-Filter/GFM_L_Filter_Init.m similarity index 100% rename from R2021a/Examples/2-Level/GFM/L-Filter/GFM_L_Filter_Init.m rename to R2021a/R2021a/Examples/2-Level/GFM/L-Filter/GFM_L_Filter_Init.m diff --git a/R2021a/Examples/2-Level/GFM/L-Filter/README.md b/R2021a/R2021a/Examples/2-Level/GFM/L-Filter/README.md similarity index 100% rename from R2021a/Examples/2-Level/GFM/L-Filter/README.md rename to R2021a/R2021a/Examples/2-Level/GFM/L-Filter/README.md diff --git a/R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_CC.slx b/R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_CC.slx new file mode 100644 index 0000000..9eed2ff Binary files /dev/null and b/R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_CC.slx differ diff --git a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter.slx b/R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter.slx similarity index 73% rename from R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter.slx rename to R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter.slx index 260c713..ff66082 100644 Binary files a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter.slx and b/R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter.slx differ diff --git a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter_Init.m b/R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter_Init.m similarity index 100% rename from R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter_Init.m rename to R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/GFM_LCL_Filter_Init.m diff --git a/R2021a/Examples/2-Level/GFM/LCL-filter/README.md b/R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/README.md similarity index 100% rename from R2021a/Examples/2-Level/GFM/LCL-filter/README.md rename to R2021a/R2021a/Examples/2-Level/GFM/LCL-filter/README.md diff --git a/R2021a/Examples/2-Level/GFM/MMC/GFM_MMC.slx b/R2021a/R2021a/Examples/2-Level/GFM/MMC/GFM_MMC.slx similarity index 100% rename from R2021a/Examples/2-Level/GFM/MMC/GFM_MMC.slx rename to R2021a/R2021a/Examples/2-Level/GFM/MMC/GFM_MMC.slx diff --git a/R2021a/Examples/2-Level/Grids/29bus/GFo_29bus.slx b/R2021a/R2021a/Examples/2-Level/Grids/29bus/GFo_29bus.slx similarity index 100% rename from R2021a/Examples/2-Level/Grids/29bus/GFo_29bus.slx rename to R2021a/R2021a/Examples/2-Level/Grids/29bus/GFo_29bus.slx diff --git a/R2021a/Examples/2-Level/Grids/29bus/Init_29bus.m b/R2021a/R2021a/Examples/2-Level/Grids/29bus/Init_29bus.m similarity index 100% rename from R2021a/Examples/2-Level/Grids/29bus/Init_29bus.m rename to R2021a/R2021a/Examples/2-Level/Grids/29bus/Init_29bus.m diff --git a/R2021a/Examples/2-Level/Grids/5bus/GFo_5bus.slx b/R2021a/R2021a/Examples/2-Level/Grids/5bus/GFo_5bus.slx similarity index 100% rename from R2021a/Examples/2-Level/Grids/5bus/GFo_5bus.slx rename to R2021a/R2021a/Examples/2-Level/Grids/5bus/GFo_5bus.slx diff --git a/R2021a/Examples/2-Level/Grids/5bus/Init_5bus.m b/R2021a/R2021a/Examples/2-Level/Grids/5bus/Init_5bus.m similarity index 100% rename from R2021a/Examples/2-Level/Grids/5bus/Init_5bus.m rename to R2021a/R2021a/Examples/2-Level/Grids/5bus/Init_5bus.m diff --git a/R2021a/Library/Control_Lib.slx b/R2021a/R2021a/Library/Control_Lib.slx similarity index 100% rename from R2021a/Library/Control_Lib.slx rename to R2021a/R2021a/Library/Control_Lib.slx diff --git a/R2021a/Library/Copy_of_GFe_Lib.slx b/R2021a/R2021a/Library/Copy_of_GFe_Lib.slx similarity index 100% rename from R2021a/Library/Copy_of_GFe_Lib.slx rename to R2021a/R2021a/Library/Copy_of_GFe_Lib.slx diff --git a/R2021a/Library/GFL_Lib.slx b/R2021a/R2021a/Library/GFL_Lib.slx similarity index 72% rename from R2021a/Library/GFL_Lib.slx rename to R2021a/R2021a/Library/GFL_Lib.slx index 29ffc8e..5e7041a 100644 Binary files a/R2021a/Library/GFL_Lib.slx and b/R2021a/R2021a/Library/GFL_Lib.slx differ diff --git a/R2021a/Library/GFM_Lib.slx b/R2021a/R2021a/Library/GFM_Lib.slx similarity index 69% rename from R2021a/Library/GFM_Lib.slx rename to R2021a/R2021a/Library/GFM_Lib.slx index 0109502..c778c8d 100644 Binary files a/R2021a/Library/GFM_Lib.slx and b/R2021a/R2021a/Library/GFM_Lib.slx differ diff --git a/R2021a/Library/GFe_Lib.slx b/R2021a/R2021a/Library/GFe_Lib.slx similarity index 100% rename from R2021a/Library/GFe_Lib.slx rename to R2021a/R2021a/Library/GFe_Lib.slx diff --git a/R2021a/Library/GFo_Lib.slx b/R2021a/R2021a/Library/GFo_Lib.slx similarity index 100% rename from R2021a/Library/GFo_Lib.slx rename to R2021a/R2021a/Library/GFo_Lib.slx diff --git a/R2021a/Library/Init_Base.m b/R2021a/R2021a/Library/Init_Base.m similarity index 100% rename from R2021a/Library/Init_Base.m rename to R2021a/R2021a/Library/Init_Base.m diff --git a/R2021a/R2021a/Library/Init_Base_SM.m b/R2021a/R2021a/Library/Init_Base_SM.m new file mode 100644 index 0000000..bb0bf91 --- /dev/null +++ b/R2021a/R2021a/Library/Init_Base_SM.m @@ -0,0 +1,20 @@ +%% Compute Base values +% Can be used for all models +% Index 1 = VSC side +% Index 2 = grid side + fb = fn; + Pb = Pn; + cos_phi_n = Pn/Sn; + Sb = Pb/cos_phi_n; + Vn1 = Un1/sqrt(3); + Vb1 = Vn1; + Vn2 = Un2/sqrt(3); + Vb2 = Vn2; + Ib1 = Sb / (3*Vb1); + Ib2 = Sb / (3*Vb2); + Zb = (3*Vb1^2)/Sb; + wb = 2*pi*fb; wb_pu=1; + Lb = Zb/wb; + Cb = 1/(Zb*wb); +% Vdcb = Udcn; +% Idcb = Pb / Vdcb; \ No newline at end of file diff --git a/R2021a/Library/Init_Cdc.m b/R2021a/R2021a/Library/Init_Cdc.m similarity index 100% rename from R2021a/Library/Init_Cdc.m rename to R2021a/R2021a/Library/Init_Cdc.m diff --git a/R2021a/Library/Init_Delay.m b/R2021a/R2021a/Library/Init_Delay.m similarity index 100% rename from R2021a/Library/Init_Delay.m rename to R2021a/R2021a/Library/Init_Delay.m diff --git a/R2021a/Library/Init_GFL.m b/R2021a/R2021a/Library/Init_GFL.m similarity index 60% rename from R2021a/Library/Init_GFL.m rename to R2021a/R2021a/Library/Init_GFL.m index 38e58fb..d1f646f 100644 --- a/R2021a/Library/Init_GFL.m +++ b/R2021a/R2021a/Library/Init_GFL.m @@ -5,13 +5,13 @@ Lf_pu = Lc_eq; %Lt_pu; Rf_pu = Rc_eq; %Rt_pu; %wn_i = 3/Tr_i; - Kp_i = 2*zeta_i*wn_i*Lf_pu/wb-Rf_pu; - Ti_i = 2*zeta_i/wn_i-Rf_pu/(wn_i^2*Lf_pu/wb); - Ki_i = Kp_i/Ti_i; + %Kp_i = 2*zeta_i*wn_i*Lf_pu/wb-Rf_pu; + %Ti_i = 2*zeta_i/wn_i-Rf_pu/(wn_i^2*Lf_pu/wb); + %Ki_i = Kp_i/Ti_i; %Kffi = 1; % Ki_i = Rt_pu*wn_i; % Kp_i = Lt_pu/wb*wn_i; - Ki_i = 0;%Rc_eq*wn_i; + Ki_i = Rc_eq*wn_i; Kp_i = Lc_eq/wb*wn_i; \ No newline at end of file diff --git a/R2021a/Library/Init_GFM.m b/R2021a/R2021a/Library/Init_GFM.m similarity index 100% rename from R2021a/Library/Init_GFM.m rename to R2021a/R2021a/Library/Init_GFM.m diff --git a/R2021a/Library/Init_GFM_CC.m b/R2021a/R2021a/Library/Init_GFM_CC.m similarity index 100% rename from R2021a/Library/Init_GFM_CC.m rename to R2021a/R2021a/Library/Init_GFM_CC.m diff --git a/R2021a/Library/Init_LF_L.m b/R2021a/R2021a/Library/Init_LF_L.m similarity index 100% rename from R2021a/Library/Init_LF_L.m rename to R2021a/R2021a/Library/Init_LF_L.m diff --git a/R2021a/Library/Init_LF_LCL.m b/R2021a/R2021a/Library/Init_LF_LCL.m similarity index 100% rename from R2021a/Library/Init_LF_LCL.m rename to R2021a/R2021a/Library/Init_LF_LCL.m diff --git a/R2021a/Library/Init_LF_LCL_old.m b/R2021a/R2021a/Library/Init_LF_LCL_old.m similarity index 100% rename from R2021a/Library/Init_LF_LCL_old.m rename to R2021a/R2021a/Library/Init_LF_LCL_old.m diff --git a/R2021a/Library/Init_LF_L_old.m b/R2021a/R2021a/Library/Init_LF_L_old.m similarity index 100% rename from R2021a/Library/Init_LF_L_old.m rename to R2021a/R2021a/Library/Init_LF_L_old.m diff --git a/R2021a/Library/Init_LF_MMC.m b/R2021a/R2021a/Library/Init_LF_MMC.m similarity index 100% rename from R2021a/Library/Init_LF_MMC.m rename to R2021a/R2021a/Library/Init_LF_MMC.m diff --git a/R2021a/R2021a/Library/Init_LF_SM.m b/R2021a/R2021a/Library/Init_LF_SM.m new file mode 100644 index 0000000..8971bd0 --- /dev/null +++ b/R2021a/R2021a/Library/Init_LF_SM.m @@ -0,0 +1,48 @@ +%% Initialization file for model with an output L-filter +% Compute initial state of power and control component +% Can be used for 2-level or MMC VSCs + +% Compute the delay compensation between control and power parts + %if (Time_Step == -1) + % Solver_Time_Step = 0; + %else + % Solver_Time_Step = Time_Step; + %end + +% Compute Initial Voltage of VSC +% from steady-state output transformer model and Loadflow result + + R1_pu = Rt_pu/2; + L1_pu = Lt_pu/2; + R2_pu = Rt_pu/2; + L2_pu = Lt_pu/2; + X1_pu = L1_pu; + X2_pu = L2_pu; + Xm_pu = Lm_pu; + + Zm_pu = 1/(1/Rm_pu+1/(1i*Xm_pu)); + + Vpcc = V0*exp(1i*Theta0/180*pi); + + S0=P0+1i*Q0; + I2 = conj(S0/Vpcc); +% I2 = conj(S0)/V0; + + Vm = (R2_pu+1i*X2_pu)*I2 + Vpcc; + Im = Vm/Zm_pu; + + I1 = I2 + Im; + V1 = (R1_pu+1i*X1_pu) * I1 + Vm; + + Vm0 = abs(V1); + Theta_Vm0 = angle(V1) * 180/pi+Theta0; + + Vvsc0 = Vm0; + Theta_Vvsc0 = Theta_Vm0; + + +% Generate string to display LF results on Mask + mo = get_param(gcb,'MaskObject'); + mo.getDialogControl('LF_vsc_str').Prompt = ['V0 = ', num2str(Vvsc0),' pu, Angle = ', num2str(Theta_Vvsc0),'°']; + mo.getDialogControl('LF_pcc_str').Prompt = ['V0 = ', num2str(V0),' pu, Angle = ', num2str(Theta0),'°']; + mo.getDialogControl('LF_pcc_Power_str').Prompt = ['P0 = ', num2str(P0),' pu, Q0 = ', num2str(Q0),' pu']; \ No newline at end of file diff --git a/R2021a/Library/Init_MMC.m b/R2021a/R2021a/Library/Init_MMC.m similarity index 100% rename from R2021a/Library/Init_MMC.m rename to R2021a/R2021a/Library/Init_MMC.m diff --git a/R2021a/R2021a/Library/Init_SM.m b/R2021a/R2021a/Library/Init_SM.m new file mode 100644 index 0000000..d651ba3 --- /dev/null +++ b/R2021a/R2021a/Library/Init_SM.m @@ -0,0 +1,42 @@ +% +Ism = I1 + conj(Paux/V1); + +Ssm = V1*conj(Ism); +Psm = real(Ssm); +Qsm = imag(Ssm); +cos_phi = Psm/abs(Ssm); +sin_phi = Qsm/abs(Ssm); +phi = atan(Qsm/Psm); + +Vsum = abs(V1); +Vangle = angle(V1); +Isum = abs(Ism); +Iangle = angle(Ism); +% current init +ia0 = Isum ; +ib0 = Isum ; +ic0 = Isum ; + +pha0 = Iangle*180/pi; +phb0 = Iangle*180/pi -120; +phc0 = Iangle*180/pi + 120; + +Xaaqu = SM_Ll + SM_Lmq; +Xaadu = SM_Ll + SM_Lmd; +Rau = SM_Rs; + +deltai = atan((Xaaqu*Isum*cos_phi-Rau*Isum*sin_phi)/... + (Vsum+Xaaqu*Isum*sin_phi+Rau*Isum*cos_phi));... + +delta0 = (deltai + Vangle)*180/pi-90; + +Isqu = Isum*cos(phi+deltai); +Isdu = Isum*sin(phi+deltai); +Vsqu = Vsum*cos(deltai); + +Ifdu = 1/SM_Lmd*(Vsqu + Rau*Isqu + Xaadu*Isdu); +Efdu = SM_Rf * Ifdu; +N = SM_Rf/SM_Lmd; +Vfu0 = Efdu/N; + +Cmu0 = Psm + Rau*Isum*Isum; \ No newline at end of file diff --git a/R2021a/Library/Init_VI.m b/R2021a/R2021a/Library/Init_VI.m similarity index 100% rename from R2021a/Library/Init_VI.m rename to R2021a/R2021a/Library/Init_VI.m diff --git a/R2021a/Library/Init_VI_mmc.m b/R2021a/R2021a/Library/Init_VI_mmc.m similarity index 100% rename from R2021a/Library/Init_VI_mmc.m rename to R2021a/R2021a/Library/Init_VI_mmc.m diff --git a/R2021a/Library/LoadFlow_VSC.m b/R2021a/R2021a/Library/LoadFlow_VSC.m similarity index 62% rename from R2021a/Library/LoadFlow_VSC.m rename to R2021a/R2021a/Library/LoadFlow_VSC.m index 59ea95d..6758e9b 100644 --- a/R2021a/Library/LoadFlow_VSC.m +++ b/R2021a/R2021a/Library/LoadFlow_VSC.m @@ -4,6 +4,10 @@ VSC_Lib_handle.VSC.idx = find_system(model2update,'MaskType','VSC'); VSC_Lib_handle.VSC.to_be_linked = zeros(1,length(VSC_Lib_handle.VSC.idx)); +% Search All synchronous machines by looking for the Masktype +VSC_Lib_handle.SM.idx = find_system(model2update,'MaskType','SM'); +VSC_Lib_handle.SM.to_be_linked = zeros(1,length(VSC_Lib_handle.SM.idx)); + %% Search All Generic Voltage Source by looking for the Masktype VSC_Lib_handle.GenVSource.idx = find_system(model2update,'MaskType','GenericVoltageSource'); VSC_Lib_handle.GenVSource.to_be_linked = zeros(1,length(VSC_Lib_handle.GenVSource.idx)); @@ -21,7 +25,7 @@ VSC_Lib_handle.VSC.to_be_linked(i) = 0; end set_param([VSC_Lib_handle.VSC.idx{i} '/Source_For_LF'],'Commented','off','Frequency','fb','PhaseAngle','0','Voltage','Un2'); - set_param([VSC_Lib_handle.VSC.idx{i} '/Output_Transformer'],'Commented','on'); + set_param([VSC_Lib_handle.VSC.idx{i} '/Output_Transformer'],'Commented','on'); set_param([VSC_Lib_handle.VSC.idx{i} '/Bridge_Model'],'Commented','on'); set_param([VSC_Lib_handle.VSC.idx{i} '/Bridge_Model/Three-Phase Source'],'Voltage','Vm0*Un1','PhaseAngle','Theta_Vm0','Frequency','fb'); @@ -30,6 +34,24 @@ VSC_Lib_handle.Ub = max(VSC_Lib_handle.Ub, evalin('base',get_param([VSC_Lib_handle.VSC.idx{i}],'Un2'))); end +for i=1:length(VSC_Lib_handle.SM.idx) + if (strcmp(get_param(VSC_Lib_handle.SM.idx{i},'LinkStatus'),'resolved')) + set_param(VSC_Lib_handle.SM.idx{i}, 'LinkStatus', 'inactive'); + VSC_Lib_handle.SM.to_be_linked(i) = 1; + else + VSC_Lib_handle.SM.to_be_linked(i) = 0; + end + set_param([VSC_Lib_handle.SM.idx{i} '/Source_For_LF'],'Commented','off','Frequency','fb','PhaseAngle','0','Voltage','Un2'); + set_param([VSC_Lib_handle.SM.idx{i} '/Output_Transformer'],'Commented','on'); + set_param([VSC_Lib_handle.SM.idx{i} '/SG'],'Commented','on'); + set_param([VSC_Lib_handle.SM.idx{i} '/Aux'],'Commented','on'); + set_param([VSC_Lib_handle.SM.idx{i} '/Selector'],'Commented','on'); + + VSC_Lib_handle.Sb = max(VSC_Lib_handle.Sb, evalin('base',get_param([VSC_Lib_handle.SM.idx{i}],'Sn'))); + VSC_Lib_handle.fb = max(VSC_Lib_handle.fb, evalin('base',get_param([VSC_Lib_handle.SM.idx{i}],'fn'))); + VSC_Lib_handle.Ub = max(VSC_Lib_handle.Ub, evalin('base',get_param([VSC_Lib_handle.SM.idx{i}],'Un2'))); +end + for i=1:length(VSC_Lib_handle.GenVSource.idx) if (strcmp(get_param(VSC_Lib_handle.GenVSource.idx{i},'LinkStatus'),'resolved')) set_param(VSC_Lib_handle.GenVSource.idx{i}, 'LinkStatus', 'inactive'); @@ -71,6 +93,11 @@ set_param(VSC_Lib_handle.VSC.idx{i}, 'LinkStatus', 'restore'); end end + for i=1:length(VSC_Lib_handle.SM.idx) + if (VSC_Lib_handle.SM.to_be_linked == 1) + set_param(VSC_Lib_handle.SM.idx{i}, 'LinkStatus', 'restore'); + end + end for i=1:length(VSC_Lib_handle.GenVSource.idx) if (VSC_Lib_handle.GenVSource.to_be_linked == 1) set_param(VSC_Lib_handle.GenVSource.idx{i}, 'LinkStatus', 'restore'); @@ -107,18 +134,45 @@ set_param(VSC_Lib_handle.VSC.idx{i}, 'LinkStatus', 'restore'); end end +%% Update all VSC with a Masktype equal to 'SM' +for i=1:length(VSC_Lib_handle.SM.idx) + % look at the line in the Loadflow related to the internal fake + % Voltage source + Vsm_handle = find_system(VSC_Lib_handle.SM.idx{i},'FindAll','on','LookUnderMasks','on','IncludeCommented','on','Name','Source_For_LF'); + for j=1:length(LF.vsrc) + if (LF.vsrc(j).handle == Vsm_handle) + Vsrc_idx = j; + Pb_VSC = evalin('base', get_param(VSC_Lib_handle.SM.idx{i},'Sn')); + %set_param(VSC_idx{i},'V_mag_0',num2str(LF.bus(test).vbase * abs(LF.bus(test).Vbus) / sqrt(3)),'Theta0',num2str(angle(LF.bus(test).Vbus) * 180/pi)); + set_param(VSC_Lib_handle.SM.idx{i},'V0',num2str(abs(LF.vsrc(Vsrc_idx).Vt)),'Theta0',num2str(angle(LF.vsrc(Vsrc_idx).Vt) * 180/pi)); + set_param(VSC_Lib_handle.SM.idx{i},'P0',num2str(real(LF.vsrc(Vsrc_idx).S)*LF_Pbase/Pb_VSC),'Q0',num2str(imag(LF.vsrc(Vsrc_idx).S)*LF_Pbase/Pb_VSC)); + %p.setParameters('V_mag_0') = LF.bus(test).vbase * LF.bus(test).vref / sqrt(3); + %p.setParameters('Theta0') = LF.bus(test).angle; + end + end + + set_param([VSC_Lib_handle.SM.idx{i} '/Source_For_LF'],'Commented','on'); + set_param([VSC_Lib_handle.SM.idx{i} '/Output_Transformer'],'Commented','off'); + set_param([VSC_Lib_handle.SM.idx{i} '/SG'],'Commented','off'); + set_param([VSC_Lib_handle.SM.idx{i} '/Aux'],'Commented','off'); + set_param([VSC_Lib_handle.SM.idx{i} '/Selector'],'Commented','off'); + + if (VSC_Lib_handle.SM.to_be_linked(i) == 1) + set_param(VSC_Lib_handle.VSC.idx{i}, 'LinkStatus', 'restore'); + end +end %% Update all Generic Voltage Sources for i=1:length(VSC_Lib_handle.GenVSource.idx) block_name = get_param(VSC_Lib_handle.GenVSource.idx{i},'Name'); test = find(strcmp({LF.bus.ID},block_name)); - %GenVSource_Sb = eval(get_param(VSC_Lib_handle.GenVSource.idx{i},'Sn')); + GenVSource_Sb = eval(get_param(VSC_Lib_handle.GenVSource.idx{i},'Sn')); %GenVSource_Vb = eval(get_param(VSC_Lib_handle.GenVSource.idx{i},'Un'))/sqrt(3); if (isempty(test)==0) % if a loadflow bus with the same name as the block name exists, then execute the following configuration of the block: - set_param(VSC_Lib_handle.GenVSource.idx{i},'V0_pu',num2str(abs(LF.bus(test).Vbus)),'Theta0_deg',num2str(angle(LF.bus(test).Vbus)*180/pi)); - set_param(VSC_Lib_handle.GenVSource.idx{i},'P0',num2str(real(LF.bus(test).Sbus)*LF_Pbase),'Q0',num2str(imag(LF.bus(test).Sbus)*LF_Pbase)); + set_param(VSC_Lib_handle.GenVSource.idx{i},'V0',num2str(abs(LF.bus(test).Vbus)),'Theta0',num2str(angle(LF.bus(test).Vbus)*180/pi)); + set_param(VSC_Lib_handle.GenVSource.idx{i},'P0',num2str(real(LF.bus(test).Sbus)*LF_Pbase/GenVSource_Sb),'Q0',num2str(imag(LF.bus(test).Sbus)*LF_Pbase/GenVSource_Sb)); end diff --git a/R2021a/Library/MMC.slx b/R2021a/R2021a/Library/MMC.slx similarity index 100% rename from R2021a/Library/MMC.slx rename to R2021a/R2021a/Library/MMC.slx diff --git a/R2021a/R2021a/Library/Source_Lib.slx b/R2021a/R2021a/Library/Source_Lib.slx new file mode 100644 index 0000000..12172ce Binary files /dev/null and b/R2021a/R2021a/Library/Source_Lib.slx differ diff --git a/R2021a/Library/VSC_Lib.slx b/R2021a/R2021a/Library/VSC_Lib.slx similarity index 100% rename from R2021a/Library/VSC_Lib.slx rename to R2021a/R2021a/Library/VSC_Lib.slx diff --git a/R2021a/Library/allparams.m b/R2021a/R2021a/Library/allparams.m similarity index 100% rename from R2021a/Library/allparams.m rename to R2021a/R2021a/Library/allparams.m diff --git a/R2021a/Library/inertia.png b/R2021a/R2021a/Library/inertia.png similarity index 100% rename from R2021a/Library/inertia.png rename to R2021a/R2021a/Library/inertia.png diff --git a/R2021a/Library/infinite.png b/R2021a/R2021a/Library/infinite.png similarity index 100% rename from R2021a/Library/infinite.png rename to R2021a/R2021a/Library/infinite.png diff --git a/R2021a/Library/link_lib_sps.m b/R2021a/R2021a/Library/link_lib_sps.m similarity index 100% rename from R2021a/Library/link_lib_sps.m rename to R2021a/R2021a/Library/link_lib_sps.m diff --git a/R2021a/Library/slblocks.m b/R2021a/R2021a/Library/slblocks.m similarity index 100% rename from R2021a/Library/slblocks.m rename to R2021a/R2021a/Library/slblocks.m diff --git a/R2021a/README.md b/R2021a/R2021a/README.md similarity index 100% rename from R2021a/README.md rename to R2021a/R2021a/README.md diff --git a/R2021a/Tutorial/01_Initialization/Init.m b/R2021a/R2021a/Tutorial/01_Initialization/Init.m similarity index 100% rename from R2021a/Tutorial/01_Initialization/Init.m rename to R2021a/R2021a/Tutorial/01_Initialization/Init.m diff --git a/R2021a/Tutorial/01_Initialization/Initialization.slx b/R2021a/R2021a/Tutorial/01_Initialization/Initialization.slx similarity index 100% rename from R2021a/Tutorial/01_Initialization/Initialization.slx rename to R2021a/R2021a/Tutorial/01_Initialization/Initialization.slx diff --git a/R2021a/Tutorial/01_Initialization/Solution/Initialization.slx b/R2021a/R2021a/Tutorial/01_Initialization/Solution/Initialization.slx similarity index 100% rename from R2021a/Tutorial/01_Initialization/Solution/Initialization.slx rename to R2021a/R2021a/Tutorial/01_Initialization/Solution/Initialization.slx diff --git a/R2021a/Tutorial/01_Initialization/Solution/Solution.m b/R2021a/R2021a/Tutorial/01_Initialization/Solution/Solution.m similarity index 100% rename from R2021a/Tutorial/01_Initialization/Solution/Solution.m rename to R2021a/R2021a/Tutorial/01_Initialization/Solution/Solution.m diff --git a/R2021a/Tutorial/02_Controlled_Source/Init.m b/R2021a/R2021a/Tutorial/02_Controlled_Source/Init.m similarity index 100% rename from R2021a/Tutorial/02_Controlled_Source/Init.m rename to R2021a/R2021a/Tutorial/02_Controlled_Source/Init.m diff --git a/R2021a/Tutorial/02_Controlled_Source/controlled_source.slx b/R2021a/R2021a/Tutorial/02_Controlled_Source/controlled_source.slx similarity index 100% rename from R2021a/Tutorial/02_Controlled_Source/controlled_source.slx rename to R2021a/R2021a/Tutorial/02_Controlled_Source/controlled_source.slx diff --git a/R2021a/Tutorial/03_Loadflow/Init.m b/R2021a/R2021a/Tutorial/03_Loadflow/Init.m similarity index 100% rename from R2021a/Tutorial/03_Loadflow/Init.m rename to R2021a/R2021a/Tutorial/03_Loadflow/Init.m diff --git a/R2021a/Tutorial/03_Loadflow/Loadflow1_1_source.slx b/R2021a/R2021a/Tutorial/03_Loadflow/Loadflow1_1_source.slx similarity index 100% rename from R2021a/Tutorial/03_Loadflow/Loadflow1_1_source.slx rename to R2021a/R2021a/Tutorial/03_Loadflow/Loadflow1_1_source.slx diff --git a/R2021a/Tutorial/03_Loadflow/Loadflow2_1_source.slx b/R2021a/R2021a/Tutorial/03_Loadflow/Loadflow2_1_source.slx similarity index 100% rename from R2021a/Tutorial/03_Loadflow/Loadflow2_1_source.slx rename to R2021a/R2021a/Tutorial/03_Loadflow/Loadflow2_1_source.slx diff --git a/R2021a/Tutorial/03_Loadflow/Solution/Solution.m b/R2021a/R2021a/Tutorial/03_Loadflow/Solution/Solution.m similarity index 100% rename from R2021a/Tutorial/03_Loadflow/Solution/Solution.m rename to R2021a/R2021a/Tutorial/03_Loadflow/Solution/Solution.m diff --git a/R2021a/Tutorial/03_Loadflow/Solution/Solution_2.m b/R2021a/R2021a/Tutorial/03_Loadflow/Solution/Solution_2.m similarity index 100% rename from R2021a/Tutorial/03_Loadflow/Solution/Solution_2.m rename to R2021a/R2021a/Tutorial/03_Loadflow/Solution/Solution_2.m diff --git a/R2021a/Tutorial/04_Loadflow_2sources/Init_2_sources.m b/R2021a/R2021a/Tutorial/04_Loadflow_2sources/Init_2_sources.m similarity index 100% rename from R2021a/Tutorial/04_Loadflow_2sources/Init_2_sources.m rename to R2021a/R2021a/Tutorial/04_Loadflow_2sources/Init_2_sources.m diff --git a/R2021a/Tutorial/04_Loadflow_2sources/LF_auto.m b/R2021a/R2021a/Tutorial/04_Loadflow_2sources/LF_auto.m similarity index 100% rename from R2021a/Tutorial/04_Loadflow_2sources/LF_auto.m rename to R2021a/R2021a/Tutorial/04_Loadflow_2sources/LF_auto.m diff --git a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow2.slx b/R2021a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow2.slx similarity index 100% rename from R2021a/Tutorial/04_Loadflow_2sources/Loadflow2.slx rename to R2021a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow2.slx diff --git a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow3.slx b/R2021a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow3.slx similarity index 100% rename from R2021a/Tutorial/04_Loadflow_2sources/Loadflow3.slx rename to R2021a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow3.slx diff --git a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow4.slx b/R2021a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow4.slx similarity index 100% rename from R2021a/Tutorial/04_Loadflow_2sources/Loadflow4.slx rename to R2021a/R2021a/Tutorial/04_Loadflow_2sources/Loadflow4.slx diff --git a/R2021a/Tutorial/04_Loadflow_2sources/Solution/Solution.m b/R2021a/R2021a/Tutorial/04_Loadflow_2sources/Solution/Solution.m similarity index 100% rename from R2021a/Tutorial/04_Loadflow_2sources/Solution/Solution.m rename to R2021a/R2021a/Tutorial/04_Loadflow_2sources/Solution/Solution.m diff --git a/R2021a/Tutorial/04_Loadflow_2sources/Solution/Solution_2.m b/R2021a/R2021a/Tutorial/04_Loadflow_2sources/Solution/Solution_2.m similarity index 100% rename from R2021a/Tutorial/04_Loadflow_2sources/Solution/Solution_2.m rename to R2021a/R2021a/Tutorial/04_Loadflow_2sources/Solution/Solution_2.m diff --git a/R2021a/Tutorial/init_simul.pdf b/R2021a/R2021a/Tutorial/init_simul.pdf similarity index 100% rename from R2021a/Tutorial/init_simul.pdf rename to R2021a/R2021a/Tutorial/init_simul.pdf diff --git a/R2021a/setup_VSC_Lib.m b/R2021a/R2021a/setup_VSC_Lib.m similarity index 100% rename from R2021a/setup_VSC_Lib.m rename to R2021a/R2021a/setup_VSC_Lib.m