modelGenericStorage

Highly adaptable but non-physical model for all kinds of energy storages (recommended for storage without losses)

Extends from GenericStorage_base (Partial class for highly adaptable but non-physical model for all kinds of energy storages).

Information

1. Purpose of model

Highly adaptable but non-physical model for all kinds of energy storages.

2. Level of detail, physical effects considered, and physical insight

(no remarks)

3. Limits of validity

(no remarks)

4. Interfaces

P_set: input for electric power in [W] -Grid side setpoint power (Positive = load request, negative = unload request) [W]

P_is: output for electric power in [W]- Grid side power (Positive = loading, negative = unloading) [W]

5. Nomenclature

(no remarks)

6. Governing Equations

(no remarks)

7. Remarks for Usage

Boolean parameter use_PowerRateLimiter can deactive block 'PowerRateLimiter'. This might lead to faster calculation results if power rate limitation is not needed.

PlantDynamics: Set T_plant to 0 in StorageParameters to deactivate first order block

8. Validation

Tested in check model "TransiEnt.Storage.Base.Check.TestGenericStorage"

9. References

(no remarks)

10. Version History

Model created by Pascal Dubucq (dubucq@tuhh.de) on 01.10.2014

Model adapted by Lisa Andresen (andresen@tuhh.de), Jan 2017

Model adapted by Oliver Schülting (oliver.schuelting@tuhh.de), Jun 2018

Extended from base class by Carsten Bode (c.bode@tuhh.de), Nov 2018

Model adapted by Oliver Schülting (oliver.schuelting@tuhh.de), April 2018: added first order plant dynamics block which can be deactivated

Parameters

TypeNameDefaultDescription
GenericStorageParametersparams (from GenericStorage_base)Record of generic storage parameters
Booleanuse_PowerRateLimiter (from GenericStorage_base)trueUse Power Rate Limitation
RealNd_powerRateLimiter (from GenericStorage_base)1/simCenter.TdThe higher Nd, the closer y follows u in the power rate limiter
SI.TimeT_plant (from GenericStorage_base)params.T_plantfirst order plant dynamic
Booleanuse_plantDynamic (from GenericStorage_base)falsechoose if first order plant dynamic is used
Booleanuse_inverterEfficiency (from GenericStorage_base)falsechoose if efficiency curve of inverter is used for loading and unloading
Real[:,:]efficiencyCurve_inverter (from GenericStorage_base)[0, 0; 0.5, 70.6425; 1, 84.9247; 1.5, 89.6817; 2, 92.0574; 2.5, 93.4807; 3, 94.4276; 3.5, 95.1024; 4, 95.6072; 4.5, 95.9985; 5, 96.3104; 5.5, 96.5646; 6, 96.7756; 6.5, 96.9532; 7, 97.1046; 7.5, 97.2351; 8, 97.3486; 8.5, 97.4481; 9, 97.536; 9.5, 97.614; 10, 97.6836; 10.5, 97.7461; 11, 97.8024; 11.5, 97.8533; 12, 97.8995; 12.5, 97.9416; 13, 97.98; 13.5, 98.0151; 14, 98.0473; 14.5, 98.077; 15, 98.1043; 15.5, 98.1294; 16, 98.1527; 16.5, 98.1742; 17, 98.1941; 17.5, 98.2125; 18, 98.2296; 18.5, 98.2455; 19, 98.2603; 19.5, 98.274; 20, 98.2868; 20.5, 98.2986; 21, 98.3097; 21.5, 98.3199; 22, 98.3295; 22.5, 98.3384; 23, 98.3466; 23.5, 98.3543; 24, 98.3614; 24.5, 98.368; 25, 98.3741; 25.5, 98.3797; 26, 98.3849; 26.5, 98.3897; 27, 98.3942; 27.5, 98.3982; 28, 98.4019; 28.5, 98.4053; 29, 98.4084; 29.5, 98.4112; 30, 98.4137; 30.5, 98.416; 31, 98.418; 31.5, 98.4197; 32, 98.4212; 32.5, 98.4225; 33, 98.4236; 33.5, 98.4245; 34, 98.4253; 34.5, 98.4258; 35, 98.4261; 35.5, 98.4263; 36, 98.4264; 36.5, 98.4262; 37, 98.426; 37.5, 98.4256; 38, 98.425; 38.5, 98.4243; 39, 98.4235; 39.5, 98.4226; 40, 98.4216; 40.5, 98.4204; 41, 98.4192; 41.5, 98.4178; 42, 98.4163; 42.5, 98.4148; 43, 98.4131; 43.5, 98.4114; 44, 98.4096; 44.5, 98.4077; 45, 98.4057; 45.5, 98.4036; 46, 98.4014; 46.5, 98.3992; 47, 98.3969; 47.5, 98.3946; 48, 98.3921; 48.5, 98.3897; 49, 98.3871; 49.5, 98.3845; 50, 98.3818; 50.5, 98.3791; 51, 98.3763; 51.5, 98.3735; 52, 98.3706; 52.5, 98.3676; 53, 98.3646; 53.5, 98.3616; 54, 98.3585; 54.5, 98.3554; 55, 98.3522; 55.5, 98.349; 56, 98.3457; 56.5, 98.3424; 57, 98.3391; 57.5, 98.3357; 58, 98.3323; 58.5, 98.3288; 59, 98.3253; 59.5, 98.3218; 60, 98.3182; 60.5, 98.3146; 61, 98.311; 61.5, 98.3074; 62, 98.3037; 62.5, 98.3; 63, 98.2962; 63.5, 98.2924; 64, 98.2886; 64.5, 98.2848; 65, 98.281; 65.5, 98.2771; 66, 98.2732; 66.5, 98.2692; 67, 98.2653; 67.5, 98.2613; 68, 98.2573; 68.5, 98.2533; 69, 98.2492; 69.5, 98.2451; 70, 98.2411; 70.5, 98.2369; 71, 98.2328; 71.5, 98.2287; 72, 98.2245; 72.5, 98.2203; 73, 98.2161; 73.5, 98.2119; 74, 98.2076; 74.5, 98.2033; 75, 98.1991; 75.5, 98.1948; 76, 98.1904; 76.5, 98.1861; 77, 98.1818; 77.5, 98.1774; 78, 98.173; 78.5, 98.1686; 79, 98.1642; 79.5, 98.1598; 80, 98.1554; 80.5, 98.1509; 81, 98.1464; 81.5, 98.142; 82, 98.1375; 82.5, 98.133; 83, 98.1285; 83.5, 98.1239; 84, 98.1194; 84.5, 98.1148; 85, 98.1103; 85.5, 98.1057; 86, 98.1011; 86.5, 98.0965; 87, 98.0919; 87.5, 98.0873; 88, 98.0826; 88.5, 98.078; 89, 98.0733; 89.5, 98.0687; 90, 98.064; 90.5, 98.0593; 91, 98.0546; 91.5, 98.0499; 92, 98.0452; 92.5, 98.0405; 93, 98.0358; 93.5, 98.031; 94, 98.0263; 94.5, 98.0215; 95, 98.0168; 95.5, 98.012; 96, 98.0072; 96.5, 98.0024; 97, 97.9976; 97.5, 97.9928; 98, 97.988; 98.5, 97.9832; 99, 97.9784; 99.5, 97.9735; 100, 97.9687]/100
BooleanstationaryLossOnlyIfInactive (from GenericStorage_base)false

Connectors

TypeNameDefaultDescription
TransiEnt.Basics.Interfaces.Electrical.ElectricPowerInP_set (from GenericStorage_base)Grid side setpoint power (Positive = load request, negative = unload request)
TransiEnt.Basics.Interfaces.Electrical.ElectricPowerOutP_is (from GenericStorage_base)Grid side power (Positive = loading, negative = unloading)
TransiEnt.Basics.Interfaces.Electrical.ElectricPowerOutP_max_load_is (from GenericStorage_base)

Components

TypeNameDefaultDescription
TransiEnt.SimCentersimCenter (from GenericStorage_base)
Modelica.Units.SI.EnergyE (from GenericStorage_base)
RealSOC (from GenericStorage_base)(E - params.E_min)/(params.E_max - params.E_min)
Modelica.Units.SI.EnergyE_delta (from GenericStorage_base)E - params.E_startState of charge (0..1)
StationaryLossModelstationaryLoss (from GenericStorage_base)
Modelica.Blocks.Sources.RealExpressionE_is (from GenericStorage_base)Internal energy level before stationary loss (energy level directly after load or unloading)
ClaRa.Components.Utilities.Blocks.VariableGradientLimiterPowerRateLimit (from GenericStorage_base)
Modelica.Blocks.Nonlinear.VariableLimiterPowerLimit (from GenericStorage_base)
Modelica.Blocks.Logical.NorCapacityOk (from GenericStorage_base)
Modelica.Blocks.Sources.ConstantCapacityLimit (from GenericStorage_base)
Modelica.Blocks.Logical.SwitchP_is_external (from GenericStorage_base)
Modelica.Blocks.Logical.AndEmptyAndDischarging (from GenericStorage_base)
Modelica.Blocks.Logical.AndFullAndCharging (from GenericStorage_base)
Modelica.Blocks.Logical.LessEqualThresholdDischargeDemand (from GenericStorage_base)
Modelica.Blocks.Logical.NotChargeDemand (from GenericStorage_base)
Modelica.Blocks.Math.ProductP_is_internal (from GenericStorage_base)Internal power that defines state of charge, i.e. after conversion losses (Losses while loading / unloading)
Modelica.Blocks.Logical.SwitchconversionEfficiency (from GenericStorage_base)
Modelica.Blocks.Sources.RealExpressionloadingEfficiency (from GenericStorage_base)
Modelica.Blocks.Sources.RealExpressioneta_unload (from GenericStorage_base)
Modelica.Blocks.Sources.RealExpressionP_max_load (from GenericStorage_base)
Modelica.Blocks.Sources.RealExpressionP_max_unload_neg (from GenericStorage_base)
Modelica.Blocks.Logical.SwitchstationaryLoss_internal (from GenericStorage_base)
Modelica.Blocks.Sources.ConstantCapacityLimit1 (from GenericStorage_base)
Basics.Blocks.FirstOrderplantDynamic (from GenericStorage_base)
Modelica.Blocks.Logical.SwitchP_in_inverter (from GenericStorage_base)
Modelica.Blocks.Math.Producteta_total (from GenericStorage_base)
Modelica.Blocks.Tables.CombiTable1DscombiTable1Ds_inverterEfficiency (from GenericStorage_base)
Modelica.Blocks.Sources.RealExpressionP_in_inverter_unloading (from GenericStorage_base)
Modelica.Blocks.Sources.RealExpressionP_in_inverter_loading (from GenericStorage_base)
Modelica.Blocks.Logical.Greatergreater (from GenericStorage_base)
Modelica.Blocks.Logical.Lessless (from GenericStorage_base)
Modelica.Blocks.Sources.RealExpressionrealExpression (from GenericStorage_base)
Modelica.Blocks.Logical.NornotActive (from GenericStorage_base)
Modelica.Blocks.Logical.Nornor (from GenericStorage_base)
Modelica.Blocks.Logical.LogicalSwitchlogicalSwitch (from GenericStorage_base)
Modelica.Blocks.Sources.BooleanExpressionbooleanExpression (from GenericStorage_base)
Modelica.Blocks.Logical.Notactive (from GenericStorage_base)
Modelica.Blocks.Logical.Notnot1 (from GenericStorage_base)
Modelica.Blocks.Logical.GreaterEqualThresholdisStorageFull
Modelica.Blocks.Logical.LessEqualThresholdisStorageEmpty