blockVRProportional
Extends from Controls.BaseClasses.BaseControllerFramework (Base framework for all controllers such as AVR, PSS, etc.).
Information
The class implements a simple model of a proportional static exictation with limiter.
The Limiter enforces saturations only after they were violated without interruption during a certain amount of time.
If fixInitialControlledVariable = true, an initial equation is added to ensure that the machine voltage VcPu is equal to its start value VcPuStart. In order to fulfill this condition, the initial value of the reference signal should be free, so that the Modelica tool can back-compute it automatically. For this purpose, the PowerGrids.Controls.FreeOffset block should be used to generate the reference signal to be connected to the VrefPu input.
In case the condition VcPu = VcPuStart cannot be fulfilled without violating the controller saturations, then an alternative initial condition is enforced, which prescribes the saturation block input so as to obtain a certain degree of oversaturation oversaturationPu. This allows to back-compute a unique initial value of the reference signal, which is of course dependent on oversaturationPu and hence somewhat arbitrary.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| SI.PerUnit | Ka | Overall equivalent gain | |
| SI.PerUnit | VrMax | Output voltage max limit in p.u. | |
| SI.PerUnit | VrMin | Output voltage min limit in p.u. | |
| Types.Time | LagMax | 0 | Time lag before taking action when u going above uMax |
| Types.Time | LagMin | 0 | Time lag before taking action when u going below uMin |
| SI.PerUnit | VcPuStart | 1 | Required start value of VcPu when fixInitialControlledVariable = true |
| SI.PerUnit | oversaturationPu | 0.1 | abs(u-usat)/(Vmax-Vmin) in case of saturated initial condition |
| Real | delta | (limiterWithLag.uMax - limiterWithLag.uMin)*oversaturationPu | Actuator saturation margin |
| Initialization | |||
| Boolean | fixInitialControlledVariableDefault (from BaseControllerFramework) | if (systemPowerGrids.initOpt == Types.Choices.InitializationOption.globalSteadyStateFixedPowerFlow or systemPowerGrids.initOpt == Types.Choices.InitializationOption.localSteadyStateFixedPowerFlow) then true else false | = true adds extra initial equation to fix controlled variable |
| Boolean | fixInitialControlledVariable (from BaseControllerFramework) | fixInitialControlledVariableDefault | = true adds extra initial equation to fix controlled variable |
| PowerGrids.Controls.LimiterWithLag.State | stateStart | PowerGrids.Controls.LimiterWithLag.State.notSat | Saturation initial state |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.RealInput | VcPu | Machine terminal voltage p.u. | |
| Modelica.Blocks.Interfaces.RealInput | VrefPu | Voltage reference p.u. | |
| Modelica.Blocks.Interfaces.RealOutput | efdPu | Exciter output voltage p.u. |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| System | systemPowerGrids (from BaseControllerFramework) | Reference to system object for system-level defaults | |
| Modelica.Blocks.Math.Feedback | Verr | ||
| PowerGrids.Controls.LimiterWithLag | limiterWithLag | ||
| Modelica.Blocks.Math.Gain | gain |