diff --git a/Example2/Analysis/AutomationFunctions/linearize_KchangeLinRamping.mo b/Example2/Analysis/AutomationFunctions/linearize_KchangeLinRamping.mo index 299be2b..2fe156b 100644 --- a/Example2/Analysis/AutomationFunctions/linearize_KchangeLinRamping.mo +++ b/Example2/Analysis/AutomationFunctions/linearize_KchangeLinRamping.mo @@ -39,7 +39,7 @@ ss := Modelica_LinearSystems2.ModelAnalysis.Linearize(
  1. In the Package Browser, right click on the function and select "Call function...". This will open the function's window.
  2. -
  3. Enter the time for linearization, Example2.Analysis.KchangeLinRamping will be simulated until that point in time and linearized.
  4. +
  5. Enter the time for linearization, Example2.Analysis.KchangeLinRamping will be simulated until that point in time and linearized.
  6. In the new function window, click on "Execute", if successful, messages/results are displayed in the command window and plots will appear in Simulation tab.
  7. Go back to the function's own window and click on "Close".
diff --git a/Example2/Analysis/AutomationFunctions/package.mo b/Example2/Analysis/AutomationFunctions/package.mo index 0fa025e..0025a79 100644 --- a/Example2/Analysis/AutomationFunctions/package.mo +++ b/Example2/Analysis/AutomationFunctions/package.mo @@ -2,6 +2,6 @@ within Example2.Analysis; package AutomationFunctions "Provides functions for automation of simulation and linearization using the models of the upper layer package" extends Modelica.Icons.FunctionsPackage; annotation (Documentation(info=" -

This package contains functions that automate the simulation, plotting and linearization of the models under Example2.Analysis.

+

This package contains functions that automate the simulation, plotting and linearization of the models under Example2.Analysis.

")); end AutomationFunctions; diff --git a/Example2/Analysis/PFVariants/AutomationFunctions/package.mo b/Example2/Analysis/PFVariants/AutomationFunctions/package.mo index 2db671b..d59ec35 100644 --- a/Example2/Analysis/PFVariants/AutomationFunctions/package.mo +++ b/Example2/Analysis/PFVariants/AutomationFunctions/package.mo @@ -2,6 +2,6 @@ within Example2.Analysis.PFVariants; package AutomationFunctions "Provides functions for automation of simulation and linearization using the models of the upper layer package" extends Modelica.Icons.FunctionsPackage; annotation (Documentation(info=" -

This package contains functions that automate the simulation, plotting and linearization of the models under Example2.Analysis.

+

This package contains functions that automate the simulation, plotting and linearization of the models under Example2.Analysis.

")); end AutomationFunctions; diff --git a/Example2/Analysis/PFVariants/RampingRandomLoadAndInput_pf.mo b/Example2/Analysis/PFVariants/RampingRandomLoadAndInput_pf.mo index 6522c16..d09ca0e 100644 --- a/Example2/Analysis/PFVariants/RampingRandomLoadAndInput_pf.mo +++ b/Example2/Analysis/PFVariants/RampingRandomLoadAndInput_pf.mo @@ -80,7 +80,7 @@ equation Icon(coordinateSystem(extent={{-100,-100},{100,100}})),preferredView="diagram", Documentation(info="

Main model used for simulation in [1] and [2].

-

To reproduce the results in Fig. 4 of [2], execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_inputs , which sets up the adequate solver settings to minimize run time.

-

Please note that running this model takes substantial time compared to example Example2.Analysis.Ramping, the reason is that both random load and probing signals are added to the model which results in an additional computation burden.

+

To reproduce the results in Fig. 4 of [2], execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_inputs , which sets up the adequate solver settings to minimize run time.

+

Please note that running this model takes substantial time compared to example Example2.Analysis.Ramping, the reason is that both random load and probing signals are added to the model which results in an additional computation burden.

"),preferredView="diagram"); end RampingRandomLoadAndInput_pf; diff --git a/Example2/Analysis/PFVariants/Ramping_pf.mo b/Example2/Analysis/PFVariants/Ramping_pf.mo index f950f44..8fdd20d 100644 --- a/Example2/Analysis/PFVariants/Ramping_pf.mo +++ b/Example2/Analysis/PFVariants/Ramping_pf.mo @@ -24,7 +24,8 @@ model Ramping_pf redeclare record Bus = Example2.PFData.Data.BusData.PF_Bus_0, redeclare record Loads = Example2.PFData.Data.LoadData.PF_Loads_0, redeclare record Trafos = Example2.PFData.Data.TrafoData.PF_Trafos_0, - redeclare record Machines = Example2.PFData.Data.MachineData.PF_Machines_0) + redeclare record Machines = + Example2.PFData.Data.MachineData.PF_Machines_0) annotation (Placement(transformation(extent={{58,-40},{138,40}}))); Modelica.Blocks.Sources.Constant r(k=0) annotation (Placement(transformation( extent={{-20,-20},{20,20}}, @@ -74,6 +75,6 @@ equation Diagram(coordinateSystem(extent={{-200,-200},{200,200}})), Icon(coordinateSystem(extent={{-100,-100},{100,100}})),preferredView="diagram", Documentation(info=" -

This model illustrates how ramping is applied to move the system to multiple operating points.

To simulate this model and plot the results, execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_ramping , which sets up the adequate solver settings to minimize run time.

+

This model illustrates how ramping is applied to move the system to multiple operating points.

To simulate this model and plot the results, execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_ramping , which sets up the adequate solver settings to minimize run time.

")); end Ramping_pf; diff --git a/Example2/Analysis/PFVariants/package.mo b/Example2/Analysis/PFVariants/package.mo index bc8e2a8..49b5cd9 100644 --- a/Example2/Analysis/PFVariants/package.mo +++ b/Example2/Analysis/PFVariants/package.mo @@ -3,6 +3,6 @@ package PFVariants "Variants with redeclarable power flow structures for top-lev extends Modelica.Icons.VariantsPackage; annotation (Documentation(info="

Uses the system model in Example2.Base.Systems.PFVariants that takes advantage of OpenIPSL data types with nominal attributes and top-level re-parametrization of power flow initial guess data.

-

It is recommended that the models within this package are used for derivative works. See more details in the information layer of Example2.PFData.

-")); +

It is recommended that the models within this package are used for derivative works. See more details in the information layer of Example2.PFData.

+"),preferredView="info"); end PFVariants; diff --git a/Example2/Analysis/Ramping.mo b/Example2/Analysis/Ramping.mo index 2448d40..5e300ce 100644 --- a/Example2/Analysis/Ramping.mo +++ b/Example2/Analysis/Ramping.mo @@ -70,6 +70,6 @@ equation Diagram(coordinateSystem(extent={{-200,-200},{200,200}})), Icon(coordinateSystem(extent={{-100,-100},{100,100}})),preferredView="diagram", Documentation(info=" -

This model illustrates how ramping is applied to move the system to multiple operating points.

To simulate this model and plot the results, execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_ramping , which sets up the adequate solver settings to minimize run time.

+

This model illustrates how ramping is applied to move the system to multiple operating points.

To simulate this model and plot the results, execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_ramping , which sets up the adequate solver settings to minimize run time.

")); end Ramping; diff --git a/Example2/Analysis/RampingRandomLoadAndInput.mo b/Example2/Analysis/RampingRandomLoadAndInput.mo index cbc9973..756880a 100644 --- a/Example2/Analysis/RampingRandomLoadAndInput.mo +++ b/Example2/Analysis/RampingRandomLoadAndInput.mo @@ -49,10 +49,10 @@ model RampingRandomLoadAndInput extent={{-20,-20},{20,20}}, origin={0,122}))); equation - connect(zeroInputs.y, plant.uPSS) annotation (Line(points={{-100,80},{-26,80},{-26,17.1429},{53.7143,17.1429}}, - color={0,0,127})); - connect(uL7.y, plant.uLoad7) annotation (Line(points={{-95.9,-57},{-95.9,-60},{-80,-60},{-80,-17.1429},{53.7143,-17.1429}}, - color={0,0,127})); + connect(zeroInputs.y, plant.uPSS) annotation (Line(points={{-100,80},{-26,80}, + {-26,17.1429},{53.7143,17.1429}}, color={0,0,127})); + connect(uL7.y, plant.uLoad7) annotation (Line(points={{-95.9,-57},{-95.9,-60}, + {-80,-60},{-80,-17.1429},{53.7143,-17.1429}}, color={0,0,127})); connect(rampingLoad.y,add. u2) annotation (Line( points={{-137,-167},{-124,-167},{-124,-152},{-114,-152}}, color={238,46,47}, @@ -80,7 +80,7 @@ equation Icon(coordinateSystem(extent={{-100,-100},{100,100}})),preferredView="diagram", Documentation(info="

Main model used for simulation in [1] and [2].

-

To reproduce the results in Fig. 4 of [2], execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_inputs , which sets up the adequate solver settings to minimize run time.

-

Please note that running this model takes substantial time compared to example Example2.Analysis.Ramping, the reason is that both random load and probing signals are added to the model which results in an additional computation burden.

+

To reproduce the results in Fig. 4 of [2], execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_inputs , which sets up the adequate solver settings to minimize run time.

+

Please note that running this model takes substantial time compared to example Example2.Analysis.Ramping, the reason is that both random load and probing signals are added to the model which results in an additional computation burden.

"),preferredView="diagram"); end RampingRandomLoadAndInput; diff --git a/Example2/Analysis/Readme/package.mo b/Example2/Analysis/Readme/package.mo new file mode 100644 index 0000000..18a2eb7 --- /dev/null +++ b/Example2/Analysis/Readme/package.mo @@ -0,0 +1,21 @@ +within Example2.Analysis; +package Readme "Recommended models for derivative work" + extends Modelica.Icons.Information; + annotation (Documentation(info=" +

The models in this layer of the package (i.e. Example2.Analysis) are intended to reproduce the work in [1] and [2].

+

However, for derivative works the models under the package Example2.Analysis.PFVariants (and associated dependencies) are recommended, as they use OpenIPSL types which implement nominal attributes to help with the intialization process. See more information on this aspect under the information layer of Example2.PFData.

+

The main differences between the examples is:

+
    +
  1. In the examples this layer of the package, Example2.Analysis, the power flow intial guess data is provided through the records in Example2.Base.Systems.Basic.Data. To change the data, it is necessary to modify the base model in Example2.Base.Systems.Basic.sys by changing the name of the record in the text layer. This is obviously inconvenient, but also, the types are generic and do not implement those of OpenIPSL.
  2. +
  3. In the examples within the sub-package, Example2.Analysis.PFVariants, the hierarchical replaceable records in Example2.PFData are used. The data can then be modified at the top-layer of the model by selecting from the available data sets (and/or providing new ones in Example2.PFData.Data) by clicking on the "Power Flow Scenario" tab of the "Plant" (instantiation of syspf), as the records have been propagated and configured for this purposes, as shown in the screenshot below:
  4. +
+

+

It is important to note that even though the models in 1. and 2. above are identical in terms of their equations, the intialization will be different due to the use of the nominal attributes. Read more on this aspect under the information layer of Example2.PFData.

+")); +end Readme; diff --git a/Example2/Analysis/Readme/package.order b/Example2/Analysis/Readme/package.order new file mode 100644 index 0000000..e69de29 diff --git a/Example2/Analysis/package.mo b/Example2/Analysis/package.mo index 5fc7ec4..47fb6d4 100644 --- a/Example2/Analysis/package.mo +++ b/Example2/Analysis/package.mo @@ -10,7 +10,7 @@ package Analysis "Models for simulation and linearization at multiple operating
  • Example2.Analysis.RampingRandomLoadAndInput, illustrates how to add multisine input signal and random load variations (in addition to ramping) to the system in Example2.Base.Systems.sys.
  • Example2.Analysis.KchangeLinRamping, designed to linearize the model Example2.Base.Systems.sys at any point in time while considering ramping as in Example2.Analysis.Ramping
  • -


    Sub-package: Example2.Analysis.AutomationFunctions

    +


    Sub-package: Example2.Analysis.AutomationFunctions

    This sub-package contains three functions to automate the simulations of models 1 and 2, and to automate the linearization of model 3. See the documentation/info layer of each of the functions for more information.

    "),preferredView="info"); end Analysis; diff --git a/Example2/Analysis/package.order b/Example2/Analysis/package.order index 84bb350..14ef305 100644 --- a/Example2/Analysis/package.order +++ b/Example2/Analysis/package.order @@ -1,3 +1,4 @@ +Readme Ramping RampingRandomLoadAndInput KchangeLinRamping diff --git a/Example2/Base/Plants/package.mo b/Example2/Base/Plants/package.mo index bd1a76d..f1f334b 100644 --- a/Example2/Base/Plants/package.mo +++ b/Example2/Base/Plants/package.mo @@ -2,6 +2,6 @@ within Example2.Base; package Plants "Models of plants (generator units) for simulation and linearization" extends Modelica.Icons.BasesPackage; annotation (Documentation(info=" -

    See the "Package Content" below for the different plants (generator units) models. See more information in Example2.Readme.

    +

    See the "Package Content" below for the different plants (generator units) models. See more information in Example2.Readme.

    "),preferredView="info"); end Plants; diff --git a/Example2/Base/Systems/Basic/Data/package.mo b/Example2/Base/Systems/Basic/Data/package.mo index b832d2d..005903a 100644 --- a/Example2/Base/Systems/Basic/Data/package.mo +++ b/Example2/Base/Systems/Basic/Data/package.mo @@ -3,7 +3,7 @@ package Data "Power flow data records for network initialization without the use extends Modelica.Icons.RecordsPackage; annotation (Documentation(info="

    This package contains different sets of data records that can be used to initialize the power network on an initial operating point.

    -

    Note that the templates in this package do not include the type declarations with nominal attributes provided by OpenIPSL, which therefore leads to different initialization solutions when the data is used as compared with the package Example2.PFData. This is used to illustrate the use of types with nominal values, observe that in the templates here, no nominal values are used, as compared with the package Example2.PFData, where they are. Observe that this is an important aspect as, "the nominal value can be used by an analysis tool to determine appropriate tolerances or epsilons, or may be used for scaling" (see the Modelica Specification, Ch.4.8.6).

    +

    Note that the templates in this package do not include the type declarations with nominal attributes provided by OpenIPSL, which therefore leads to different initialization solutions when the data is used as compared with the package Example2.PFData. This is used to illustrate the use of types with nominal values, observe that in the templates here, no nominal values are used, as compared with the package Example2.PFData, where they are. Observe that this is an important aspect as, "the nominal value can be used by an analysis tool to determine appropriate tolerances or epsilons, or may be used for scaling" (see the Modelica Specification, Ch.4.8.6).

    For example, in this package the voltage mangitude is defined in Data.PF_TwoAreas.Voltages as:

    parameter Real V1;

    Meanwhile, for the case of the templates in Example2.PFData, OpenIPSL

    @@ -11,6 +11,6 @@ annotation (Documentation(info="

    where the type declaration is:

    type Voltage = SI.Voltage(nominal = 1e4, displayUnit = "kV");

    This difference will result in different intialization solutions despite having the same power flow data.

    -

    It is recommended that the solution provided in the package Example2.PFData is favored.

    +

    It is recommended that the solution provided in the package Example2.PFData is favored.

    "),preferredView="info"); end Data; diff --git a/Example2/Base/Systems/PFVariants/syspf.mo b/Example2/Base/Systems/PFVariants/syspf.mo index 5d44ff4..1420d48 100644 --- a/Example2/Base/Systems/PFVariants/syspf.mo +++ b/Example2/Base/Systems/PFVariants/syspf.mo @@ -381,7 +381,7 @@ has \"t1\" propagated.",

      Q = g1.g1.Q; // Reactive power

      AVRin = g1.AVRinput_meas; // AVR input, error signal to the avr

      AVRout = g1.AVRoutput_meas; // AVR output, Efd

    -

    This model includes redeclarable power flow structures for top-level re-parametrization using the Example2.PFData package.

    +

    This model includes redeclarable power flow structures for top-level re-parametrization using the Example2.PFData package.

    "), experiment( StopTime=600, diff --git a/Example2/Base/Systems/package.mo b/Example2/Base/Systems/package.mo index 530f29c..b019d84 100644 --- a/Example2/Base/Systems/package.mo +++ b/Example2/Base/Systems/package.mo @@ -2,6 +2,6 @@ within Example2.Base; package Systems extends Modelica.Icons.BasesPackage; annotation (Documentation(info=" -

    Power system models with input/output interfaces for simulation and linearization. See usage in the examples under Example2.Analysis.

    +

    Power system models with input/output interfaces for simulation and linearization. See usage in the examples under Example2.Analysis.

    "),preferredView="info"); end Systems; diff --git a/Example2/CustomComponents/PSSChangeParam/PSS4Stages.mo b/Example2/CustomComponents/PSSChangeParam/PSS4Stages.mo index 2ade160..b185d83 100644 --- a/Example2/CustomComponents/PSSChangeParam/PSS4Stages.mo +++ b/Example2/CustomComponents/PSSChangeParam/PSS4Stages.mo @@ -187,7 +187,7 @@ equation Documentation(info="

    Specialized custom PSS model with Four Stages

    This PSS is comprised of four different PSS models (PSSTypeII) internally.

    -

    The output of each of them is enabled or disabled through a Example2.CustomComponents.TimedInputInjectionOnOff component such that only the output of one of them is injected.

    +

    The output of each of them is enabled or disabled through a Example2.CustomComponents.TimedInputInjectionOnOff component such that only the output of one of them is injected.

    This allows to "emulate" the change of parameters of a conventional PSS that would be represented by a single "structure", i.e., the block diagram of PSSTypeII, for a user-specified time-period.

    ")); end PSS4Stages; diff --git a/Example2/CustomComponents/PSSChangeParam/PSS5Stages.mo b/Example2/CustomComponents/PSSChangeParam/PSS5Stages.mo index 298ff62..fa86d51 100644 --- a/Example2/CustomComponents/PSSChangeParam/PSS5Stages.mo +++ b/Example2/CustomComponents/PSSChangeParam/PSS5Stages.mo @@ -216,7 +216,7 @@ equation Documentation(info="

    Specialized custom PSS model with Five Stages

    This PSS is comprised of four different PSS models (PSSTypeII) internally.

    -

    The output of each of them is enabled or disabled through a Example2.CustomComponents.TimedInputInjectionOnOff component such that only the output of one of them is injected.

    +

    The output of each of them is enabled or disabled through a Example2.CustomComponents.TimedInputInjectionOnOff component such that only the output of one of them is injected.

    This allows to "emulate" the change of parameters of a conventional PSS that would be represented by a single "structure", i.e., the block diagram of PSSTypeII, for a user-specified time-period.

    ")); end PSS5Stages; diff --git a/Example2/CustomComponents/PSSChangeParam/package.mo b/Example2/CustomComponents/PSSChangeParam/package.mo index b75e566..c4984f8 100644 --- a/Example2/CustomComponents/PSSChangeParam/package.mo +++ b/Example2/CustomComponents/PSSChangeParam/package.mo @@ -49,7 +49,7 @@ package PSSChangeParam "PSS Model with 4 or 5 different stages that have differe textStyle={TextStyle.Bold})}), Documentation(info="

    Specialized custom PSS models.

    The PSS components in this package are composed internally by four or five different PSS models (PSSTypeII) internally.

    -

    The output of each of them is enabled or disabled through a Example2.CustomComponents.TimedInputInjectionOnOff component such that only the output of one of them is injected.

    +

    The output of each of them is enabled or disabled through a Example2.CustomComponents.TimedInputInjectionOnOff component such that only the output of one of them is injected.

    This allows to "emulate" the change of parameters of a conventional PSS that would be represented by a single "structure", i.e., the block diagram of PSSTypeII, for a user-specified time-period.

    ")); end PSSChangeParam; diff --git a/Example2/PFData/package.mo b/Example2/PFData/package.mo index bd3dafb..d0534c2 100644 --- a/Example2/PFData/package.mo +++ b/Example2/PFData/package.mo @@ -7,14 +7,14 @@ annotation (Icon(graphics={ Text( lineColor={28,108,200}, textString="PFlow")}), Documentation(info="

    This subpackage contains power flow data records to initialize the simulation models.

    -

    Note that the templates in this package make use of the type declarations with nominal attributes provided by OpenIPSL, which therefore leads to different initialization solutions when the data is used as compared with the package in Example2.Base.Systems.Basic.Data. This is used to illustrate the use of types with nominal values, observe that in the templates here, types with nominal values are used. Observe that this is an important aspect as, "the nominal value can be used by an analysis tool to determine appropriate tolerances or epsilons, or may be used for scaling" (see the Modelica Specification, Ch.4.8.6).

    -

    For example, the templates in this package use OpenIPSL types, as in Example2.PFData.Data.BusData.Bus_Template

    +

    Note that the templates in this package make use of the type declarations with nominal attributes provided by OpenIPSL, which therefore leads to different initialization solutions when the data is used as compared with the package in Example2.Base.Systems.Basic.Data. This is used to illustrate the use of types with nominal values, observe that in the templates here, types with nominal values are used. Observe that this is an important aspect as, "the nominal value can be used by an analysis tool to determine appropriate tolerances or epsilons, or may be used for scaling" (see the Modelica Specification, Ch.4.8.6).

    +

    For example, the templates in this package use OpenIPSL types, as in Example2.PFData.Data.BusData.Bus_Template

    parameter OpenIPSL.Types.PerUnit V1;

    where the type declaration is:

    type Voltage = SI.Voltage(nominal = 1e4, displayUnit = "kV");

    -

    In contrast, the voltage mangitude is defined in Example2.Base.Systems.Basic.Data.PF_TwoAreas.Voltages as:

    +

    In contrast, the voltage mangitude is defined in Example2.Base.Systems.Basic.Data.PF_TwoAreas.Voltages as:

    parameter Real V1;

    This difference will result in different intialization solutions despite having the same power flow solution as initial guess data.

    -

    It is recommended that the approach used within this package is favored. The other package is used to illustrate the point discussed above and for the sake of reproducibility of the work in [2].

    +

    It is recommended that the approach used within this package is favored. The other package (i.e. Example2.Base.Systems.Basic.Data) is used to illustrate the point discussed above and for the sake of reproducibility of the work in [1] and [2].

    "), preferredView = "info"); end PFData; diff --git a/Example2/Readme.mo b/Example2/Readme.mo index ff96e72..9e6b1e9 100644 --- a/Example2/Readme.mo +++ b/Example2/Readme.mo @@ -39,10 +39,10 @@ partial class Readme "Summary: modeling aspects and how to use this package"

    To create the multiple operating points using the model above, g1 (via uPm) and the load at bus 9 (via uLoad9) increase/decrease their active power generated and consumed, respectively. Consequently, there is a corresponding change in the speed deviation at all generators, and the turbine and governor in g1 and g3 were included to both keep the system stable and to facilitate the transition to new operating points. This is achieved in the examples within the package: Example2.Analysis. The package includes the examples "Ramping", "RampingRandmLoadAndInput" and "KchangeLinRamping", as well as some functions that automate the running and plotting. Inspecting the model Example2.Analysis.Ramping, shows how the changes in uPm and uLoad9 on the figure above are applied. As shown in the figure below, the component "ramping" is applied to both the input uPm (top connector to "plant") and uLoad9 (bottom connector).

    -

    To simulate and plot the results shown below, execute the the function Example2.Analysis.AutomationFunctions.simulate_and_plot_ramping,following the instructions below.

    +

    To simulate and plot the results shown below, execute the the function Example2.Analysis.AutomationFunctions.simulate_and_plot_ramping,following the instructions below.

    -

    Observe that the plot above is very similar to that in Fig. 4 of [2]. To reproduce the results in Fig. 4 of [2], execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_inputs , which runs the model Example2.Analysis.RampingRandomLoadAndInput.

    +

    Observe that the plot above is very similar to that in Fig. 4 of [2]. To reproduce the results in Fig. 4 of [2], execute the function Example2.Analysis.AutomationFunctions.simulate_and_plot_inputs , which runs the model Example2.Analysis.RampingRandomLoadAndInput.

    Please note that running this model takes substantial time compared to the "Ramping" example, the reason is that both random load and probing signals are added to the simulation which results in an additional computation burden.

    -

    An additional function, Example2.Analysis.AutomationFunctions.linearize_KchangeLinRamping, allows to linearize the model Example2.Analysis.KchangeLinRamping at any point in time while at the same time running the same simulation scenario as in the "Ramping" example above. Running the function outputs a linear model.

    +

    An additional function, Example2.Analysis.AutomationFunctions.linearize_KchangeLinRamping, allows to linearize the model Example2.Analysis.KchangeLinRamping at any point in time while at the same time running the same simulation scenario as in the "Ramping" example above. Running the function outputs a linear model.

    "),preferredView="info"); end Readme;