Code Monkey home page Code Monkey logo

windpowerplants's Introduction

WindPowerPlants

The WindPowerPlants library is an open source library for the simulation of wind power plants. The library provides models of wind turbines, generators and control.

Library description

In the presented version of the library wind turbine models are modeled with pitch control. The generator models have variable speed and an optional connector to the mains. The entire library is based on power balance conditions and losses are fully neglected. Yet, the library can be extended towards more detailed models considering different types of losses.

GenericPlantElectricRealData

The WindPowerPlants library does not model all the controllers that a real wind power plant has. Instead, the intention was to model the overall behavior of wind power plants in such a way, that the major operating conditions are fulfilled. Therefore, only mechanical dynamics are taken into account. Electrical transients are fully neglected. There is yet an electrical interface available to couple electrical networks with one or more wind power plants. This electrical interface to the mains is based on a quasi static multi phase connector.

Development and contribution

The library was developed during a Diploma project at the Technical Engineering College, TGM, Wexstraße 19-23, 1200 Vienna, Austria. Library authors are Christian Kral, Philip Eberhart and Tek Shan Chung.

Contact

e-mail: dr.christian.kral(at)gmail.com

windpowerplants's People

Contributors

christiankral avatar dietmarw avatar tbeu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

windpowerplants's Issues

cpVal function: Possible typo

In the file WindPowerPlants/WindPowerPlants/Functions/cpVal.mo
There's a possible typo in the "Internal lambda" formulation.
According to Siegfried Heier, "Grid Integration of Wind Energy Conversion Systems", Second Edition,
John Wiley, the "internal lambda" should be

lambda1 := 1 / (1 / (lambda + 0.08*beta) - 0.035 / (beta ^ 3 + 1));

and not

lambda1 := 1 / (1 / (lambda + 0.089) - 0.035 / (beta ^ 3 + 1));

I don't have access to the original book by Heier, cited in your paper
"Open Source Library for the Simulation of Wind Power Plants"
where this possible typo is also encountered in equation (3),
so I should think it's probably a problem of Heier's English version.
Howerver, my teacher of wind power generation gave me the first formula
so I am a bit confused at this point.
I kindly suggest you take a look at it, thank you.

Numerically strange cp value

The power coefficient WindPowerPlants.Examples.GenericPlantRealData.plant.windturbine.turbine.cp is either close to zero and one or is negative with very large magnitude of 10E+38 (Dymola) or even 10E+103 (SimulationX) at time instances. This leads to floating-point overflow in certain cases in SimulationX. Note that GenericPlantRayleigh is not affected. Only GenericPlantRealData and GenericPlantElectricRealData are affected.

Warnings about missing initial assignments

I attached the log of a test run of the example models with SimulationX. Please note the warnings about missing initial assignments.

Warning In WindPowerPlants.Examples.CpLambdaWindTurbine

For the variable "_pre_windturbine.limit" is no assignment in the initial system. The startvalue "false" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Simulation finished successfully. (Investigate cp versus lambda of wind turbine for different pitch angles)

Current Simulation Time:    1 s
Steps:  100048
   Valid:       100048
   Error:       0
   NoConv:      0
Calculations:
   Residuals:   100217
   Jacobian:    0
   Dummy-pivotings: 0
   Event iterations:    25
   Event steps: 86
   Substitute Event steps:  0
Order:
   Changes:     0
   Max:         0
Matrix:
   Decomp:      0
   Solve:       0
   CodeGeneration:  0
Number of States:       0
Warning In WindPowerPlants.Examples.GenericPlantRayleigh

For the variable "windSource.tNext" is no assignment in the initial system. The startvalue "windSource.tNext.start" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.GenericPlantRayleigh

For the variable "windSource.velocity" is no assignment in the initial system. The startvalue "windSource.velocity.start" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.GenericPlantRayleigh

There is no unique solution for the variable plant.windturbine.slewRateLimiter.y. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.GenericPlantRayleigh

For the variable "_pre_plant.windturbine.turbine.limit" is no assignment in the initial system. The startvalue "false" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.GenericPlantRayleigh

The structure of the initial equation system is singular.Equations are missing.
plant.windturbine.turbine.phi:
| plant.generator.mechanicalPowerSensor.flange_a.phi --> plant.generator.mechanicalPowerSensor.flange_a.phi=112.8*plant.windturbine.turbine.phi;
Equations, which do not assign a variable:
.
Message Name: Check.Singular
Warning In WindPowerPlants.Examples.GenericPlantRayleigh

There is no unique solution for the variable plant.windturbine.turbine.phi. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.GenericPlantRayleigh

There is no start attribute of state plant.windturbine.phi. It is set to 0.
Message Name: Check.StartAttrMissing
Simulation finished successfully. (Generic wind power plant simulation with statistical wind data)

Current Simulation Time:    2678400 s
Steps:  823272
   Valid:       784316
   Error:       38953
   NoConv:      3
Calculations:
   Residuals:   3194288
   Jacobian:    624313
   Dummy-pivotings: 1
   Event iterations:    86257
   Event steps: 229755
   Substitute Event steps:  0
Order:
   Changes:     251593
   Max:         5
Matrix:
   Decomp:      460034
   Solve:       1750844
   CodeGeneration:  143804
Number of States:       8
Total energy = -511747 kWh


Total energy = -511747 kWh
Warning In WindPowerPlants.Examples.GenericPlantRealData

There is no unique solution for the variable plant.windturbine.slewRateLimiter.y. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.GenericPlantRealData

For the variable "_pre_plant.windturbine.turbine.limit" is no assignment in the initial system. The startvalue "false" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.GenericPlantRealData

The structure of the initial equation system is singular.Equations are missing.
plant.windturbine.turbine.phi:
| plant.generator.mechanicalPowerSensor.flange_a.phi --> plant.generator.mechanicalPowerSensor.flange_a.phi=112.8*plant.windturbine.turbine.phi;
Equations, which do not assign a variable:
.
Message Name: Check.Singular
Warning In WindPowerPlants.Examples.GenericPlantRealData

There is no unique solution for the variable plant.windturbine.turbine.phi. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.GenericPlantRealData

There is no start attribute of state plant.windturbine.phi. It is set to 0.
Message Name: Check.StartAttrMissing
... loading "velocity" from "z:/WindPowerPlants/WindPowerPlants/Resources/Data/beresford2006.txt"


... loading "velocity" from "z:/WindPowerPlants/WindPowerPlants/Resources/Data/beresford2006.txt"
Simulation finished successfully. (Generic wind power plant simulation with real wind data)

Current Simulation Time:    2678400 s
Steps:  407081
   Valid:       389563
   Error:       17500
   NoConv:      18
Calculations:
   Residuals:   1682364
   Jacobian:    54867
   Dummy-pivotings: 3
   Event iterations:    3927
   Event steps: 8075
   Substitute Event steps:  0
Order:
   Changes:     59953
   Max:         5
Matrix:
   Decomp:      73110
   Solve:       1258080
   CodeGeneration:  7621
Number of States:       8
Total energy = -536274 kWh


Total energy = -536274 kWh
Warning In WindPowerPlants.Examples.GenericPlantRealData

There is no unique solution for the variable plant.windturbine.slewRateLimiter.y. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.GenericPlantRealData

For the variable "_pre_plant.windturbine.turbine.limit" is no assignment in the initial system. The startvalue "false" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.GenericPlantRealData

The structure of the initial equation system is singular.Equations are missing.
plant.windturbine.turbine.phi:
| plant.generator.mechanicalPowerSensor.flange_a.phi --> plant.generator.mechanicalPowerSensor.flange_a.phi=112.8*plant.windturbine.turbine.phi;
Equations, which do not assign a variable:
.
Message Name: Check.Singular
Warning In WindPowerPlants.Examples.GenericPlantRealData

There is no unique solution for the variable plant.windturbine.turbine.phi. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.GenericPlantRealData

There is no start attribute of state plant.windturbine.phi. It is set to 0.
Message Name: Check.StartAttrMissing
... loading "velocity" from "z:/WindPowerPlants/WindPowerPlants/Resources/Data/beresford2006.txt"


... loading "velocity" from "z:/WindPowerPlants/WindPowerPlants/Resources/Data/beresford2006.txt"
Simulation finished successfully. (Generic wind power plant simulation with real wind data)

Current Simulation Time:    2678400 s
Steps:  407081
   Valid:       389563
   Error:       17500
   NoConv:      18
Calculations:
   Residuals:   1682364
   Jacobian:    54867
   Dummy-pivotings: 3
   Event iterations:    3927
   Event steps: 8075
   Substitute Event steps:  0
Order:
   Changes:     59953
   Max:         5
Matrix:
   Decomp:      73110
   Solve:       1258080
   CodeGeneration:  7621
Number of States:       8
Total energy = -536274 kWh


Total energy = -536274 kWh
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_A

For the variable "windSource.tNext" is no assignment in the initial system. The startvalue "windSource.tNext.start" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_A

For the variable "windSource.velocity" is no assignment in the initial system. The startvalue "windSource.velocity.start" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_A

There is no unique solution for the variable plant.windturbine.slewRateLimiter.y. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_A

For the variable "_pre_plant.windturbine.turbine.limit" is no assignment in the initial system. The startvalue "false" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_A

The structure of the initial equation system is singular.Equations are missing.
plant.windturbine.turbine.phi:
| plant.generator.mechanicalPowerSensor.flange_a.phi --> plant.generator.mechanicalPowerSensor.flange_a.phi=112.8*plant.windturbine.turbine.phi;
Equations, which do not assign a variable:
.
Message Name: Check.Singular
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_A

There is no unique solution for the variable plant.windturbine.turbine.phi. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_A

There is no start attribute of state plant.windturbine.phi. It is set to 0.
Message Name: Check.StartAttrMissing
Simulation finished successfully. (Generic wind power plant A [Eberhart2015] with statistical wind data)

Current Simulation Time:    31536000 s
Steps:  3511751
   Valid:       3479209
   Error:       32541
   NoConv:      1
Calculations:
   Residuals:   6760904
   Jacobian:    388864
   Dummy-pivotings: 1
   Event iterations:    53273
   Event steps: 141786
   Substitute Event steps:  0
Order:
   Changes:     163230
   Max:         5
Matrix:
   Decomp:      275506
   Solve:       4204551
   CodeGeneration:  88953
Number of States:       7
Total energy = -9.49773e+006 kWh


Total energy = -9.49773e+006 kWh
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_B

For the variable "windSource.tNext" is no assignment in the initial system. The startvalue "windSource.tNext.start" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_B

For the variable "windSource.velocity" is no assignment in the initial system. The startvalue "windSource.velocity.start" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_B

There is no unique solution for the variable plant.windturbine.slewRateLimiter.y. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_B

For the variable "_pre_plant.windturbine.turbine.limit" is no assignment in the initial system. The startvalue "false" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_B

The structure of the initial equation system is singular.Equations are missing.
plant.windturbine.turbine.phi:
| plant.generator.mechanicalPowerSensor.flange_a.phi --> plant.generator.mechanicalPowerSensor.flange_a.phi=112.8*plant.windturbine.turbine.phi;
Equations, which do not assign a variable:
.
Message Name: Check.Singular
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_B

There is no unique solution for the variable plant.windturbine.turbine.phi. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_B

There is no start attribute of state plant.windturbine.phi. It is set to 0.
Message Name: Check.StartAttrMissing
Simulation finished successfully. (Generic wind power plant B [Eberhart2015] with statistical wind data)

Current Simulation Time:    31536000 s
Steps:  3511809
   Valid:       3479187
   Error:       32620
   NoConv:      2
Calculations:
   Residuals:   6905039
   Jacobian:    388610
   Dummy-pivotings: 1
   Event iterations:    53279
   Event steps: 141800
   Substitute Event steps:  0
Order:
   Changes:     216922
   Max:         5
Matrix:
   Decomp:      275607
   Solve:       4186248
   CodeGeneration:  88949
Number of States:       7
Total energy = -9.90483e+006 kWh


Total energy = -9.90483e+006 kWh
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_C

For the variable "windSource.tNext" is no assignment in the initial system. The startvalue "windSource.tNext.start" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_C

For the variable "windSource.velocity" is no assignment in the initial system. The startvalue "windSource.velocity.start" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_C

There is no unique solution for the variable plant.windturbine.slewRateLimiter.y. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_C

For the variable "_pre_plant.windturbine.turbine.limit" is no assignment in the initial system. The startvalue "false" is used. Set fixed=true or add a assignment in a initial section
Message Name: InitialSystem.MissingInitialAssignment
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_C

The structure of the initial equation system is singular.Equations are missing.
plant.windturbine.turbine.phi:
| plant.generator.mechanicalPowerSensor.flange_a.phi --> plant.generator.mechanicalPowerSensor.flange_a.phi=112.8*plant.windturbine.turbine.phi;
Equations, which do not assign a variable:
.
Message Name: Check.Singular
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_C

There is no unique solution for the variable plant.windturbine.turbine.phi. If applicable, add a fixed initial value, initial equation or initial assignment.
Message Name: InitialSystem.IterationVar
Warning In WindPowerPlants.Examples.Modelica2015Conference.GenericPlant_C

There is no start attribute of state plant.windturbine.phi. It is set to 0.
Message Name: Check.StartAttrMissing
Simulation finished successfully. (Generic wind power plant C [Eberhart2015] with statistical wind data)

Current Simulation Time:    31536000 s
Steps:  3473242
   Valid:       3444431
   Error:       28810
   NoConv:      1
Calculations:
   Residuals:   6521429
   Jacobian:    351799
   Dummy-pivotings: 1
   Event iterations:    47555
   Event steps: 126539
   Substitute Event steps:  0
Order:
   Changes:     146208
   Max:         5
Matrix:
   Decomp:      247794
   Solve:       4128596
   CodeGeneration:  79171
Number of States:       7
Total energy = -6.8685e+006 kWh


Total energy = -6.8685e+006 kWh

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.