diff --git a/lib/cdlDoc.js b/lib/cdlDoc.js index 995aa00a..385588d0 100644 --- a/lib/cdlDoc.js +++ b/lib/cdlDoc.js @@ -1,5 +1,8 @@ +const { exp } = require('mathjs'); const expressionEvaluation = require('../lib/expressionEvaluation.js'); +const jsonQuery = require('../lib/jsonquery'); const logger = require('winston'); // This retrieves the default logger which is configured in app.js +const math = require('mathjs'); /** * Determines whether a document element should be included in the documentation. @@ -21,18 +24,18 @@ const logger = require('winston'); // This retrieves the default logger which is * - no `__cdl(Documentation(info=...))` is found, only `Documentation(info=...)`, OR * - neither `__cdl(Documentation(info=...))` nor `Documentation(info=...)` is found. * - * @param {Object} docElement The document element to be evaluated. - * @param {Object} context The context in which parameter evaluation is performed. - * @returns {boolean} True if the document element should be documented, false otherwise. + * @param {Object} docElement - The document element to be evaluated. + * @param {Object} evalContext - The context in which parameter evaluation is performed. + * @returns {boolean} - True if the document element should be documented, false otherwise. */ -function shallBeDocumented (docElement, context) { +function shallBeDocumented (docElement, evalContext) { /* Expression evaluation requires prepending the stacked instance name to the parameter names so that the context from the top-level class can be used */ const isInstantiated = docElement.instance?.condition == null ? true : expressionEvaluation.evalExpression( docElement.instance.condition, - context, + evalContext, /* prefix */ docElement.instance?.name, ) const isInstanceCdlDocIncluded = @@ -40,7 +43,7 @@ function shallBeDocumented (docElement, context) { ? null : expressionEvaluation.evalExpression( docElement.instance.cdlAnnotation.Documentation.include, - context, + evalContext, /* prefix */ docElement.instance?.name, ) const isTypeEligible = /^Buildings.Controls.OBC(?!\.CDL).*$/ @@ -50,7 +53,7 @@ function shallBeDocumented (docElement, context) { ? null : expressionEvaluation.evalExpression( docElement.classCdlAnnotation.Documentation.include, - context, + evalContext, /* prefix */ docElement.instance?.name, ) // Regex below uses [\s\S]* for testing a match over multiple lines @@ -100,3 +103,82 @@ function sortDocSections (a, b) { else return 1 } } + + +/** + * Converts a value from one unit to another display unit using provided unit data. + * + * @param {number} value - The numerical value to be converted. + * @param {string} unit - The original unit of the value. + * @param {string} [displayUnit] - The target display unit for the conversion. + * @param {Object} unitData - The data containing unit conversion information. + * @returns {number} - The converted value in the target display unit. + */ +function convertUnit (value, unit, displayUnit, unitData) { + if (displayUnit != null) { + const conversion = jsonQuery.findNestedObjects( + jsonQuery.findNestedObjects(unitData, 'unit', unit), + 'displayUnit', displayUnit)[0] + if (conversion != null) { + value = expressionEvaluation.evalInContext( + `${value} * (${conversion.multiplier ?? 1}) + (${conversion.offset ?? 0})` + ) + } + } + return value +} + +/** + * Evaluates an expression string to get its value and unit, and + * optionally rounds the value. + * + * @param {string} expStr - The expression string to evaluate. + * @param {Object} instance - The instance context for the expression. + * @param {Object} evalContext - The evaluation context for the expression. + * @param {Object} unitContext - The unit context for the expression. + * @param {Object} unitData - The unit data for conversion. + * @param {number} [round] - The number of decimal places to round the value to. + * @returns {string|number} - The evaluated value with its unit, or + * just the value if no unit is found. + */ +function getValueAndUnit (expStr, instance, evalContext, unitContext, unitData, round) { + let value = expressionEvaluation.evalExpression(expStr, evalContext, instance) + const expSplit = expressionEvaluation.splitExpression(expStr) + let expUnits; + if (Array.isArray(expSplit)) { + expUnits = function () { + for (const term of expSplit) { + const strInContext = instance == null + ? `${term}` + : `${instance}.${term}` + if (strInContext in unitContext) return unitContext[strInContext]; + } + }() + } + value = round && typeof value === 'number' ? math.round(value, round) : value + if (expUnits?.unit == null || `${expUnits?.unit}` === '1') { + return value + } + else if (expUnits?.displayUnit == null || expUnits?.displayUnit === expUnits?.unit) { + return `${value} ${expUnits.unit}`.replace('deg', '°') + } + else { + value = convertUnit(value, expUnits.unit, expUnits.displayUnit, unitData) + value = round && typeof value === 'number' ? math.round(value, round) : value + return `${value} ${expUnits.displayUnit}`.replace('deg', '°') + } +} + + +function buildDoc (classObj, jsons) { + const paramAndDoc = expressionEvaluation.getParametersAndBindings( + classObj, jsons, /* fetchDoc= */ true); + const evalContext = paramAndDoc.parameters.reduce((a, v) => + ({ ...a, [v.name]: v.value }), {}); + const unitContext = paramAndDoc.parameters.reduce((a, v) => + ({ ...a, [v.name]: {unit: v.unit, displayUnit: v.displayUnit} }), {}); + let documentation = paramAndDoc.documentation + .filter(docElement => shallBeDocumented(docElement, evalContext)); + documentation = documentation.sort(sortDocSections.bind(documentation)); + +} \ No newline at end of file diff --git a/lib/expressionEvaluation.js b/lib/expressionEvaluation.js index b48ab7d2..5e6cdcc0 100644 --- a/lib/expressionEvaluation.js +++ b/lib/expressionEvaluation.js @@ -5,7 +5,6 @@ const logger = require('winston'); // This retrieves the default logger which is const objectExtractor = require('../lib/objectExtractor.js') const path = require('path') const utilM2j = require('../lib/util.js'); -const { name } = require('mustache'); global.math = require("mathjs"); // Import in global scope to be used by indirect eval. const operators = [ @@ -39,8 +38,8 @@ const primitiveTypes = ['Boolean', 'Integer', 'Real', 'String'] // paths to properties const pathToClassSpecifier = ['class_definition', 0, 'class_specifier'] -const pathToComposition = pathToClassSpecifier.concat(['long_class_specifier', 'composition']) -const pathToClassAnnotation = pathToComposition.concat(['annotation']) +const pathToComposition = [...pathToClassSpecifier, 'long_class_specifier', 'composition'] +const pathToClassAnnotation = [...pathToComposition, 'annotation'] /** @@ -49,8 +48,8 @@ const pathToClassAnnotation = pathToComposition.concat(['annotation']) * - We don't use a recursive algorithm for function calls because of * https://github.com/lbl-srg/modelica-json/issues/247 * - * @param {Object} obj The expression object to be converted. - * @returns {string} The string representation of the expression. + * @param {Object} obj - The expression object to be converted. + * @returns {string} - The string representation of the expression. */ function stringifyExpression (obj) { if (functionsMathJS.includes(obj.simple_expression?.function_call?.name)) { @@ -139,9 +138,9 @@ function stringifyExpression (obj) { * - The unit property is only populated for primitive type instances with a declaration attribute. * (Non-primitive types are not parsed to retrieve the original unit value.) * - * @param {Object} classObject The class object to extract components from. + * @param {Object} classObject - The class object to extract components from. * Class definition is also accepted. - * @param {function} [stringifyExpression=] Function to convert expression + * @param {function} [stringifyExpression] - Function to convert expression * objects into Modelica expressions (strings). * @returns {Array} An array of components extracted from the class object. */ @@ -211,8 +210,8 @@ function getComponents (classObject, stringifyExpression) { /** * Retrieves the class identifier from the given class specifier. * - * @param {object} classSpecifier The class specifier object. - * @returns {string|undefined} The class identifier, or undefined if not found. + * @param {object} classSpecifier - The class specifier object. + * @returns {string|undefined} - The class identifier, or undefined if not found. */ function getClassIdentifier (classSpecifier) { return classSpecifier == null @@ -229,20 +228,19 @@ function getClassIdentifier (classSpecifier) { * - Search within both standard class definitions and short class definitions. * - Search based on within and identifier. * - * @param {Array} jsons The JSON data to search within. - * @param {string} type_specifier The type specifier to match against. - * @param {Object=} classObject The class object or class definition containing the short class definition, - * only required for short class specifiers. - * @returns {Object|null} The class definition object if found — with additional within and - * fullMoFilePath properties — or null if not found. + * @param {Array} jsons - The JSON data to search within. + * @param {string} type_specifier - The type specifier to match against. + * @param {Object} [classObject] - The class object or class definition containing + * the short class definition, only required for short class specifiers. + * @returns {Object|null} - The class definition object if found — with additional + * within and fullMoFilePath properties — or null if not found. */ function getClassDefinition (jsons, type_specifier, classObject) { if (type_specifier == null) { return null } if (!/\./.test(type_specifier)) { // Short class definition looked up in the class object - const classDefinition = jsonQuery.findNestedObjects(classObject, 'class_definition').filter( - d => getClassIdentifier(d.class_specifier) === type_specifier - )[0] + const classDefinition = jsonQuery.findNestedObjects(classObject, 'class_definition') + .filter(d => getClassIdentifier(d.class_specifier) === type_specifier)[0] if (classDefinition != null) { return { ...classDefinition, @@ -297,8 +295,8 @@ function getClassDefinition (jsons, type_specifier, classObject) { /** * Converts a file path to a class name. * - * @param {string} moFilePath The file path to be converted. - * @returns {string} The converted class name. + * @param {string} moFilePath - The file path to be converted. + * @returns {string} - The converted class name. */ function convertPathToClassName (moFilePath) { for (const p of utilM2j.getMODELICAPATH()) { @@ -313,10 +311,10 @@ function convertPathToClassName (moFilePath) { /** * Looks up the class name based on the given type specifier. * - * @param {string} typeSpecifier The type specifier to lookup the class name for. - * @param {string} within The within clause of the class with the type instance. - * @param {string} moFilePath The Modelica file path of the class with the type instance. - * @returns {string|undefined} The class name if found, otherwise undefined. + * @param {string} typeSpecifier - The type specifier to lookup the class name for. + * @param {string} within - The within clause of the class with the type instance. + * @param {string} moFilePath - The Modelica file path of the class with the type instance. + * @returns {string|undefined} - The class name if found, otherwise undefined. */ function lookupClassName (typeSpecifier, within, moFilePath) { const path = utilM2j.searchPath( @@ -341,12 +339,12 @@ function lookupClassName (typeSpecifier, within, moFilePath) { * - If isFunction, transforms the pattern 'func' into 'func\s*(' * (because instance names may have function names, like 'mod') * - * @param {Array} strings The array of strings to generate the regular expression from. - * @param {string} flags The flags to be used in the regular expression. - * @param {boolean} [useWholeWord=true] Indicates whether to perform a whole word match. - * @param {boolean} [useGroupMatch=false] Indicates whether to use group match in the regular expression. - * @param {boolean} [isFunction=false] Indicates whether the pattern is for a function. - * @returns {RegExp} The generated regular expression. + * @param {Array} strings - The array of strings to generate the regular expression from. + * @param {string} flags - The flags to be used in the regular expression. + * @param {boolean} [useWholeWord=true] - Indicates whether to perform a whole word match. + * @param {boolean} [useGroupMatch=false] - Indicates whether to use group match in the regular expression. + * @param {boolean} [isFunction=false] - Indicates whether the pattern is for a function. + * @returns {RegExp} - The generated regular expression. */ function regexFrom (strings, flags, useWholeWord = true, useGroupMatch = false, isFunction = false) { let strForRegExp = strings @@ -369,9 +367,9 @@ function regexFrom (strings, flags, useWholeWord = true, useGroupMatch = false, * - Function names are bundled with the opening parenthesis in the returned array * (because instance names may have function names, like 'mod'). * - * @param {string | boolean | number | undefined} expression The expression to be split. - * @param {boolean} [keepOperator=false] Whether to keep the operator in the resulting array. - * @returns {Array | string | boolean | number | undefined} The array of substrings + * @param {string | boolean | number | undefined} expression - The expression to be split. + * @param {boolean} [keepOperator=false] - Whether to keep the operator in the resulting array. + * @returns {Array | string | boolean | number | undefined} - The array of substrings * if the expression is a string, otherwise the expression itself. */ function splitExpression (expression, keepOperator = false) { @@ -398,10 +396,10 @@ function splitExpression (expression, keepOperator = false) { * - Nested bindings such as: p(q(r=1)) * - Record function calls such as: parameter Record p = Record(q=1) * - * @param {Array} jsons The JSONs of all instantiated classes. - * @param {Object} classObject The class object to retrieve the parameters and bindings from. + * @param {Array} jsons - The JSONs of all instantiated classes. + * @param {Object} classObject - The class object to retrieve the parameters and bindings from. * Class definition is also accepted. - * @param {boolean} [fetchDoc=false] Whether to fetch the documentation. + * @param {boolean} [fetchDoc=false] - Whether to fetch the documentation. * @param {{name: string, protected: boolean, condition: boolean|string, cdlAnnotation: Object}} [_instance=] * Instance data — used for recursive calls only. * @param {Object} [_bindings=] The bindings object — used for recursive calls only. @@ -447,17 +445,21 @@ function getParametersAndBindings (jsons, classObject, fetchDoc = false, _instan function handleSimpleAssignment (toReturn, component) { const identifier = prependIdentifier(component.identifier) + let unit = component.unit?.function_call?.name == "fill" // In case of array parameters + ? component.unit.function_call.arguments[0].name + : component.unit + unit = unit == null ? null : `${unit}`.replace(/"/g, '') // Remove double quotes + let displayUnit = component.displayUnit?.function_call?.name == "fill" // In case of array parameters + ? component.displayUnit.function_call.arguments[0].name + : component.displayUnit + displayUnit = displayUnit == null ? null : `${displayUnit}`.replace(/"/g, '') // Remove double quotes toReturn.parameters.push({ name: identifier, value: (_bindings != null && _bindings[component.identifier]) ? _bindings[component.identifier] // Bindings passed as arguments override local assignments : prependExpression(component.assignment), - unit: component.unit?.function_call?.name == "fill" // In case of array parameters - ? component.unit.function_call.arguments[0].name - : component.unit, - displayUnit: component.displayUnit?.function_call?.name == "fill" // In case of array parameters - ? component.displayUnit.function_call.arguments[0].name - : component.displayUnit, + unit, + displayUnit, }); } @@ -536,6 +538,13 @@ function getParametersAndBindings (jsons, classObject, fetchDoc = false, _instan !/^Buildings\.Controls\.OBC\.CDL/.test(fullClassName) if (fetchDoc) { + const descriptionString = jsonQuery.getProperty( + [...(classObject.class_definition + ? pathToClassSpecifier + : pathToClassSpecifier.slice(-pathToClassSpecifier.length + 2)), // If classObject is already a class definition + 'long_class_specifier', 'description_string'], + classObject + ) const classAnnotation = jsonQuery.getProperty( classObject.class_definition ? pathToClassAnnotation @@ -554,6 +563,7 @@ function getParametersAndBindings (jsons, classObject, fetchDoc = false, _instan toReturn.documentation.push({ instance: _instance, + descriptionString, classCdlAnnotation, classDocInfo, fullClassName, @@ -579,20 +589,15 @@ const mathSymbolsRegExp = new RegExp( * Evaluates a *single* parameter in a given context, or a literal expression * * - Parameter *expressions* are not evaluated and are returned unchanged. - * - * @param {string} str The parameter or expression to evaluate. - * @param {object=} context The context object containing variables and their values. - * @param {string=} prefix An optional prefix to prepend to the parameter before - * evaluation (for nested instances). - * @returns {*} The result of the evaluation. * @example - * evalInContext('a', , {a: 'b', b: 2})) // returns 2 - * @example - * evalInContext('math.floor([-3.14, 3.14])') // returns [ -4, 3 ] - * @example - * evalInContext('a + 1', {a: 1}) // returns 'a + 1' (unsuccessful evaluation) - * @example - * evalInContext('b', {a$b: 'c', b: 2, c: 1}, 'a') // returns 1 + * // returns 2 + * evalInContext('a', , {a: 'b', b: 2})) + * // See test/test_expressionEvaluation.js for more examples. + * @param {string} str - The parameter or expression to evaluate. + * @param {object} [context] - The context object containing variables and their values. + * @param {string} [prefix] - A prefix to prepend to the parameter before + * evaluation (for nested instances). + * @returns {*} - The result of the evaluation. */ function evalInContext (str, context, prefix) { // Tentative parameter evaluation @@ -631,14 +636,16 @@ function evalInContext (str, context, prefix) { * * - Recursively evaluates parameters within the expression. * - Ultimately returns the evaluated expression. - * * @example - * evalExpression('a + b', {a: 1, b: 'a'}) // returns 2 - * @param {string} expression The expression to evaluate. - * @param {object} context The context object containing variables and their values. - * @param {string=} prefix Optional prefix to prepend to the parameter before evaluation (for nested instances). - * @param {boolean=false} _recursive Internal parameter used to indicate a recursive call. - * @returns {*} The result of the evaluated expression. + * // returns 2 + * evalExpression('a + b', {a: 1, b: 'a'}) + * // See test/test_expressionEvaluation.js for more examples. + * @param {string} expression - The expression to evaluate. + * @param {object} context - The context object containing variables and their values. + * @param {string} [prefix] - A prefix to prepend to the parameter before evaluation + * (for nested instances). + * @param {boolean} [_recursive=false] - Internal parameter used to indicate a recursive call. + * @returns {*} - The result of the evaluated expression. */ function evalExpression (expression, context, prefix, _recursive = false) { if (!['boolean', 'number', 'string'].includes(typeof expression) || expression == null) { @@ -706,6 +713,7 @@ module.exports.evalExpression = evalExpression module.exports.evalInContext = evalInContext module.exports.getParametersAndBindings = getParametersAndBindings module.exports.lookupClassName = lookupClassName +module.exports.splitExpression = splitExpression module.exports.functions = functions module.exports.operators = operators diff --git a/test/expressionEvaluation/MultiZoneVavParamAndDoc.json b/test/expressionEvaluation/MultiZoneVavParamAndDoc.json new file mode 100644 index 00000000..62f06f2d --- /dev/null +++ b/test/expressionEvaluation/MultiZoneVavParamAndDoc.json @@ -0,0 +1,8596 @@ +{ + "parameters": [ + { + "name": "eneStd", + "value": null, + "unit": null, + "displayUnit": null + }, + { + "name": "venStd", + "value": null, + "unit": null, + "displayUnit": null + }, + { + "name": "ashCliZon", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Not_Specified", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24CliZon", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Not_Specified", + "unit": null, + "displayUnit": null + }, + { + "name": "have_frePro", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "freSta", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeStat.Hardwired_to_equipment", + "unit": null, + "displayUnit": null + }, + { + "name": "minOADes", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow", + "unit": null, + "displayUnit": null + }, + { + "name": "buiPreCon", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefFan", + "unit": null, + "displayUnit": null + }, + { + "name": "have_ahuRelFan", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoHigLimCon", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb", + "unit": null, + "displayUnit": null + }, + { + "name": "cooCoi", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased", + "unit": null, + "displayUnit": null + }, + { + "name": "heaCoi", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased", + "unit": null, + "displayUnit": null + }, + { + "name": "have_perZonRehBox", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "VUncDesOutAir_flow", + "value": "0", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "VDesTotOutAir_flow", + "value": "0", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "VAbsOutAir_flow", + "value": "0", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "VDesOutAir_flow", + "value": "0", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "pIniSet", + "value": "120", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "pMinSet", + "value": "25", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "pMaxSet", + "value": "1000", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "pDelTim", + "value": "600", + "unit": "s", + "displayUnit": null + }, + { + "name": "pSamplePeriod", + "value": "120", + "unit": "s", + "displayUnit": null + }, + { + "name": "pNumIgnReq", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "pTriAmo", + "value": "-12", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "pResAmo", + "value": "15", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "pMaxRes", + "value": "32", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "fanSpeCon", + "value": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI", + "unit": null, + "displayUnit": null + }, + { + "name": "kFanSpe", + "value": "0.1", + "unit": "1", + "displayUnit": null + }, + { + "name": "TiFanSpe", + "value": "60", + "unit": "s", + "displayUnit": null + }, + { + "name": "TdFanSpe", + "value": "0.1", + "unit": "s", + "displayUnit": null + }, + { + "name": "supFanSpe_max", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "supFanSpe_min", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "iniFanSpe", + "value": "supFanSpe_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "TSupCoo_min", + "value": "285.15", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "TSupCoo_max", + "value": "291.15", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "TOut_min", + "value": "289.15", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "TOut_max", + "value": "294.15", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "TSupWarUpSetBac", + "value": "308.15", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "delTimSupTem", + "value": "600", + "unit": "s", + "displayUnit": null + }, + { + "name": "samPerSupTem", + "value": "120", + "unit": "s", + "displayUnit": null + }, + { + "name": "ignReqSupTem", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "triAmoSupTem", + "value": "0.1", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "resAmoSupTem", + "value": "-0.2", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "maxResSupTem", + "value": "-0.6", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "valCon", + "value": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI", + "unit": null, + "displayUnit": null + }, + { + "name": "kVal", + "value": "0.05", + "unit": "1", + "displayUnit": null + }, + { + "name": "TiVal", + "value": "600", + "unit": "s", + "displayUnit": null + }, + { + "name": "TdVal", + "value": "0.1", + "unit": "s", + "displayUnit": null + }, + { + "name": "uHeaCoi_max", + "value": "-0.25", + "unit": null, + "displayUnit": null + }, + { + "name": "uCooCoi_min", + "value": "0.25", + "unit": null, + "displayUnit": null + }, + { + "name": "minOAConTyp", + "value": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI", + "unit": null, + "displayUnit": null + }, + { + "name": "kMinOA", + "value": "0.03", + "unit": "1", + "displayUnit": null + }, + { + "name": "TiMinOA", + "value": "120", + "unit": "s", + "displayUnit": null + }, + { + "name": "TdMinOA", + "value": "0.1", + "unit": "s", + "displayUnit": null + }, + { + "name": "have_CO2Sen", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "dpAbsMinOutDam", + "value": "5", + "unit": null, + "displayUnit": null + }, + { + "name": "dpDesMinOutDam", + "value": "20", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "dpConTyp", + "value": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI", + "unit": null, + "displayUnit": null + }, + { + "name": "kDp", + "value": "1", + "unit": "1", + "displayUnit": null + }, + { + "name": "TiDp", + "value": "0.5", + "unit": "s", + "displayUnit": null + }, + { + "name": "TdDp", + "value": "0.1", + "unit": "s", + "displayUnit": null + }, + { + "name": "uRetDam_min", + "value": "0.5", + "unit": "1", + "displayUnit": null + }, + { + "name": "delTOutHis", + "value": "1", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "delEntHis", + "value": "1000", + "unit": "J/kg", + "displayUnit": null + }, + { + "name": "retDamFulOpeTim", + "value": "180", + "unit": "s", + "displayUnit": null + }, + { + "name": "disDel", + "value": "15", + "unit": "s", + "displayUnit": null + }, + { + "name": "retDamPhy_max", + "value": "1", + "unit": "1", + "displayUnit": null + }, + { + "name": "retDamPhy_min", + "value": "0", + "unit": "1", + "displayUnit": null + }, + { + "name": "outDamPhy_max", + "value": "1", + "unit": "1", + "displayUnit": null + }, + { + "name": "outDamPhy_min", + "value": "0", + "unit": "1", + "displayUnit": null + }, + { + "name": "minOutDamPhy_max", + "value": "1", + "unit": "1", + "displayUnit": null + }, + { + "name": "minOutDamPhy_min", + "value": "0", + "unit": "1", + "displayUnit": null + }, + { + "name": "uHeaMax", + "value": "-0.25", + "unit": "1", + "displayUnit": null + }, + { + "name": "uCooMin", + "value": "+0.25", + "unit": "1", + "displayUnit": null + }, + { + "name": "minHotWatReq", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "freProHeaCoiCon", + "value": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI", + "unit": null, + "displayUnit": null + }, + { + "name": "kFrePro", + "value": "0.05", + "unit": "1", + "displayUnit": null + }, + { + "name": "TiFrePro", + "value": "120", + "unit": "s", + "displayUnit": null + }, + { + "name": "TdFrePro", + "value": "0.1", + "unit": "s", + "displayUnit": null + }, + { + "name": "yMaxFrePro", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "yMinFrePro", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "dpBuiSet", + "value": "12", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "kRelDam", + "value": "0.5", + "unit": "1", + "displayUnit": null + }, + { + "name": "difFloSet", + "value": "0.1", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "retFanCon", + "value": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI", + "unit": null, + "displayUnit": null + }, + { + "name": "kRetFan", + "value": "1", + "unit": "1", + "displayUnit": null + }, + { + "name": "TiRetFan", + "value": "0.5", + "unit": "s", + "displayUnit": null + }, + { + "name": "TdRetFan", + "value": "0.1", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanSpe_max", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanSpe_min", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "p_rel_RetFan_min", + "value": "2.4", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "p_rel_RetFan_max", + "value": "40", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "relFanSpe_min", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "kRelFan", + "value": "1", + "unit": "1", + "displayUnit": null + }, + { + "name": "Thys", + "value": "0.25", + "unit": null, + "displayUnit": null + }, + { + "name": "posHys", + "value": "0.01", + "unit": null, + "displayUnit": null + }, + { + "name": "hys", + "value": "0.005", + "unit": null, + "displayUnit": null + }, + { + "name": "freProMod.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.have_frePro", + "value": "have_frePro", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.buiPreCon", + "value": "buiPreCon", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.minOADes", + "value": "minOADes", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.freSta", + "value": "freSta", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoi", + "value": "heaCoi", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.cooCoi", + "value": "cooCoi", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.minHotWatReq", + "value": "minHotWatReq", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon", + "value": "freProHeaCoiCon", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.k", + "value": "kFrePro", + "unit": "1", + "displayUnit": null + }, + { + "name": "frePro.Ti", + "value": "TiFrePro", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.Td", + "value": "TdFrePro", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.yMax", + "value": "yMaxFrePro", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.yMin", + "value": "yMinFrePro", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.Thys", + "value": "Thys", + "unit": "K", + "displayUnit": null + }, + { + "name": "frePro.lesThr.t", + "value": "273.15 +4.4", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.h", + "value": "frePro.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.t", + "value": "273.15 +4.4", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.t", + "value": "273.15 +4.4", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.h", + "value": "frePro.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.have_hysteresis", + "value": "frePro.lesThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.lesHys.t", + "value": "frePro.lesThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.lesHys.h", + "value": "frePro.lesThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.lesHys.pre_y_start", + "value": "frePro.lesThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr.lesNoHys.t", + "value": "frePro.lesThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.tim.t", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.conInt.k", + "value": "frePro.minHotWatReq", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.controllerType", + "value": "frePro.heaCoiCon", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.k", + "value": "frePro.k", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.Ti", + "value": "frePro.Ti", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.Td", + "value": "frePro.Td", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.yMax", + "value": "frePro.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.yMin", + "value": "frePro.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.reverseActing", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.P.k", + "value": "frePro.heaCoiCon1.k", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.I.k", + "value": "frePro.heaCoiCon1.k/frePro.heaCoiCon1.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.I.y_start", + "value": "frePro.heaCoiCon1.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.D.y_start", + "value": "frePro.heaCoiCon1.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.lim.uMax", + "value": "frePro.heaCoiCon1.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.lim.uMin", + "value": "frePro.heaCoiCon1.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.revAct", + "value": " if frePro.heaCoiCon1.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.with_I", + "value": "frePro.heaCoiCon1.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or frePro.heaCoiCon1.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.with_D", + "value": "frePro.heaCoiCon1.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or frePro.heaCoiCon1.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.kDer.k", + "value": "frePro.heaCoiCon1.k*frePro.heaCoiCon1.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.TDer.k", + "value": "frePro.heaCoiCon1.Td/frePro.heaCoiCon1.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.uS_revAct.k", + "value": "frePro.heaCoiCon1.revAct/frePro.heaCoiCon1.r", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.uMea_revAct.k", + "value": "frePro.heaCoiCon1.revAct/frePro.heaCoiCon1.r", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.antWinGai.k", + "value": "1/(frePro.heaCoiCon1.k*frePro.heaCoiCon1.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.cheYMinMax.k", + "value": "frePro.heaCoiCon1.yMin < frePro.heaCoiCon1.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.con.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiCon1.con1.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.t", + "value": "273.15 +7", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.h", + "value": "frePro.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.t", + "value": "273.15 +7", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.t", + "value": "273.15 +7", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.h", + "value": "frePro.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.have_hysteresis", + "value": "frePro.greThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.greHys.t", + "value": "frePro.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.greHys.h", + "value": "frePro.greThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.greHys.pre_y_start", + "value": "frePro.greThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.greThr.greNoHys.t", + "value": "frePro.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.tim1.t", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.endStaOne.pre_u_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.t", + "value": "273.15 +3.3", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.h", + "value": "frePro.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.t", + "value": "273.15 +3.3", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.t", + "value": "273.15 +3.3", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.h", + "value": "frePro.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.have_hysteresis", + "value": "frePro.lesThr1.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.lesHys.t", + "value": "frePro.lesThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.lesHys.h", + "value": "frePro.lesThr1.h", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.lesHys.pre_y_start", + "value": "frePro.lesThr1.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr1.lesNoHys.t", + "value": "frePro.lesThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.tim2.t", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.holSta2.trueHoldDuration", + "value": "3600", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.holSta2.falseHoldDuration", + "value": "0", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.holSta2.pre_u_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.con.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.con1.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt1.k", + "value": "3", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt2.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.tim3.t", + "value": "900", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.lesThr2.t", + "value": "273.15 +1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.h", + "value": "frePro.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.t", + "value": "273.15 +1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.t", + "value": "273.15 +1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.h", + "value": "frePro.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.have_hysteresis", + "value": "frePro.lesThr2.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.lesHys.t", + "value": "frePro.lesThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.lesHys.h", + "value": "frePro.lesThr2.h", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.lesHys.pre_y_start", + "value": "frePro.lesThr2.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.lesThr2.lesNoHys.t", + "value": "frePro.lesThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.tim4.t", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.con2.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.con3.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt3.k", + "value": "frePro.minHotWatReq", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.controllerType", + "value": "frePro.heaCoiCon", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.k", + "value": "frePro.k", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.Ti", + "value": "frePro.Ti", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.Td", + "value": "frePro.Td", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.yMax", + "value": "frePro.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.yMin", + "value": "frePro.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.reverseActing", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.P.k", + "value": "frePro.heaCoiMod.k", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.I.k", + "value": "frePro.heaCoiMod.k/frePro.heaCoiMod.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.I.y_start", + "value": "frePro.heaCoiMod.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.D.y_start", + "value": "frePro.heaCoiMod.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.lim.uMax", + "value": "frePro.heaCoiMod.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.lim.uMin", + "value": "frePro.heaCoiMod.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.revAct", + "value": " if frePro.heaCoiMod.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.with_I", + "value": "frePro.heaCoiMod.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or frePro.heaCoiMod.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.with_D", + "value": "frePro.heaCoiMod.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or frePro.heaCoiMod.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.kDer.k", + "value": "frePro.heaCoiMod.k*frePro.heaCoiMod.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.TDer.k", + "value": "frePro.heaCoiMod.Td/frePro.heaCoiMod.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.uS_revAct.k", + "value": "frePro.heaCoiMod.revAct/frePro.heaCoiMod.r", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.uMea_revAct.k", + "value": "frePro.heaCoiMod.revAct/frePro.heaCoiMod.r", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.antWinGai.k", + "value": "1/(frePro.heaCoiMod.k*frePro.heaCoiMod.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.cheYMinMax.k", + "value": "frePro.heaCoiMod.yMin < frePro.heaCoiMod.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.con.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.heaCoiMod.con1.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.con4.k", + "value": "273.15 +27", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt4.k", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.shuDowWar.message", + "value": "\"Warning: the unit is shut down by freeze protection!\"", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.disMinVenWar.message", + "value": "\"Warning: minimum ventilation was interrupted by freeze protection!\"", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.tim5.t", + "value": "3600", + "unit": "s", + "displayUnit": null + }, + { + "name": "frePro.conInt5.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.endStaTwo.pre_u_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.supTemSet.k", + "value": "273.15 +6", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt6.k", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt7.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt8.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.con5.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.falEdg.pre_u_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai1.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai2.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai3.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai4.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai5.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai6.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai7.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai8.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt9.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai9.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai10.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai11.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai12.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai13.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai14.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.gai15.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "frePro.conInt10.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.heaCoi", + "value": "heaCoi", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.cooCoi", + "value": "cooCoi", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.Thys", + "value": "Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.posHys", + "value": "posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.t", + "value": "3", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.h", + "value": "plaReq.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.t", + "value": "3", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.t", + "value": "3", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.h", + "value": "plaReq.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.have_hysteresis", + "value": "plaReq.greThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.greHys.t", + "value": "plaReq.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.greHys.h", + "value": "plaReq.greThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.greHys.pre_y_start", + "value": "plaReq.greThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr.greNoHys.t", + "value": "plaReq.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.t", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.h", + "value": "plaReq.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.t", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.t", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.h", + "value": "plaReq.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.have_hysteresis", + "value": "plaReq.greThr1.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.greHys.t", + "value": "plaReq.greThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.greHys.h", + "value": "plaReq.greThr1.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.greHys.pre_y_start", + "value": "plaReq.greThr1.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr1.greNoHys.t", + "value": "plaReq.greThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.truDel.delayTime", + "value": "120", + "unit": "s", + "displayUnit": null + }, + { + "name": "plaReq.truDel.delayOnInit", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.truDel.t_past", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "plaReq.truDel1.delayTime", + "value": "120", + "unit": "s", + "displayUnit": null + }, + { + "name": "plaReq.truDel1.delayOnInit", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.truDel1.t_past", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "plaReq.greThr2.t", + "value": "0.95", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.t", + "value": "0.95", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.t", + "value": "0.95", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.have_hysteresis", + "value": "plaReq.greThr2.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.greHys.t", + "value": "plaReq.greThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.greHys.h", + "value": "plaReq.greThr2.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.greHys.pre_y_start", + "value": "plaReq.greThr2.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr2.greNoHys.t", + "value": "plaReq.greThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.thr.k", + "value": "3", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.two.k", + "value": "2", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.t", + "value": "0.85", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.t", + "value": "0.85", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.t", + "value": "0.85", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.have_hysteresis", + "value": "plaReq.lesThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.lesHys.t", + "value": "plaReq.lesThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.lesHys.h", + "value": "plaReq.lesThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.lesHys.pre_y_start", + "value": "plaReq.lesThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr.lesNoHys.t", + "value": "plaReq.lesThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.one.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.zer.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.t", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.t", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.t", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.have_hysteresis", + "value": "plaReq.lesThr1.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.lesHys.t", + "value": "plaReq.lesThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.lesHys.h", + "value": "plaReq.lesThr1.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.lesHys.pre_y_start", + "value": "plaReq.lesThr1.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr1.lesNoHys.t", + "value": "plaReq.lesThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.t", + "value": "17", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.h", + "value": "plaReq.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.t", + "value": "17", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.t", + "value": "17", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.h", + "value": "plaReq.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.have_hysteresis", + "value": "plaReq.greThr3.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.greHys.t", + "value": "plaReq.greThr3.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.greHys.h", + "value": "plaReq.greThr3.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.greHys.pre_y_start", + "value": "plaReq.greThr3.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr3.greNoHys.t", + "value": "plaReq.greThr3.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.t", + "value": "8", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.h", + "value": "plaReq.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.t", + "value": "8", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.t", + "value": "8", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.h", + "value": "plaReq.Thys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.have_hysteresis", + "value": "plaReq.greThr4.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.greHys.t", + "value": "plaReq.greThr4.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.greHys.h", + "value": "plaReq.greThr4.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.greHys.pre_y_start", + "value": "plaReq.greThr4.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr4.greNoHys.t", + "value": "plaReq.greThr4.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.truDel2.delayTime", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "plaReq.truDel2.delayOnInit", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.truDel2.t_past", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "plaReq.truDel3.delayTime", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "plaReq.truDel3.delayOnInit", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.truDel3.t_past", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.t", + "value": "0.85", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.t", + "value": "0.85", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.t", + "value": "0.85", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.have_hysteresis", + "value": "plaReq.lesThr2.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.lesHys.t", + "value": "plaReq.lesThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.lesHys.h", + "value": "plaReq.lesThr2.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.lesHys.pre_y_start", + "value": "plaReq.lesThr2.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr2.lesNoHys.t", + "value": "plaReq.lesThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.t", + "value": "0.95", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.t", + "value": "0.95", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.t", + "value": "0.95", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.have_hysteresis", + "value": "plaReq.greThr5.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.greHys.t", + "value": "plaReq.greThr5.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.greHys.h", + "value": "plaReq.greThr5.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.greHys.pre_y_start", + "value": "plaReq.greThr5.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.greThr5.greNoHys.t", + "value": "plaReq.greThr5.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.t", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.t", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.t", + "value": "0.1", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.h", + "value": "plaReq.posHys", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.have_hysteresis", + "value": "plaReq.lesThr3.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.lesHys.t", + "value": "plaReq.lesThr3.t", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.lesHys.h", + "value": "plaReq.lesThr3.h", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.lesHys.pre_y_start", + "value": "plaReq.lesThr3.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "plaReq.lesThr3.lesNoHys.t", + "value": "plaReq.lesThr3.t", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.minOADes", + "value": "minOADes", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.buiPreCon", + "value": "buiPreCon", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.eneStd", + "value": "eneStd", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLimCon", + "value": "ecoHigLimCon", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ashCliZon", + "value": "ashCliZon", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.tit24CliZon", + "value": "tit24CliZon", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.minSpe", + "value": "supFanSpe_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.minOAConTyp", + "value": "minOAConTyp", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.kMinOA", + "value": "kMinOA", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.TiMinOA", + "value": "TiMinOA", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.TdMinOA", + "value": "TdMinOA", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.venStd", + "value": "venStd", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.have_CO2Sen", + "value": "have_CO2Sen", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.dpAbsMinOutDam", + "value": "dpAbsMinOutDam", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.dpDesMinOutDam", + "value": "dpDesMinOutDam", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "ecoCon.dpConTyp", + "value": "dpConTyp", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.kDp", + "value": "kDp", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.TiDp", + "value": "TiDp", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.TdDp", + "value": "TdDp", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.uRetDam_min", + "value": "uRetDam_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.delTOutHis", + "value": "delTOutHis", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "ecoCon.delEntHis", + "value": "delEntHis", + "unit": "J/kg", + "displayUnit": null + }, + { + "name": "ecoCon.retDamFulOpeTim", + "value": "retDamFulOpeTim", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.disDel", + "value": "disDel", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.retDamPhy_max", + "value": "retDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.retDamPhy_min", + "value": "retDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.outDamPhy_max", + "value": "outDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.outDamPhy_min", + "value": "outDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.minOutDamPhy_max", + "value": "minOutDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.minOutDamPhy_min", + "value": "minOutDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.uHeaMax", + "value": "uHeaMax", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.uCooMin", + "value": "uCooMin", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.uOutDamMax", + "value": "(uHeaMax +uCooMin)/2", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.uRetDamMin", + "value": "(uHeaMax +uCooMin)/2", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minSpe", + "value": "ecoCon.minSpe", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minOAConTyp", + "value": "ecoCon.minOAConTyp", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.kMinOA", + "value": "ecoCon.kMinOA", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.TiMinOA", + "value": "ecoCon.TiMinOA", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.TdMinOA", + "value": "ecoCon.TdMinOA", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.retDamPhy_max", + "value": "ecoCon.retDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.retDamPhy_min", + "value": "ecoCon.retDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.outDamPhy_max", + "value": "ecoCon.outDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.outDamPhy_min", + "value": "ecoCon.outDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minOutDamPhy_max", + "value": "ecoCon.minOutDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minOutDamPhy_min", + "value": "ecoCon.minOutDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.controllerType", + "value": "ecoCon.sepAFMS.minOAConTyp", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.k", + "value": "ecoCon.sepAFMS.kMinOA", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.Ti", + "value": "ecoCon.sepAFMS.TiMinOA", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.Td", + "value": "ecoCon.sepAFMS.TdMinOA", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.yMax", + "value": "ecoCon.sepAFMS.minOutDamPhy_max", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.yMin", + "value": "ecoCon.sepAFMS.minOutDamPhy_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.reverseActing", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.y_reset", + "value": "ecoCon.sepAFMS.conMinOA.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.P.k", + "value": "ecoCon.sepAFMS.conMinOA.k", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.I.k", + "value": "ecoCon.sepAFMS.conMinOA.k/ecoCon.sepAFMS.conMinOA.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.I.y_start", + "value": "ecoCon.sepAFMS.conMinOA.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.D.y_start", + "value": "ecoCon.sepAFMS.conMinOA.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.lim.uMax", + "value": "ecoCon.sepAFMS.conMinOA.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.lim.uMin", + "value": "ecoCon.sepAFMS.conMinOA.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.revAct", + "value": " if ecoCon.sepAFMS.conMinOA.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.with_I", + "value": "ecoCon.sepAFMS.conMinOA.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or ecoCon.sepAFMS.conMinOA.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.with_D", + "value": "ecoCon.sepAFMS.conMinOA.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or ecoCon.sepAFMS.conMinOA.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.kDer.k", + "value": "ecoCon.sepAFMS.conMinOA.k*ecoCon.sepAFMS.conMinOA.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.TDer.k", + "value": "ecoCon.sepAFMS.conMinOA.Td/ecoCon.sepAFMS.conMinOA.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.uS_revAct.k", + "value": "ecoCon.sepAFMS.conMinOA.revAct/ecoCon.sepAFMS.conMinOA.r", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.uMea_revAct.k", + "value": "ecoCon.sepAFMS.conMinOA.revAct/ecoCon.sepAFMS.conMinOA.r", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.antWinGai.k", + "value": "1/(ecoCon.sepAFMS.conMinOA.k*ecoCon.sepAFMS.conMinOA.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.yResSig.k", + "value": "ecoCon.sepAFMS.conMinOA.y_reset", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.cheYMinMax.k", + "value": "ecoCon.sepAFMS.conMinOA.yMin < ecoCon.sepAFMS.conMinOA.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conMinOA.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.conInt1.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.zer.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.con.k", + "value": "0.5", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minOutDamPos.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minOutDamPos.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minOutDamPhyPosMinSig.k", + "value": "ecoCon.sepAFMS.minOutDamPhy_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minOutDamPhyPosMaxSig.k", + "value": "ecoCon.sepAFMS.minOutDamPhy_max", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.one.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.con1.k", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.con2.k", + "value": "0.8", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.minFanSpe.k", + "value": "ecoCon.sepAFMS.minSpe", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.moaP.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.moaP.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.les.h", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.les.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.les.h", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.les.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.les.have_hysteresis", + "value": "ecoCon.sepAFMS.les.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.les.lesHys.h", + "value": "ecoCon.sepAFMS.les.h", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.les.lesHys.pre_y_start", + "value": "ecoCon.sepAFMS.les.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.t", + "value": "0.98", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.h", + "value": "0.01", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.t", + "value": "0.98", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.t", + "value": "0.98", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.h", + "value": "0.01", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.have_hysteresis", + "value": "ecoCon.sepAFMS.greThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.greHys.t", + "value": "ecoCon.sepAFMS.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.greHys.h", + "value": "ecoCon.sepAFMS.greThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.greHys.pre_y_start", + "value": "ecoCon.sepAFMS.greThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.greThr.greNoHys.t", + "value": "ecoCon.sepAFMS.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.gai.k", + "value": "1.1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.gre.h", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.gre.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.gre.h", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.gre.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.gre.have_hysteresis", + "value": "ecoCon.sepAFMS.gre.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.gre.greHys.h", + "value": "ecoCon.sepAFMS.gre.h", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.gre.greHys.pre_y_start", + "value": "ecoCon.sepAFMS.gre.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.outDamPhyPosMinSig.k", + "value": "ecoCon.sepAFMS.outDamPhy_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.outDamPhyPosMaxSig.k", + "value": "ecoCon.sepAFMS.outDamPhy_max", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.retDamPhyPosMinSig.k", + "value": "ecoCon.sepAFMS.retDamPhy_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.retDamPhyPosMaxSig.k", + "value": "ecoCon.sepAFMS.retDamPhy_max", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.maxRetDamPos.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.maxRetDamPos.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.con3.k", + "value": "0.5", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepAFMS.con4.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.venStd", + "value": "ecoCon.venStd", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.have_CO2Sen", + "value": "ecoCon.have_CO2Sen", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.dpAbsMinOutDam", + "value": "ecoCon.dpAbsMinOutDam", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "ecoCon.sepDp.dpDesMinOutDam", + "value": "ecoCon.dpDesMinOutDam", + "unit": "Pa", + "displayUnit": "Pa" + }, + { + "name": "ecoCon.sepDp.minSpe", + "value": "ecoCon.minSpe", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.dpCon", + "value": "ecoCon.dpConTyp", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.kDp", + "value": "ecoCon.kDp", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.TiDp", + "value": "ecoCon.TiDp", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.TdDp", + "value": "ecoCon.TdDp", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.retDamPhy_max", + "value": "ecoCon.retDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.retDamPhy_min", + "value": "ecoCon.retDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.outDamPhy_max", + "value": "ecoCon.outDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.outDamPhy_min", + "value": "ecoCon.outDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.controllerType", + "value": "ecoCon.sepDp.dpCon", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.k", + "value": "ecoCon.sepDp.kDp", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.Ti", + "value": "ecoCon.sepDp.TiDp", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.Td", + "value": "ecoCon.sepDp.TdDp", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.yMax", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.yMin", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.reverseActing", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.y_reset", + "value": "ecoCon.sepDp.maxRetDam.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.P.k", + "value": "ecoCon.sepDp.maxRetDam.k", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.I.k", + "value": "ecoCon.sepDp.maxRetDam.k/ecoCon.sepDp.maxRetDam.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.I.y_start", + "value": "ecoCon.sepDp.maxRetDam.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.D.y_start", + "value": "ecoCon.sepDp.maxRetDam.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.lim.uMax", + "value": "ecoCon.sepDp.maxRetDam.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.lim.uMin", + "value": "ecoCon.sepDp.maxRetDam.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.revAct", + "value": " if ecoCon.sepDp.maxRetDam.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.with_I", + "value": "ecoCon.sepDp.maxRetDam.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or ecoCon.sepDp.maxRetDam.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.with_D", + "value": "ecoCon.sepDp.maxRetDam.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or ecoCon.sepDp.maxRetDam.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.kDer.k", + "value": "ecoCon.sepDp.maxRetDam.k*ecoCon.sepDp.maxRetDam.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.TDer.k", + "value": "ecoCon.sepDp.maxRetDam.Td/ecoCon.sepDp.maxRetDam.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.uS_revAct.k", + "value": "ecoCon.sepDp.maxRetDam.revAct/ecoCon.sepDp.maxRetDam.r", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.uMea_revAct.k", + "value": "ecoCon.sepDp.maxRetDam.revAct/ecoCon.sepDp.maxRetDam.r", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.antWinGai.k", + "value": "1/(ecoCon.sepDp.maxRetDam.k*ecoCon.sepDp.maxRetDam.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.yResSig.k", + "value": "ecoCon.sepDp.maxRetDam.y_reset", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.cheYMinMax.k", + "value": "ecoCon.sepDp.maxRetDam.yMin < ecoCon.sepDp.maxRetDam.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.maxRetDam.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.minDesDp.k", + "value": "ecoCon.sepDp.dpDesMinOutDam", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.h", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.h", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.have_hysteresis", + "value": "ecoCon.sepDp.greThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.greHys.t", + "value": "ecoCon.sepDp.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.greHys.h", + "value": "ecoCon.sepDp.greThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.greHys.pre_y_start", + "value": "ecoCon.sepDp.greThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.greThr.greNoHys.t", + "value": "ecoCon.sepDp.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.les.h", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.les.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.les.h", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.les.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.les.have_hysteresis", + "value": "ecoCon.sepDp.les.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.les.lesHys.h", + "value": "ecoCon.sepDp.les.h", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.les.lesHys.pre_y_start", + "value": "ecoCon.sepDp.les.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.gai.k", + "value": "1.1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.gre.h", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.gre.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.gre.h", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.gre.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.gre.have_hysteresis", + "value": "ecoCon.sepDp.gre.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.gre.greHys.h", + "value": "ecoCon.sepDp.gre.h", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.gre.greHys.pre_y_start", + "value": "ecoCon.sepDp.gre.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.conInt1.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.one.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.minFanSpe.k", + "value": "ecoCon.sepDp.minSpe", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.con.k", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.con1.k", + "value": "0.8", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.moaP.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.moaP.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.outDamPhyPosMinSig.k", + "value": "ecoCon.sepDp.outDamPhy_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.outDamPhyPosMaxSig.k", + "value": "ecoCon.sepDp.outDamPhy_max", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.retDamPhyPosMinSig.k", + "value": "ecoCon.sepDp.retDamPhy_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.retDamPhyPosMaxSig.k", + "value": "ecoCon.sepDp.retDamPhy_max", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.minAbsDp.k", + "value": "ecoCon.sepDp.dpAbsMinOutDam", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.minDp1.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.minDp1.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.one1.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.hal.k", + "value": "0.5", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.sepDp.one2.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.controllerType", + "value": "ecoCon.minOAConTyp", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.k", + "value": "ecoCon.kMinOA", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.Ti", + "value": "ecoCon.TiMinOA", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.Td", + "value": "ecoCon.TdMinOA", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.uRetDam_min", + "value": "ecoCon.uRetDam_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.retDamPhy_max", + "value": "ecoCon.retDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.retDamPhy_min", + "value": "ecoCon.retDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.outDamPhy_max", + "value": "ecoCon.outDamPhy_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.outDamPhy_min", + "value": "ecoCon.outDamPhy_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.controllerType", + "value": "ecoCon.damLim.controllerType", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.k", + "value": "ecoCon.damLim.k", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.Ti", + "value": "ecoCon.damLim.Ti", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.Td", + "value": "ecoCon.damLim.Td", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.yMax", + "value": "ecoCon.damLim.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.yMin", + "value": "ecoCon.damLim.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.reverseActing", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.y_reset", + "value": "ecoCon.damLim.damLimCon.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.P.k", + "value": "ecoCon.damLim.damLimCon.k", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.I.k", + "value": "ecoCon.damLim.damLimCon.k/ecoCon.damLim.damLimCon.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.I.y_start", + "value": "ecoCon.damLim.damLimCon.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.D.y_start", + "value": "ecoCon.damLim.damLimCon.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.lim.uMax", + "value": "ecoCon.damLim.damLimCon.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.lim.uMin", + "value": "ecoCon.damLim.damLimCon.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.revAct", + "value": " if ecoCon.damLim.damLimCon.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.with_I", + "value": "ecoCon.damLim.damLimCon.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or ecoCon.damLim.damLimCon.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.with_D", + "value": "ecoCon.damLim.damLimCon.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or ecoCon.damLim.damLimCon.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.kDer.k", + "value": "ecoCon.damLim.damLimCon.k*ecoCon.damLim.damLimCon.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.TDer.k", + "value": "ecoCon.damLim.damLimCon.Td/ecoCon.damLim.damLimCon.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.uS_revAct.k", + "value": "ecoCon.damLim.damLimCon.revAct/ecoCon.damLim.damLimCon.r", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.uMea_revAct.k", + "value": "ecoCon.damLim.damLimCon.revAct/ecoCon.damLim.damLimCon.r", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.antWinGai.k", + "value": "1/(ecoCon.damLim.damLimCon.k*ecoCon.damLim.damLimCon.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.yResSig.k", + "value": "ecoCon.damLim.damLimCon.y_reset", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.cheYMinMax.k", + "value": "ecoCon.damLim.damLimCon.yMin < ecoCon.damLim.damLimCon.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.damLimCon.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.yMin", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.yMax", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.outDamPhyPosMinSig.k", + "value": "ecoCon.damLim.outDamPhy_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.outDamPhyPosMaxSig.k", + "value": "ecoCon.damLim.outDamPhy_max", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.retDamPhyPosMinSig.k", + "value": "ecoCon.damLim.retDamPhy_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.retDamPhyPosMaxSig.k", + "value": "ecoCon.damLim.retDamPhy_max", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.minSigLim.k", + "value": "ecoCon.damLim.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.maxSigLim.k", + "value": "ecoCon.damLim.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.sigFraForOutDam.k", + "value": "ecoCon.damLim.uRetDam_min", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.minOutDam.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.minOutDam.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.minRetDam.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.minRetDam.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.damLim.conInt1.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.use_enthalpy", + "value": "ecoCon.ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb or ecoCon.ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.delTOutHis", + "value": "ecoCon.delTOutHis", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "ecoCon.enaDis.delEntHis", + "value": "ecoCon.delEntHis", + "unit": "J/kg", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.retDamFulOpeTim", + "value": "ecoCon.retDamFulOpeTim", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.disDel", + "value": "ecoCon.disDel", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.truFalHol.trueHoldDuration", + "value": "600", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.truFalHol.falseHoldDuration", + "value": "ecoCon.enaDis.truFalHol.trueHoldDuration", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.truFalHol.pre_u_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.TOutHigLimCutHig", + "value": "0", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "ecoCon.enaDis.TOutHigLimCutLow", + "value": "ecoCon.enaDis.TOutHigLimCutHig -ecoCon.enaDis.delTOutHis", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.hOutHigLimCutHig", + "value": "0", + "unit": "J/kg", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.hOutHigLimCutLow", + "value": "ecoCon.enaDis.hOutHigLimCutHig -ecoCon.enaDis.delEntHis", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.hysOutTem.uLow", + "value": "ecoCon.enaDis.TOutHigLimCutLow", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.hysOutTem.uHigh", + "value": "ecoCon.enaDis.TOutHigLimCutHig", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.hysOutTem.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.hysOutEnt.uLow", + "value": "ecoCon.enaDis.hOutHigLimCutLow", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.hysOutEnt.uHigh", + "value": "ecoCon.enaDis.hOutHigLimCutHig", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.hysOutEnt.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.delOutDamOsc.delayTime", + "value": "ecoCon.enaDis.disDel", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.delOutDamOsc.delayOnInit", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.delOutDamOsc.t_past", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.delRetDam.delayTime", + "value": "ecoCon.enaDis.retDamFulOpeTim", + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.delRetDam.delayOnInit", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.delRetDam.t_past", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.conInt.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.enaDis.entSubst1.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.have_dirCon", + "value": "ecoCon.buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanDp", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.uMin", + "value": "ecoCon.uHeaMax", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.modRet.uMax", + "value": "ecoCon.uCooMin", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.modRet.damMinLimSig.k", + "value": "ecoCon.modRet.uMin", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.damMaxLimSig.k", + "value": "ecoCon.modRet.uMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.retDamPos.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.retDamPos.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.relDamPos.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.relDamPos.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.zer.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRet.one.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRel.uMin", + "value": "ecoCon.uHeaMax", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.modRel.uMax", + "value": "ecoCon.uCooMin", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.modRel.uOutDamMax", + "value": "ecoCon.uOutDamMax", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.modRel.uRetDamMin", + "value": "ecoCon.uRetDamMin", + "unit": "1", + "displayUnit": null + }, + { + "name": "ecoCon.modRel.outDamMinLimSig.k", + "value": "ecoCon.modRel.uMin", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRel.outDamMaxLimSig.k", + "value": "ecoCon.modRel.uOutDamMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRel.retDamConMinLimSig.k", + "value": "ecoCon.modRel.uRetDamMin", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRel.retDamMaxLimSig.k", + "value": "ecoCon.modRel.uMax", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRel.outDamPos.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRel.outDamPos.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRel.retDamPos.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.modRel.retDamPos.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.eneStd", + "value": "ecoCon.eneStd", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ecoHigLimCon", + "value": "ecoCon.ecoHigLimCon", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ashCliZon", + "value": "ecoCon.ashCliZon", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.tit24CliZon", + "value": "ecoCon.tit24CliZon", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.fixDryBul.k", + "value": "ecoCon.ecoHigLim.ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.difDryBul.k", + "value": "ecoCon.ecoHigLim.ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialDryBulb", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.fixEntFixDryBul.k", + "value": "ecoCon.ecoHigLim.ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.difEntFixDryBul.k", + "value": "ecoCon.ecoHigLim.ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash1A.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1A", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash1B.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1B", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash2A.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_2A", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash2B.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_2B", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash3A.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_3A", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash3B.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_3B", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash3C.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_3C", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash4A.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_4A", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash4B.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_4B", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash4C.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_4C", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash5A.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_5A", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash5B.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_5B", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash5C.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_5C", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash6A.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_6A", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash6B.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_6B", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash7.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_7", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.ash8.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_8", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con.k", + "value": "273.15 +24", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con1.k", + "value": "273.15 +21", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con2.k", + "value": "273.15 +18", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.assMes.message", + "value": "\"Warning: Differential dry bulb high-limit-control device is not allowed in climate zone 1A, 2A, 3A and 4A!\"", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con3.k", + "value": "273.15 +24", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con4.k", + "value": "66000", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon1.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon2.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_2", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon3.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_3", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon4.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_4", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon5.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_5", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon6.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_6", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon8.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_8", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon9.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_9", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon10.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_10", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon11.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_11", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon12.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_12", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon13.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_13", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon14.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_14", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon15.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_15", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titZon16.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_16", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con5.k", + "value": "273.15 +24", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con6.k", + "value": "273.15 +23", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con7.k", + "value": "273.15 +22", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con8.k", + "value": "273.15 +21", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.addPar.p", + "value": "-1", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.addPar1.p", + "value": "-2", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.addPar2.p", + "value": "-3", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con9.k", + "value": "273.15 +24", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.booToRea.realTrue", + "value": "66000", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.booToRea.realFalse", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.titEngSta.k", + "value": "ecoCon.ecoHigLim.eneStd == Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.assMes1.message", + "value": "\"Warning: When Title 24 energy standard is used, the device type cannot be differential enthalpy with fixed dry bulb!\"", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con10.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con11.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.fixDryBulDifDryBul.k", + "value": "ecoCon.ecoHigLim.ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulbWithDifferentialDryBulb", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.con12.k", + "value": "273.15 +21", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.assMes2.message", + "value": "\"Warning: Fixed dry bulb with differential dry bulb high-limit-control device is not allowed in climate zone 1A, 2A, 3A and 4A!\"", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.noAshCli.k", + "value": "ecoCon.ecoHigLim.ashCliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Not_Specified", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.noTit24Cli.k", + "value": "ecoCon.ecoHigLim.tit24CliZon == Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Not_Specified", + "unit": null, + "displayUnit": null + }, + { + "name": "ecoCon.ecoHigLim.assMes3.message", + "value": "\"Warning: Climate zone is not specified!\"", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.have_perZonRehBox", + "value": "have_perZonRehBox", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.iniSet", + "value": "pIniSet", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "conSupFan.minSet", + "value": "pMinSet", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "conSupFan.maxSet", + "value": "pMaxSet", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "conSupFan.delTim", + "value": "pDelTim", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.samplePeriod", + "value": "pSamplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.numIgnReq", + "value": "pNumIgnReq", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.triAmo", + "value": "pTriAmo", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "conSupFan.resAmo", + "value": "pResAmo", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "conSupFan.maxRes", + "value": "pMaxRes", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "conSupFan.controllerType", + "value": "fanSpeCon", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.k", + "value": "kFanSpe", + "unit": "1", + "displayUnit": null + }, + { + "name": "conSupFan.Ti", + "value": "TiFanSpe", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.Td", + "value": "TdFanSpe", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.maxSpe", + "value": "supFanSpe_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "conSupFan.minSpe", + "value": "supFanSpe_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "conSupFan.iniSpe", + "value": "iniFanSpe", + "unit": "1", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.have_hol", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.iniSet", + "value": "conSupFan.iniSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.minSet", + "value": "conSupFan.minSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.maxSet", + "value": "conSupFan.maxSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.delTim", + "value": "conSupFan.delTim", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.samplePeriod", + "value": "conSupFan.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.numIgnReq", + "value": "conSupFan.numIgnReq", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.triAmo", + "value": "conSupFan.triAmo", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.resAmo", + "value": "conSupFan.resAmo", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.maxRes", + "value": "conSupFan.maxRes", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.dtHol", + "value": "0", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.tim.delayTime", + "value": "conSupFan.staPreSetRes.delTim +conSupFan.staPreSetRes.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.tim.delayOnInit", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.tim.t_past", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.have_hysteresis", + "value": "conSupFan.staPreSetRes.greThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.greHys.t", + "value": "conSupFan.staPreSetRes.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.greHys.h", + "value": "conSupFan.staPreSetRes.greThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.greHys.pre_y_start", + "value": "conSupFan.staPreSetRes.greThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr.greNoHys.t", + "value": "conSupFan.staPreSetRes.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.resAmoCon.k", + "value": "conSupFan.staPreSetRes.resAmo", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.uniDel.samplePeriod", + "value": "conSupFan.staPreSetRes.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.uniDel.y_start", + "value": "conSupFan.staPreSetRes.iniSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.uniDel.t0", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.sampler.samplePeriod", + "value": "conSupFan.staPreSetRes.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.sampler.t0", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.have_hysteresis", + "value": "conSupFan.staPreSetRes.lesThr1.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.lesHys.t", + "value": "conSupFan.staPreSetRes.lesThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.lesHys.h", + "value": "conSupFan.staPreSetRes.lesThr1.h", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.lesHys.pre_y_start", + "value": "conSupFan.staPreSetRes.lesThr1.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.lesThr1.lesNoHys.t", + "value": "conSupFan.staPreSetRes.lesThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.have_hysteresis", + "value": "conSupFan.staPreSetRes.greThr2.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.greHys.t", + "value": "conSupFan.staPreSetRes.greThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.greHys.h", + "value": "conSupFan.staPreSetRes.greThr2.h", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.greHys.pre_y_start", + "value": "conSupFan.staPreSetRes.greThr2.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr2.greNoHys.t", + "value": "conSupFan.staPreSetRes.greThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.have_hysteresis", + "value": "conSupFan.staPreSetRes.greThr1.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.greHys.t", + "value": "conSupFan.staPreSetRes.greThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.greHys.h", + "value": "conSupFan.staPreSetRes.greThr1.h", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.greHys.pre_y_start", + "value": "conSupFan.staPreSetRes.greThr1.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.greThr1.greNoHys.t", + "value": "conSupFan.staPreSetRes.greThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.gai.k", + "value": "-1", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.iniSetCon.k", + "value": "conSupFan.staPreSetRes.iniSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.numIgnReqCon.k", + "value": "conSupFan.staPreSetRes.numIgnReq", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.triAmoCon.k", + "value": "conSupFan.staPreSetRes.triAmo", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.maxResCon.k", + "value": "conSupFan.staPreSetRes.maxRes", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.maxSetCon.k", + "value": "conSupFan.staPreSetRes.maxSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.zerTri.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.minSetCon.k", + "value": "conSupFan.staPreSetRes.minSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.assMes.message", + "value": "\"Trim amount 'triAmo' and respond amount 'resAmo' must have opposite signs.\"", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.assMes2.message", + "value": "\"Respond amount 'resAmo' and maximum respond amount 'maxRes' must have same sign.\"", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.zer.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.fal.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.truHol.trueHoldDuration", + "value": "conSupFan.staPreSetRes.dtHol", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.truHol.falseHoldDuration", + "value": "0", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.truHol.pre_u_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.samTri.period", + "value": "conSupFan.staPreSetRes.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.samTri.shift", + "value": "0", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.staPreSetRes.samTri.t0", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.controllerType", + "value": "conSupFan.controllerType", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.k", + "value": "conSupFan.k", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.Ti", + "value": "conSupFan.Ti", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.Td", + "value": "conSupFan.Td", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.yMax", + "value": "conSupFan.maxSpe", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.yMin", + "value": "conSupFan.minSpe", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.reverseActing", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.y_reset", + "value": "conSupFan.iniSpe", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.P.k", + "value": "conSupFan.conSpe.k", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.I.k", + "value": "conSupFan.conSpe.k/conSupFan.conSpe.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.I.y_start", + "value": "conSupFan.conSpe.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.D.y_start", + "value": "conSupFan.conSpe.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.lim.uMax", + "value": "conSupFan.conSpe.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.lim.uMin", + "value": "conSupFan.conSpe.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.revAct", + "value": " if conSupFan.conSpe.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.with_I", + "value": "conSupFan.conSpe.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or conSupFan.conSpe.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.with_D", + "value": "conSupFan.conSpe.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or conSupFan.conSpe.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.kDer.k", + "value": "conSupFan.conSpe.k*conSupFan.conSpe.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.TDer.k", + "value": "conSupFan.conSpe.Td/conSupFan.conSpe.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.uS_revAct.k", + "value": "conSupFan.conSpe.revAct/conSupFan.conSpe.r", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.uMea_revAct.k", + "value": "conSupFan.conSpe.revAct/conSupFan.conSpe.r", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.antWinGai.k", + "value": "1/(conSupFan.conSpe.k*conSupFan.conSpe.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.yResSig.k", + "value": "conSupFan.conSpe.y_reset", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.cheYMinMax.k", + "value": "conSupFan.conSpe.yMin < conSupFan.conSpe.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conSpe.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.zerSpe.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.con.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conInt.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.coolDown", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conInt4.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.warmUp", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conInt1.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.setUp", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conInt2.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.conInt3.k", + "value": "Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.setBack", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.gaiNor.k", + "value": "conSupFan.maxSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conSupFan.firOrdHol.samplePeriod", + "value": "conSupFan.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conSupFan.firOrdHol.t0", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "supSig.have_heaCoi", + "value": "heaCoi == Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased or heaCoi == Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.Electric", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.have_cooCoi", + "value": "cooCoi == Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased or cooCoi == Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.DXCoil", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.controllerType", + "value": "valCon", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.kTSup", + "value": "kVal", + "unit": "1/K", + "displayUnit": null + }, + { + "name": "supSig.TiTSup", + "value": "TiVal", + "unit": "s", + "displayUnit": null + }, + { + "name": "supSig.TdTSup", + "value": "TdVal", + "unit": "s", + "displayUnit": null + }, + { + "name": "supSig.uHea_max", + "value": "uHeaCoi_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "supSig.uCoo_min", + "value": "uCooCoi_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "supSig.conTSup.controllerType", + "value": "supSig.controllerType", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.k", + "value": "supSig.kTSup", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.Ti", + "value": "supSig.TiTSup", + "unit": "s", + "displayUnit": null + }, + { + "name": "supSig.conTSup.Td", + "value": "supSig.TdTSup", + "unit": "s", + "displayUnit": null + }, + { + "name": "supSig.conTSup.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.yMax", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.yMin", + "value": "-1", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.reverseActing", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.y_reset", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.P.k", + "value": "supSig.conTSup.k", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.I.k", + "value": "supSig.conTSup.k/supSig.conTSup.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.I.y_start", + "value": "supSig.conTSup.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.D.y_start", + "value": "supSig.conTSup.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.lim.uMax", + "value": "supSig.conTSup.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.lim.uMin", + "value": "supSig.conTSup.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.revAct", + "value": " if supSig.conTSup.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.with_I", + "value": "supSig.conTSup.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or supSig.conTSup.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.with_D", + "value": "supSig.conTSup.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or supSig.conTSup.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.kDer.k", + "value": "supSig.conTSup.k*supSig.conTSup.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.TDer.k", + "value": "supSig.conTSup.Td/supSig.conTSup.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.uS_revAct.k", + "value": "supSig.conTSup.revAct/supSig.conTSup.r", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.uMea_revAct.k", + "value": "supSig.conTSup.revAct/supSig.conTSup.r", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.antWinGai.k", + "value": "1/(supSig.conTSup.k*supSig.conTSup.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.yResSig.k", + "value": "supSig.conTSup.y_reset", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.cheYMinMax.k", + "value": "supSig.conTSup.yMin < supSig.conTSup.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conTSup.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.uHeaMaxCon.k", + "value": "supSig.uHea_max", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.negOne.k", + "value": "-1", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.uCooMinCon.k", + "value": "supSig.uCoo_min", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.zer.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.one.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conSigCoo.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conSigCoo.limitAbove", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conSigHea.limitBelow", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "supSig.conSigHea.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.TSupCoo_min", + "value": "TSupCoo_min", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.TSupCoo_max", + "value": "TSupCoo_max", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.TOut_min", + "value": "TOut_min", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.TOut_max", + "value": "TOut_max", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.TSupWarUpSetBac", + "value": "TSupWarUpSetBac", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.delTim", + "value": "delTimSupTem", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.samplePeriod", + "value": "samPerSupTem", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.numIgnReq", + "value": "ignReqSupTem", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.triAmo", + "value": "triAmoSupTem", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "conTSupSet.resAmo", + "value": "resAmoSupTem", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "conTSupSet.maxRes", + "value": "maxResSupTem", + "unit": "K", + "displayUnit": "K" + }, + { + "name": "conTSupSet.maxSupTemRes.have_hol", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.iniSet", + "value": "conTSupSet.iniSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.minSet", + "value": "conTSupSet.minSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.maxSet", + "value": "conTSupSet.maxSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.delTim", + "value": "conTSupSet.delTim", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.samplePeriod", + "value": "conTSupSet.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.numIgnReq", + "value": "conTSupSet.numIgnReq", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.triAmo", + "value": "conTSupSet.triAmo", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.resAmo", + "value": "conTSupSet.resAmo", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.maxRes", + "value": "conTSupSet.maxRes", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.dtHol", + "value": "0", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.tim.delayTime", + "value": "conTSupSet.maxSupTemRes.delTim +conTSupSet.maxSupTemRes.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.tim.delayOnInit", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.tim.t_past", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.have_hysteresis", + "value": "conTSupSet.maxSupTemRes.greThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.greHys.t", + "value": "conTSupSet.maxSupTemRes.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.greHys.h", + "value": "conTSupSet.maxSupTemRes.greThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.greHys.pre_y_start", + "value": "conTSupSet.maxSupTemRes.greThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr.greNoHys.t", + "value": "conTSupSet.maxSupTemRes.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.resAmoCon.k", + "value": "conTSupSet.maxSupTemRes.resAmo", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.uniDel.samplePeriod", + "value": "conTSupSet.maxSupTemRes.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.uniDel.y_start", + "value": "conTSupSet.maxSupTemRes.iniSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.uniDel.t0", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.sampler.samplePeriod", + "value": "conTSupSet.maxSupTemRes.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.sampler.t0", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.have_hysteresis", + "value": "conTSupSet.maxSupTemRes.lesThr1.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.lesHys.t", + "value": "conTSupSet.maxSupTemRes.lesThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.lesHys.h", + "value": "conTSupSet.maxSupTemRes.lesThr1.h", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.lesHys.pre_y_start", + "value": "conTSupSet.maxSupTemRes.lesThr1.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.lesThr1.lesNoHys.t", + "value": "conTSupSet.maxSupTemRes.lesThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.have_hysteresis", + "value": "conTSupSet.maxSupTemRes.greThr2.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.greHys.t", + "value": "conTSupSet.maxSupTemRes.greThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.greHys.h", + "value": "conTSupSet.maxSupTemRes.greThr2.h", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.greHys.pre_y_start", + "value": "conTSupSet.maxSupTemRes.greThr2.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr2.greNoHys.t", + "value": "conTSupSet.maxSupTemRes.greThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.h", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.have_hysteresis", + "value": "conTSupSet.maxSupTemRes.greThr1.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.greHys.t", + "value": "conTSupSet.maxSupTemRes.greThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.greHys.h", + "value": "conTSupSet.maxSupTemRes.greThr1.h", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.greHys.pre_y_start", + "value": "conTSupSet.maxSupTemRes.greThr1.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.greThr1.greNoHys.t", + "value": "conTSupSet.maxSupTemRes.greThr1.t", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.gai.k", + "value": "-1", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.iniSetCon.k", + "value": "conTSupSet.maxSupTemRes.iniSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.numIgnReqCon.k", + "value": "conTSupSet.maxSupTemRes.numIgnReq", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.triAmoCon.k", + "value": "conTSupSet.maxSupTemRes.triAmo", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.maxResCon.k", + "value": "conTSupSet.maxSupTemRes.maxRes", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.maxSetCon.k", + "value": "conTSupSet.maxSupTemRes.maxSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.zerTri.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.minSetCon.k", + "value": "conTSupSet.maxSupTemRes.minSet", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.assMes.message", + "value": "\"Trim amount 'triAmo' and respond amount 'resAmo' must have opposite signs.\"", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.assMes2.message", + "value": "\"Respond amount 'resAmo' and maximum respond amount 'maxRes' must have same sign.\"", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.zer.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.fal.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.truHol.trueHoldDuration", + "value": "conTSupSet.maxSupTemRes.dtHol", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.truHol.falseHoldDuration", + "value": "0", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.truHol.pre_u_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.samTri.period", + "value": "conTSupSet.maxSupTemRes.samplePeriod", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.samTri.shift", + "value": "0", + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.maxSupTemRes.samTri.t0", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "conTSupSet.TDeaBan", + "value": "273.15 +26", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.iniSet", + "value": "conTSupSet.TSupCoo_max", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.maxSet", + "value": "conTSupSet.TSupCoo_max", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.minSet", + "value": "conTSupSet.TSupCoo_min", + "unit": "K", + "displayUnit": "degC" + }, + { + "name": "conTSupSet.lin.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.lin.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.minOutTem.k", + "value": "conTSupSet.TOut_min", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.maxOutTem.k", + "value": "conTSupSet.TOut_max", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.minSupTem.k", + "value": "conTSupSet.TSupCoo_min", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.supTemWarUpSetBac.k", + "value": "conTSupSet.TSupWarUpSetBac", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.cooDowMod.k", + "value": "3", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.intLesThr1.t", + "value": "6", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.intGreThr1.t", + "value": "3", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.intLesThr2.t", + "value": "3", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.intGreThr2.t", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "conTSupSet.TDea.k", + "value": "conTSupSet.TDeaBan", + "unit": null, + "displayUnit": null + }, + { + "name": "ashOutAirSet.minOADes", + "value": "minOADes", + "unit": null, + "displayUnit": null + }, + { + "name": "ashOutAirSet.VUncDesOutAir_flow", + "value": "VUncDesOutAir_flow", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "ashOutAirSet.VDesTotOutAir_flow", + "value": "VDesTotOutAir_flow", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "ashOutAirSet.uncDesOutAir.k", + "value": "ashOutAirSet.VUncDesOutAir_flow", + "unit": null, + "displayUnit": null + }, + { + "name": "ashOutAirSet.addPar.p", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "ashOutAirSet.desOutAir.k", + "value": "ashOutAirSet.VDesTotOutAir_flow", + "unit": null, + "displayUnit": null + }, + { + "name": "ashOutAirSet.gaiDivZer.k", + "value": "0.001", + "unit": null, + "displayUnit": null + }, + { + "name": "ashOutAirSet.neaZer.k", + "value": "0.0001", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.dpBuiSet", + "value": "dpBuiSet", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "relDam.k", + "value": "kRelDam", + "unit": "1", + "displayUnit": null + }, + { + "name": "relDam.conP.controllerType", + "value": "Buildings.Controls.OBC.CDL.Types.SimpleController.P", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.k", + "value": "relDam.k", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.Ti", + "value": "0.5", + "unit": "s", + "displayUnit": null + }, + { + "name": "relDam.conP.Td", + "value": "0.1", + "unit": "s", + "displayUnit": null + }, + { + "name": "relDam.conP.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.yMax", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.yMin", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.reverseActing", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.P.k", + "value": "relDam.conP.k", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.I.k", + "value": "relDam.conP.k/relDam.conP.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.I.y_start", + "value": "relDam.conP.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.D.y_start", + "value": "relDam.conP.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.lim.uMax", + "value": "relDam.conP.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.lim.uMin", + "value": "relDam.conP.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.revAct", + "value": " if relDam.conP.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.with_I", + "value": "relDam.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or relDam.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.with_D", + "value": "relDam.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or relDam.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.kDer.k", + "value": "relDam.conP.k*relDam.conP.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.TDer.k", + "value": "relDam.conP.Td/relDam.conP.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.uS_revAct.k", + "value": "relDam.conP.revAct/relDam.conP.r", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.uMea_revAct.k", + "value": "relDam.conP.revAct/relDam.conP.r", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.antWinGai.k", + "value": "1/(relDam.conP.k*relDam.conP.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.cheYMinMax.k", + "value": "relDam.conP.yMin < relDam.conP.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.con.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.conP.con1.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.zerDam.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.dpBuiSetPoi.k", + "value": "relDam.dpBuiSet", + "unit": null, + "displayUnit": null + }, + { + "name": "relDam.zer.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.dpBuiSet", + "value": "dpBuiSet", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "retFanDpCon.p_rel_RetFan_min", + "value": "p_rel_RetFan_min", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "retFanDpCon.p_rel_RetFan_max", + "value": "p_rel_RetFan_max", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "retFanDpCon.disSpe_min", + "value": "retFanSpe_min", + "unit": "1", + "displayUnit": null + }, + { + "name": "retFanDpCon.disSpe_max", + "value": "retFanSpe_max", + "unit": "1", + "displayUnit": null + }, + { + "name": "retFanDpCon.conTyp", + "value": "retFanCon", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.k", + "value": "kRetFan", + "unit": "1", + "displayUnit": null + }, + { + "name": "retFanDpCon.Ti", + "value": "TiRetFan", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanDpCon.Td", + "value": "TdRetFan", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanDpCon.movMea.delta", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanDpCon.movMea.tStart", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.controllerType", + "value": "retFanDpCon.conTyp", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.k", + "value": "retFanDpCon.k", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.Ti", + "value": "retFanDpCon.Ti", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.Td", + "value": "retFanDpCon.Td", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.yMax", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.yMin", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.reverseActing", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.P.k", + "value": "retFanDpCon.conP.k", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.I.k", + "value": "retFanDpCon.conP.k/retFanDpCon.conP.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.I.y_start", + "value": "retFanDpCon.conP.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.D.y_start", + "value": "retFanDpCon.conP.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.lim.uMax", + "value": "retFanDpCon.conP.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.lim.uMin", + "value": "retFanDpCon.conP.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.revAct", + "value": " if retFanDpCon.conP.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.with_I", + "value": "retFanDpCon.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or retFanDpCon.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.with_D", + "value": "retFanDpCon.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or retFanDpCon.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.kDer.k", + "value": "retFanDpCon.conP.k*retFanDpCon.conP.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.TDer.k", + "value": "retFanDpCon.conP.Td/retFanDpCon.conP.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.uS_revAct.k", + "value": "retFanDpCon.conP.revAct/retFanDpCon.conP.r", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.uMea_revAct.k", + "value": "retFanDpCon.conP.revAct/retFanDpCon.conP.r", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.antWinGai.k", + "value": "1/(retFanDpCon.conP.k*retFanDpCon.conP.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.cheYMinMax.k", + "value": "retFanDpCon.conP.yMin < retFanDpCon.conP.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.con.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conP.con1.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.linExhAirDam.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.linExhAirDam.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.linRetFanStaPre.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.linRetFanStaPre.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.linRetFanSpe.limitBelow", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.linRetFanSpe.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.dpBuiSetPoi.k", + "value": "retFanDpCon.dpBuiSet", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.retFanDisPreMin.k", + "value": "retFanDpCon.p_rel_RetFan_min", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.retFanDisPreMax.k", + "value": "retFanDpCon.p_rel_RetFan_max", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.zer.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.zer1.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.con.k", + "value": "0.5", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.one.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.conOne.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.retFanSpeMin.k", + "value": "retFanDpCon.disSpe_min", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.retFanSpeMax.k", + "value": "retFanDpCon.disSpe_max", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanDpCon.zer2.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.difFloSet", + "value": "difFloSet", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "retFanAirTra.conTyp", + "value": "retFanCon", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.k", + "value": "kRetFan", + "unit": "1", + "displayUnit": null + }, + { + "name": "retFanAirTra.Ti", + "value": "TiRetFan", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanAirTra.Td", + "value": "TdRetFan", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanAirTra.maxSpe", + "value": "retFanSpe_max", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.minSpe", + "value": "retFanSpe_min", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.controllerType", + "value": "retFanAirTra.conTyp", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.k", + "value": "retFanAirTra.k", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.Ti", + "value": "retFanAirTra.Ti", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.Td", + "value": "retFanAirTra.Td", + "unit": "s", + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.yMax", + "value": "retFanAirTra.maxSpe", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.yMin", + "value": "retFanAirTra.minSpe", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.reverseActing", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.P.k", + "value": "retFanAirTra.conP.k", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.I.k", + "value": "retFanAirTra.conP.k/retFanAirTra.conP.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.I.y_start", + "value": "retFanAirTra.conP.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.D.y_start", + "value": "retFanAirTra.conP.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.lim.uMax", + "value": "retFanAirTra.conP.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.lim.uMin", + "value": "retFanAirTra.conP.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.revAct", + "value": " if retFanAirTra.conP.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.with_I", + "value": "retFanAirTra.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or retFanAirTra.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.with_D", + "value": "retFanAirTra.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or retFanAirTra.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.kDer.k", + "value": "retFanAirTra.conP.k*retFanAirTra.conP.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.TDer.k", + "value": "retFanAirTra.conP.Td/retFanAirTra.conP.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.uS_revAct.k", + "value": "retFanAirTra.conP.revAct/retFanAirTra.conP.r", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.uMea_revAct.k", + "value": "retFanAirTra.conP.revAct/retFanAirTra.conP.r", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.antWinGai.k", + "value": "1/(retFanAirTra.conP.k*retFanAirTra.conP.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.cheYMinMax.k", + "value": "retFanAirTra.conP.yMin < retFanAirTra.conP.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.con.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.conP.con1.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.zerSpe.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "retFanAirTra.difFlo.k", + "value": "retFanAirTra.difFloSet", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.minOADes", + "value": "minOADes", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.have_CO2Sen", + "value": "have_CO2Sen", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.VAbsOutAir_flow", + "value": "VAbsOutAir_flow", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "tit24OutAirSet.VDesOutAir_flow", + "value": "VDesOutAir_flow", + "unit": "m3/s", + "displayUnit": null + }, + { + "name": "tit24OutAirSet.absOutAir.k", + "value": "tit24OutAirSet.VAbsOutAir_flow", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.desOutAir.k", + "value": "tit24OutAirSet.VDesOutAir_flow", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.con.k", + "value": "0.5", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.con1.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.effOutAir.limitBelow", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.effOutAir.limitAbove", + "value": "true", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.gai.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "tit24OutAirSet.neaZer.k", + "value": "0.0001", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.relFanSpe_min", + "value": "relFanSpe_min", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.dpBuiSet", + "value": "dpBuiSet", + "unit": "Pa", + "displayUnit": null + }, + { + "name": "relFanCon.k", + "value": "kRelFan", + "unit": "1", + "displayUnit": null + }, + { + "name": "relFanCon.hys", + "value": "hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.movMea.delta", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "relFanCon.movMea.tStart", + "value": null, + "unit": "s", + "displayUnit": null + }, + { + "name": "relFanCon.dpBuiSetPoi.k", + "value": "relFanCon.dpBuiSet", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conOne.k", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.controllerType", + "value": "Buildings.Controls.OBC.CDL.Types.SimpleController.P", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.k", + "value": "relFanCon.k", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.Ti", + "value": "0.5", + "unit": "s", + "displayUnit": null + }, + { + "name": "relFanCon.conP.Td", + "value": "0.1", + "unit": "s", + "displayUnit": null + }, + { + "name": "relFanCon.conP.r", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.yMax", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.yMin", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.Ni", + "value": "0.9", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.Nd", + "value": "10", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.xi_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.yd_start", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.reverseActing", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.P.k", + "value": "relFanCon.conP.k", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.I.k", + "value": "relFanCon.conP.k/relFanCon.conP.Ti", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.I.y_start", + "value": "relFanCon.conP.xi_start", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.D.y_start", + "value": "relFanCon.conP.yd_start", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.lim.uMax", + "value": "relFanCon.conP.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.lim.uMin", + "value": "relFanCon.conP.yMin", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.revAct", + "value": " if relFanCon.conP.reverseActing then 1 else -1", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.with_I", + "value": "relFanCon.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or relFanCon.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.with_D", + "value": "relFanCon.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or relFanCon.conP.controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.kDer.k", + "value": "relFanCon.conP.k*relFanCon.conP.Td", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.TDer.k", + "value": "relFanCon.conP.Td/relFanCon.conP.Nd", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.Dzero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.uS_revAct.k", + "value": "relFanCon.conP.revAct/relFanCon.conP.r", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.uMea_revAct.k", + "value": "relFanCon.conP.revAct/relFanCon.conP.r", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.antWinGai.k", + "value": "1/(relFanCon.conP.k*relFanCon.conP.Ni)", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.cheYMinMax.k", + "value": "relFanCon.conP.yMin < relFanCon.conP.yMax", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.assMesYMinMax.message", + "value": "\"LimPID: Limits must be yMin < yMax\"", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.Izero.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.con.k", + "value": "0", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.conP.con1.k", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.t", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.h", + "value": "relFanCon.hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.t", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.t", + "value": "0.05", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.h", + "value": "relFanCon.hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.have_hysteresis", + "value": "relFanCon.greThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.greHys.t", + "value": "relFanCon.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.greHys.h", + "value": "relFanCon.greThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.greHys.pre_y_start", + "value": "relFanCon.greThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr.greNoHys.t", + "value": "relFanCon.greThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.t", + "value": "0.005", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.h", + "value": "relFanCon.hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.t", + "value": "0.005", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.t", + "value": "0.005", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.h", + "value": "relFanCon.hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.have_hysteresis", + "value": "relFanCon.lesThr.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.lesHys.t", + "value": "relFanCon.lesThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.lesHys.h", + "value": "relFanCon.lesThr.h", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.lesHys.pre_y_start", + "value": "relFanCon.lesThr.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr.lesNoHys.t", + "value": "relFanCon.lesThr.t", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.tim.t", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.t", + "value": "relFanCon.relFanSpe_min +0.15", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.h", + "value": "relFanCon.hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.t", + "value": "relFanCon.relFanSpe_min +0.15", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.t", + "value": "relFanCon.relFanSpe_min +0.15", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.h", + "value": "relFanCon.hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.have_hysteresis", + "value": "relFanCon.greThr2.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.greHys.t", + "value": "relFanCon.greThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.greHys.h", + "value": "relFanCon.greThr2.h", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.greHys.pre_y_start", + "value": "relFanCon.greThr2.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.greThr2.greNoHys.t", + "value": "relFanCon.greThr2.t", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.upTim.t", + "value": "420", + "unit": "s", + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.t", + "value": "relFanCon.relFanSpe_min", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.h", + "value": "relFanCon.hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.t", + "value": "relFanCon.relFanSpe_min", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.t", + "value": "relFanCon.relFanSpe_min", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.h", + "value": "relFanCon.hys", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.pre_y_start", + "value": "false", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.have_hysteresis", + "value": "relFanCon.lesThr3.h >= 1e-10", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.lesHys.t", + "value": "relFanCon.lesThr3.t", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.lesHys.h", + "value": "relFanCon.lesThr3.h", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.lesHys.pre_y_start", + "value": "relFanCon.lesThr3.pre_y_start", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.lesThr3.lesNoHys.t", + "value": "relFanCon.lesThr3.t", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.dowTim.t", + "value": "300", + "unit": "s", + "displayUnit": null + }, + { + "name": "relFanCon.booToRea2.realTrue", + "value": "1", + "unit": null, + "displayUnit": null + }, + { + "name": "relFanCon.booToRea2.realFalse", + "value": "0", + "unit": null, + "displayUnit": null + } + ], + "documentation": [ + { + "instance": { + "name": "frePro", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Freeze protection sequence for multizone air handling unit", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nFreeze protection sequence for multizone AHU system. It is developed based on Section\n5.16.12 of ASHRAE Guideline 36, May 2020.\n

\n
    \n
  1. \nIf the supply air temperature TAirSup drops below 4.4 °C (40 °F)\nfor 5 minutes, send two (or more, as required to ensure that heating plant is active,\nminHotWatReq) heating hot-water plant requests, override the outdoor\nair damper to the minimum position, and modulate the heating coil to maintain a suppy\nair temperature of at least 6 °C (42 °F).\nDisable this function when supply air temperature rises above 7 °C (45 °F) for\n5 minutes.\n
  2. \n
  3. \nIf the supply air temperature TAirSup drops below 3.3 °C (38 °F)\nfor 5 minutes, fully close both the economizer damper and the minimum outdoor air\ndamper for 1 hour and set a Level 3 alarm noting that minimum ventilation was\ninterrupted. After 1 hour, the unit shall resume minimum outdoor air ventilation\nand enter the previous stage of freeze protection.\n
      \n
    • \nIf it is warm enough that the supply air temperature rises above 7 °C (45 °F)\nwith minimum ventilation, the unit will remain in Stage 1 freeze protection for 5\nminutes then resume normal operation.\n
    • \n
    \n
  4. \n
  5. \nUpon signal from the freeze-stat (if installed),\nor if supply air temperature drops below 3.3 °C (38 °F) for 15 minutes or\nbelow 1 °C (34 °F) for 5 minutes, shut down supply and return (or relief)\nfan(s), close outdoor air damper, open the cooling-coil valve to 100%, and energize\nthe CHW pump system. Also send two (or more, as required to ensure that heating plant\nis active, minHotWatReq) heating hot-water plant requests,\nmodulate the heating coil to maintain the higher of the supply air temperature or\nthe mixed air temperature at 27 °C (80 °F), and set a Level 2 alarm indicating\nthe unit is shut down by freeze protection.\n
      \n
    • \nIf a freeze-protection shutdown is triggered by a low air temperature sensor reading,\nit shall remain in effect until it is reset by a software switch from the operator's\nworkstation. (If a freeze-stat with a physical reset switch is used instead, there\nshall be no software reset switch.)\n
    • \n
    \n
  6. \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.FreezeProtection" + }, + { + "instance": { + "name": "plaReq", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Output plant requests for multizone air handling unit", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis sequence outputs the system reset requests for multiple zone air handling unit. The\nimplementation is according to the Section 5.16.16 of ASHRAE Guideline 36, May 2020. \n

\n

Chilled water reset request yChiWatResReq

\n
    \n
  1. \nIf the supply air temperature TAirSup exceeds the supply air temperature\nset point TAirSupSet by 3 °C (5 °F) for 2 minutes, send 3 requests.\n
  2. \n
  3. \nIf the supply air temperature TAirSup exceeds the supply air temperature\nset point TAirSupSet by 2 °C (3 °F) for 2 minutes, send 2 requests.\n
  4. \n
  5. \nElse if the chilled water valve position uCooCoiSet is greater than\n95%, send 1 request until the uCooCoiSet is less than 85%.\n
  6. \n
  7. \nElse if the chilled water valve position uCooCoiSet is less than 95%,\nsend 0 request.\n
  8. \n
\n

Chiller plant request yChiPlaReq

\n

\nSend the chiller plant that serves the system a chiller plant request as follows:\n

\n
    \n
  1. \nIf the chilled water valve position uCooCoiSet is greater than\n95%, send 1 request until the uCooCoiSet is less than 10%.\n
  2. \n
  3. \nElse if the chilled water valve position uCooCoiSet is less than 95%,\nsend 0 request.\n
  4. \n
\n

If there is a hot-water coil, hot-water\nreset requests yHotWatResReq

\n
    \n
  1. \nIf the supply air temperature TAirSup is 17 °C (30 °F) less than\nthe supply air temperature set point TAirSupSet for 5 minutes, send 3\nrequests.\n
  2. \n
  3. \nElse if the supply air temperature TAirSup is 8 °C (15 °F) less than\nthe supply air temperature set point TAirSupSet for 5 minutes, send 2\nrequests.\n
  4. \n
  5. \nElse if the hot water valve position uHeaCoiSet is greater than\n95%, send 1 request until the uHeaCoiSet is less than 85%.\n
  6. \n
  7. \nElse if the hot water valve position uHeaCoiSet is less than 95%,\nsend 0 request.\n
  8. \n
\n

If there is a hot-water coil and heating hot-water plant, heating hot-water\nplant reqeusts yHotWatPlaReq

\n

\nSend the heating hot-water plant that serves the air handling unit a heating hot-water\nplant request as follows:\n

\n
    \n
  1. \nIf the hot water valve position uHeaCoiSet is greater than 95%, send 1\nrequest until the hot water valve position is less than 10%.\n
  2. \n
  3. \nIf the hot water valve position uHeaCoiSet is less than 95%, send 0 requests.\n
  4. \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.PlantRequests" + }, + { + "instance": { + "name": "ecoCon.sepAFMS", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "minOADes" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "Outdoor air and return air damper position limits for units with separated minimum outdoor air damper and airflow measurement", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nBlock that outputs the position limits of the return and outdoor air damper for units\nwith a separated minimum outdoor air damper and airflow measurement.\nIt is implemented according to Section 5.16.5 of the ASHRAE Guideline 36, May 2020.\n

\n

Minimum outdoor air set point

\n

\nCalculate the outdoor air set point with\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.\n

\n

Minimum outdoor air control loop

\n

\nMinimum outdoor air control loop is enabled when the supply fan is proven ON\n(u1SupFan=true) and in occupied mode, and disabled and output set to\nzero otherwise\n

\n

\nThe minimum outdoor airflow rate shall be maintained at the minimum outdoor air\nset point by a reverse-acting control loop whose output is 0% to 100%.\nFrom 0% to 50% loop output, the minimum outdoor air damper is opened from 0%\n(minOutDamPhy_min) to 100% (minOutDamPhy_max).\n

\n

Return air damper

\n
    \n
  • \nReturn air damper minimum outdoor air control is enabled when the minimum outdoor\nair damper is fully open and the economizer outdoor air damper is less than a projected\nposition limit, which is 5% when supply fan speed is at 100% design speed proportionally\nup to 80% when the fan is at minimum speed.\n
  • \n
  • \nReturn air damper minimum outdoor air control is disabled when the minimum outdoor\nair damper is not fully open or the economizer outdoor air damper is 10% above the projected\nposition limit as determined above.\n
  • \n
  • \nWhen enabled, the maximum return air damper set point is reduced from 100%\n(retDamPhy_max) to 0% (retDamPhy_min)\nas the minimum outdoor air loop output rises from 50% to 100%.\n
  • \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS" + }, + { + "instance": { + "name": "ecoCon.sepDp", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "minOADes" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "Outdoor air and return air damper position limits for units with separated minimum outdoor air damper and differential pressure control", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nBlock that outputs the position limits of the return and outdoor air damper for units\nwith a separated minimum outdoor air damper and differential pressure control.\nIt is implemented according to Section 5.16.4 of the ASHRAE Guideline 36, May 2020.\n

\n

Differential pressure setpoint across the minimum outdoor air damper

\n\n

Open minimum outdoor air damper

\n

\nOpen minimum outdoor air damper when the supply air fan is proven ON and the system\nis in occupied mode and the minimum differential pressure set point is greater\nthan zero. Damper shall be closed otherwise.\n

\n

Return air damper

\n
    \n
  • \nReturn air damper minimum outdoor air control is enabled when the minimum outdoor\nair damper is open and the economizer outdoor air damper is less than a projected\nposition limit, which is 5% when supply fan speed is at 100% design speed proportionally\nup to 80% when the fan is at minimum speed.\n
  • \n
  • \nReturn air damper minimum outdoor air control is disabled when the minimum outdoor\nair damper is closed or the economizer outdoor air damper is 10% above the projected\nposition limit as determined above.\n
  • \n
  • \nWhen enabled, the maximum return air damper set point is modulated from 100% to 0%\nto maintain the differential pressure across the minimum outdoor air damper at set\npoint.\n
  • \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP" + }, + { + "instance": { + "name": "ecoCon.damLim", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "minOADes" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.SingleDamper" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "Outdoor air and return air damper position limits for units with common damper", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis block models the multi zone VAV AHU minimum outdoor air control with a single\ncommon damper for minimum outdoor air and economizer functions based on outdoor airflow\nmeasurement, designed in line with the Section 5.16.6 of the ASHRAE Guideline 36, May 2020.\n

\n

\nThe controller is enabled when the supply fan is proven on (u1SupFan=true) and\nthe AHU operation mode \nBuildings.Controls.OBC.ASHRAE.G36.Types.OperationModes equals occupied.\nOtherwise the damper position limits are set to their corresponding maximum and minimum physical or at\ncommissioning fixed limits. The state machine chart below illustrates listed conditions:\n

\n

\n\\\"Image\n

\n

\nThe controller sets the outdoor and return damper position limits so\nthat the outdoor airflow rate VOut_flow stays equal or above the\nminimum outdoor air setpoint VOutMinSet_flow. The fraction of the controller\noutput signal between yMin and uRetDam_min is\nlinearly mapped to the outdoor air damper minimal position yOutDam_min\nwhile the fraction of the controller output between uRetDam_min and\nyMax is linearly mapped to the return air damper maximum position\nyRetDam_max. Thus the dampers are not interlocked.\n

\n

\nThe following control charts show the input/output structure and an expected damper position\nlimits for a well configured controller.\n

\n

\n\\\"Image\n

\n

\nThe expected damper position limits vs. the control loop signal are as follows:\n

\n

\n\\\"Image\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common" + }, + { + "instance": { + "name": "ecoCon.enaDis", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Multi zone VAV AHU economizer enable/disable switch", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis is a multi zone VAV AHU economizer enable/disable sequence\nbased on the Section 5.16.7 of the ASHRAE Guideline 36, May 2020. Additional\nconditions included in the sequence are: freeze protection (freeze protection\nstage 0-3, see Section 5.16.12), supply fan status (on or off, see Section 5.16.5).\n

\n

\nThe economizer is disabled whenever the outdoor air conditions\nexceed the economizer high limit setpoint.\nThis sequence allows for all device types listed in\nASHRAE 90.1-2013 and Title 24-2013.\n

\n

\nIn addition, the economizer gets disabled without a delay whenever any of the\nfollowing is true:\n

\n\n

\nThe following state machine chart illustrates the transitions between enabling and disabling:\n

\n

\n\\\"Image\n

\n

\nAfter the disable signal is activated, the following procedure is applied, in order to\nprevent pressure fluctuations in the HVAC system:\n

\n
    \n
  • \nThe return damper gets fully opened (yRetDam_max = uRetDamPhy_max and\nyRetDam_min = uRetDamPhy_max) for retDamFulOpeTim\ntime period, after which the return damper gets released to its minimum outdoor airflow control position\n(yRetDam_max = uRetDam_max and yRetDam_min = uRetDam_max).\n
  • \n
  • \nThe outdoor air damper is closed to its minimum outoor airflow control limit (yOutDam_max = uOutDam_min)\nafter a disDel time delay.\n
  • \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Enable" + }, + { + "instance": { + "name": "ecoCon.modRet", + "protected": false, + "condition": { + "simple_expression": "([object Object])" + }, + "cdlAnnotation": null + }, + "descriptionString": "Modulates dampers of economizer in buildings using return fan to control the pressure", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nBlock modulates the damper of economizers of buildings with pressure controlled by\nreturn fan and airflow tracking. It is implemented according to Section 5.16.2.3.d,\nFigure 5.16.2.3-2 and Figure 5.16.2.3-3 of ASHRAE Guideline 36, May 2020.\n

\n

\nReturn air damper position limits, which are the inputs to the sequence, are the outputs of\nsequences in package\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.\nIt also requires input uTSup from\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplySignals\nsequences.\n

\n

\nThe time rate of change of the damper signals is limited by a first order hold,\nusing the sample time samplePeriod.\nThis prevents a quick opening of the outdoor air damper, for example when the\noutdoor airflow setpoint has a step change.\nSlowing down the opening of the outdoor air damper allows the freeze protection\nto componensate with its dynamics that is faster than the opening of the outdoor air damper.\nTo avoid that all dampers are closed, the return air damper has the same\ntime rate of change limitation.\n

\n

\nThe modulation is shown as the control chart:\n
\n

\n

\n\\\"Image\n

\n

\nNote in the above chart, if the building has direct pressure control\n(have_dirCon), the profile for relief air damper control should\nbe ignored.\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan" + }, + { + "instance": { + "name": "ecoCon.modRel", + "protected": false, + "condition": { + "simple_expression": "([object Object])" + }, + "cdlAnnotation": null + }, + "descriptionString": "Modulates dampers of economizer in buildings using relief damper or fan to control the pressure", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis is a multi zone VAV AHU economizer modulation block. It calculates\nthe outdoor and return air damper positions based on the supply air temperature\ncontrol loop signal. It is implemented according to Section 5.16.2.3.d,\nFigure 5.16.2.3-1 of ASHRAE Guideline 36, May 2020.\nDamper positions are linearly mapped to\nthe supply air control loop signal.\n

\n

\nWhen the economizer is enabled, the PI controller modulates the damper\npositions. Return and outdoor damper are not interlocked. When the economizer is disabled,\nthe damper positions are set to the minimum outdoor air damper position limits.\n

\n

\nThe control charts below show the input-output structure and an economizer damper\nmodulation sequence assuming a well configured controller. Control diagram:\n

\n

\n\\\"Image\n

\n

\nMulti zone AHU economizer modulation control chart:\n
\n

\n

\n\\\"Image\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs" + }, + { + "instance": { + "name": "ecoCon.ecoHigLim", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Specify the economizer high liimits", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis block outputs the air economizer high limits according to the energy standard,\ndevice type and climate zone. The implementation is according to the Section 5.1.17 of ASHRAE\nGuideline 36, May 2020.\n

\n

When ASHRAE 90.1-2016 is used.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Device type Allowed only in these ASHRAE Climate ZonesRequired High Limit (Economizer OFF when)
Fixed dry bulb1b, 2b, 3b, 3c, 4b, 4c, 5b, 5c, 6b, 7, 8outdoor air temperature is higher than 24 °C (TCut=24°C)
5a, 6aoutdoor air temperature is higher than 21 °C (TCut=21°C)
1a, 2a, 3a, 4aoutdoor air temperature is higher than 18 °C (TCut=18°C)
Differential dry bulb1b, 2b, 3b, 3c, 4b, 4c, 5a, 5b, 5c, 6a, 6b, 7, 8outdoor air temperature is higher than the return air temperature (TCut=TRet)
Fixed enthalpy with fixed dry bulbAlloutdoor air temperature is higher than 24 °C or the enthalpy is higher than 66 kJ/kg (TCut=24°C or hCut=66kJ/kg)
Differential enthalpy with fixed dry bulbAlloutdoor air temperature is higher than 24 °C or the outdoor air enthalpy is higher than the return air enthalpy (TCut=24°C or hCut=hRet)
Fixed dry bulb with differential dry bulb1b, 2b, 3b, 3c, 4b, 4c, 5b, 5c, 6b, 7, 8outdoor air temperature is higher than 24 °C or the return air temperature (TCut=min(24°C, TRet))
5a, 6aoutdoor air temperature is higher than 21 °C or the return air temperature (TCut=min(21°C, TRet))
\n

When California Title 24-2016 is used.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Device type California Climate ZonesRequired High Limit (Economizer OFF when)
Fixed dry bulb1, 3, 5, 11 to 16outdoor air temperature is higher than 24 °C (TCut=24°C)
2, 4, 10outdoor air temperature is higher than 23 °C (TCut=23°C)
6, 8, 9outdoor air temperature is higher than 22 °C (TCut=22°C)
7outdoor air temperature is higher than 21 °C (TCut=21°C)
Differential dry bulb1, 3, 5, 11 to 16outdoor air temperature is higher than the return air temperature (TCut=TRet)
2, 4, 10outdoor air temperature is higher than the return air temperature minus 1 °C (TCut=TRet-1°C)
6, 8, 9outdoor air temperature is higher than the return air temperature minus 2 °C (TCut=TRet-2°C)
7outdoor air temperature is higher than the return air temperature minus 3 °C (TCut=TRet-3°C)
Fixed enthalpy with fixed dry bulbAlloutdoor air temperature is higher than 24 °C or the enthalpy is higher than 66 kJ/kg (TCut=24°C or hCut=66kJ/kg)
Fixed dry bulb with differential dry bulb1, 3, 5, 11 to 16outdoor air temperature is higher than 24 °C or the return air temperature (TCut=24°C or TCut=TRet)
2, 4, 10outdoor air temperature is higher than 23 °C or the return air temperature minus 1 °C (TCut=min(23°C, TRet-1°C))
6, 8, 9outdoor air temperature is higher than 22 °C or the return air temperature minus 2 °C (TCut=min(22°C, TRet-2°C))
7outdoor air temperature is higher than 21 °C or the return air temperature minus 3 °C (TCut=min(21°C, TRet-3°C))
\n
\n

\nNote that the device type Fixed dry bulb with differential dry bulb is not listed in either ASHRAE 90.1 or Title 24 standard.\nBut it is possible to use in practice. See Section 3.1.6.2 in Guideline 36.\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits" + }, + { + "instance": { + "name": "ecoCon", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Multi zone VAV AHU economizer control sequence", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nMulti zone VAV AHU economizer control sequence that calculates\noutdoor and return air damper positions based on ASHRAE\nGuidline 36, May 2020, Sections: 5.16.2.3,5.16.4, 5.16.5, 5.16.6, 5.16.7.\n

\n

\nThe sequence consists of three sets of subsequences.\n

\n\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller" + }, + { + "instance": { + "name": "conSupFan.staPreSetRes", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Block to inplement trim and respond logic", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis block implements the trim and respond logic according to Section 5.1.14.3 \nand 5.1.14.4 of ASHRAE Guideline 36, May 2020.\n

\n

\nFor each upstream system or plant set point being controlled by a trim and respond\nloop, define the initial values in system or plant sequences. Values for trim,\nrespond, time step, etc. shall be tuned to provide stable control.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Variable Value Definition
DeviceAHU Supply Fan Associated device
SP0iniSetInitial setpoint
SPminminSetMinimum setpoint
SPmaxmaxSetMaximum setpoint
TddelTimDelay timer
TsamplePeriodTime step
InumIgnReqNumber of ignored requests
RnumOfReqNumber of requests
SPtrimtriAmoTrim amount
SPresresAmoRespond amount
SPres_maxmaxResMaximum response per time interval
\n

\nThe trim and respond logic shall reset setpoint within the range minSet to\nmaxSet.\nWhen the associated device is off (uDevSta=false), the setpoint\nshall be iniSet.\nThe reset logic shall be active while the associated device is proven\non (uDevSta=true), starting delTim after initial\ndevice start command.\nWhen active, every time step samplePeriod, trim the setpoint by\ntriAmo.\nIf there are more than numIgnReq requests, respond by changing\nthe setpoint by resAmo*(numOfReq-numIgnReq), i.e., the number of\nrequests minus the number of ignored requests, but no more than maxRes.\n

\n

\nIn other words, every time step samplePeriod:\n

\n
    \n
  • Change setpoint by triAmo;
  • \n
  • If numOfReq > numIgnReq, also change setpoint by resAmo*(numOfReq\n-numIgnReq) but no more than maxRes.\n
  • \n
\n

Hold and release loop output

\n

\nOptionally, if the parameter have_hol is set to true, an additional\ninput signal uHol allows for holding the trim and respond loop output\nat a fixed value for the longer of the time the input uHol remains true \nand the duration specified by the parameter dtHol.\nWhen uHol switches back to false, the hold is released and resetting\ncontinues from the previously held value (without reinitializing to iniSet\nor going through a delay time of delTim). \n

\n

\nThis is typically used in control sequences to freeze the reset logic during the plant\nstaging process.\nConsider for example the following specification:
\n\\\"When a plant stage change is initiated, the reset logic shall be disabled and value\nfixed at its last value for the longer of 15 minutes and the time it takes \nfor the plant to successfully stage.\\\"
\nUsing this block with have_hol=true and dtHol=15*60 \nyields the following sequence of events.\n

\n
    \n
  • 0:00 - Stage change is initiated. T&R loop output is at 50 %.
  • \n
  • 0:12 - Stage change is completed. T&R loop output remains at 50 % \nsince < 15 minutes have elapsed.
  • \n
  • 0:15 - T&R is released and continues resetting from 50 %.
  • \n
\n

Examples

\n

\nThe figure below illustrates the trim and respond logic with a negative trim amount,\ncomparing scenarios with and without holding the loop output.\n

\n

\n\\\"Trend\n

\n

\nThe figure below illustrates the trim and respond logic with a positive trim amount.\n

\n

\n\\\"Trend\n

\n

\nThe figure below illustrates the trim and respond logic with a negative trim amount,\nin a scenario where the equipment switches on and off.\n

\n

\n\\\"Trend\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond" + }, + { + "instance": { + "name": "conSupFan", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Block to control multi zone VAV AHU supply fan", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nSupply fan control for a multi zone VAV AHU according to Section 5.16.1 of \nASHRAE Guideline G36, May 2020.\n

\n

Supply fan start/stop

\n
    \n
  • Supply fan shall run when system is in the Cool-down, Setup, or Occupied mode
  • \n
  • If there are any VAV-reheat boxes on perimeter zones, supply fan shall also\nrun when system is in Setback or Warmup mode
  • \n
\n

Static pressure setpoint reset

\n

\nStatic pressure setpoint shall be reset using trim-respond logic using following\nparameters as a starting point:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Variable Value Definition
DeviceAHU Supply Fan Associated device
SP0iniSetInitial setpoint
SPminminSetMinimum setpoint
SPmaxmaxSetMaximum setpoint
TddelTimDelay timer
TsamplePeriodTime step
InumIgnReqNumber of ignored requests
RuZonPreResReqNumber of requests
SPtrimtriAmoTrim amount
SPresresAmoRespond amount
SPres_maxmaxResMaximum response per time interval
\n
\n

Static pressure control

\n

\nSupply fan speed is controlled with a PI controller to maintain duct static pressure at setpoint\nwhen the fan is proven on. The setpoint for the PI controller and the measured\nduct static pressure are normalized with the maximum design static presssure\nmaxSet.\nWhere the zone groups served by the system are small,\nprovide multiple sets of gains that are used in the control loop as a function\nof a load indicator (such as supply fan airflow rate, the area of the zone groups\nthat are occupied, etc.).\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyFan" + }, + { + "instance": { + "name": "supSig", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Multizone VAV AHU supply air temperature control loop and coil valves position", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nBlock that outputs the supply temperature control loop signal,\nand the coil valve postions for VAV system with multiple zones,\nimplemented according to Section 5.16.2.3 of the ASHRAE Guideline G36, May 2020.\n

\n

\nThe supply air temperature control loop signal uTSup\nis computed using a PI controller that tracks the supply air temperature\nsetpoint TSupSet.\nIf the fan is off, then uTSup = 0.\n

\n

\nHeating valve control signal (or modulating electric heating\ncoil if applicable) yHeaCoi and cooling valve control signal yCooCoi\nare sequenced based on the supply air temperature control loop signal uTSup.\nFrom uTSup = uHea_max to uTSup = -1,\nyHeaCoi increases linearly from 0 to 1.\nSimilarly, uTSup = uCoo_min to uTSup = +1,\nyCooCoi increases linearly from 0 to 1.\n

\n\n

\n\\\"Image\n

\n\n

\nThe output uTSup can be used in a controller for the economizer.\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplySignals" + }, + { + "instance": { + "name": "conTSupSet.maxSupTemRes", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Block to inplement trim and respond logic", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis block implements the trim and respond logic according to Section 5.1.14.3 \nand 5.1.14.4 of ASHRAE Guideline 36, May 2020.\n

\n

\nFor each upstream system or plant set point being controlled by a trim and respond\nloop, define the initial values in system or plant sequences. Values for trim,\nrespond, time step, etc. shall be tuned to provide stable control.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Variable Value Definition
DeviceAHU Supply Fan Associated device
SP0iniSetInitial setpoint
SPminminSetMinimum setpoint
SPmaxmaxSetMaximum setpoint
TddelTimDelay timer
TsamplePeriodTime step
InumIgnReqNumber of ignored requests
RnumOfReqNumber of requests
SPtrimtriAmoTrim amount
SPresresAmoRespond amount
SPres_maxmaxResMaximum response per time interval
\n

\nThe trim and respond logic shall reset setpoint within the range minSet to\nmaxSet.\nWhen the associated device is off (uDevSta=false), the setpoint\nshall be iniSet.\nThe reset logic shall be active while the associated device is proven\non (uDevSta=true), starting delTim after initial\ndevice start command.\nWhen active, every time step samplePeriod, trim the setpoint by\ntriAmo.\nIf there are more than numIgnReq requests, respond by changing\nthe setpoint by resAmo*(numOfReq-numIgnReq), i.e., the number of\nrequests minus the number of ignored requests, but no more than maxRes.\n

\n

\nIn other words, every time step samplePeriod:\n

\n
    \n
  • Change setpoint by triAmo;
  • \n
  • If numOfReq > numIgnReq, also change setpoint by resAmo*(numOfReq\n-numIgnReq) but no more than maxRes.\n
  • \n
\n

Hold and release loop output

\n

\nOptionally, if the parameter have_hol is set to true, an additional\ninput signal uHol allows for holding the trim and respond loop output\nat a fixed value for the longer of the time the input uHol remains true \nand the duration specified by the parameter dtHol.\nWhen uHol switches back to false, the hold is released and resetting\ncontinues from the previously held value (without reinitializing to iniSet\nor going through a delay time of delTim). \n

\n

\nThis is typically used in control sequences to freeze the reset logic during the plant\nstaging process.\nConsider for example the following specification:
\n\\\"When a plant stage change is initiated, the reset logic shall be disabled and value\nfixed at its last value for the longer of 15 minutes and the time it takes \nfor the plant to successfully stage.\\\"
\nUsing this block with have_hol=true and dtHol=15*60 \nyields the following sequence of events.\n

\n
    \n
  • 0:00 - Stage change is initiated. T&R loop output is at 50 %.
  • \n
  • 0:12 - Stage change is completed. T&R loop output remains at 50 % \nsince < 15 minutes have elapsed.
  • \n
  • 0:15 - T&R is released and continues resetting from 50 %.
  • \n
\n

Examples

\n

\nThe figure below illustrates the trim and respond logic with a negative trim amount,\ncomparing scenarios with and without holding the loop output.\n

\n

\n\\\"Trend\n

\n

\nThe figure below illustrates the trim and respond logic with a positive trim amount.\n

\n

\n\\\"Trend\n

\n

\nThe figure below illustrates the trim and respond logic with a negative trim amount,\nin a scenario where the equipment switches on and off.\n

\n

\n\\\"Trend\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond" + }, + { + "instance": { + "name": "conTSupSet", + "protected": false, + "condition": null, + "cdlAnnotation": null + }, + "descriptionString": "Supply air temperature setpoint for multi zone system", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nBlock that outputs the supply air temperature setpoint and the coil valve control\ninputs for VAV system with multiple zones, implemented according to Section 5.16.2 of\nthe ASHRAE Guideline G36, May 2020.\n

\n

\nThe control loop is enabled when the supply air fan u1SupFan is proven on,\nand disabled and the output set to deadband (no heating, minimum economizer) otherwise.\n

\n

The supply air temperature setpoint is computed as follows.

\n\n

Setpoints for TSupCoo_min, TSupCoo_max,\nTOut_min, TOut_max\n

\n

\nPer Section 3.1.4.1, the setpoints are design information.\n

\n
    \n
  • \nThe TSupCoo_min should be set no lower than the design coil leaving air\ntemperature to prevent excessive chilled water temperature reset requests.\n
  • \n
  • \nThe TSupCoo_max is typically 18 °C (65 °F) in mild and dry climates\nand 16 °C (60 °F) or lower in humid climates. It should not typically be\ngreater than 18 °C (65 °F).\n
  • \n
  • \nThe default range of outdoor air temperature (TOut_min=16°C,\nTOut_max=21°C) used to reset the occupied mode TSupSet\nwas chosen to maximize economizer hours. It may be preferable to use a lower\nrange of outdoor air temperature (e.g. TOut_min=13°C,\nTOut_max=18°C) to minimize fan energy.\n
  • \n
\n\n

During occupied and Setup modes (uOpeMod=1, uOpeMod=2)

\n

\nThe TSupSet shall be reset from TSupCoo_min when the outdoor\nair temperature is TOut_max and above, proportionally up to\nmaximum supply temperature when the outdoor air temperature is TOut_min and\nbelow. The maximum supply temperature shall be reset using trim and respond logic between\nTSupCoo_min and TSupCoo_max. Parameters suggested for the\ntrim and respond logic are shown in the table below. They require adjustment\nduring the commissioning and tuning phase.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Variable Value Definition
DeviceAHU Supply Fan Associated device
SP0iniSetInitial setpoint
SPminTSupCoo_minMinimum setpoint
SPmaxTSupCoo_maxMaximum setpoint
TddelTimDelay timer
TsamplePeriodTime step
InumIgnReqNumber of ignored requests
RuZonTemResReqNumber of requests
SPtrimtriAmoTrim amount
SPresresAmoRespond amount
SPres_maxmaxResMaximum response per time interval
\n
\n\n

\n\\\"Image\n

\n\n

During Cool-down modes (uOpeMod=3)

\n

\nSupply air temperature setpoint TSupSet shall be TSupCoo_min.\n

\n

During Setback and Warmup modes (uOpeMod=4, uOpeMod=5)

\n

\nSupply air temperature setpoint TSupSet shall be TSupWarUpSetBac.\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyTemperature" + }, + { + "instance": { + "name": "ashOutAirSet", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "venStd" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "Outdoor airflow related calculations at the AHU level", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis sequence outputs AHU level uncorrected minimum outdoor airflow rate\nVUncOutAir_flow and effective minimum outdoor airflow rate\nVEffOutAir_flow when complying with ASHRAE Standard 62.1 ventilation requirements.\nIt is implemented according to Section 5.16.3.1 of ASHRAE\nGuideline G36, May 2020.\n

\n

\nIt requires following inputs which are sum or maximum of the outputs from\nthe zone level calculation. See\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.ASHRAE62_1.SumZone\nfor these inputs.\n

\n
    \n
  1. \nSum of the adjusted population component breathing zone flow rate for all zones that are in\nall zone groups in occupied mode, VSumAdjPopBreZon_flow.\n
  2. \n
  3. \nSum of the adjusted area component breathing zone flow rate for all zones that are in\nall zone groups in occupied mode, VSumAdjAreBreZon_flow.\n
  4. \n
  5. \nSum of the zone primary airflow rates for all zones in all zone groups that are\nin occupied mode,VSumZonPri_flow.\n
  6. \n
  7. \nMaximum zone outdoor air fraction for all zones in all zone groups that are\nin occupied mode, uOutAirFra_max.\n
  8. \n
\n

\nThe calculation is done using the steps below.\n

\n
    \n
  1. \nSee Section 3.1.4.2.a of Guideline 36 for setpoints VUncDesOutAir_flow\nand VDesTotOutAir_flow.\n
  2. \n
  3. \nThe uncorrected outdoor airflow rate setpoint VUncOutAir_flow is recalculated\ncontinuously based on the adjusted population and area component breathing zone flow rate\nof the zones being served determined in accordance with Section 5.2.1.3. See\n\nBuildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Setpoints.\n
    \n    VUncOutAir_flow = min(VUncDesOutAir_flow, (VSumAdjPopBreZon_flow + VSumAdjAreBreZon_flow))\n
    \n
  4. \n
  5. \nCalculate the current system ventilation efficiency as\n
    \n    sysVenEff = 1 + (VUncOutAir_flow/VSumZonPri_flow) - uOutAirFra_max\n
    \n
  6. \n
  7. \nCalculate the effective minimum outdoor air setpoint VEffOutAir_flow as\nthe uncorrected outdoor air intake divided by the system ventilation efficiency,\nbut no larger than the design total outdoor airflow rate VDesTotOutAir_flow:\n
    \n    VEffOutAir_flow = min(VUncOutAir_flow/sysVenEff, VDesTotOutAir_flow)\n
    \n
  8. \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.ASHRAE62_1.AHU" + }, + { + "instance": { + "name": "relDam", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "buiPreCon" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "Relief damper control for AHUs using actuated dampers without fan", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nSequence for controlling actuated relief damper yRelDam for AHUs using\nactuated relief damper without a fan.\nIt is implemented according to Section 5.16.8 of ASHRAE Guideline G36, May 2020.\n

\n
    \n
  • \nRelief dampers shall be enabled when the associated supply fan is proven on\n(u1SupFan = true), and disabled otherwise.\n
  • \n
  • \nWhen enabled, use a P-only control loop to modulate relief dampers to maintain building\nstatic pressure dpBui at its setpoint, which is by defaul\n12 Pa (0.05 inchWC).\n
  • \n
  • \nClose damper when disabled.\n
  • \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReliefDamper" + }, + { + "instance": { + "name": "retFanDpCon", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "buiPreCon" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanDp" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "Return fan control with direct building pressure control", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nSetpoint for return fan discharge pressure and relief air damper\nfor a multi zone VAV AHU according to Section 5.16.10 of ASHRAE Guideline G36, May 2020.\n

\n

\nNote that this sequence assumes that the AHU units with return fan having the\nreturn fan with direct building pressure control have the minimum outdoor air damper.\n

\n
    \n
  1. \n

    Return fan operates whenever associated supply fan is proven on and is\noff otherwise.

    \n
  2. \n
  3. \n

    Return fan is controlled to maintain return fan discharge static pressure\nat setpoint dpBuiSet.

    \n
  4. \n
  5. \n

    Relief damper is only enabled when the associated supply and return\nfans are proven on (u1SupFan=true) and the minimum outdoor air damper is open\n(to be controlled in a separate sequence).\nThe relief dampers is closed when the fan is disabled.

    \n
  6. \n
  7. \n

    The building static pressure is time averaged with a sliding 5-minute window\nto dampen fluctuations. The averaged value shall be displayed and is used\nfor control.

    \n
  8. \n
  9. \n

    When the relief damper is enabled, a control loop modulates the relief damper\nin sequence with the return fan static pressure setpoint as shown in the figure\nbelow to maintain the building pressure equal to dpBuiSet,\nwhich is by default 12 Pa (0.05 inches).\n

    \n
  10. \n
\n

\nThe output signal of the building pressure control is as follows:\n

\n
    \n
  1. \nFrom 0 to 0.5, the building pressure control loop modulates the exhaust\ndampers from yRelDam = 0 (closed) to yRelDam = 1 (open).\n
  2. \n
  3. \nFrom 0.5 to 1, the building pressure control loop resets the return fan\ndischarge static pressure setpoint from p_rel_RetFan_min\nto p_rel_RetFan_max. The p_rel_RetFan_min and\np_rel_RetFan_max are specified in Section 3.2.1.4.\n
  4. \n
\n

\n\\\"Image\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReturnFanDirectPressure" + }, + { + "instance": { + "name": "retFanAirTra", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "buiPreCon" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanMeasuredAir" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "Return fan control for AHUs using return fan with airflow tracking", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nSequence for controlling return fan yRetFan for AHUs using return fan\nwith airflow tracking.\nIt is implemented according to Section 5.16.11 of ASHRAE Guideline G36, May 2020.\n

\n
    \n
  • \nReturn fan operates whenever associated supply fan is proven on\n(u1SupFan = true).\n
  • \n
  • \nReturn fan speed shall be controlled to maintain return airflow equal to supply\nairflow less differential difFloSet, as determined per section 3.2.1.5.\n
  • \n
  • \nRelief or exhaust dampers shall be enabled when the associated supply and return\nfans are proven on and closed otherwise. Exhaust dampers shall modulate as the inverse\nof the return air damper per section 5.16.2.3. This is implemented in\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan\n
  • \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReturnFanAirflowTracking" + }, + { + "instance": { + "name": "tit24OutAirSet", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "venStd" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.California_Title_24" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "AHU level setpoint calculation", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nThis sequence outputs AHU level effective outdoor air absolute minimum and design\nminimum setpoints VEffAbsOutAir_flow, VEffDesOutAir_flow and\nthe nomalized minimum setpoint effOutAir_normalized\nwhen complying with California Title 24 ventilation requirements.\nIt is implemented according to Section 5.16.3.2 of ASHRAE\nGuideline G36, May 2020.\n

\n

\nIt calculates as below:\n

\n
    \n
  1. \nSee the sum of zone absolute and design minimum outdoor airflow setpoint\nVSumZonAbsMin_flow and VSumZonDesMin_flow from\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Title24.SumZone for the detailed\ndescription.\n
  2. \n
  3. \nEffective outdoor air absolute minimum and design minimum setpoints\n(VEffAbsOutAir_flow and VEffDesOutAir_flow) are recalculated\ncontinuously based on the mode of the zones being served.\n
      \n
    • \nEffective outdoor air absolute minimum setpoint VEffAbsOutAir_flow is\nthe sum of VZonAbsMin_flow for all zones in all zone groups that\nare in occupied mode but shall be no larger than the absolute minimum outdoor airflow\nVAbsOutAir_flow.\n
    • \n
    • \nEffective outdoor air design minimum setpoint VEffDesOutAir_flow is\nthe sum of VZonDesMin_flow for all zones in all zone groups that\nare in occupied mode but shall be no larger than the absolute minimum outdoor airflow\nVDesOutAir_flow.\n
    • \n
    \n
  4. \n
  5. \nAccording to section 5.16.4, 5.16.5 and 5.16.6, the effective minimum outdoor airflow\nsetpoint should be reset based on the highest zone CO2 control- loop signal from\nVEffAbsOutAir_flow at 50% signal to VEffDesOutAir_flow\nat 100% signal. When there is no CO2 sensor in any zone, the effective minimum\noutdoor airflow setpoint should be equal to the VEffDesOutAir_flow.\n
  6. \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Title24.AHU" + }, + { + "instance": { + "name": "relFanCon", + "protected": false, + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "buiPreCon" + }, + { + "name": "Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefFan" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "cdlAnnotation": null + }, + "descriptionString": "Sequence for control of relief fan in AHU", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nSequence for controling relief fan that is part of AHU. It is developed based on\nSection 5.16.9 of ASHRAE Guideline 36, May 2020, with the modification to accommodate\nthe single relief fan control.\n

\n
    \n
  1. \nThe relief fan shall be enabled when the AHU supply fan is proven ON\n(u1SupFan=true), and shall be disabled otherwise.\n
  2. \n
  3. \nBuilding static pressure (dpBui) shall be time averaged with a sliding\n5-minute window and 15 second sampling rate (to dampen fluctuations). The average\nvalue shall be that displayed and used for control.\n
  4. \n
  5. \nA P-only control loop maintains the building pressure at a set point (dpBuiSet)\nof 12 Pa (0.05 in. of water) with an output ranging from 0% to 100%. The loop is disabled\nand output set to zero when the relief fan is disabled.\n
  6. \n
  7. \nFan speed shall be equal to the PID signal but no less than the minimum speed.\n
      \n
    1. \nWhen relief system is enabled, and the control loop\noutput is above 5%, open the motorized dampers to the relief fans;\nclose the dampers when the loop output drops to 0% for 5 minutes.\n
    2. \n
    3. \nWhen the control loop output is above minimum speed (relFanSpe_min) plus 15%\nby 7 minutes, start the relief fan.\n
    4. \n
    5. \nWhen the control loop output is below minimum speed (relFanSpe_min)\nby 5 minutes, shut off the relief fan.\n
    6. \n
    \n
  8. \n
\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReliefFan" + }, + { + "descriptionString": "Multizone VAV air handling unit controller", + "classCdlAnnotation": null, + "classDocInfo": "\"\n

\nBlock that is applied for multizone VAV AHU control. It outputs the supply fan status\nand the operation speed, outdoor and return air damper position, supply air\ntemperature setpoint and the valve position of the cooling and heating coils.\nIt is implemented according to the Section 5.16 of ASHRAE Guideline 36, May 2020.\n

\n

\nThe sequence consists of eight types of subsequences.\n

\n

Supply fan speed control

\n

\nThe fan speed control is implemented according to Section 5.16.1. It outputs\nthe boolean signal y1SupFan to turn on or off the supply fan.\nIn addition, based on the pressure reset request uZonPreResReq\nfrom the VAV zones controller, the\nsequence resets the duct pressure setpoint, and uses this setpoint\nto modulate the fan speed ySupFanSpe using a PI controller.\nSee\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyFan\nfor more detailed description.\n

\n

Minimum outdoor airflow setting

\n

\nAccording to current occupany, supply operation status ySupFan,\nzone temperatures and the discharge air temperature, the sequence computes the\nminimum outdoor airflow rate setpoint, which is used as input for the economizer control.\nMore detailed information can be found in\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.\n

\n

Economizer control

\n

\nThe block outputs outdoor and return air damper position, yOutDamPos and\nyRetDamPos. First, it computes the position limits to satisfy the minimum\noutdoor airflow requirement. Second, it determines the availability of the economizer based\non the outdoor condition. The dampers are modulated to track the supply air temperature\nloop signal, which is calculated from the sequence below, subject to the minimum outdoor airflow\nrequirement and economizer availability.\nSee\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller\nfor more detailed description.\n

\n

Supply air temperature setpoint

\n

\nBased on the Section 5.16.2, the sequence first sets the maximum supply air temperature\nbased on reset requests collected from each zone uZonTemResReq. The\noutdoor temperature TOut and operation mode uOpeMod are used\nalong with the maximum supply air temperature, for computing the supply air temperature\nsetpoint. See\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyTemperature\nfor more detailed description.\n

\n

Coil valve control

\n

\nThe subsequence retrieves supply air temperature setpoint from previous sequence.\nAlong with the measured supply air temperature and the supply fan status, it\ngenerates coil valve positions. See\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplySignals\nfor more detailed description.\n

\n

Freeze protection

\n

\nBased on the Section 5.16.12, the sequence enables freeze protection if the\nmeasured supply air temperature belows certain thresholds. There are three\nprotection stages. See\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.FreezeProtection\nfor more detailed description.\n

\n

Building pressure control

\n

\nBy selecting different building pressure control designs, which includes using actuated\nrelief damper without fan, using actuated relief dampers with relief fan, using\nreturn fan with direct building pressure control, or using return fan with airflow\ntracking control, the sequences controls relief fans, relief dampers and return fans.\nSee belows sequences for more detailed description:\n

\n\n

Plant request

\n

\nAccording to the Section 5.16.16, the sequence send out heating or cooling plant requests\nif the supply air temperature is below or above threshold value, or the heating or\ncooling valves have been widely open for certain times. See\n\nBuildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.PlantRequests\nfor more detailed description.\n

\n\"", + "fullClassName": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller" + } + ] +} \ No newline at end of file diff --git a/test/test_cdlDoc.js b/test/test_cdlDoc.js index aaf9ccbf..f69cd442 100644 --- a/test/test_cdlDoc.js +++ b/test/test_cdlDoc.js @@ -1,13 +1,18 @@ -const assert = require('assert') -const fs = require('bluebird').promisifyAll(require('fs')) -const jsonQuery = require('../lib/jsonquery') -const mocha = require('mocha') -const path = require('path') -const rewire = require('rewire') +const assert = require('assert'); +const fs = require('bluebird').promisifyAll(require('fs')); +const jsonQuery = require('../lib/jsonquery'); +const math = require("mathjs"); +const mocha = require('mocha'); +const path = require('path'); +const rewire = require('rewire'); // We use rewire to access private functions and test them const cdlDoc = rewire('../lib/cdlDoc.js') +const units = JSON.parse( + fs.readFileSync(path.join(process.cwd(), 'units-si.json'), 'utf8') +); + mocha.describe('cdlDoc', function () { mocha.describe('#sortDocSections()', function () { const sortDocSections = cdlDoc.__get__('sortDocSections'); @@ -39,4 +44,16 @@ mocha.describe('cdlDoc', function () { orderedDoc) }) }) + + mocha.describe('#convertUnit()', function () { + const convertUnit = cdlDoc.__get__('convertUnit'); + mocha.it('should return the given array of converted units', function () { + assert.deepStrictEqual( + units.reduce((a, v) => + [...a, math.round(convertUnit(300, v.unit, v.displayUnit, units), 5)], [] + ), + [ 26.85, 0.08333, 0.00008, 1080 ] + ) + }) + }) }) diff --git a/units-si.json b/units-si.json index ddab09c9..5ceefe4c 100644 --- a/units-si.json +++ b/units-si.json @@ -3,7 +3,7 @@ "unit": "K", "displayUnit": "degC", "multiplier": 1, - "offset": 273.15 + "offset": -273.15 }, { "unit": "J",