{ "cells": [ { "cell_type": "markdown", "id": "1b91b283", "metadata": {}, "source": [ "(needle_combination)=\n", "# needle_combination\n", "A needle combination or isolated production zone of a generator with separate turbine efficiency curves. Can be used to model pelton turbines and other turbines with forbidden production zones\n", "\n", "| | |\n", "|---|---|\n", "|Input connections|{ref}`generator`, {ref}`needle_comb_reserve_capability`|\n", "|Output connections|{ref}`generator`, {ref}`needle_comb_reserve_capability`|\n", "|License|SHOP_PELTON|\n", "|Release version|13.0.0.a|\n", "\n", "```{contents}\n", ":local:\n", ":depth: 1\n", "```\n", "\n", "## Introduction\n", "The needle_combination object in SHOP is used to model both Pelton turbines and [generators](generator) with forbidden production and/or discharge zones. The SHOP_PELTON license is required to use the needle_combination object. \n", "\n", "## Pelton turbines\n", "When modelling a Pelton unit, the needle_combination represents the production and discharge characteristics of the unit when a specific combination of needles is controlling the flow of water through the nozzle. The attributes [p_min](needle_combination:p_min), [p_max](needle_combination:p_max), [p_nom](needle_combination:p_nom), and [turb_eff_curves](needle_combination:turb_eff_curves) are specified on the needle_combination object to describe its operating range and efficiency. Defining multiple needle_combinations and then connecting them to a generator object will enable SHOP to choose which of the needle_combinations (if any) should be used to generate power in each hour. \n", "\n", "## Turbine with forbidden operating regions\n", "Other turbine types, such as Francis turbines, is usually modelled as having a continuous operating range between [p_min](generator:p_min) and [p_max](generator:p_max) in SHOP. However, some turbines may experience vibration or other unwanted behaviour when discharging water or producing power in a region within its operating range. These forbidden production and/or discharge regions can be modelled by using the needle_combination object. Having needle_combinations without overlap in production and/or discharge ranges will force SHOP to not operate in the forbidden region(s). This is shown in more detail in [this example](pelton).\n", "\n", "## MIP\n", "Running SHOP without binary variables can lead to fractional commitment of generators and production below p_min. This problem can be more pronounced for generators modelled with needle_combinations, since it will be possible to fractionally operate on more than one needle_combination at the same time. The only way to ensure that this problem does not occur is to have an active [mip_flag](plant:mip_flag), which will force the optimization to pick only one needle_combination to operate on. Especially Pelton units delivering [reserves](reserves) may be \"tempted\" to operate a little bit on several needle_combinations to more easily deliver reserve capacity.\n", "\n", "## Input and output\n", "Most of the results for generators modelled with the use of needle_combinations are still found on the generator object, such as [production](generator:production) and [discharge](generator:discharge). A few output attributes are still saved on the needle_combination object, which can be seen in the attribute table below. The same is true for the input attributes: all input generator attributes are still used for Pelton turbines, except for p_min, p_max, p_nom, and turb_eff_curves on the needle_combination object. Some attributes exist on both the generator and needle_combination, such as [p_fcr_min (generator)](generator:p_fcr_min) and [p_fcr_min (needle_combination)](needle_combination:p_fcr_min). In these cases the needle_combination attribute is preferred over the generator attribute, but the generator attribute is still used if it is not present on the needle_combination.\n", "\n", "## Examples\n", " - [](pelton)\n", " \n", "\n", "\n", "\n", "## Attributes" ] }, { "cell_type": "code", "execution_count": 1, "id": "be5db106", "metadata": { "tags": [ "remove-input", "full-width" ] }, "outputs": [ { "data": { "text/html": [ "