Plecs { Name "SRF_PLECS" Version "4.5" CircuitModel "ContStateSpace" StartTime "0.0" TimeSpan "1.0" Timeout "" Solver "auto" MaxStep "1e-3" InitStep "-1" FixedStep "1e-3" Refine "1" ZCStepSize "1e-9" RelTol "1e-3" AbsTol "-1" TurnOnThreshold "0" SyncFixedStepTasks "2" UseSingleCommonBaseRate "2" LossVariableLimitExceededMsg "3" NegativeSwitchLossMsg "3" DivisionByZeroMsg "3" StiffnessDetectionMsg "2" MaxConsecutiveZCs "1000" AlgebraicLoopWithStateMachineMsg "3" AssertionAction "1" InitializationCommands "" InitialState "1" SystemState "" TaskingMode "1" TaskConfigurations "" CodeGenParameterInlining "2" CodeGenFloatingPointFormat "2" CodeGenAbsTimeUsageMsg "3" CodeGenBaseName "" CodeGenOutputDir "" CodeGenExtraOpts "" CodeGenTarget "Generic" CodeGenTargetSettings "" ExtendedMatrixPrecision "1" MatrixSignificanceCheck "2" EnableStateSpaceSplitting "2" DisplayStateSpaceSplitting "1" DiscretizationMethod "2" ExternalModeSettings "" AlgebraicLoopMethod "1" AlgebraicLoopTolerance "1e-6" ScriptsDialogGeometry "" ScriptsDialogSplitterPos "0" Schematic { Location [75, 51; 984, 547] ZoomFactor 1.71498 SliderPosition [0, 0] ShowBrowser off BrowserWidth 100 Component { Type Subsystem Name "SRF-PLL" Show on Position [85, 75] Direction up Flipped off Frame [-25, -20; 25, 20] LabelPosition [0, 23] LabelAlign up SampleTime "-1" CodeGenDiscretizationMethod "2" CodeGenTarget "Generic" MaskType "SRF-PLL" MaskDescription "This block implements a standardized synchronous frame " "PLL. This means that the gain does not depend on the input voltage norm.\n" "\n" "Return values are in radian [0.2pi[ for the phase, in rad/s for the frequency" " and in the same unit as the input for the voltage.\n" "\n" "More informations are available in the Help section." MaskHelp "https://imperix.com/doc/implementation/synchronous-refere" "nce-frame-pll" MaskDisplayLang "2" MaskIconFrame on MaskIconOpaque off MaskIconRotates on MaskInit "if f_out ==2 \n" "\tfc = 9999;\n" "end" MaskDialogCallback "-- Dispaly Kp and Ki only if Advanced is configured" "\n" "if Dialog:get('f_out') == '1' then\n" "\tDialog:set('fc','Visible', true)\n" "else\n" "\tDialog:set('fc','Visible', false)\n" "end" Parameter { Variable "f" Prompt "Nominal frequency [Hz] " Type FreeText Value "50" Show off Tunable on TabName "Parameters" } Parameter { Variable "zeta" Prompt base64 "U1JGLVBMTCBEYW1waW5nIGZhY3RvciDOtiA=" Type FreeText Value "0.707" Show off Tunable on TabName "Parameters" } Parameter { Variable "wc" Prompt "SRF-PLL Bandwidth [Hz] " Type FreeText Value "30" Show off Tunable on TabName "Parameters" } Parameter { Variable "Ts" Prompt "Sample time [s] " Type FreeText Value "Ts" Show off Tunable on TabName "Parameters" } Parameter { Variable "f_out" Prompt "Frequency output" Type FixedText PossibleValues {"Filtered", "Raw"} Value "1" Show off Tunable on TabName "Frequency Output" } Parameter { Variable "fc" Prompt "LPF cut off frequency [Hz] " Type FreeText Value "15" Show off Tunable on TabName "Frequency Output" } Terminal { Type Input Position [-25, 0] Direction left } Terminal { Type Output Position [29, 0] Direction right } Terminal { Type Output Position [29, -10] Direction right } Terminal { Type Output Position [29, 10] Direction right } Schematic { Location [85, 106; 1182, 578] ZoomFactor 1.30957 SliderPosition [0, 0] ShowBrowser off BrowserWidth 100 Component { Type Input Name "Vabc" Show on Position [45, 125] Direction right Flipped off Parameter { Variable "Index" Value "1" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Output Name base64 "zrgn" Show on Position [785, 125] Direction right Flipped off Parameter { Variable "Index" Value "2" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Output Name "w'" Show on Position [785, 60] Direction right Flipped off Parameter { Variable "Index" Value "3" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Sum Name "Sum" Show off Position [540, 125] Direction up Flipped off Parameter { Variable "IconShape" Value "2" Show off } Parameter { Variable "Inputs" Value "|++" Show off } Parameter { Variable "DataType" Value "11" Show off } } Component { Type Constant Name "Constant1" Show off Position [540, 180] Direction up Flipped off Frame [-10, -20; 10, 20] LabelPosition [13, 0] LabelAlign left Parameter { Variable "Value" Value "2*pi*f" Show off } Parameter { Variable "DataType" Value "10" Show off } } Component { Type TransferFunction Name "LPF" Show on Position [665, 65] Direction right Flipped off Frame [-30, -15; 30, 15] LabelPosition [0, 18] LabelAlign up Parameter { Variable "Numerator" Value "[2*pi*fc]" Show off } Parameter { Variable "Denominator" Value "[1 2*pi*fc]" Show off } Parameter { Variable "X0" Value "f/fc" Show off } } Component { Type DiscreteIntegrator Name "Integrator" Show on Position [665, 125] Direction right Flipped off Parameter { Variable "ExternalReset" Value "1" Show off } Parameter { Variable "InitialConditionSource" Value "1" Show off } Parameter { Variable "x0" Value "0" Show off } Parameter { Variable "ShowStatePort" Value "1" Show off } Parameter { Variable "EnableWrapping" Value "2" Show off } Parameter { Variable "UpperLimit" Value "2*pi" Show off } Parameter { Variable "LowerLimit" Value "0" Show off } Parameter { Variable "IntegrationMethod" Value "1" Show off } Parameter { Variable "SampleTime" Value "Ts" Show off } } Component { Type Reference SrcComponent "Components/Control/Discrete/Discrete PID\\nController" Name "Discrete PI Controller" Show on Position [445, 125] Direction up Flipped off Frame [-40, -25; 40, 25] LabelPosition [0, 28] LabelAlign up Parameter { Variable "cont_type" Value "3" Show off } Parameter { Variable "par_source" Value "1" Show off } Parameter { Variable "kp" Value "2*2*pi*wc*zeta" Show off } Parameter { Variable "ki" Value "wc*wc*4*pi*pi" Show off } Parameter { Variable "kd" Value "1" Show off } Parameter { Variable "kf" Value "1" Show off } Parameter { Variable "ex_reset" Value "1" Show off } Parameter { Variable "x0_source" Value "1" Show off } Parameter { Variable "x0" Value "0" Show off } Parameter { Variable "ex_sat" Value "1" Show off } Parameter { Variable "sat_lim" Value "1" Show off } Parameter { Variable "int_method" Value "3" Show off } Parameter { Variable "t_sample" Value "Ts" Show off } Parameter { Variable "up_limit" Value "inf" Show off } Parameter { Variable "low_limit" Value "-inf" Show off } Parameter { Variable "aw_method" Value "1" Show off } Parameter { Variable "kbc" Value "1" Show off } Terminal { Type Input Position [-40, 0] Direction left } Terminal { Type Output Position [44, 0] Direction right } Terminal { Type Input Position [-5, -25] Direction up } Terminal { Type Input Position [5, -25] Direction up } Terminal { Type Input Position [15, -25] Direction up } Terminal { Type Input Position [-40, -15] Direction left } Terminal { Type Input Position [-40, 10] Direction left } Terminal { Type Input Position [25, -25] Direction up } Terminal { Type Input Position [35, -25] Direction up } Terminal { Type Input Position [-40, -20] Direction left } Terminal { Type Input Position [-40, -10] Direction left } Terminal { Type Input Position [-40, 20] Direction left } } Component { Type Function Name "Normalize" Show on Position [315, 125] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[3]/max(u[1],1e-2)" Show off } } Component { Type Reference SrcComponent "Components/Control/Transformations/3ph->RRF" Name "3ph->RRF1" Show off Position [110, 130] Direction up Flipped off Frame [-15, -15; 15, 15] LabelPosition [0, 18] LabelAlign up Terminal { Type Input Position [-15, -5] Direction left } Terminal { Type Output Position [19, 0] Direction right } Terminal { Type Input Position [-15, 5] Direction left } } Component { Type Output Name base64 "fMK3fA==" Show on Position [285, 50] Direction right Flipped off Parameter { Variable "Index" Value "4" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Function Name "Amplitude" Show on Position [220, 85] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "sqrt(max(u[1]^2+u[2]^2,1e-2))" Show off } } Component { Type SignalMux Name "Mux" Show off Position [270, 125] Direction right Flipped off Parameter { Variable "Width" Value "3" Show off } } Component { Type SignalDemux Name "Demux" Show off Position [235, 130] Direction right Flipped on Parameter { Variable "Width" Value "2" Show off } } Component { Type SignalSwitch Name "Switch" Show off Position [735, 60] Direction right Flipped off Parameter { Variable "Criteria" Value "3" Show off } Parameter { Variable "Threshold" Value "0" Show off } } Component { Type Constant Name "Constant" Show off Position [665, 20] Direction right Flipped off Frame [-25, -10; 25, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "Value" Value "f_out-1" Show off } Parameter { Variable "DataType" Value "10" Show off } } Connection { Type Signal SrcComponent "Constant1" SrcTerminal 1 DstComponent "Sum" DstTerminal 3 } Connection { Type Signal SrcComponent "Discrete PI Controller" SrcTerminal 2 DstComponent "Sum" DstTerminal 2 } Connection { Type Signal SrcComponent "Normalize" SrcTerminal 2 DstComponent "Discrete PI Controller" DstTerminal 1 } Connection { Type Signal SrcComponent "Vabc" SrcTerminal 1 DstComponent "3ph->RRF1" DstTerminal 1 } Connection { Type Signal SrcComponent "Integrator" SrcTerminal 2 Points [725, 125] Branch { DstComponent base64 "zrgn" DstTerminal 1 } Branch { Points [725, 245; 75, 245; 75, 135] DstComponent "3ph->RRF1" DstTerminal 3 } } Connection { Type Signal SrcComponent "Mux" SrcTerminal 1 DstComponent "Normalize" DstTerminal 1 } Connection { Type Signal SrcComponent "Amplitude" SrcTerminal 2 Points [255, 85] Branch { DstComponent "Mux" DstTerminal 2 } Branch { DstComponent base64 "fMK3fA==" DstTerminal 1 } } Connection { Type Signal SrcComponent "3ph->RRF1" SrcTerminal 2 Points [180, 130] Branch { Points [180, 85] DstComponent "Amplitude" DstTerminal 1 } Branch { DstComponent "Demux" DstTerminal 1 } } Connection { Type Signal SrcComponent "Demux" SrcTerminal 2 DstComponent "Mux" DstTerminal 3 } Connection { Type Signal SrcComponent "Demux" SrcTerminal 3 DstComponent "Mux" DstTerminal 4 } Connection { Type Signal SrcComponent "Constant" SrcTerminal 1 Points [735, 20] DstComponent "Switch" DstTerminal 4 } Connection { Type Signal SrcComponent "Switch" SrcTerminal 1 DstComponent "w'" DstTerminal 1 } Connection { Type Signal SrcComponent "LPF" SrcTerminal 2 DstComponent "Switch" DstTerminal 3 } Connection { Type Signal SrcComponent "Sum" SrcTerminal 1 Points [585, 125] Branch { DstComponent "Integrator" DstTerminal 1 } Branch { Points [585, 65] Branch { DstComponent "LPF" DstTerminal 1 } Branch { Points [585, 40; 705, 40] DstComponent "Switch" DstTerminal 2 } } } Annotation { Name base64 "77+8" Position [385, 125] } Annotation { Name "Vq [p.u.]" Position [370, 115] } Annotation { Name "Feedforward" Position [540, 210] } Annotation { Name "Vdq [V]" Position [155, 120] } Annotation { Name "Three-phase SRF\n(c) imperix Ltd. 2024" Position [180, 300] } } } Component { Type Subsystem Name "DDSRF-PLL" Show on Position [85, 160] Direction up Flipped off Frame [-25, -20; 25, 20] LabelPosition [0, 23] LabelAlign up SampleTime "-1" CodeGenDiscretizationMethod "2" CodeGenTarget "Generic" MaskType "DDSRF-PLL" MaskDescription "This block implements a standardized synchronous frame " "PLL. This means that the gain does not depend on the input voltage norm.\n" "\n" "Return values are in radian [0.2pi[ for the phase, in rad/s for the frequency" " and in the same unit as the input for the voltage.\n" "\n" "More informations are available in the Help section." MaskHelp "https://imperix.com/doc/implementation/synchronous-refere" "nce-frame-pll" MaskDisplayLang "2" MaskIconFrame on MaskIconOpaque off MaskIconRotates on MaskInit "if f_out ==2 \n" "\tfc = 9999;\n" "end" MaskDialogCallback "-- Dispaly Kp and Ki only if Advanced is configured" "\n" "if Dialog:get('f_out') == '1' then\n" "\tDialog:set('fc','Visible', true)\n" "else\n" "\tDialog:set('fc','Visible', false)\n" "end" Parameter { Variable "f" Prompt "Nominal frequency [Hz] " Type FreeText Value "50" Show off Tunable on TabName "Parameters" } Parameter { Variable "zeta" Prompt base64 "U1JGLVBMTCBEYW1waW5nIGZhY3RvciDOtiA=" Type FreeText Value "1/sqrt(2)" Show off Tunable on TabName "Parameters" } Parameter { Variable "wc" Prompt "SRF-PLL Bandwidth [Hz] " Type FreeText Value "30" Show off Tunable on TabName "Parameters" } Parameter { Variable "f_LPF" Prompt "DDSRF LPF cut off freq. [Hz]" Type FreeText Value "50/sqrt(2)" Show off Tunable off TabName "Parameters" } Parameter { Variable "Ts" Prompt "Sample time [s] " Type FreeText Value "Ts" Show off Tunable on TabName "Parameters" } Parameter { Variable "f_out" Prompt "Frequency output" Type FixedText PossibleValues {"Filtered", "Raw"} Value "1" Show off Tunable on TabName "Frequency Output" } Parameter { Variable "fc" Prompt "LPF cut off frequency [Hz] " Type FreeText Value "15" Show off Tunable on TabName "Frequency Output" } Terminal { Type Input Position [-25, 0] Direction left } Terminal { Type Output Position [29, 0] Direction right } Terminal { Type Output Position [29, -10] Direction right } Terminal { Type Output Position [29, 10] Direction right } Schematic { Location [57, 105; 1464, 679] ZoomFactor 1.14436 SliderPosition [-1, 0] ShowBrowser off BrowserWidth 100 Component { Type Input Name "Vabc" Show on Position [30, 245] Direction right Flipped off Parameter { Variable "Index" Value "1" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Output Name base64 "zrgn" Show on Position [1185, 130] Direction right Flipped off Parameter { Variable "Index" Value "2" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Output Name "w'" Show on Position [1185, 65] Direction right Flipped off Parameter { Variable "Index" Value "3" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Sum Name "Sum" Show off Position [940, 130] Direction up Flipped off Parameter { Variable "IconShape" Value "2" Show off } Parameter { Variable "Inputs" Value "|++" Show off } Parameter { Variable "DataType" Value "11" Show off } } Component { Type Constant Name "Constant1" Show off Position [940, 185] Direction up Flipped off Frame [-10, -20; 10, 20] LabelPosition [13, 0] LabelAlign left Parameter { Variable "Value" Value "2*pi*f" Show off } Parameter { Variable "DataType" Value "10" Show off } } Component { Type TransferFunction Name "LPF" Show on Position [1065, 70] Direction right Flipped off Frame [-30, -15; 30, 15] LabelPosition [0, 18] LabelAlign up Parameter { Variable "Numerator" Value "[2*pi*fc]" Show off } Parameter { Variable "Denominator" Value "[1 2*pi*fc]" Show off } Parameter { Variable "X0" Value "f/fc" Show off } } Component { Type DiscreteIntegrator Name "Integrator" Show on Position [1065, 130] Direction right Flipped off Parameter { Variable "ExternalReset" Value "1" Show off } Parameter { Variable "InitialConditionSource" Value "1" Show off } Parameter { Variable "x0" Value "0" Show off } Parameter { Variable "ShowStatePort" Value "1" Show off } Parameter { Variable "EnableWrapping" Value "2" Show off } Parameter { Variable "UpperLimit" Value "2*pi" Show off } Parameter { Variable "LowerLimit" Value "0" Show off } Parameter { Variable "IntegrationMethod" Value "1" Show off } Parameter { Variable "SampleTime" Value "Ts" Show off } } Component { Type Reference SrcComponent "Components/Control/Discrete/Discrete PID\\nController" Name "Discrete PI Controller" Show on Position [845, 130] Direction up Flipped off Frame [-40, -25; 40, 25] LabelPosition [0, 28] LabelAlign up Parameter { Variable "cont_type" Value "3" Show off } Parameter { Variable "par_source" Value "1" Show off } Parameter { Variable "kp" Value "2*2*pi*wc*zeta" Show off } Parameter { Variable "ki" Value "wc*wc*4*pi*pi" Show off } Parameter { Variable "kd" Value "1" Show off } Parameter { Variable "kf" Value "1" Show off } Parameter { Variable "ex_reset" Value "1" Show off } Parameter { Variable "x0_source" Value "1" Show off } Parameter { Variable "x0" Value "0" Show off } Parameter { Variable "ex_sat" Value "1" Show off } Parameter { Variable "sat_lim" Value "1" Show off } Parameter { Variable "int_method" Value "3" Show off } Parameter { Variable "t_sample" Value "Ts" Show off } Parameter { Variable "up_limit" Value "inf" Show off } Parameter { Variable "low_limit" Value "-inf" Show off } Parameter { Variable "aw_method" Value "1" Show off } Parameter { Variable "kbc" Value "1" Show off } Terminal { Type Input Position [-40, 0] Direction left } Terminal { Type Output Position [44, 0] Direction right } Terminal { Type Input Position [-5, -25] Direction up } Terminal { Type Input Position [5, -25] Direction up } Terminal { Type Input Position [15, -25] Direction up } Terminal { Type Input Position [-40, -15] Direction left } Terminal { Type Input Position [-40, 10] Direction left } Terminal { Type Input Position [25, -25] Direction up } Terminal { Type Input Position [35, -25] Direction up } Terminal { Type Input Position [-40, -20] Direction left } Terminal { Type Input Position [-40, -10] Direction left } Terminal { Type Input Position [-40, 20] Direction left } } Component { Type SignalSwitch Name "Switch" Show off Position [1135, 65] Direction right Flipped off Parameter { Variable "Criteria" Value "3" Show off } Parameter { Variable "Threshold" Value "0" Show off } } Component { Type Constant Name "Constant" Show off Position [1065, 25] Direction right Flipped off Frame [-25, -10; 25, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "Value" Value "f_out-1" Show off } Parameter { Variable "DataType" Value "10" Show off } } Component { Type Subsystem Name "Tdq+1" Show on Position [235, 175] Direction up Flipped off Frame [-15, -15; 15, 15] LabelPosition [0, -18] LabelAlign down SampleTime "-1" CodeGenDiscretizationMethod "2" CodeGenTarget "Generic" MaskType "Transformation SRF->RRF" MaskDescription base64 "VHJhbnNmb3JtcyBhIHR3by1kaW1lbnNpb25hbCB2ZWN0" "b3IgZnJvbSB0aGUgc3RhdGlvbmFyeSBpbnRvIGEgcm90YXRpbmcgcmVmZXJlbmNlIGZyYW1lLiBUa" "GUgYW5nbGUgaW4gcmFkaWFucyBiZXR3ZWVuIHRoZSByb3RhdGluZyBhbmQgdGhlIHN0YXRpb25hcn" "kgZnJhbWUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgc2Vjb25kIGlucHV0OiAKW86xIM6yXSwgz4YgLT4" "gW2QgcV0=" MaskHelp "alphabeta2dq.html" MaskDisplay base64 "SWNvbjpsaW5lKHstMTUsIDE1fSwgezE1LCAtMTV9KQpJY2" "9uOnRleHQoLTYsIC02LCAnzrHOsicsICdGb250U2l6ZScsIDkpCkljb246dGV4dCg2LCA2LCAnZHE" "nLCAnRm9udFNpemUnLCA5KQ==" MaskDisplayLang "2" MaskIconFrame on MaskIconOpaque on MaskIconRotates on Terminal { Type Input Position [-15, 0] Direction left } Terminal { Type Output Position [19, 0] Direction right } Terminal { Type Input Position [0, 15] Direction down } Schematic { Location [474, 476; 959, 691] ZoomFactor 1 SliderPosition [0, 0] ShowBrowser off BrowserWidth 100 Component { Type Input Name base64 "zrHOsg==" Show on Position [60, 55] Direction right Flipped off Parameter { Variable "Index" Value "1" Show on } Parameter { Variable "Width" Value "2" Show off } } Component { Type Output Name "dq" Show on Position [335, 60] Direction right Flipped off Parameter { Variable "Index" Value "2" Show on } Parameter { Variable "Width" Value "2" Show off } } Component { Type Function Name base64 "zrHOsi0+ZA==" Show on Position [235, 35] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[1]*u[4]+u[2]*u[3]" Show off } } Component { Type Function Name base64 "zrHOsi0+cQ==" Show on Position [235, 85] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[2]*u[4]-u[1]*u[3]" Show off } } Component { Type SignalMux Name "CMux" Show off Position [290, 60] Direction right Flipped off Parameter { Variable "Width" Value "2" Show off } } Component { Type Input Name "sin/cos" Show on Position [60, 100] Direction right Flipped off Parameter { Variable "Index" Value "3" Show on } Parameter { Variable "Width" Value "2" Show off } } Component { Type SignalMux Name "CMux1" Show off Position [175, 60] Direction right Flipped off Parameter { Variable "Width" Value "[2 2]" Show off } } Connection { Type Signal SrcComponent "CMux" SrcTerminal 1 DstComponent "dq" DstTerminal 1 } Connection { Type Signal SrcComponent base64 "zrHOsi0+ZA==" SrcTerminal 2 Points [270, 35; 270, 55] DstComponent "CMux" DstTerminal 2 } Connection { Type Signal SrcComponent base64 "zrHOsi0+cQ==" SrcTerminal 2 Points [270, 85; 270, 65] DstComponent "CMux" DstTerminal 3 } Connection { Type Signal SrcComponent base64 "zrHOsg==" SrcTerminal 1 DstComponent "CMux1" DstTerminal 2 } Connection { Type Signal SrcComponent "CMux1" SrcTerminal 1 Points [195, 60] Branch { Points [195, 35] DstComponent base64 "zrHOsi0+ZA==" DstTerminal 1 } Branch { Points [195, 85] DstComponent base64 "zrHOsi0+cQ==" DstTerminal 1 } } Connection { Type Signal SrcComponent "sin/cos" SrcTerminal 1 Points [130, 100; 130, 65] DstComponent "CMux1" DstTerminal 3 } } } Component { Type Subsystem Name "Decoupling\nnetwork+1" Show on Position [300, 185] Direction up Flipped off Frame [-15, -15; 15, 15] LabelPosition [0, -18] LabelAlign down SampleTime "-1" CodeGenDiscretizationMethod "2" CodeGenTarget "Generic" MaskDisplayLang "2" MaskIconFrame on MaskIconOpaque off MaskIconRotates on Terminal { Type Input Position [-15, -10] Direction left } Terminal { Type Output Position [19, 0] Direction right } Terminal { Type Input Position [-15, 10] Direction left } Terminal { Type Input Position [0, 15] Direction down } Schematic { Location [238, 174; 726, 360] ZoomFactor 1 SliderPosition [0, 0] ShowBrowser off BrowserWidth 100 Component { Type Input Name "dq'" Show on Position [40, 40] Direction right Flipped off Parameter { Variable "Index" Value "1" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Output Name "dq" Show on Position [420, 80] Direction right Flipped off Parameter { Variable "Index" Value "2" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Input Name "dqf" Show on Position [40, 80] Direction right Flipped off Parameter { Variable "Index" Value "3" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Input Name "sin/cos" Show off Position [40, 120] Direction right Flipped off Parameter { Variable "Index" Value "4" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Function Name "Fcn" Show off Position [280, 60] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[1]-u[3]*u[6]-u[4]*u[5]" Show off } } Component { Type SignalMux Name "Mux1" Show off Position [190, 80] Direction right Flipped off Parameter { Variable "Width" Value "[2 2 2]" Show off } } Component { Type Function Name "Fcn1" Show off Position [280, 100] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[2]+u[3]*u[5]-u[4]*u[6]" Show off } } Component { Type SignalMux Name "Mux3" Show off Position [355, 80] Direction right Flipped off Parameter { Variable "Width" Value "2" Show off } } Connection { Type Signal SrcComponent "Fcn1" SrcTerminal 2 Points [320, 100; 320, 85] DstComponent "Mux3" DstTerminal 3 } Connection { Type Signal SrcComponent "Fcn" SrcTerminal 2 Points [320, 60; 320, 75] DstComponent "Mux3" DstTerminal 2 } Connection { Type Signal SrcComponent "Mux3" SrcTerminal 1 DstComponent "dq" DstTerminal 1 } Connection { Type Signal SrcComponent "Mux1" SrcTerminal 1 Points [220, 80] Branch { Points [220, 100] DstComponent "Fcn1" DstTerminal 1 } Branch { Points [220, 60] DstComponent "Fcn" DstTerminal 1 } } Connection { Type Signal SrcComponent "dq'" SrcTerminal 1 Points [160, 40; 160, 70] DstComponent "Mux1" DstTerminal 2 } Connection { Type Signal SrcComponent "dqf" SrcTerminal 1 DstComponent "Mux1" DstTerminal 3 } Connection { Type Signal SrcComponent "sin/cos" SrcTerminal 1 Points [160, 120; 160, 90] DstComponent "Mux1" DstTerminal 4 } } } Component { Type Subsystem Name "Tdq-1" Show on Position [235, 305] Direction up Flipped off Frame [-15, -15; 15, 15] LabelPosition [0, 18] LabelAlign up SampleTime "-1" CodeGenDiscretizationMethod "2" CodeGenTarget "Generic" MaskType "Transformation SRF->RRF" MaskDescription base64 "VHJhbnNmb3JtcyBhIHR3by1kaW1lbnNpb25hbCB2ZWN0" "b3IgZnJvbSB0aGUgc3RhdGlvbmFyeSBpbnRvIGEgcm90YXRpbmcgcmVmZXJlbmNlIGZyYW1lLiBUa" "GUgYW5nbGUgaW4gcmFkaWFucyBiZXR3ZWVuIHRoZSByb3RhdGluZyBhbmQgdGhlIHN0YXRpb25hcn" "kgZnJhbWUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgc2Vjb25kIGlucHV0OiAKW86xIM6yXSwgz4YgLT4" "gW2QgcV0=" MaskHelp "alphabeta2dq.html" MaskDisplay base64 "SWNvbjpsaW5lKHstMTUsIDE1fSwgezE1LCAtMTV9KQpJY2" "9uOnRleHQoLTYsIC02LCAnzrHOsicsICdGb250U2l6ZScsIDkpCkljb246dGV4dCg2LCA2LCAnZHE" "nLCAnRm9udFNpemUnLCA5KQ==" MaskDisplayLang "2" MaskIconFrame on MaskIconOpaque on MaskIconRotates on Terminal { Type Input Position [-15, 0] Direction left } Terminal { Type Output Position [19, 0] Direction right } Terminal { Type Input Position [0, -15] Direction up } Schematic { Location [910, 527; 1395, 742] ZoomFactor 1 SliderPosition [0, 0] ShowBrowser off BrowserWidth 100 Component { Type Input Name base64 "zrHOsg==" Show on Position [40, 45] Direction right Flipped off Parameter { Variable "Index" Value "1" Show on } Parameter { Variable "Width" Value "2" Show off } } Component { Type Output Name "dq" Show on Position [320, 50] Direction right Flipped off Parameter { Variable "Index" Value "2" Show on } Parameter { Variable "Width" Value "2" Show off } } Component { Type Function Name base64 "zrHOsi0+ZA==" Show on Position [220, 25] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[1]*u[4]-u[2]*u[3]" Show off } } Component { Type Function Name base64 "zrHOsi0+cQ==" Show on Position [220, 75] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[2]*u[4]+u[1]*u[3]" Show off } } Component { Type SignalMux Name "CMux" Show off Position [275, 50] Direction right Flipped off Parameter { Variable "Width" Value "2" Show off } } Component { Type Input Name "sin/cos" Show on Position [40, 85] Direction right Flipped off Parameter { Variable "Index" Value "3" Show on } Parameter { Variable "Width" Value "2" Show off } } Component { Type SignalMux Name "CMux1" Show off Position [160, 50] Direction right Flipped off Parameter { Variable "Width" Value "[2 2]" Show off } } Connection { Type Signal SrcComponent "CMux" SrcTerminal 1 DstComponent "dq" DstTerminal 1 } Connection { Type Signal SrcComponent base64 "zrHOsi0+ZA==" SrcTerminal 2 Points [255, 25; 255, 45] DstComponent "CMux" DstTerminal 2 } Connection { Type Signal SrcComponent base64 "zrHOsi0+cQ==" SrcTerminal 2 Points [255, 75; 255, 55] DstComponent "CMux" DstTerminal 3 } Connection { Type Signal SrcComponent base64 "zrHOsg==" SrcTerminal 1 DstComponent "CMux1" DstTerminal 2 } Connection { Type Signal SrcComponent "CMux1" SrcTerminal 1 Points [180, 50] Branch { Points [180, 25] DstComponent base64 "zrHOsi0+ZA==" DstTerminal 1 } Branch { Points [180, 75] DstComponent base64 "zrHOsi0+cQ==" DstTerminal 1 } } Connection { Type Signal SrcComponent "sin/cos" SrcTerminal 1 Points [135, 85; 135, 55] DstComponent "CMux1" DstTerminal 3 } } } Component { Type Subsystem Name "Decoupling\nnetwork-1" Show on Position [300, 295] Direction up Flipped on Frame [-15, -15; 15, 15] LabelPosition [0, 18] LabelAlign up SampleTime "-1" CodeGenDiscretizationMethod "2" CodeGenTarget "Generic" MaskDisplayLang "2" MaskIconFrame on MaskIconOpaque off MaskIconRotates on Terminal { Type Input Position [-15, -10] Direction left } Terminal { Type Output Position [19, 0] Direction right } Terminal { Type Input Position [-15, 10] Direction left } Terminal { Type Input Position [0, 15] Direction down } Schematic { Location [235, 130; 721, 316] ZoomFactor 1 SliderPosition [0, 0] ShowBrowser off BrowserWidth 100 Component { Type Input Name "dq'" Show on Position [40, 40] Direction right Flipped off Parameter { Variable "Index" Value "1" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Output Name "dq" Show on Position [405, 80] Direction right Flipped off Parameter { Variable "Index" Value "2" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Input Name "dqf" Show on Position [40, 80] Direction right Flipped off Parameter { Variable "Index" Value "3" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Input Name "theta" Show off Position [40, 120] Direction right Flipped off Parameter { Variable "Index" Value "4" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Function Name "Fcn" Show off Position [280, 60] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[1]-u[3]*u[6]+u[4]*u[5]" Show off } } Component { Type SignalMux Name "Mux1" Show off Position [190, 80] Direction right Flipped off Parameter { Variable "Width" Value "[2 2 2]" Show off } } Component { Type Function Name "Fcn1" Show off Position [280, 100] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[2]-u[3]*u[5]-u[4]*u[6]" Show off } } Component { Type SignalMux Name "Mux3" Show off Position [355, 80] Direction right Flipped off Parameter { Variable "Width" Value "2" Show off } } Connection { Type Signal SrcComponent "Fcn1" SrcTerminal 2 Points [320, 100; 320, 85] DstComponent "Mux3" DstTerminal 3 } Connection { Type Signal SrcComponent "Fcn" SrcTerminal 2 Points [320, 60; 320, 75] DstComponent "Mux3" DstTerminal 2 } Connection { Type Signal SrcComponent "Mux3" SrcTerminal 1 DstComponent "dq" DstTerminal 1 } Connection { Type Signal SrcComponent "Mux1" SrcTerminal 1 Points [220, 80] Branch { Points [220, 100] DstComponent "Fcn1" DstTerminal 1 } Branch { Points [220, 60] DstComponent "Fcn" DstTerminal 1 } } Connection { Type Signal SrcComponent "dqf" SrcTerminal 1 DstComponent "Mux1" DstTerminal 3 } Connection { Type Signal SrcComponent "dq'" SrcTerminal 1 Points [160, 40; 160, 70] DstComponent "Mux1" DstTerminal 2 } Connection { Type Signal SrcComponent "theta" SrcTerminal 1 Points [160, 120; 160, 90] DstComponent "Mux1" DstTerminal 4 } } } Component { Type SignalDemux Name "Demux" Show off Position [360, 185] Direction right Flipped on Parameter { Variable "Width" Value "2" Show off } } Component { Type SignalMux Name "Mux" Show off Position [505, 185] Direction right Flipped off Parameter { Variable "Width" Value "2" Show off } } Component { Type Subsystem Name "sin/cos" Show off Position [190, 245] Direction up Flipped off Frame [-25, -15; 25, 15] LabelPosition [0, 18] LabelAlign up SampleTime "-1" CodeGenDiscretizationMethod "2" CodeGenTarget "Generic" MaskDisplayLang "2" MaskIconFrame on MaskIconOpaque off MaskIconRotates on Terminal { Type Input Position [-25, 0] Direction left } Terminal { Type Output Position [29, -10] Direction right } Terminal { Type Output Position [29, 10] Direction right } Schematic { Location [158, 188; 441, 356] ZoomFactor 1 SliderPosition [0, 2] ShowBrowser off BrowserWidth 100 Component { Type Input Name "theta" Show on Position [60, 95] Direction right Flipped off Parameter { Variable "Index" Value "1" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Output Name "sin/cos" Show on Position [360, 80] Direction right Flipped off Parameter { Variable "Index" Value "2" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Trigonometry Name "Trigonometric\nFunction" Show off Position [140, 75] Direction right Flipped off Parameter { Variable "Operator" Value "1" Show off } Parameter { Variable "Unit" Value "1" Show off } } Component { Type Trigonometry Name "Trigonometric\nFunction1" Show off Position [140, 115] Direction right Flipped off Parameter { Variable "Operator" Value "2" Show off } Parameter { Variable "Unit" Value "1" Show off } } Component { Type Output Name "sin2/cos2" Show on Position [360, 165] Direction right Flipped off Parameter { Variable "Index" Value "3" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type SignalMux Name "Mux" Show off Position [225, 80] Direction right Flipped off Parameter { Variable "Width" Value "2" Show off } } Component { Type SignalMux Name "Mux1" Show off Position [315, 165] Direction right Flipped off Parameter { Variable "Width" Value "2" Show off } } Component { Type Math Name "Math" Show off Position [205, 145] Direction up Flipped on Parameter { Variable "Operator" Value "1" Show off } } Component { Type Sum Name "Sum" Show off Position [280, 170] Direction up Flipped on Parameter { Variable "IconShape" Value "2" Show off } Parameter { Variable "Inputs" Value "|++" Show off } Parameter { Variable "DataType" Value "11" Show off } } Component { Type Constant Name "Constant" Show off Position [205, 170] Direction left Flipped on Frame [-10, -10; 10, 10] LabelPosition [0, -13] LabelAlign down Parameter { Variable "Value" Value "-1" Show off } Parameter { Variable "DataType" Value "10" Show off } } Component { Type Gain Name "Gain1" Show off Position [270, 110] Direction right Flipped off Parameter { Variable "K" Value "2" Show off } Parameter { Variable "Multiplication" Value "1" Show off } Parameter { Variable "DataType" Value "11" Show off } } Component { Type Product Name "Product" Show off Position [220, 110] Direction up Flipped off Parameter { Variable "Inputs" Value "2" Show off } Parameter { Variable "DataType" Value "11" Show off } } Component { Type Gain Name "Gain" Show off Position [250, 145] Direction right Flipped off Parameter { Variable "K" Value "2" Show off } Parameter { Variable "Multiplication" Value "1" Show off } Parameter { Variable "DataType" Value "11" Show off } } Connection { Type Signal SrcComponent "theta" SrcTerminal 1 Points [95, 95] Branch { Points [95, 75] DstComponent "Trigonometric\nFunction" DstTerminal 1 } Branch { Points [95, 115] DstComponent "Trigonometric\nFunction1" DstTerminal 1 } } Connection { Type Signal SrcComponent "Mux" SrcTerminal 1 DstComponent "sin/cos" DstTerminal 1 } Connection { Type Signal SrcComponent "Mux1" SrcTerminal 1 DstComponent "sin2/cos2" DstTerminal 1 } Connection { Type Signal SrcComponent "Sum" SrcTerminal 1 DstComponent "Mux1" DstTerminal 3 } Connection { Type Signal SrcComponent "Constant" SrcTerminal 1 DstComponent "Sum" DstTerminal 2 } Connection { Type Signal SrcComponent "Gain1" SrcTerminal 2 Points [300, 110] DstComponent "Mux1" DstTerminal 2 } Connection { Type Signal SrcComponent "Product" SrcTerminal 1 DstComponent "Gain1" DstTerminal 1 } Connection { Type Signal SrcComponent "Trigonometric\nFunction" SrcTerminal 2 Points [180, 75] Branch { DstComponent "Mux" DstTerminal 2 } Branch { Points [180, 105] DstComponent "Product" DstTerminal 2 } } Connection { Type Signal SrcComponent "Trigonometric\nFunction1" SrcTerminal 2 Points [170, 115] Branch { Points [170, 85] DstComponent "Mux" DstTerminal 3 } Branch { Points [170, 145] DstComponent "Math" DstTerminal 2 } Branch { DstComponent "Product" DstTerminal 3 } } Connection { Type Signal SrcComponent "Math" SrcTerminal 1 DstComponent "Gain" DstTerminal 1 } Connection { Type Signal SrcComponent "Gain" SrcTerminal 2 DstComponent "Sum" DstTerminal 3 } } } Component { Type Reference SrcComponent "Components/Control/Transformations/3ph->SRF" Name "3ph->SRF" Show off Position [90, 245] Direction up Flipped off Frame [-15, -15; 15, 15] LabelPosition [0, 18] LabelAlign up Terminal { Type Input Position [-15, 0] Direction left } Terminal { Type Output Position [19, 0] Direction right } } Component { Type TransferFunction Name "LPF1" Show on Position [420, 295] Direction right Flipped off Frame [-30, -15; 30, 15] LabelPosition [0, 18] LabelAlign up Parameter { Variable "Numerator" Value "[2*pi*f_LPF]" Show off } Parameter { Variable "Denominator" Value "[1 2*pi*f_LPF]" Show off } Parameter { Variable "X0" Value "0" Show off } } Component { Type TransferFunction Name "LPF3" Show on Position [420, 210] Direction right Flipped off Frame [-30, -15; 30, 15] LabelPosition [0, 18] LabelAlign up Parameter { Variable "Numerator" Value "[2*pi*f_LPF]" Show off } Parameter { Variable "Denominator" Value "[1 2*pi*f_LPF]" Show off } Parameter { Variable "X0" Value "0" Show off } } Component { Type TransferFunction Name "LPF2" Show on Position [420, 165] Direction right Flipped off Frame [-30, -15; 30, 15] LabelPosition [0, 18] LabelAlign up Parameter { Variable "Numerator" Value "[2*pi*f_LPF]" Show off } Parameter { Variable "Denominator" Value "[1 2*pi*f_LPF]" Show off } Parameter { Variable "X0" Value "325/ max(2*pi*f_LPF,1e-4)" Show off } } Component { Type Function Name "Normalize" Show on Position [680, 130] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "u[3]/max(u[1],1e-2)" Show off } } Component { Type Output Name base64 "fMK3fA==" Show on Position [650, 55] Direction right Flipped off Parameter { Variable "Index" Value "4" Show on } Parameter { Variable "Width" Value "-1" Show off } } Component { Type Function Name "Amplitude" Show on Position [585, 90] Direction right Flipped off Frame [-20, -10; 20, 10] LabelPosition [0, 13] LabelAlign up Parameter { Variable "f(u)" Value "sqrt(max(u[1]^2+u[2]^2,1e-2))" Show off } } Component { Type SignalMux Name "Mux1" Show off Position [635, 130] Direction right Flipped off Parameter { Variable "Width" Value "3" Show off } } Component { Type SignalDemux Name "Demux1" Show off Position [600, 135] Direction right Flipped on Parameter { Variable "Width" Value "2" Show off } } Connection { Type Signal SrcComponent "Constant1" SrcTerminal 1 DstComponent "Sum" DstTerminal 3 } Connection { Type Signal SrcComponent "Discrete PI Controller" SrcTerminal 2 DstComponent "Sum" DstTerminal 2 } Connection { Type Signal SrcComponent "Constant" SrcTerminal 1 Points [1135, 25] DstComponent "Switch" DstTerminal 4 } Connection { Type Signal SrcComponent "Switch" SrcTerminal 1 DstComponent "w'" DstTerminal 1 } Connection { Type Signal SrcComponent "LPF" SrcTerminal 2 DstComponent "Switch" DstTerminal 3 } Connection { Type Signal SrcComponent "Sum" SrcTerminal 1 Points [985, 130] Branch { DstComponent "Integrator" DstTerminal 1 } Branch { Points [985, 70] Branch { DstComponent "LPF" DstTerminal 1 } Branch { Points [985, 45; 1105, 45] DstComponent "Switch" DstTerminal 2 } } } Connection { Type Signal SrcComponent "Tdq-1" SrcTerminal 2 DstComponent "Decoupling\nnetwork-1" DstTerminal 1 } Connection { Type Signal SrcComponent "sin/cos" SrcTerminal 3 Points [300, 255] Branch { DstComponent "Decoupling\nnetwork-1" DstTerminal 4 } Branch { DstComponent "Decoupling\nnetwork+1" DstTerminal 4 } } Connection { Type Signal SrcComponent "Tdq+1" SrcTerminal 2 DstComponent "Decoupling\nnetwork+1" DstTerminal 1 } Connection { Type Signal SrcComponent "LPF1" SrcTerminal 2 Points [470, 295; 470, 245; 270, 245] DstComponent "Decoupling\nnetwork+1" DstTerminal 3 } Connection { Type Signal SrcComponent "Decoupling\nnetwork-1" SrcTerminal 2 DstComponent "LPF1" DstTerminal 1 } Connection { Type Signal SrcComponent "Demux" SrcTerminal 3 Points [370, 190; 370, 210] DstComponent "LPF3" DstTerminal 1 } Connection { Type Signal SrcComponent "LPF3" SrcTerminal 2 Points [470, 210; 470, 190] DstComponent "Mux" DstTerminal 3 } Connection { Type Signal SrcComponent "LPF2" SrcTerminal 2 Points [470, 165; 470, 180] DstComponent "Mux" DstTerminal 2 } Connection { Type Signal SrcComponent "Demux" SrcTerminal 2 Points [370, 180; 370, 165] DstComponent "LPF2" DstTerminal 1 } Connection { Type Signal SrcComponent "sin/cos" SrcTerminal 2 Points [235, 235] Branch { DstComponent "Tdq-1" DstTerminal 3 } Branch { DstComponent "Tdq+1" DstTerminal 3 } } Connection { Type Signal SrcComponent "Mux" SrcTerminal 1 Points [530, 185; 530, 265; 270, 265] DstComponent "Decoupling\nnetwork-1" DstTerminal 3 } Connection { Type Signal SrcComponent "Vabc" SrcTerminal 1 DstComponent "3ph->SRF" DstTerminal 1 } Connection { Type Signal SrcComponent "Integrator" SrcTerminal 2 Points [1120, 130] Branch { DstComponent base64 "zrgn" DstTerminal 1 } Branch { Points [1120, 375; 145, 375; 145, 245] DstComponent "sin/cos" DstTerminal 1 } } Connection { Type Signal SrcComponent "3ph->SRF" SrcTerminal 2 Points [125, 245] Branch { Points [125, 305] DstComponent "Tdq-1" DstTerminal 1 } Branch { Points [125, 175] DstComponent "Tdq+1" DstTerminal 1 } } Connection { Type Signal SrcComponent "Mux1" SrcTerminal 1 DstComponent "Normalize" DstTerminal 1 } Connection { Type Signal SrcComponent "Amplitude" SrcTerminal 2 Points [620, 90] Branch { DstComponent "Mux1" DstTerminal 2 } Branch { DstComponent base64 "fMK3fA==" DstTerminal 1 } } Connection { Type Signal SrcComponent "Demux1" SrcTerminal 2 DstComponent "Mux1" DstTerminal 3 } Connection { Type Signal SrcComponent "Demux1" SrcTerminal 3 DstComponent "Mux1" DstTerminal 4 } Connection { Type Signal SrcComponent "Normalize" SrcTerminal 2 DstComponent "Discrete PI Controller" DstTerminal 1 } Connection { Type Signal SrcComponent "Decoupling\nnetwork+1" SrcTerminal 2 Points [335, 185] Branch { DstComponent "Demux" DstTerminal 1 } Branch { Points [335, 135; 545, 135] Branch { DstComponent "Demux1" DstTerminal 1 } Branch { Points [545, 90] DstComponent "Amplitude" DstTerminal 1 } } } Annotation { Name base64 "77+8" Position [785, 130] } Annotation { Name "Vq [p.u.]" Position [750, 120] } Annotation { Name "Feedforward" Position [940, 215] } Annotation { Name "Three-phase DDSRF\n(c) imperix Ltd. 2024" Position [295, 435] } } } Annotation { Name "Double Decoupled SRF-PLL for three-phase systems" Position [275, 160] } Annotation { Name "Synchronous reference frame PLL for three-phase systems" Position [295, 75] } Annotation { Name "Three-phase (DD)SRF\n(c) imperix Ltd. 2024" Position [180, 245] } } } DemoSignature "7z2/L0f4Acw7u+pGdW6GTtq5lWi7uvpgb1W8KlEARnU="