From 2c6eab6ab4964a41679ee0b6d8c01ed6232e4595 Mon Sep 17 00:00:00 2001 From: AntoineGautier Date: Tue, 15 Oct 2024 17:47:23 +0200 Subject: [PATCH] Add option to include tables with parameters and I/O --- app.js | 7 +- lib/cdlDoc.js | 199 +- lib/expressionEvaluation.js | 81 +- test/cdlDoc/MultiZoneVavDoc.html | 198 +- test/cdlDoc/MultiZoneVavParamAndDoc.json | 11822 ++++++++++++++++++++- test/test_cdlDoc.js | 63 +- 6 files changed, 12189 insertions(+), 181 deletions(-) diff --git a/app.js b/app.js index da0f2bf9..154f5aac 100644 --- a/app.js +++ b/app.js @@ -20,7 +20,7 @@ parser.addArgument( ['-o', '--output'], { help: 'Specify output format.', - choices: ['raw-json', 'json', 'modelica', 'semantic', 'cxf', 'doc'], + choices: ['raw-json', 'json', 'modelica', 'semantic', 'cxf', 'doc', 'doc+'], defaultValue: 'json' } ) @@ -136,10 +136,11 @@ if (args.output === 'modelica') { if (args.output === 'cxf' && args.cxfCore && args.elementary) { ce.getCxfCore(args.file, args.directory, args.prettyPrint) } - if (args.output === 'doc') { + if (args.output === 'doc' || args.output === 'doc+') { const unitData = JSON.parse( fs.readFileSync(path.join(__dirname, 'units-si.json'), 'utf8')) - dc.buildDoc(jsons[0], jsons, unitData, args.directory) + const includeVariables = (args.output === 'doc+') + dc.buildDoc(jsons[0], jsons, unitData, args.directory, includeVariables) } }) } diff --git a/lib/cdlDoc.js b/lib/cdlDoc.js index 9a7cb025..d21ef4d8 100644 --- a/lib/cdlDoc.js +++ b/lib/cdlDoc.js @@ -10,6 +10,32 @@ const utilM2j = require('../lib/util.js') // Object to persist the library paths const libPath = {} +/** + * Creates an HTML table from an array of objects. + * + * @param {*} data + * @returns {string} + */ +function createTable (data) { + if (data.length === 0) return '' + const keys = Object.keys(data[0]) + const borderStyle = 'border:1px solid black; border-collapse: collapse;' + const tableWidth = 600 // in pixels + const table = `` + + `${keys.map(k => { + const columnWidth = ((k === 'type' || k === 'unit') +? 0.1 +: k === 'description' + ? 0.6 + : 0.15) * tableWidth + return `` + }).join('')}` + return table + data.map( + row => `${keys.map(k => + ``) + .join('')}`).join('') + '
${k[0].toUpperCase() + k.substring(1)}
${row[k]}
' +} + /** * Determines whether a document element should be included in the documentation. * The element must be included if: @@ -276,14 +302,12 @@ function processHref ($, documentation) { for (const docElement of documentation) { // Modify the href attribute pointing to another section of the documentation if (docElement.fullClassName === href) { - const anchorId = createAnchorId( - docElement.headingNum, - docElement.headingText - ) + const anchorId = createAnchorId(docElement.headingText, docElement.headingNum) + $(this).before('Section ') $(this) .attr('href', `#${anchorId}`) .attr('style', 'white-space: nowrap;') - .text(`Section ${docElement.headingNum}`) + .text(`${docElement.headingNum}`) return } } @@ -396,10 +420,11 @@ function createSectionNum (documentation) { * the previous heading number. * * @param {number} headingIdx - The current heading index. - * @param {string} prevHeadingNum - The previous heading number in dot-separated format. + * @param {string} [prevHeadingNum='0'] - The previous heading number in dot-separated format. + * * @returns {string} The new heading number in dot-separated format. */ -function createHeadingNum (headingIdx, prevHeadingNum) { +function createHeadingNum (headingIdx, prevHeadingNum = '0') { const prevHeadingSplit = prevHeadingNum.split('.') if (headingIdx <= prevHeadingSplit.length) { return [ @@ -409,33 +434,19 @@ function createHeadingNum (headingIdx, prevHeadingNum) { } else return [...prevHeadingSplit, 1].join('.') } -/** - * Creates a nomenclature for the sorted documentation array by adding heading - * indices and numbers. - * - * @param {Array} documentation - The array of documentation objects to process. - */ -function createNomenclature (documentation) { - let headingNum = '0' - documentation.forEach((el) => { - el.headingIdx = (el.section?.replace(/\.$/, '').match(/\./g) || []).length + 1 - el.headingNum = createHeadingNum(el.headingIdx, headingNum) - headingNum = el.headingNum - }) -} - /** * Creates an anchor ID from a heading number and heading text. * - * @param {number} headingNum - The heading number to prepend for uniqueness. * @param {string} headingText - The heading text to convert into an anchor ID. + * @param {number} [headingNum] - The heading number to prepend for uniqueness. + * Will be randomnly generated if null. * @param {number} [maxLen=30] - The maximum length of the resulting anchor ID. * @returns {string} The generated anchor ID. */ -function createAnchorId (headingNum, headingText, maxLen = 30) { +function createAnchorId (headingText, headingNum, maxLen = 30) { /* We prepend with 'headingNum' to guarantee unicity. We truncate to 30 characters due to MS Word limitation. */ - return (headingNum + headingText) + return ((headingNum ?? math.floor(math.random() * 1e6)) + headingText) .toLowerCase() .replace(/\s+/g, '-') .slice(0, maxLen) @@ -445,17 +456,21 @@ function createAnchorId (headingNum, headingText, maxLen = 30) { * Creates an HTML heading element with an anchor. * * @param {number} headingIdx - The level of the heading (e.g., 1 for `

`, 2 for `

`, etc.). - * @param {string} headingNum - The number or identifier for the heading (e.g., "1", "1.1"). * @param {string} headingText - The text content of the heading. + * @param {string} [headingNum] - The number or identifier for the heading (e.g., "1", "1.1"). + * @param {string} [anchorId] - The anchor ID for the heading. + * Will be internally created if null. * @returns {string} The HTML string for the heading with an anchor. */ -function createHeading (headingIdx, headingNum, headingText) { +function createHeading (headingIdx, headingText, headingNum, anchorId) { /* We use MS Word syntax for creating an anchor with instead of the more common syntax with
*/ - const anchorId = createAnchorId(headingNum, headingText) - return `` + - '' + - `${headingNum}. ` + + const myAnchorId = anchorId ?? createAnchorId(headingText, headingNum) + return `` + ( + headingNum + ? '' + + `${headingNum}. ` + : '') + `${headingText}\n` } @@ -482,6 +497,54 @@ function processUniqueElements (documentation) { }) } +function createSectionsBlockVars (variables) { + if (Object.keys(variables).length === 0) return {} + const blockAnchorIds = {} + const blockNames = Object.keys(variables).toSorted() + let htmlBlockVars = "
" + + createHeading(1, 'Appendix A. Block Variables') + blockNames.forEach(blockName => { + blockAnchorIds[blockName] = createAnchorId(blockName) + htmlBlockVars += createHeading( + 2, blockName, /* headingNum= */ undefined, blockAnchorIds[blockName]) + for (const typeVar of ['parameters', 'inputs', 'outputs']) { + if (variables[blockName][typeVar]?.length === 0) continue + variables[blockName][typeVar].forEach(v => { + v.unit = v.unit + ? v.unit.replace(/"/g, '').replace(/1/, '-') + : '-' + }) + htmlBlockVars += `

${typeVar[0].toUpperCase() + typeVar.substring(1)}

` + htmlBlockVars += createTable(variables[blockName][typeVar]) + } + }) + return { blockAnchorIds, htmlBlockVars } +} + +function getDocWithSectionBlockVars (docElement, blockAnchorIds) { + // Parse document: this will create boilerplate tags (, ) if not present + const $ = cheerio.load( + (docElement.cdlAnnotation?.Documentation?.info ?? + docElement.documentationInfo) + .replace(/^\\*"|\\*"$/g, '') // Remove enclosing double quotes: "simple_expression": "\"...\"" + ) + // Get heading indices + const headings = [] + $('h1, h2, h3, h4, h5, h6').map((_, el) => + headings.push(Number(el.name.replace('h', '')))) + const minHeadingIdx = headings.length === 0 ? 1 : math.min(...headings) + + // Add subsection with link to block variables + if (blockAnchorIds[docElement.fullClassName]) { + $('body').append(createHeading(minHeadingIdx, 'Block Variables')) + $('body').append('

For block parameters, input and output connectors see Section ' + + `${docElement.fullClassName} ` + + 'in Appendix A.

') + } + + return `${$('body').html()}` +} + /** * Modifies the documentation information of a given documentation element. * @@ -491,12 +554,14 @@ function processUniqueElements (documentation) { * @param {Object} evalContext - The evaluation context used for evaluating parameter expressions. * @param {Object} unitContext - The unit context used for unit assignment and/or conversion. * @param {Object} unitData - The data containing unit conversion information. + * @param {string} lastHeadingNum - The last heading number in the heading nomenclature (pass '0' at first call). + * @param {Object} [blockAnchorIds] - The data containing unit conversion information. * @returns {string} - The modified HTML string with updated headings and code elements. */ -function modifyInfo (docElement, evalContext, unitContext, unitData) { +function modifyInfo (docElement, evalContext, unitContext, unitData, lastHeadingNum, blockAnchorIds) { let htmlStr = docElement.cdlAnnotation?.Documentation?.info ?? docElement.documentationInfo - // Remove double quotes surrounding strings: "simple_expression": "\"...\"" + // Remove enclosing double quotes: "simple_expression": "\"...\"" htmlStr = htmlStr.replace(/^\\*"|\\*"$/g, '') // Convert inner escaped double quotes into non-escaped double quotes htmlStr = htmlStr.replace(/\\+"/g, '"') @@ -506,28 +571,37 @@ function modifyInfo (docElement, evalContext, unitContext, unitData) { // Process CDL visibility toggles processCdlToggle($, evalContext, docElement.instance?.name) - // Shift index of existing headings + // Add properties to create new heading based on component description string + docElement.headingText = + (docElement.instance?.descriptionString ?? docElement.descriptionString) + ?.replace(/^\\*"|\\*"$/g, '') + docElement.headingIdx = (docElement.section?.replace(/\.$/, '').match(/\./g) || []).length + 1 + docElement.headingNum = createHeadingNum(docElement.headingIdx, lastHeadingNum) + lastHeadingNum = docElement.headingNum + + // Shift heading indices const headings = [] $('h1, h2, h3, h4, h5, h6').map((_, el) => headings.push(Number(el.name.replace('h', '')))) - if (headings.length > 0) { - const headingOffset = docElement.headingIdx - math.min(headings) + 1 - let headingNum = docElement.headingNum + const minHeadingIdx = headings.length === 0 ? 1 : math.min(...headings) + + if (headings.length > 0 || blockAnchorIds?.[docElement.fullClassName]) { + const headingOffset = docElement.headingIdx - minHeadingIdx + 1 $('h1, h2, h3, h4, h5, h6').replaceWith((_, el) => { const headingIdx = Number(el.name.replace('h', '')) + headingOffset - headingNum = createHeadingNum(headingIdx, headingNum) - return createHeading(headingIdx, headingNum, $(el).text()) + lastHeadingNum = createHeadingNum(headingIdx, lastHeadingNum) + return createHeading(headingIdx, $(el).text(), lastHeadingNum) }) } + // Insert new heading and tag as section with anchor - docElement.headingText = - (docElement.instance?.descriptionString ?? - docElement.descriptionString)?.replace(/^\\*"|\\*"$/g, '') - $('body').prepend(createHeading( - docElement.headingIdx, - docElement.headingNum, - docElement.headingText - )) + $('body').prepend( + createHeading( + docElement.headingIdx, + docElement.headingText, + docElement.headingNum + ) + ) // Modify each code element into: expression (value unit, adjustable) $('code').map(function () { @@ -547,7 +621,7 @@ function modifyInfo (docElement, evalContext, unitContext, unitData) { return this }) - return `${$('body').html()}` + return { html: `${$('body').html()}`, lastHeadingNum } } /** @@ -557,14 +631,15 @@ function modifyInfo (docElement, evalContext, unitContext, unitData) { * @param {Object} jsons - The JSON data of all used classes. * @param {Object} unitData - The data containing unit conversion information. * @param {string} outputDir - The directory where the documentation will be saved. + * @param {boolean} [includeVariables=false] - Whether to include block variables in the documentation. * @param {string} [title='Sequence of Operation'] - The title of the documentation. * * @returns {void} */ -function buildDoc (classObj, jsons, unitData, outputDir, title = 'Sequence of Operation') { +function buildDoc (classObj, jsons, unitData, outputDir, includeVariables = false, title = 'Sequence of Operation') { // First extract parameters and documentation of all components const paramAndDoc = expressionEvaluation.getParametersAndBindings( - classObj, jsons, /* fetchDoc= */ true) + classObj, jsons, /* fetchDoc= */ true, /* fetchVariables= */ includeVariables) const evalContext = paramAndDoc.parameters.reduce((a, v) => ({ ...a, [v.name]: v.value }), {}) const unitContext = paramAndDoc.parameters.reduce((a, v) => @@ -572,24 +647,42 @@ function buildDoc (classObj, jsons, unitData, outputDir, title = 'Sequence of Op const documentation = paramAndDoc.documentation .filter(docElement => shallBeDocumented(docElement, evalContext, paramAndDoc.documentation)) + // Add subsection with a link to the block variables + const { blockAnchorIds, htmlBlockVars } = createSectionsBlockVars(paramAndDoc.variables) + if (includeVariables) { + documentation.forEach(el => { + const newDoc = getDocWithSectionBlockVars(el, blockAnchorIds) + if (el.cdlAnnotation?.Documentation?.info != null) { + el.cdlAnnotation.Documentation.info = newDoc + } else if (el.documentationInfo != null) { + el.documentationInfo = newDoc + } + }) + } + // Create temporary section numbers: final section numbers are created after sorting createSectionNum(documentation) // Sort the documentation sections documentation.sort(sortDocSections.bind(documentation)) // Process elements annotated with `unique=true` processUniqueElements(documentation) - // Create a heading nomenclature for the sorted documentation array - createNomenclature(documentation) // Modify the documentation information of each component and create the HTML file + let lastHeadingNum = '0' const $ = cheerio.load(`${title}`) documentation.forEach(el => { - $('body').append(modifyInfo(el, evalContext, unitContext, unitData)) + const newInfo = modifyInfo( + el, evalContext, unitContext, unitData, lastHeadingNum, blockAnchorIds) + $('body').append(newInfo.html) + lastHeadingNum = newInfo.lastHeadingNum }) // Modify href attributes pointing to other sections of the documentation processHref($, documentation) + // Include sections with block variables documentation + $('body').append(htmlBlockVars) + // Create output directory and 'img' subfolder if it doesn't exist if (!fs.existsSync(outputDir)) { fs.mkdirSync(outputDir, { recursive: true }) diff --git a/lib/expressionEvaluation.js b/lib/expressionEvaluation.js index 8797d409..dff1aa00 100644 --- a/lib/expressionEvaluation.js +++ b/lib/expressionEvaluation.js @@ -420,12 +420,15 @@ function splitExpression (expression, keepOperator = false) { * * @todo Store in memory parameters and doc of types already processed to avoid redundant lookups. */ -function getParametersAndBindings (classObject, jsons, fetchDoc = false, _instance, _bindings) { - const toReturn = { parameters: [], documentation: [] } +function getParametersAndBindings (classObject, jsons, fetchDoc = false, fetchVariables = false, _instance, _bindings) { + const toReturn = { parameters: [], documentation: [], variables: {} } const components = getComponents(classObject, stringifyExpression) const componentNames = components.map(({ identifier }) => identifier) - let fullClassName + let componentFullClassName let classDefinition + const inputs = [] + const outputs = [] + const parameters = [] function prependIdentifier (identifier) { return `${_instance ? _instance.name + '.' : ''}${identifier}` @@ -475,7 +478,7 @@ function getParametersAndBindings (classObject, jsons, fetchDoc = false, _instan }) } - function handleCompositeComponent (toReturn, component, jsons, classDefinition, fetchDoc) { + function handleCompositeComponent (toReturn, component, jsons, classDefinition, fetchDoc, fetchVariables) { /* Variables in bindings expressions are prepended by the name of the instance * of the class where the component with bindings is declared. * Example: @@ -487,6 +490,7 @@ function getParametersAndBindings (classObject, jsons, fetchDoc = false, _instan classDefinition, jsons, fetchDoc, + fetchVariables, /* _instance= */ { name: prependIdentifier(component.identifier), protected: component.protected, @@ -498,9 +502,15 @@ function getParametersAndBindings (classObject, jsons, fetchDoc = false, _instan ) toReturn.parameters.push(...componentData.parameters) if (fetchDoc) toReturn.documentation.push(...componentData.documentation) + if (fetchVariables) { + toReturn.variables = { + ...toReturn.variables, + ...componentData.variables + } + } } - fullClassName = classObject.within + '.' + getClassIdentifier( + const fullClassName = classObject.within + '.' + getClassIdentifier( jsonQuery.getProperty( classObject.class_definition ? pathToClassSpecifier @@ -510,10 +520,13 @@ function getParametersAndBindings (classObject, jsons, fetchDoc = false, _instan ) // Retrieve the documentation of the class object - // We already exclude protected components and elementary CDL blocks from the documentation + // We already exclude protected components and elementary CDL blocks for the documentation and variables fetchDoc = fetchDoc && !_instance?.protected && !/^Buildings\.Controls\.OBC\.CDL/.test(fullClassName) + fetchVariables = fetchVariables && + !_instance?.protected && + !/^Buildings\.Controls\.OBC\.CDL/.test(fullClassName) if (fetchDoc) { const descriptionString = jsonQuery.getProperty( @@ -551,19 +564,51 @@ function getParametersAndBindings (classObject, jsons, fetchDoc = false, _instan // Retrieve the parameters and bindings of the class object // and the documentation of each composite component - for (const component of components) { - // Local declarations of parameters and constants + // Local declarations to store in variables + if (fetchVariables) { + if (component.typePrefix?.includes('parameter') && + !toReturn.variables.fullClassName?.parameters + ) { + parameters.push({ + type: component.typeSpecifier.split('.').slice(-1)[0], + name: component.identifier, + description: component.descriptionString, + unit: component.unit + }) + } else if ( // Input connectors + fetchVariables && + !toReturn.variables.fullClassName?.inputs && + /\.CDL\.Interfaces\..*Input$/.test(component.typeSpecifier)) { + inputs.push({ + type: component.typeSpecifier.split('.').slice(-1)[0].replace('Input', ''), + name: component.identifier, + description: component.descriptionString, + unit: component.unit + }) + } else if ( // Output connectors + fetchVariables && + !toReturn.variables.fullClassName?.outputs && + /\.CDL\.Interfaces\..*Output$/.test(component.typeSpecifier)) { + outputs.push({ + type: component.typeSpecifier.split('.').slice(-1)[0].replace('Output', ''), + name: component.identifier, + description: component.descriptionString, + unit: component.unit + }) + } + } + // Local declarations of parameters and constants to store in parameters if (['parameter', 'constant'].some(el => component.typePrefix?.includes(el))) { // Primitive types if (primitiveTypes.includes(component.typeSpecifier)) { handleSimpleAssignment(toReturn, component) continue } - fullClassName = lookupClassName( + componentFullClassName = lookupClassName( component.typeSpecifier, classObject.within, classObject.fullMoFilePath ) - classDefinition = getClassDefinition(fullClassName, jsons, classObject) + classDefinition = getClassDefinition(componentFullClassName, jsons, classObject) if (classDefinition == null) continue // Enumeration types if (classDefinition.class_prefixes?.includes('type')) { @@ -573,7 +618,8 @@ function getParametersAndBindings (classObject, jsons, fetchDoc = false, _instan // Record types // parameter Record p(q=1) → Store p.q = 1 → need to process as any other composite class instance if (classDefinition.class_prefixes?.includes('record')) { - handleCompositeComponent(toReturn, component, jsons, classDefinition, /* fetchDoc= */ false) + handleCompositeComponent(toReturn, component, jsons, classDefinition, + /* fetchDoc= */ false, /* fetchVariables= */ false) // No documentation and variables from record definitions continue } } else if ( // Instances of non primitive types (composite components) excluding I/O @@ -581,10 +627,17 @@ function getParametersAndBindings (classObject, jsons, fetchDoc = false, _instan !/\.CDL\.Interfaces\..*(Input|Output)$/.test(component.typeSpecifier) && !primitiveTypes.includes(component.type_specifier) ) { - fullClassName = lookupClassName(component.typeSpecifier, classObject.within, classObject.fullMoFilePath) - classDefinition = getClassDefinition(fullClassName, jsons, classObject) + componentFullClassName = lookupClassName(component.typeSpecifier, classObject.within, classObject.fullMoFilePath) + classDefinition = getClassDefinition(componentFullClassName, jsons, classObject) if (classDefinition == null) continue - handleCompositeComponent(toReturn, component, jsons, classDefinition, fetchDoc) + handleCompositeComponent(toReturn, component, jsons, classDefinition, fetchDoc, fetchVariables) + } + } + + if (fetchVariables) { + toReturn.variables = { + ...toReturn.variables, + [fullClassName]: { inputs, outputs, parameters } } } diff --git a/test/cdlDoc/MultiZoneVavDoc.html b/test/cdlDoc/MultiZoneVavDoc.html index 98d0faad..8711b72f 100644 --- a/test/cdlDoc/MultiZoneVavDoc.html +++ b/test/cdlDoc/MultiZoneVavDoc.html @@ -18,7 +18,7 @@

ySupFanSpe using a PI controller. See -Section 5 +Section 5 for more detailed description.

1.2. Minimum outdoor airflow setting

@@ -41,7 +41,7 @@

Section 4 +Section 4 for more detailed description.

1.4. Supply air temperature setpoint

@@ -52,7 +52,7 @@

TOut and operation mode uOpeMod are used along with the maximum supply air temperature, for computing the supply air temperature setpoint. See -Section 7 +Section 7 for more detailed description.

1.5. Coil valve control

@@ -61,7 +61,7 @@

Section 6 +Section 6 for more detailed description.

1.6. Freeze protection

@@ -70,7 +70,7 @@

Section 2 +Section 2 for more detailed description.

1.7. Building pressure control

@@ -88,7 +88,7 @@

  • Relief fan control -Section 10 is not +Section 10 is not included in the AHU controller. This sequence controls all the relief fans that are serving one common space, which may include multiple air handling units.
  • @@ -107,10 +107,12 @@

    Section 3 +Section 3 for more detailed description.

    -

    2. Freeze protection

    +

    1.9. Block Variables

    + +

    For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller in Appendix A.

    2. Freeze protection

    Freeze protection sequence for multizone AHU system. It is developed based on Section 5.16.12 of ASHRAE Guideline 36, May 2020. @@ -159,7 +161,9 @@

    3. Plant requests

    +

    2.1. Block Variables

    + +

    For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.FreezeProtection in Appendix A.

    3. Plant requests

    This sequence outputs the system reset requests for multiple zone air handling unit. The implementation is according to the Section 5.16.16 of ASHRAE Guideline 36, May 2020. @@ -238,7 +242,9 @@

    uHeaCoiSet is less than 95%, send 0 requests. -

    4. Economizer controller

    +

    3.5. Block Variables

    + +

    For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.PlantRequests in Appendix A.

    4. Economizer controller

    Multi zone VAV AHU economizer control sequence that calculates outdoor and return air damper positions based on ASHRAE @@ -252,11 +258,11 @@

    +
    1. separate minimum outdoor air damper, with airflow measurement. See -Section 10.1 +Section 10.2 for a description.
    2. @@ -281,7 +287,7 @@

      Section 10.2 +Section 10.3 for a description.

    3. @@ -290,23 +296,25 @@

      +
      1. relief damper or relief fan control. See -Section 10.4 +Section 10.5 for a description.
      2. return fan control with airflow tracking, or with direct building pressure control. See -Section 10.3 +Section 10.4 for a description.
      -

      5. Supply fan speed setpoint

      +

      4.1. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller in Appendix A.

      5. Supply fan speed setpoint

      Supply fan control for a multi zone VAV AHU according to Section 5.16.1 of ASHRAE Guideline G36, May 2020. @@ -324,7 +332,7 @@

      - +
      @@ -351,7 +359,9 @@

      -

      6. Heating and cooling valve position

      +

      5.4. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyFan in Appendix A.

      6. Heating and cooling valve position

      Block that outputs the supply temperature control loop signal, and the coil valve postions for VAV system with multiple zones, @@ -373,14 +383,16 @@

      yCooCoi increases linearly from 0 to 1.

      -

      -Image of supply temperature loop +

      +\"Image

      The output uTSup can be used in a controller for the economizer.

      -

      7. Supply temperature setpoint

      +

      6.1. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplySignals in Appendix A.

      7. Supply temperature setpoint

      Block that outputs the supply air temperature setpoint and the coil valve control inputs for VAV system with multiple zones, implemented according to Section 5.16.2 of @@ -430,7 +442,7 @@

      -

      Variable Value Definition
      DeviceAHU Supply Fan Associated device
      SP0iniSet (120 Pa, adjustable)Initial setpoint
      +
      @@ -446,8 +458,8 @@

      Variable Value Definition
      DeviceAHU Supply Fan Associated device
      SP0iniSet (18 °C, adjustable)Initial setpoint

      -

      -Image of set point reset +

      +\"Image

      7.3. During Cool-down modes (uOpeMod=3)

      @@ -460,7 +472,9 @@

      Supply air temperature setpoint TSupSet shall be TSupWarUpSetBac (35 °C, adjustable).

      -

      8. Minimum outdoor airflow setpoint, when complying with ASHRAE 62.1 requirements

      +

      7.5. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyTemperature in Appendix A.

      8. Minimum outdoor airflow setpoint, when complying with ASHRAE 62.1 requirements

      This sequence outputs AHU level uncorrected minimum outdoor airflow rate VUncOutAir_flow and effective minimum outdoor airflow rate @@ -523,7 +537,9 @@

    -

    9. Minimum outdoor airflow setpoint, when complying with Title 24 requirements

    +

    8.1. Block Variables

    + +

    For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.ASHRAE62_1.AHU in Appendix A.

    9. Minimum outdoor airflow setpoint, when complying with Title 24 requirements

    This sequence outputs AHU level effective outdoor air absolute minimum and design minimum setpoints VEffAbsOutAir_flow, VEffDesOutAir_flow and @@ -570,7 +586,9 @@

    VEffDesOutAir_flow. -

    10. Control of relief fan when it is part of AHU

    +

    9.1. Block Variables

    + +

    For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Title24.AHU in Appendix A.

    10. Control of relief fan when it is part of AHU

    Sequence for controling relief fan that is part of AHU. It is developed based on Section 5.16.9 of ASHRAE Guideline 36, May 2020, with the modification to accommodate @@ -593,7 +611,7 @@

  • Fan speed shall be equal to the PID signal but no less than the minimum speed. -
      +
      1. When relief system is enabled, and the control loop output is above 5%, open the motorized dampers to the relief fans; @@ -610,20 +628,22 @@

      -

      10.1. Damper position limits for units with separated minimum outdoor air damper and airflow measurement

      +

      10.1. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReliefFan in Appendix A.

      10.2. Damper position limits for units with separated minimum outdoor air damper and airflow measurement

      Block that outputs the position limits of the return and outdoor air damper for units with a separated minimum outdoor air damper and airflow measurement. It is implemented according to Section 5.16.5 of the ASHRAE Guideline 36, May 2020.

      -

      10.1.1. Minimum outdoor air set point

      +

      10.2.1. Minimum outdoor air set point

      Calculate the outdoor air set point with Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.

      -

      10.1.2. Minimum outdoor air control loop

      +

      10.2.2. Minimum outdoor air control loop

      Minimum outdoor air control loop is enabled when the supply fan is proven ON @@ -636,7 +656,7 @@

      minOutDamPhy_min (0, adjustable)) to 100% (minOutDamPhy_max (1, adjustable)).

      -

      10.1.3. Return air damper

      +

      10.2.3. Return air damper

      • @@ -656,7 +676,9 @@

        10.2. Enable or disable economizer

        +

        10.2.4. Block Variables

        + +

        For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS in Appendix A.

        10.3. Enable or disable economizer

        This is a multi zone VAV AHU economizer enable/disable sequence based on the Section 5.16.7 of the ASHRAE Guideline 36, May 2020. Additional @@ -687,8 +709,8 @@

        The following state machine chart illustrates the transitions between enabling and disabling:

        -

        -Image of economizer enable-disable state machine chart +

        +\"Image

        After the disable signal is activated, the following procedure is applied, in order to @@ -706,7 +728,9 @@

        disDel (15 s, adjustable) time delay.

      -

      10.3. Modulate economizer dampers position for buildings with return fan controlling pressure

      +

      10.3.1. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Enable in Appendix A.

      10.4. Modulate economizer dampers position for buildings with return fan controlling pressure

      Block modulates the damper of economizers of buildings with pressure controlled by return fan and airflow tracking. It is implemented according to Section 5.16.2.3.d, @@ -718,7 +742,7 @@

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits. It also requires input uTSup from -Section 6 +Section 6 sequences.

      @@ -735,15 +759,17 @@

      -

      -Image of the damper modulation for economizer in buildings with pressure controller by return fan +

      +\"Image

      Note in the above chart, if the building has direct pressure control (have_dirCon), the profile for relief air damper control should be ignored.

      -

      10.4. Modulate economizer dampers position for buildings with relief damper or fan controlling pressure

      +

      10.4.1. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan in Appendix A.

      10.5. Modulate economizer dampers position for buildings with relief damper or fan controlling pressure

      This is a multi zone VAV AHU economizer modulation block. It calculates the outdoor and return air damper positions based on the supply air temperature @@ -761,27 +787,29 @@

      -

      -Image of the multi zone AHU modulation sequence control diagram +

      +\"Image

      Multi zone AHU economizer modulation control chart:

      -

      -Image of the multi zone AHU modulation sequence expected performance +

      +\"Image

      -

      10.5. High limits

      +

      10.5.1. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs in Appendix A.

      10.6. High limits

      This block outputs the air economizer high limits according to the energy standard, device type and climate zone. The implementation is according to the Section 5.1.17 of ASHRAE Guideline 36, May 2020.

      When ASHRAE 90.1-2016 is used.

      - +
      - + @@ -803,7 +831,7 @@

      Fixed dry bulb with differential dry bulb +

      @@ -813,10 +841,10 @@

      +

      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, 8Fixed dry bulb1b, 2b, 3b, 3c, 4b, 4c, 5b, 5c, 6b, 7, 8 outdoor air temperature is higher than 24 °C (TCut=24°C)
      Fixed dry bulb with differential dry bulb 1b, 2b, 3b, 3c, 4b, 4c, 5b, 5c, 6b, 7, 8 outdoor air temperature is higher than 24 °C or the return air temperature (TCut=min(24°C, TRet))
      - + @@ -828,7 +856,7 @@

      Differential dry bulb

      + @@ -844,7 +872,7 @@

      Fixed dry bulb with differential dry bulb

      + @@ -865,7 +893,9 @@

      10.6. Static pressure setpoint reset using trim and respond logic

      +

      10.6.1. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits in Appendix A.

      10.7. Static pressure setpoint reset using trim and respond logic

      This block implements the trim and respond logic according to Section 5.1.14.3 and 5.1.14.4 of ASHRAE Guideline 36, May 2020. @@ -875,7 +905,7 @@

      -

      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)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)1, 3, 5, 11 to 16outdoor air temperature is higher than the return air temperature (TCut=TRet)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)1, 3, 5, 11 to 16Fixed dry bulb with differential dry bulb1, 3, 5, 11 to 16 outdoor air temperature is higher than 24 °C or the return air temperature (TCut=24°C or TCut=TRet)
      +
      @@ -912,7 +942,7 @@

      but no more than maxRes (32, adjustable). -

      10.6.1. Hold and release loop output

      +

      10.7.1. Hold and release loop output

      Optionally, if the parameter have_hol is set to true, an additional @@ -939,29 +969,31 @@

      < 15 minutes have elapsed.
    1. 0:15 - T&R is released and continues resetting from 50 %.
    2. -

      10.6.2. Examples

      +

      10.7.2. Examples

      The figure below illustrates the trim and respond logic with a negative trim amount, comparing scenarios with and without holding the loop output.

      -Trend graph for trim and response +\"Trend

      The figure below illustrates the trim and respond logic with a positive trim amount.

      -Trend graph for trim and response +\"Trend

      The figure below illustrates the trim and respond logic with a negative trim amount, in a scenario where the equipment switches on and off.

      -Trend graph for trim and response +\"Trend

      -

      10.7. Maximum cooling supply temperature reset

      +

      10.7.3. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond in Appendix A.

      10.8. Maximum cooling supply temperature reset

      This block implements the trim and respond logic according to Section 5.1.14.3 and 5.1.14.4 of ASHRAE Guideline 36, May 2020. @@ -971,7 +1003,7 @@

      -

      Variable Value Definition
      DeviceAHU Supply Fan Associated device
      SP0iniSet (120, adjustable)Initial setpoint
      +
      @@ -1008,7 +1040,7 @@

      but no more than maxRes (-0.6, adjustable). -

      10.7.1. Hold and release loop output

      +

      10.8.1. Hold and release loop output

      Optionally, if the parameter have_hol is set to true, an additional @@ -1035,26 +1067,56 @@

      < 15 minutes have elapsed.
    3. 0:15 - T&R is released and continues resetting from 50 %.
    4. -

      10.7.2. Examples

      +

      10.8.2. Examples

      The figure below illustrates the trim and respond logic with a negative trim amount, comparing scenarios with and without holding the loop output.

      -Trend graph for trim and response +\"Trend

      The figure below illustrates the trim and respond logic with a positive trim amount.

      -Trend graph for trim and response +\"Trend

      The figure below illustrates the trim and respond logic with a negative trim amount, in a scenario where the equipment switches on and off.

      -Trend graph for trim and response +\"Trend

      - \ No newline at end of file +

      10.8.3. Block Variables

      + +

      For block parameters, input and output connectors see Section Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond in Appendix A.


      Appendix A. Block Variables

      +

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller

      +

      Parameters

      Variable Value Definition
      DeviceAHU Supply Fan Associated device
      SP0iniSet (291.15, adjustable)Initial setpoint
      TypeNameDescriptionUnit
      EnergyStandardeneStdEnergy standard, ASHRAE 90.1 or Title 24-
      VentilationStandardvenStdVentilation standard, ASHRAE 62.1 or Title 24-
      ASHRAEClimateZoneashCliZonASHRAE climate zone-
      Title24ClimateZonetit24CliZonCalifornia Title 24 climate zone-
      Booleanhave_freProTrue: enable freeze protection-
      FreezeStatfreStaType of freeze stat-
      OutdoorAirSectionminOADesType of outdoor air section-
      PressureControlbuiPreConType of building pressure control system-
      Booleanhave_ahuRelFanTrue: relief fan is part of AHU; False: the relief fans group that may associate multiple AHUs-
      ControlEconomizerecoHigLimConEconomizer high limit control device-
      CoolingCoilcooCoiCooling coil type-
      HeatingCoilheaCoiHeating coil type-
      Booleanhave_perZonRehBoxCheck if there is any VAV-reheat boxes on perimeter zones-
      RealVUncDesOutAir_flowUncorrected design outdoor airflow rate, including diversity where applicable. It can be determined using the 62MZCalc spreadsheet from ASHRAE 62.1 User's Manualm3/s
      RealVDesTotOutAir_flowDesign total outdoor airflow rate. It can be determined using the 62MZCalc spreadsheet from ASHRAE 62.1 User's Manualm3/s
      RealVAbsOutAir_flowDesign outdoor airflow rate when all zones with CO2 sensors or occupancy sensors are unpopulated. Needed when complying with Title 24 requirementsm3/s
      RealVDesOutAir_flowDesign minimum outdoor airflow rate with the areas served by the system are occupied at their design population, including diversity where applicable. Needed when complying with Title 24 requirementsm3/s
      RealpIniSetInitial pressure setpoint for fan speed controlPa
      RealpMinSetMinimum pressure setpoint for fan speed controlPa
      RealpMaxSetDuct design maximum static pressure. It is the Max_DSP shown in Section 3.2.1.1 of Guideline 36Pa
      RealpDelTimDelay time after which trim and respond is activateds
      RealpSamplePeriodSample periods
      IntegerpNumIgnReqNumber of ignored requests-
      RealpTriAmoTrim amountPa
      RealpResAmoRespond amount (must be opposite in to trim amount)Pa
      RealpMaxResMaximum response per time interval (same sign as respond amount)Pa
      SimpleControllerfanSpeConSupply fan speed PID controller-
      RealkFanSpeGain of supply fan speed PID controller-
      RealTiFanSpeTime constant of integrator block for supply fan speed PID controllers
      RealTdFanSpeTime constant of derivative block for supply fan speed PID controllers
      RealsupFanSpe_maxMaximum allowed supply fan speed-
      RealsupFanSpe_minLowest allowed supply fan speed if fan is on-
      RealiniFanSpeInitial speed when fan is enabled. It has to be greater than the lowest allowed speed-
      RealTSupCoo_minLowest cooling supply air temperature setpoint when the outdoor air temperature is at the higher value of the reset range and aboveK
      RealTSupCoo_maxHighest cooling supply air temperature setpoint. It is typically 18 degC (65 degF) + in mild and dry climates, 16 degC (60 degF) or lower in humid climatesK
      RealTOut_minLower value of the outdoor air temperature reset range. Typically value is 16 degC (60 degF)K
      RealTOut_maxHigher value of the outdoor air temperature reset range. Typically value is 21 degC (70 degF)K
      RealTSupWarUpSetBacSupply temperature in warm up and set back modeK
      RealdelTimSupTemDelay timers
      RealsamPerSupTemSample period of components
      IntegerignReqSupTemNumber of ignorable requests for TrimResponse logic-
      RealtriAmoSupTemTrim amountK
      RealresAmoSupTemResponse amountK
      RealmaxResSupTemMaximum response per time intervalK
      SimpleControllervalConType of controller for coil valves control-
      RealkValGain of controller for valve control-
      RealTiValTime constant of integrator block for valve controls
      RealTdValTime constant of derivative block for valve controls
      RealuHeaCoi_maxUpper limit of controller signal when heating coil is off. Require -1 < uHea_max < uCoo_min < 1.-
      RealuCooCoi_minLower limit of controller signal when cooling coil is off. Require -1 < uHea_max < uCoo_min < 1.-
      SimpleControllerminOAConTypType of minimum outdoor air controller-
      RealkMinOAGain of controller-
      RealTiMinOATime constant of integrator blocks
      RealTdMinOATime constant of derivative blocks
      Booleanhave_CO2SenTrue: some zones have CO2 sensor-
      RealdpAbsMinOutDamAbsolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflow-
      RealdpDesMinOutDamDesign minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflowPa
      SimpleControllerdpConTypType of differential pressure setpoint controller-
      RealkDpGain of controller-
      RealTiDpTime constant of integrator blocks
      RealTdDpTime constant of derivative blocks
      RealuRetDam_minLoop signal value to start decreasing the maximum return air damper position-
      RealdelTOutHisDelta between the temperature hysteresis high and low limitK
      RealdelEntHisDelta between the enthalpy hysteresis high and low limitsJ/kg
      RealretDamFulOpeTimTime period to keep return air damper fully open before releasing it for minimum outdoor airflow control + at disable to avoid pressure fluctuationss
      RealdisDelShort time delay before closing the outdoor air damper at disable to avoid pressure fluctuationss
      RealretDamPhy_maxPhysically fixed maximum position of the return air damper-
      RealretDamPhy_minPhysically fixed minimum position of the return air damper-
      RealoutDamPhy_maxPhysically fixed maximum position of the outdoor air damper-
      RealoutDamPhy_minPhysically fixed minimum position of the outdoor air damper-
      RealminOutDamPhy_maxPhysically fixed maximum position of the minimum outdoor air damper-
      RealminOutDamPhy_minPhysically fixed minimum position of the minimum outdoor air damper-
      RealuHeaMaxLower limit of controller input when outdoor damper opens (see diagram)-
      RealuCooMinUpper limit of controller input when return damper is closed (see diagram)-
      IntegerminHotWatReqMinimum heating hot-water plant request to active the heating plant-
      SimpleControllerfreProHeaCoiConFreeze protection heating coil controller-
      RealkFreProGain of coil controller-
      RealTiFreProTime constant of integrator blocks
      RealTdFreProTime constant of derivative blocks
      RealyMaxFreProUpper limit of output-
      RealyMinFreProLower limit of output-
      RealdpBuiSetBuilding static pressure difference relative to ambient (positive to pressurize the building)Pa
      RealkRelDamGain, applied to building pressure control error normalized with dpBuiSet-
      RealdifFloSetAirflow differential between supply air and return air fans required to maintain building pressure at desired pressurem3/s
      SimpleControllerretFanConType of controller for return fan-
      RealkRetFanGain, normalized using dpBuiSet-
      RealTiRetFanTime constant of integrator blocks
      RealTdRetFanTime constant of derivative blocks
      RealretFanSpe_maxMaximum return fan speed-
      RealretFanSpe_minMinimum return fan speed-
      Realp_rel_RetFan_minMinimum return fan discharge static pressure difference setpointPa
      Realp_rel_RetFan_maxMaximum return fan discharge static pressure difference setpointPa
      RealrelFanSpe_minRelief fan minimum speed-
      RealkRelFanGain of relief fan controller, normalized using dpBuiSet-
      RealThysHysteresis for checking temperature difference-
      RealposHysHysteresis for checking valve position difference-
      RealhysHysteresis for checking the relief fan controller output value-

      Inputs

      TypeNameDescriptionUnit
      IntegeruAhuOpeModOperation mode for AHU operation-
      IntegeruZonPreResReqZone static pressure reset requests-
      RealdpDucMeasured duct static pressurePa
      RealTOutOutdoor air temperatureK
      IntegeruZonTemResReqZone cooling supply air temperature reset request-
      Booleanu1SupFanSupply fan status-
      RealTAirSupMeasured supply air temperatureK
      RealVSumAdjPopBreZon_flowSum of the adjusted population component breathing zone flow ratem3/s
      RealVSumAdjAreBreZon_flowSum of the adjusted area component breathing zone flow ratem3/s
      RealVSumZonPri_flowSum of the zone primary airflow rates for all zones in all zone groups that are in occupied modem3/s
      RealuOutAirFra_maxMaximum zone outdoor air fraction, equals to the maximum of primary outdoor air fraction of all zones-
      RealVSumZonAbsMin_flowSum of the zone absolute minimum outdoor airflow setpointm3/s
      RealVSumZonDesMin_flowSum of the zone design minimum outdoor airflow setpointm3/s
      RealVAirOut_flowMeasured outdoor air volumetric flow ratem3/s
      RealuCO2Loo_maxMaximum zone CO2 control loop output-
      RealdpMinOutDamMeasured pressure difference across the minimum outdoor air damperPa
      RealTAirRetUsed only for fixed plus differential dry bulb temperature high limit cutoffK
      RealhAirOutOutdoor air enthalpyJ/kg
      RealhAirRetOA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurementJ/kg
      Booleanu1FreStaFreeze protection stat signal. The stat is normally close (the input is normally true), when enabling freeze protection, the input becomes false-
      Booleanu1SofSwiResFreeze protection reset signal from software switch-
      Booleanu1RelFanRelief fan status-
      RealTAirMixMeasured mixed air temperatureK
      RealdpBuiMeasured building static pressure difference, relative to ambient (positive if pressurized)Pa
      RealVAirSup_flowMeasured AHU supply airflow ratem3/s
      RealVAirRet_flowMeasured AHU return airflow ratem3/s

      Outputs

      TypeNameDescriptionUnit
      RealTAirSupSetAHU supply air temperature setpointK
      RealVEffAirOut_flow_minEffective minimum outdoor airflow setpointm3/s
      RealyMinOutDamMinimum outdoor air damper commanded position-
      Booleany1MinOutDamMinimum outdoor air damper command on-
      RealyRetDamReturn air damper commanded position-
      RealyRelDamRelief air damper commanded position-
      RealyOutDamEconomizer outdoor air damper commanded position-
      Booleany1EneCHWPumCommanded on to energize chilled water pump-
      Booleany1SupFanSupply fan command on-
      RealySupFanAir handler supply fan commanded speed-
      Booleany1RetFanReturn fan commanded on-
      RealyRetFanReturn fan commanded speed-
      Booleany1RelFanRelief fan commanded on-
      RealyRelFanRelief fan commanded speed-
      Booleany1RelDamTrue: 2-position relief damper is commanded open-
      RealyCooCoiCooling coil valve commanded position-
      RealyHeaCoiHeating coil valve commanded position-
      IntegeryAlaAlarm level-
      RealyDpBuiBuilding static pressure difference, relative to ambient (positive if pressurized)Pa
      RealdpDisSetReturn fan discharge static pressure setpointPa
      IntegeryChiWatResReqChilled water reset request-
      IntegeryChiPlaReqChiller plant request-
      IntegeryHotWatResReqHot water reset request-
      IntegeryHotWatPlaReqHot water plant request-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller

      +

      Parameters

      TypeNameDescriptionUnit
      OutdoorAirSectionminOADesDesign of minimum outdoor air and economizer function-
      PressureControlbuiPreConType of building pressure control system-
      EnergyStandardeneStdEnergy standard, ASHRAE 90.1 or Title 24-
      ControlEconomizerecoHigLimConEconomizer high limit control device-
      ASHRAEClimateZoneashCliZonASHRAE climate zone-
      Title24ClimateZonetit24CliZonCalifornia Title 24 climate zone-
      RealminSpeMinimum supply fan speed-
      SimpleControllerminOAConTypType of minimum outdoor air controller-
      RealkMinOAGain of controller-
      RealTiMinOATime constant of integrator blocks
      RealTdMinOATime constant of derivative blocks
      VentilationStandardvenStdVentilation standard, ASHRAE 62.1 or Title 24-
      Booleanhave_CO2SenTrue: some zones have CO2 sensor-
      RealdpAbsMinOutDamAbsolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflow-
      RealdpDesMinOutDamDesign minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflowPa
      SimpleControllerdpConTypType of differential pressure setpoint controller-
      RealkDpGain of controller-
      RealTiDpTime constant of integrator blocks
      RealTdDpTime constant of derivative blocks
      RealuRetDam_minLoop signal value to start decreasing the maximum return air damper position-
      RealdelTOutHisDelta between the temperature hysteresis high and low limitK
      RealdelEntHisDelta between the enthalpy hysteresis high and low limitsJ/kg
      RealretDamFulOpeTimTime period to keep RA damper fully open before releasing it for minimum outdoor airflow control at disable to avoid pressure fluctuationss
      RealdisDelShort time delay before closing the OA damper at disable to avoid pressure fluctuationss
      RealretDamPhy_maxPhysically fixed maximum position of the return air damper-
      RealretDamPhy_minPhysically fixed minimum position of the return air damper-
      RealoutDamPhy_maxPhysically fixed maximum position of the outdoor air damper-
      RealoutDamPhy_minPhysically fixed minimum position of the outdoor air damper-
      RealminOutDamPhy_maxPhysically fixed maximum position of the minimum outdoor air damper-
      RealminOutDamPhy_minPhysically fixed minimum position of the minimum outdoor air damper-
      RealuHeaMaxLower limit of controller input when outdoor damper opens (see diagram)-
      RealuCooMinUpper limit of controller input when return damper is closed (see diagram)-
      RealuOutDamMaxMaximum loop signal for the OA damper to be fully open-
      RealuRetDamMinMinimum loop signal for the RA damper to be fully open-

      Inputs

      TypeNameDescriptionUnit
      RealVOutMinSet_flow_normalizedEffective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate-
      RealVOut_flow_normalizedMeasured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate-
      RealuSupFanCommanded supply fan speed-
      RealeffAbsOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate -
      RealuCO2Loo_maxMaximum Zone CO2 control loop-
      RealeffDesOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate -
      RealdpMinOutDamMeasured pressure difference across the minimum outdoor air damperPa
      RealuTSupSignal for supply air temperature control (T Sup Control Loop Signal in diagram)-
      RealTOutOutdoor air (OA) temperatureK
      RealTAirRetUsed only for fixed plus differential dry bulb temperature high limit cutoffK
      RealhAirOutOutdoor air enthalpyJ/kg
      RealhAirRetReturn air enthalpyJ/kg
      Booleanu1SupFanSupply fan status-
      IntegeruOpeModAHU operation mode status signal-
      IntegeruFreProStaFreeze protection status-

      Outputs

      TypeNameDescriptionUnit
      RealyOutDam_minMinimum outdoor air damper position limit-
      BooleanyEnaMinOutTrue: enable minimum outdoor air control loop-
      RealyMinOutDamMinimum outdoor air flow damper commanded position-
      Booleany1MinOutDamMinimum outdoor air damper command on position-
      RealyRetDamReturn air damper commanded position-
      RealyRelDamRelief air damper commanded position-
      RealyOutDamOutdoor air damper commanded position-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Enable

      +

      Parameters

      TypeNameDescriptionUnit
      Booleanuse_enthalpySet to true to evaluate outdoor air (OA) enthalpy in addition to temperature-
      RealdelTOutHisDelta between the temperature hysteresis high and low limitK
      RealdelEntHisDelta between the enthalpy hysteresis high and low limitsJ/kg
      RealretDamFulOpeTimTime period to keep RA damper fully open before releasing it for minimum outdoor airflow control + at disable to avoid pressure fluctuationss
      RealdisDelShort time delay before closing the OA damper at disable to avoid pressure fluctuationss
      RealTOutHigLimCutHigHysteresis high limit cutoffK
      RealTOutHigLimCutLowHysteresis low limit cutoff-
      RealhOutHigLimCutHigHysteresis block high limit cutoffJ/kg
      RealhOutHigLimCutLowHysteresis block low limit cutoff-

      Inputs

      TypeNameDescriptionUnit
      RealTOutOutdoor air temperatureK
      RealhOutOutdoor air enthalpyJ/kg
      RealTOutCutOA temperature high limit cutoff. For differential dry bulb temperature condition use return air temperature measurementK
      RealhOutCutOA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurementJ/kg
      RealuOutDam_minMinimum outdoor air damper position, output from damper position limits sequence-
      RealuOutDam_maxMaximum outdoor air damper position, output from damper position limits sequence-
      RealuRetDam_maxMaximum return air damper position, output from damper position limits sequence-
      RealuRetDam_minMinimum return air damper position, output from damper position limits sequence-
      RealuRetDamPhy_maxPhysical maximum return air damper position, output from damper position limits sequence-
      Booleanu1SupFanSupply fan proven on-
      IntegeruFreProStaFreeze protection stage status signal-

      Outputs

      TypeNameDescriptionUnit
      RealyOutDam_maxMaximum outdoor air damper position-
      RealyRetDam_minMinimum return air damper position-
      RealyRetDam_maxMaximum return air damper position-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common

      +

      Parameters

      TypeNameDescriptionUnit
      SimpleControllercontrollerTypeType of controller-
      RealkGain of damper limit controller-
      RealTiTime constant of damper limit controller integrator blocks
      RealTdTime constant of damper limit controller derivative blocks
      RealuRetDam_minLoop signal value to start decreasing the maximum return air damper position-
      RealretDamPhy_maxPhysically fixed maximum position of the return air damper-
      RealretDamPhy_minPhysically fixed minimum position of the return air damper-
      RealoutDamPhy_maxPhysically fixed maximum position of the outdoor air damper-
      RealoutDamPhy_minPhysically fixed minimum position of the outdoor air damper-
      RealyMinLower limit of control loop signal-
      RealyMaxUpper limit of control loop signal-

      Inputs

      TypeNameDescriptionUnit
      RealVOut_flow_normalizedMeasured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate-
      RealVOutMinSet_flow_normalizedEffective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate-
      IntegeruOpeModAHU operation mode status signal-
      Booleanu1SupFanSupply fan proven on-

      Outputs

      TypeNameDescriptionUnit
      RealyOutDam_minMinimum outdoor air damper position limit-
      RealyOutDam_maxMaximum outdoor air damper position limit-
      RealyRetDam_minMinimum return air damper position limit-
      RealyRetDam_maxMaximum return air damper position limit-
      RealyRetDamPhy_maxPhysical maximum return air damper position limit. Required as an input for the economizer enable disable sequence-
      BooleanyEnaMinOutTrue: enable minimum outdoor air control loop-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS

      +

      Parameters

      TypeNameDescriptionUnit
      RealminSpeMinimum supply fan speed-
      SimpleControllerminOAConTypType of minimum outdoor air controller-
      RealkMinOAGain of controller-
      RealTiMinOATime constant of integrator blocks
      RealTdMinOATime constant of derivative blocks
      RealretDamPhy_maxPhysically fixed maximum position of the return air damper-
      RealretDamPhy_minPhysically fixed minimum position of the return air damper-
      RealoutDamPhy_maxPhysically fixed maximum position of the outdoor air damper-
      RealoutDamPhy_minPhysically fixed minimum position of the outdoor air damper-
      RealminOutDamPhy_maxPhysically fixed maximum position of the minimum outdoor air damper-
      RealminOutDamPhy_minPhysically fixed minimum position of the minimum outdoor air damper-

      Inputs

      TypeNameDescriptionUnit
      RealVOutMinSet_flow_normalizedEffective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate-
      RealVOut_flow_normalizedMeasured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate-
      Booleanu1SupFanSupply fan proven on-
      IntegeruOpeModAHU operation mode status signal-
      RealuOutDamEconomizer outdoor air damper commanded position-
      RealuSupFanCommanded supply fan speed-

      Outputs

      TypeNameDescriptionUnit
      RealyMinOutDamMinimum outdoor air damper commanded position-
      BooleanyEnaMinOutTrue: enable minimum outdoor air control loop-
      RealyOutDam_minPhysically minimum outdoor air damper position limit-
      RealyOutDam_maxPhysically maximum outdoor air damper position limit-
      RealyRetDam_minMinimum return air damper position limit-
      RealyRetDam_maxMaximum return air damper position limit-
      RealyRetDamPhy_maxPhysical maximum return air damper position limit. Required as an input for the economizer enable disable sequence-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP

      +

      Parameters

      TypeNameDescriptionUnit
      VentilationStandardvenStdVentilation standard, ASHRAE 62.1 or Title 24-
      Booleanhave_CO2SenTrue: some zones have CO2 sensor-
      RealdpAbsMinOutDamAbsolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflowPa
      RealdpDesMinOutDamDesign minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflowPa
      RealminSpeMinimum supply fan speed-
      SimpleControllerdpConType of differential pressure setpoint controller-
      RealkDpGain of controller-
      RealTiDpTime constant of integrator blocks
      RealTdDpTime constant of derivative blocks
      RealretDamPhy_maxPhysically fixed maximum position of the return air damper-
      RealretDamPhy_minPhysically fixed minimum position of the return air damper-
      RealoutDamPhy_maxPhysically fixed maximum position of the outdoor air damper-
      RealoutDamPhy_minPhysically fixed minimum position of the outdoor air damper-

      Inputs

      TypeNameDescriptionUnit
      RealeffAbsOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate -
      RealuCO2Loo_maxMaximum zone CO2 control loop-
      RealeffDesOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate -
      RealdpMinOutDamMeasured pressure difference across the minimum outdoor air damperPa
      RealVOutMinSet_flow_normalizedEffective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate-
      Booleanu1SupFanSupply fan proven on-
      IntegeruOpeModAHU operation mode status signal-
      RealuOutDamEconomizer outdoor air damper commanded position-
      RealuSupFanCommanded supply fan speed-

      Outputs

      TypeNameDescriptionUnit
      Booleany1MinOutDamStatus of minimum outdoor air damper position, true means it's open-
      RealyOutDam_minPhysically minimum outdoor air damper position limit-
      RealyOutDam_maxPhysically maximum outdoor air damper position limit-
      RealyRetDam_minMinimum return air damper position limit-
      RealyRetDam_maxMaximum return air damper position limit-
      RealyRetDamPhy_maxPhysical maximum return air damper position limit. Required as an input for the economizer enable disable sequence-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs

      +

      Parameters

      TypeNameDescriptionUnit
      RealuMinLower limit of controller input when outdoor damper opens (see diagram)-
      RealuMaxUpper limit of controller input when return damper is closed (see diagram)-
      RealuOutDamMaxMaximum loop signal for the OA damper to be fully open-
      RealuRetDamMinMinimum loop signal for the RA damper to be fully open-

      Inputs

      TypeNameDescriptionUnit
      RealuTSupSignal for supply air temperature control (T Sup Control Loop Signal in diagram)-
      RealuOutDam_minMinimum economizer damper position limit as returned by the damper position limits sequence-
      RealuOutDam_maxMaximum economizer damper position limit as returned by the economizer enable-disable sequence. + If the economizer is disabled, this value equals uOutDam_min-
      RealuRetDam_minMinimum return air damper position limit as returned by the economizer enable-disable sequence-
      RealuRetDam_maxMaximum return air damper position limit as returned by the economizer enable-disable sequence-

      Outputs

      TypeNameDescriptionUnit
      RealyOutDamEconomizer damper commanded position-
      RealyRetDamReturn air damper commanded position-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan

      +

      Parameters

      TypeNameDescriptionUnit
      Booleanhave_dirConTrue: the building have direct pressure control-
      RealuMinLower limit of controller input when outdoor damper opens (see diagram)-
      RealuMaxUpper limit of controller input when return damper is closed (see diagram)-

      Inputs

      TypeNameDescriptionUnit
      RealuTSupSupply air temperature control loop signal-
      RealuRetDam_maxMaximum return air damper position limit as returned by the economizer enable-disable sequence-
      RealuRetDam_minMinimum return air damper position limit as returned by the economizer enable-disable sequence-

      Outputs

      TypeNameDescriptionUnit
      RealyRetDamReturn air damper position-
      RealyRelDamRelief air damper position-
      RealyOutDamOutdoor air damper position-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.FreezeProtection

      +

      Parameters

      TypeNameDescriptionUnit
      Booleanhave_freProTrue: enable freeze protection-
      PressureControlbuiPreConType of building pressure control system-
      OutdoorAirSectionminOADesDesign of minimum outdoor air and economizer function-
      FreezeStatfreStaType of freeze stat-
      HeatingCoilheaCoiHeating coil type-
      CoolingCoilcooCoiCooling coil type-
      IntegerminHotWatReqMinimum heating hot-water plant request to active the heating plant-
      SimpleControllerheaCoiConHeating coil controller-
      RealkGain of coil controller-
      RealTiTime constant of integrator blocks
      RealTdTime constant of derivative blocks
      RealyMaxUpper limit of output-
      RealyMinLower limit of output-
      RealThysHysteresis for checking temperature differenceK

      Inputs

      TypeNameDescriptionUnit
      RealuOutDamPosMinMinimum economizer damper position limit as returned by the damper position limits sequence-
      RealuOutDamEconomizer outdoor air damper commanded position-
      RealuHeaCoiHeating coil commanded position-
      RealuMinOutDamMinimum outdoor air damper commanded position-
      Booleanu1MinOutDamMinimum outdoor air damper command on position-
      RealuRetDamEconomizer return air damper commanded position-
      RealTAirSupMeasured supply air temperatureK
      Booleanu1FreStaFreeze protection stat signal. The stat is normally close (the input is normally true), when enabling freeze protection, the input becomes false-
      Booleanu1SofSwiResFreeze protection reset signal from software switch-
      Booleanu1SupFanSupply fan commanded on-
      RealuSupFanSupply fan commanded speed-
      Booleanu1RetFanReturn fan commanded on-
      RealuRetFanReturn fan commanded speed-
      Booleanu1RelFanRelief fan commanded on-
      RealuRelFanRelief fan commanded speed-
      RealuCooCoiCooling coil commanded position-
      RealTAirMixMeasured mixed air temperatureK

      Outputs

      TypeNameDescriptionUnit
      IntegeryFreProStaFreeze protection stage index-
      Booleany1EneCHWPumCommanded on to energize chilled water pump-
      RealyRetDamReturn air damper commanded position-
      RealyOutDamOutdoor air damper commanded position-
      RealyMinOutDamMinimum outdoor air damper commanded position-
      Booleany1MinOutDamMinimum outdoor air damper command on position-
      Booleany1SupFanSupply fan commanded on-
      RealySupFanSupply fan commanded speed-
      Booleany1RetFanReturn fan commanded on-
      RealyRetFanReturn fan commanded speed-
      Booleany1RelFanRelief fan commanded on-
      Booleany1RelDamTrue: 2-position relief damper is commanded open-
      RealyRelFanRelief fan commanded speed-
      RealyCooCoiCooling coil commanded position-
      RealyHeaCoiHeating coil commanded position-
      IntegeryHotWatPlaReqRequest to heating hot-water plant-
      IntegeryAlaAlarm level-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.ASHRAE62_1.AHU

      +

      Parameters

      TypeNameDescriptionUnit
      OutdoorAirSectionminOADesType of outdoor air section-
      RealVUncDesOutAir_flowUncorrected design outdoor airflow rate, including diversity where applicable. It can be determined using the 62MZCalc spreadsheet from ASHRAE 62.1 User's Manualm3/s
      RealVDesTotOutAir_flowDesign total outdoor airflow rate. It can be determined using the 62MZCalc spreadsheet from ASHRAE 62.1 User's Manualm3/s

      Inputs

      TypeNameDescriptionUnit
      RealVSumAdjPopBreZon_flowSum of the adjusted population component breathing zone flow ratem3/s
      RealVSumAdjAreBreZon_flowSum of the adjusted area component breathing zone flow ratem3/s
      RealVSumZonPri_flowSum of the zone primary airflow rates for all zones in all zone groups that are in occupied modem3/s
      RealuOutAirFra_maxMaximum zone outdoor air fraction-
      RealVAirOut_flowMeasured outdoor air volumetric flow ratem3/s

      Outputs

      TypeNameDescriptionUnit
      RealVUncOutAir_flowUncorrected minimum outdoor airflow ratem3/s
      RealVEffAirOut_flow_minEffective minimum outdoor airflow setpointm3/s
      RealeffOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the design total outdoor airflow rate -
      RealoutAir_normalizedNormalized outdoor airflow rate-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Title24.AHU

      +

      Parameters

      TypeNameDescriptionUnit
      OutdoorAirSectionminOADesType of outdoor air section-
      Booleanhave_CO2SenTrue: there are zones have CO2 sensor-
      RealVAbsOutAir_flowDesign outdoor airflow rate when all zones with CO2 sensors or occupancy sensors are unpopulatedm3/s
      RealVDesOutAir_flowDesign minimum outdoor airflow rate with the areas served by the system are occupied at their design population, including diversity where applicablem3/s

      Inputs

      TypeNameDescriptionUnit
      RealVSumZonAbsMin_flowSum of the zone absolute minimum outdoor airflow setpointm3/s
      RealVSumZonDesMin_flowSum of the zone design minimum outdoor airflow setpointm3/s
      RealuCO2Loo_maxMaximum Zone CO2 control loop-
      RealVAirOut_flowMeasured outdoor air volumetric flow ratem3/s

      Outputs

      TypeNameDescriptionUnit
      RealVEffAbsOutAir_flowEffective outdoor air absolute minimum setpointm3/s
      RealeffAbsOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate -
      RealVEffDesOutAir_flowEffective outdoor air design minimum setpointm3/s
      RealeffDesOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate -
      RealeffOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the design total outdoor airflow rate -
      RealoutAir_normalizedNormalized outdoor airflow rate-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.PlantRequests

      +

      Parameters

      TypeNameDescriptionUnit
      HeatingCoilheaCoiHeating coil type-
      CoolingCoilcooCoiCooling coil type-
      RealThysHysteresis for checking temperature difference-
      RealposHysHysteresis for checking valve position difference-

      Inputs

      TypeNameDescriptionUnit
      RealTAirSupMeasured supply air temperatureK
      RealTAirSupSetSetpoint for supply air temperatureK
      RealuCooCoiSetCommanded ooling coil valve position-
      RealuHeaCoiSetCommanded heating coil valve position-

      Outputs

      TypeNameDescriptionUnit
      IntegeryChiWatResReqChilled water reset request-
      IntegeryChiPlaReqChiller plant request-
      IntegeryHotWatResReqHot water reset request-
      IntegeryHotWatPlaReqHot water plant request-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReliefDamper

      +

      Parameters

      TypeNameDescriptionUnit
      RealdpBuiSetBuilding static pressure difference relative to ambient (positive to pressurize the building)Pa
      RealkGain, applied to building pressure control error normalized with dpBuiSet-

      Inputs

      TypeNameDescriptionUnit
      RealdpBuiBuilding static pressure difference, relative to ambient (positive if pressurized)Pa
      Booleanu1SupFanSupply fan status-

      Outputs

      TypeNameDescriptionUnit
      RealyRelDamRelief damper commanded position-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReliefFan

      +

      Parameters

      TypeNameDescriptionUnit
      RealrelFanSpe_minRelief fan minimum speed-
      RealdpBuiSetBuilding static pressure difference relative to ambient (positive to pressurize the building)Pa
      RealkGain, normalized using dpBuiSet-
      RealhysHysteresis for checking the controller output value-

      Inputs

      TypeNameDescriptionUnit
      RealdpBuiBuilding static pressure difference, relative to ambient (positive if pressurized)Pa
      Booleanu1SupFanAHU supply fan proven on status-

      Outputs

      TypeNameDescriptionUnit
      RealyDpBuiBuilding static pressure difference, relative to ambient (positive if pressurized)Pa
      Booleany1RelDamTrue: 2-position relief damper commanded open-
      RealyRelFanRelief fan commanded speed-
      Booleany1RelFanRelief fan commanded on-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReturnFanAirflowTracking

      +

      Parameters

      TypeNameDescriptionUnit
      RealdifFloSetAirflow differential between supply air and return air fans required to maintain building pressure at desired pressurem3/s
      SimpleControllerconTypType of controller-
      RealkGain, normalized using dpBuiSet-
      RealTiTime constant of integrator blocks
      RealTdTime constant of derivative blocks
      RealmaxSpeUpper limit of output-
      RealminSpeLower limit of output-

      Inputs

      TypeNameDescriptionUnit
      RealVAirSup_flowMeasured AHU supply airflow ratem3/s
      RealVAirRet_flowMeasured AHU return airflow ratem3/s
      Booleanu1SupFanSupply fan status-

      Outputs

      TypeNameDescriptionUnit
      RealyRetFanReturn fan commanded speed-
      Booleany1RetFanReturn fan commanded on-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReturnFanDirectPressure

      +

      Parameters

      TypeNameDescriptionUnit
      RealdpBuiSetBuilding static pressure difference relative to ambient (positive to pressurize the building)Pa
      Realp_rel_RetFan_minReturn fan discharge static pressure difference minimum setpoint,no less than 2.4 PaPa
      Realp_rel_RetFan_maxReturn fan discharge static pressure maximum setpointPa
      RealdisSpe_minReturn fan speed when providing the minimum return fan discharge static pressure difference-
      RealdisSpe_maxReturn fan speed when providing the maximum return fan discharge static pressure difference-
      SimpleControllerconTypType of controller-
      RealkGain, normalized using dpBuiSet-
      RealTiTime constant of integrator blocks
      RealTdTime constant of derivative blocks

      Inputs

      TypeNameDescriptionUnit
      RealdpBuiBuilding static pressure difference, relative to ambient (positive if pressurized)Pa
      Booleanu1MinOutAirDamMinimum outdoor air damper status, true when it is open-
      Booleanu1SupFanSupply fan status-

      Outputs

      TypeNameDescriptionUnit
      RealyDpBuiAveraged building static pressurePa
      RealyRelDamRelief damper commanded position-
      RealdpDisSetReturn fan discharge static pressure setpointPa
      RealyRetFanReturn fan commanded speed-
      Booleany1RetFanReturn fan commanded on-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyFan

      +

      Parameters

      TypeNameDescriptionUnit
      Booleanhave_perZonRehBoxCheck if there is any VAV-reheat boxes on perimeter zones-
      RealiniSetInitial setpointPa
      RealminSetMinimum setpointPa
      RealmaxSetDuct design maximum static pressure. It is the Max_DSP shown in Section 3.2.1.1 of Guideline 36Pa
      RealdelTimDelay time after which trim and respond is activateds
      RealsamplePeriodSample periods
      IntegernumIgnReqNumber of ignored requests-
      RealtriAmoTrim amountPa
      RealresAmoRespond amount (must be opposite in to triAmo)Pa
      RealmaxResMaximum response per time interval (same sign as resAmo)Pa
      SimpleControllercontrollerTypeType of controller-
      RealkGain of controller, normalized using maxSet-
      RealTiTime constant of integrator blocks
      RealTdTime constant of derivative blocks
      RealmaxSpeMaximum allowed fan speed-
      RealminSpeLowest allowed fan speed if fan is on-
      RealiniSpeInitial speed when fan is enabled. It has to be greater than the lowest allowed speed-

      Inputs

      TypeNameDescriptionUnit
      IntegeruOpeModSystem operation mode-
      RealdpDucMeasured duct static pressurePa
      IntegeruZonPreResReqZone static pressure reset requests-

      Outputs

      TypeNameDescriptionUnit
      Booleany1SupFanSupply fan command on-
      RealySupFanSupply fan commanded speed-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplySignals

      +

      Parameters

      TypeNameDescriptionUnit
      Booleanhave_heaCoiTrue: the AHU has heating coil. It could be the hot water coil, or the electric heating coil-
      Booleanhave_cooCoiTrue: the AHU has cooling coil. It could be the chilled water coil, or the direct expansion coil-
      SimpleControllercontrollerTypeType of controller for supply air temperature signal-
      RealkTSupGain of controller for supply air temperature signal-/K
      RealTiTSupTime constant of integrator block for supply temperature control signals
      RealTdTSupTime constant of derivative block for supply temperature control signals
      RealuHea_maxUpper limit of controller signal when heating coil is off. Require -1 < uHea_max < uCoo_min < 1.-
      RealuCoo_minLower limit of controller signal when cooling coil is off. Require -1 < uHea_max < uCoo_min < 1.-

      Inputs

      TypeNameDescriptionUnit
      RealTAirSupMeasured supply air temperatureK
      RealTAirSupSetSupply air temperature setpointK
      Booleanu1SupFanSupply fan status-

      Outputs

      TypeNameDescriptionUnit
      RealyHeaCoiHeating coil commanded position-
      RealyCooCoiCooling coil commanded position-
      RealuTSupSupply temperature control signal-

      Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyTemperature

      +

      Parameters

      TypeNameDescriptionUnit
      RealTSupCoo_minLowest cooling supply air temperature setpoint when the outdoor air temperature is at the + higher value of the reset range and aboveK
      RealTSupCoo_maxHighest cooling supply air temperature setpoint. It is typically 18 degC (65 degF) + in mild and dry climates, 16 degC (60 degF) or lower in humid climatesK
      RealTOut_minLower value of the outdoor air temperature reset range. Typically value is 16 degC (60 degF)K
      RealTOut_maxHigher value of the outdoor air temperature reset range. Typically value is 21 degC (70 degF)K
      RealTSupWarUpSetBacSupply temperature in warm up and set back modeK
      RealdelTimDelay timers
      RealsamplePeriodSample period of components
      IntegernumIgnReqNumber of ignorable requests for TrimResponse logic-
      RealtriAmoTrim amountK
      RealresAmoResponse amountK
      RealmaxResMaximum response per time intervalK
      RealTDeaBanDefault supply temperature setpoint when the AHU is disabledK
      RealiniSetInitial setpointK
      RealmaxSetMaximum setpointK
      RealminSetMinimum setpointK

      Inputs

      TypeNameDescriptionUnit
      RealTOutOutdoor air temperatureK
      Booleanu1SupFanSupply fan status-
      IntegeruOpeModSystem operation mode-
      IntegeruZonTemResReqZone cooling supply air temperature reset request-

      Outputs

      TypeNameDescriptionUnit
      RealTAirSupSetSupply air temperature setpointK

      Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits

      +

      Parameters

      TypeNameDescriptionUnit
      EnergyStandardeneStdEnergy standard, ASHRAE 90.1 or Title 24-
      ControlEconomizerecoHigLimConEconomizer high limit control device-
      ASHRAEClimateZoneashCliZonASHRAE climate zone-
      Title24ClimateZonetit24CliZonCalifornia Title 24 climate zone-

      Inputs

      TypeNameDescriptionUnit
      RealTRetReturn air temperatureK
      RealhRetReturn air enthalpy. For differential enthalpy use return air enthalpy measurementJ/kg

      Outputs

      TypeNameDescriptionUnit
      RealTCutOutdoor air temperature high limit cutoffK
      RealhCutOutdoor air enthalpy high limit cutoffJ/kg

      Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond

      +

      Parameters

      TypeNameDescriptionUnit
      Booleanhave_holSet to true to allow holding the reset, false to continuously reset when enabled-
      RealiniSetInitial setpoint-
      RealminSetMinimum setpoint-
      RealmaxSetMaximum setpoint-
      RealdelTimDelay times
      RealsamplePeriodSample period of components
      IntegernumIgnReqNumber of ignored requests-
      RealtriAmoTrim amount-
      RealresAmoRespond amount (must have opposite sign of triAmo)-
      RealmaxResMaximum response per time interval (must have same sign as resAmo)-
      RealdtHolMinimum hold times

      Inputs

      TypeNameDescriptionUnit
      IntegernumOfReqNumber of requests from zones/systems-
      BooleanuDevStaOn/Off status of the associated device-
      BooleanuHolHold signal-

      Outputs

      TypeNameDescriptionUnit
      RealySetpoint that have been reset-
      \ No newline at end of file diff --git a/test/cdlDoc/MultiZoneVavParamAndDoc.json b/test/cdlDoc/MultiZoneVavParamAndDoc.json index 69b020bb..f1622796 100644 --- a/test/cdlDoc/MultiZoneVavParamAndDoc.json +++ b/test/cdlDoc/MultiZoneVavParamAndDoc.json @@ -1 +1,11821 @@ -{"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":[{"descriptionString":"Multizone VAV air handling unit controller","cdlAnnotation":null,"documentationInfo":"\"\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"},{"instance":{"name":"frePro","protected":false,"condition":null,"cdlAnnotation":null,"descriptionString":"Freeze protection"},"descriptionString":"Freeze protection sequence for multizone air handling unit","cdlAnnotation":null,"documentationInfo":"\"\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":"Plant requests"},"descriptionString":"Output plant requests for multizone air handling unit","cdlAnnotation":null,"documentationInfo":"\"\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","protected":false,"condition":null,"cdlAnnotation":null,"descriptionString":"Economizer controller"},"descriptionString":"Multi zone VAV AHU economizer control sequence","cdlAnnotation":null,"documentationInfo":"\"\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":"ecoCon.sepAFMS","protected":false,"condition":"minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow","cdlAnnotation":null,"descriptionString":"Damper position limits for units with separated minimum outdoor air damper and airflow measurement"},"descriptionString":"Outdoor air and return air damper position limits for units with separated minimum outdoor air damper and airflow measurement","cdlAnnotation":null,"documentationInfo":"\"\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":"minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure","cdlAnnotation":null,"descriptionString":"Damper position limits for units with separated minimum outdoor air damper and differential pressure measurement"},"descriptionString":"Outdoor air and return air damper position limits for units with separated minimum outdoor air damper and differential pressure control","cdlAnnotation":null,"documentationInfo":"\"\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":"minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.SingleDamper","cdlAnnotation":null,"descriptionString":"Damper position limits for units with common damper"},"descriptionString":"Outdoor air and return air damper position limits for units with common damper","cdlAnnotation":null,"documentationInfo":"\"\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":"Enable or disable economizer"},"descriptionString":"Multi zone VAV AHU economizer enable/disable switch","cdlAnnotation":null,"documentationInfo":"\"\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":"([object Object])","cdlAnnotation":null,"descriptionString":"Modulate economizer dampers position for buildings with return fan controlling pressure"},"descriptionString":"Modulates dampers of economizer in buildings using return fan to control the pressure","cdlAnnotation":null,"documentationInfo":"\"\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":"([object Object])","cdlAnnotation":null,"descriptionString":"Modulate economizer dampers position for buildings with relief damper or fan controlling pressure"},"descriptionString":"Modulates dampers of economizer in buildings using relief damper or fan to control the pressure","cdlAnnotation":null,"documentationInfo":"\"\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":"High limits"},"descriptionString":"Specify the economizer high liimits","cdlAnnotation":null,"documentationInfo":"\"\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":"conSupFan","protected":false,"condition":null,"cdlAnnotation":null,"descriptionString":"Supply fan speed setpoint"},"descriptionString":"Block to control multi zone VAV AHU supply fan","cdlAnnotation":null,"documentationInfo":"\"\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":"conSupFan.staPreSetRes","protected":false,"condition":null,"cdlAnnotation":null,"descriptionString":"Static pressure setpoint reset using trim and respond logic"},"descriptionString":"Block to inplement trim and respond logic","cdlAnnotation":null,"documentationInfo":"\"\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":"supSig","protected":false,"condition":null,"cdlAnnotation":null,"descriptionString":"Heating and cooling valve position"},"descriptionString":"Multizone VAV AHU supply air temperature control loop and coil valves position","cdlAnnotation":null,"documentationInfo":"\"\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","protected":false,"condition":null,"cdlAnnotation":null,"descriptionString":"Supply temperature setpoint"},"descriptionString":"Supply air temperature setpoint for multi zone system","cdlAnnotation":null,"documentationInfo":"\"\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":"conTSupSet.maxSupTemRes","protected":false,"condition":null,"cdlAnnotation":null,"descriptionString":"Maximum cooling supply temperature reset"},"descriptionString":"Block to inplement trim and respond logic","cdlAnnotation":null,"documentationInfo":"\"\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":"ashOutAirSet","protected":false,"condition":"venStd == Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1","cdlAnnotation":null,"descriptionString":"Minimum outdoor airflow setpoint, when complying with ASHRAE 62.1 requirements"},"descriptionString":"Outdoor airflow related calculations at the AHU level","cdlAnnotation":null,"documentationInfo":"\"\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":"buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper","cdlAnnotation":null,"descriptionString":"Relief damper control for AHUs using actuated dampers without fan"},"descriptionString":"Relief damper control for AHUs using actuated dampers without fan","cdlAnnotation":null,"documentationInfo":"\"\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":"buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanDp","cdlAnnotation":null,"descriptionString":"Return fan control with direct building pressure control, using the minimum outdoor air damper"},"descriptionString":"Return fan control with direct building pressure control","cdlAnnotation":null,"documentationInfo":"\"\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":"buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanMeasuredAir","cdlAnnotation":null,"descriptionString":"Return fan control for AHUs using return fan with airflow tracking"},"descriptionString":"Return fan control for AHUs using return fan with airflow tracking","cdlAnnotation":null,"documentationInfo":"\"\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":"venStd == Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.California_Title_24","cdlAnnotation":null,"descriptionString":"Minimum outdoor airflow setpoint, when complying with Title 24 requirements"},"descriptionString":"AHU level setpoint calculation","cdlAnnotation":null,"documentationInfo":"\"\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":"buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefFan","cdlAnnotation":null,"descriptionString":"Control of relief fan when it is part of AHU"},"descriptionString":"Sequence for control of relief fan in AHU","cdlAnnotation":null,"documentationInfo":"\"\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"}]} \ No newline at end of file +{ + "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": [ + { + "descriptionString": "Multizone VAV air handling unit controller", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Multizone VAV air handling unit controller", + "headingIdx": 1, + "headingNum": "1" + }, + { + "instance": { + "name": "frePro", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "Freeze protection" + }, + "descriptionString": "Freeze protection sequence for multizone air handling unit", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Freeze protection", + "headingIdx": 1, + "headingNum": "2" + }, + { + "instance": { + "name": "plaReq", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "Plant requests" + }, + "descriptionString": "Output plant requests for multizone air handling unit", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Plant requests", + "headingIdx": 1, + "headingNum": "3" + }, + { + "instance": { + "name": "ecoCon", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "Economizer controller" + }, + "descriptionString": "Multi zone VAV AHU economizer control sequence", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Economizer controller", + "headingIdx": 1, + "headingNum": "4" + }, + { + "instance": { + "name": "ecoCon.sepAFMS", + "protected": false, + "condition": "minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow", + "cdlAnnotation": null, + "descriptionString": "Damper position limits for units with separated minimum outdoor air damper and airflow measurement" + }, + "descriptionString": "Outdoor air and return air damper position limits for units with separated minimum outdoor air damper and airflow measurement", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1.1", + "headingText": "Damper position limits for units with separated minimum outdoor air damper and airflow measurement", + "headingIdx": 2, + "headingNum": "10.1" + }, + { + "instance": { + "name": "ecoCon.sepDp", + "protected": false, + "condition": "minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure", + "cdlAnnotation": null, + "descriptionString": "Damper position limits for units with separated minimum outdoor air damper and differential pressure measurement" + }, + "descriptionString": "Outdoor air and return air damper position limits for units with separated minimum outdoor air damper and differential pressure control", + "cdlAnnotation": null, + "documentationInfo": "\"\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": "minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.SingleDamper", + "cdlAnnotation": null, + "descriptionString": "Damper position limits for units with common damper" + }, + "descriptionString": "Outdoor air and return air damper position limits for units with common damper", + "cdlAnnotation": null, + "documentationInfo": "\"\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": "Enable or disable economizer" + }, + "descriptionString": "Multi zone VAV AHU economizer enable/disable switch", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1.1", + "headingText": "Enable or disable economizer", + "headingIdx": 2, + "headingNum": "10.2" + }, + { + "instance": { + "name": "ecoCon.modRet", + "protected": false, + "condition": "([object Object])", + "cdlAnnotation": null, + "descriptionString": "Modulate economizer dampers position for buildings with return fan controlling pressure" + }, + "descriptionString": "Modulates dampers of economizer in buildings using return fan to control the pressure", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1.1", + "headingText": "Modulate economizer dampers position for buildings with return fan controlling pressure", + "headingIdx": 2, + "headingNum": "10.3" + }, + { + "instance": { + "name": "ecoCon.modRel", + "protected": false, + "condition": "([object Object])", + "cdlAnnotation": null, + "descriptionString": "Modulate economizer dampers position for buildings with relief damper or fan controlling pressure" + }, + "descriptionString": "Modulates dampers of economizer in buildings using relief damper or fan to control the pressure", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1.1", + "headingText": "Modulate economizer dampers position for buildings with relief damper or fan controlling pressure", + "headingIdx": 2, + "headingNum": "10.4" + }, + { + "instance": { + "name": "ecoCon.ecoHigLim", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "High limits" + }, + "descriptionString": "Specify the economizer high liimits", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1.1", + "headingText": "High limits", + "headingIdx": 2, + "headingNum": "10.5" + }, + { + "instance": { + "name": "conSupFan", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "Supply fan speed setpoint" + }, + "descriptionString": "Block to control multi zone VAV AHU supply fan", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Supply fan speed setpoint", + "headingIdx": 1, + "headingNum": "5" + }, + { + "instance": { + "name": "conSupFan.staPreSetRes", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "Static pressure setpoint reset using trim and respond logic" + }, + "descriptionString": "Block to inplement trim and respond logic", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1.1", + "headingText": "Static pressure setpoint reset using trim and respond logic", + "headingIdx": 2, + "headingNum": "10.6" + }, + { + "instance": { + "name": "supSig", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "Heating and cooling valve position" + }, + "descriptionString": "Multizone VAV AHU supply air temperature control loop and coil valves position", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Heating and cooling valve position", + "headingIdx": 1, + "headingNum": "6" + }, + { + "instance": { + "name": "conTSupSet", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "Supply temperature setpoint" + }, + "descriptionString": "Supply air temperature setpoint for multi zone system", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Supply temperature setpoint", + "headingIdx": 1, + "headingNum": "7" + }, + { + "instance": { + "name": "conTSupSet.maxSupTemRes", + "protected": false, + "condition": null, + "cdlAnnotation": null, + "descriptionString": "Maximum cooling supply temperature reset" + }, + "descriptionString": "Block to inplement trim and respond logic", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1.1", + "headingText": "Maximum cooling supply temperature reset", + "headingIdx": 2, + "headingNum": "10.7" + }, + { + "instance": { + "name": "ashOutAirSet", + "protected": false, + "condition": "venStd == Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1", + "cdlAnnotation": null, + "descriptionString": "Minimum outdoor airflow setpoint, when complying with ASHRAE 62.1 requirements" + }, + "descriptionString": "Outdoor airflow related calculations at the AHU level", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Minimum outdoor airflow setpoint, when complying with ASHRAE 62.1 requirements", + "headingIdx": 1, + "headingNum": "8" + }, + { + "instance": { + "name": "relDam", + "protected": false, + "condition": "buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper", + "cdlAnnotation": null, + "descriptionString": "Relief damper control for AHUs using actuated dampers without fan" + }, + "descriptionString": "Relief damper control for AHUs using actuated dampers without fan", + "cdlAnnotation": null, + "documentationInfo": "\"\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": "buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanDp", + "cdlAnnotation": null, + "descriptionString": "Return fan control with direct building pressure control, using the minimum outdoor air damper" + }, + "descriptionString": "Return fan control with direct building pressure control", + "cdlAnnotation": null, + "documentationInfo": "\"\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": "buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanMeasuredAir", + "cdlAnnotation": null, + "descriptionString": "Return fan control for AHUs using return fan with airflow tracking" + }, + "descriptionString": "Return fan control for AHUs using return fan with airflow tracking", + "cdlAnnotation": null, + "documentationInfo": "\"\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": "venStd == Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.California_Title_24", + "cdlAnnotation": null, + "descriptionString": "Minimum outdoor airflow setpoint, when complying with Title 24 requirements" + }, + "descriptionString": "AHU level setpoint calculation", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Minimum outdoor airflow setpoint, when complying with Title 24 requirements", + "headingIdx": 1, + "headingNum": "9" + }, + { + "instance": { + "name": "relFanCon", + "protected": false, + "condition": "buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefFan", + "cdlAnnotation": null, + "descriptionString": "Control of relief fan when it is part of AHU" + }, + "descriptionString": "Sequence for control of relief fan in AHU", + "cdlAnnotation": null, + "documentationInfo": "\"\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", + "section": "1", + "headingText": "Control of relief fan when it is part of AHU", + "headingIdx": 1, + "headingNum": "10" + } + ], + "variables": { + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.FreezeProtection": { + "inputs": [ + { + "type": "Real", + "name": "uOutDamPosMin", + "description": "Minimum economizer damper position limit as returned by the damper position limits sequence", + "unit": "-" + }, + { + "type": "Real", + "name": "uOutDam", + "description": "Economizer outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "uHeaCoi", + "description": "Heating coil commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "uMinOutDam", + "description": "Minimum outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1MinOutDam", + "description": "Minimum outdoor air damper command on position", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDam", + "description": "Economizer return air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "TAirSup", + "description": "Measured supply air temperature", + "unit": "K" + }, + { + "type": "Boolean", + "name": "u1FreSta", + "description": "Freeze protection stat signal. The stat is normally close (the input is normally true), when enabling freeze protection, the input becomes false", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SofSwiRes", + "description": "Freeze protection reset signal from software switch", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan commanded on", + "unit": "-" + }, + { + "type": "Real", + "name": "uSupFan", + "description": "Supply fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1RetFan", + "description": "Return fan commanded on", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetFan", + "description": "Return fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1RelFan", + "description": "Relief fan commanded on", + "unit": "-" + }, + { + "type": "Real", + "name": "uRelFan", + "description": "Relief fan commanded speed", + "unit": "-" + }, + { + "type": "Real", + "name": "uCooCoi", + "description": "Cooling coil commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "TAirMix", + "description": "Measured mixed air temperature", + "unit": "K" + } + ], + "outputs": [ + { + "type": "Integer", + "name": "yFreProSta", + "description": "Freeze protection stage index", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1EneCHWPum", + "description": "Commanded on to energize chilled water pump", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam", + "description": "Return air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam", + "description": "Outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yMinOutDam", + "description": "Minimum outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1MinOutDam", + "description": "Minimum outdoor air damper command on position", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1SupFan", + "description": "Supply fan commanded on", + "unit": "-" + }, + { + "type": "Real", + "name": "ySupFan", + "description": "Supply fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RetFan", + "description": "Return fan commanded on", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetFan", + "description": "Return fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RelFan", + "description": "Relief fan commanded on", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RelDam", + "description": "True: 2-position relief damper is commanded open", + "unit": "-" + }, + { + "type": "Real", + "name": "yRelFan", + "description": "Relief fan commanded speed", + "unit": "-" + }, + { + "type": "Real", + "name": "yCooCoi", + "description": "Cooling coil commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yHeaCoi", + "description": "Heating coil commanded position", + "unit": "-" + }, + { + "type": "Integer", + "name": "yHotWatPlaReq", + "description": "Request to heating hot-water plant", + "unit": "-" + }, + { + "type": "Integer", + "name": "yAla", + "description": "Alarm level", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Boolean", + "name": "have_frePro", + "description": "True: enable freeze protection", + "unit": "-" + }, + { + "type": "PressureControl", + "name": "buiPreCon", + "description": "Type of building pressure control system", + "unit": "-" + }, + { + "type": "OutdoorAirSection", + "name": "minOADes", + "description": "Design of minimum outdoor air and economizer function", + "unit": "-" + }, + { + "type": "FreezeStat", + "name": "freSta", + "description": "Type of freeze stat", + "unit": "-" + }, + { + "type": "HeatingCoil", + "name": "heaCoi", + "description": "Heating coil type", + "unit": "-" + }, + { + "type": "CoolingCoil", + "name": "cooCoi", + "description": "Cooling coil type", + "unit": "-" + }, + { + "type": "Integer", + "name": "minHotWatReq", + "description": "Minimum heating hot-water plant request to active the heating plant", + "unit": "-" + }, + { + "type": "SimpleController", + "name": "heaCoiCon", + "description": "Heating coil controller", + "unit": "-" + }, + { + "type": "Real", + "name": "k", + "description": "Gain of coil controller", + "unit": "-" + }, + { + "type": "Real", + "name": "Ti", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "Td", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "yMax", + "description": "Upper limit of output", + "unit": "-" + }, + { + "type": "Real", + "name": "yMin", + "description": "Lower limit of output", + "unit": "-" + }, + { + "type": "Real", + "name": "Thys", + "description": "Hysteresis for checking temperature difference", + "unit": "K" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.PlantRequests": { + "inputs": [ + { + "type": "Real", + "name": "TAirSup", + "description": "Measured supply air temperature", + "unit": "K" + }, + { + "type": "Real", + "name": "TAirSupSet", + "description": "Setpoint for supply air temperature", + "unit": "K" + }, + { + "type": "Real", + "name": "uCooCoiSet", + "description": "Commanded ooling coil valve position", + "unit": "-" + }, + { + "type": "Real", + "name": "uHeaCoiSet", + "description": "Commanded heating coil valve position", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Integer", + "name": "yChiWatResReq", + "description": "Chilled water reset request", + "unit": "-" + }, + { + "type": "Integer", + "name": "yChiPlaReq", + "description": "Chiller plant request", + "unit": "-" + }, + { + "type": "Integer", + "name": "yHotWatResReq", + "description": "Hot water reset request", + "unit": "-" + }, + { + "type": "Integer", + "name": "yHotWatPlaReq", + "description": "Hot water plant request", + "unit": "-" + } + ], + "parameters": [ + { + "type": "HeatingCoil", + "name": "heaCoi", + "description": "Heating coil type", + "unit": "-" + }, + { + "type": "CoolingCoil", + "name": "cooCoi", + "description": "Cooling coil type", + "unit": "-" + }, + { + "type": "Real", + "name": "Thys", + "description": "Hysteresis for checking temperature difference", + "unit": "-" + }, + { + "type": "Real", + "name": "posHys", + "description": "Hysteresis for checking valve position difference", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS": { + "inputs": [ + { + "type": "Real", + "name": "VOutMinSet_flow_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate", + "unit": "-" + }, + { + "type": "Real", + "name": "VOut_flow_normalized", + "description": "Measured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan proven on", + "unit": "-" + }, + { + "type": "Integer", + "name": "uOpeMod", + "description": "AHU operation mode status signal", + "unit": "-" + }, + { + "type": "Real", + "name": "uOutDam", + "description": "Economizer outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "uSupFan", + "description": "Commanded supply fan speed", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yMinOutDam", + "description": "Minimum outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Boolean", + "name": "yEnaMinOut", + "description": "True: enable minimum outdoor air control loop", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam_min", + "description": "Physically minimum outdoor air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam_max", + "description": "Physically maximum outdoor air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam_min", + "description": "Minimum return air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam_max", + "description": "Maximum return air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDamPhy_max", + "description": "Physical maximum return air damper position limit. Required as an input for the economizer enable disable sequence", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Real", + "name": "minSpe", + "description": "Minimum supply fan speed", + "unit": "-" + }, + { + "type": "SimpleController", + "name": "minOAConTyp", + "description": "Type of minimum outdoor air controller", + "unit": "-" + }, + { + "type": "Real", + "name": "kMinOA", + "description": "Gain of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "TiMinOA", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "TdMinOA", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "retDamPhy_max", + "description": "Physically fixed maximum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "retDamPhy_min", + "description": "Physically fixed minimum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_max", + "description": "Physically fixed maximum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_min", + "description": "Physically fixed minimum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "minOutDamPhy_max", + "description": "Physically fixed maximum position of the minimum outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "minOutDamPhy_min", + "description": "Physically fixed minimum position of the minimum outdoor air damper", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP": { + "inputs": [ + { + "type": "Real", + "name": "effAbsOutAir_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate ", + "unit": "-" + }, + { + "type": "Real", + "name": "uCO2Loo_max", + "description": "Maximum zone CO2 control loop", + "unit": "-" + }, + { + "type": "Real", + "name": "effDesOutAir_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate ", + "unit": "-" + }, + { + "type": "Real", + "name": "dpMinOutDam", + "description": "Measured pressure difference across the minimum outdoor air damper", + "unit": "Pa" + }, + { + "type": "Real", + "name": "VOutMinSet_flow_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan proven on", + "unit": "-" + }, + { + "type": "Integer", + "name": "uOpeMod", + "description": "AHU operation mode status signal", + "unit": "-" + }, + { + "type": "Real", + "name": "uOutDam", + "description": "Economizer outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "uSupFan", + "description": "Commanded supply fan speed", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Boolean", + "name": "y1MinOutDam", + "description": "Status of minimum outdoor air damper position, true means it's open", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam_min", + "description": "Physically minimum outdoor air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam_max", + "description": "Physically maximum outdoor air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam_min", + "description": "Minimum return air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam_max", + "description": "Maximum return air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDamPhy_max", + "description": "Physical maximum return air damper position limit. Required as an input for the economizer enable disable sequence", + "unit": "-" + } + ], + "parameters": [ + { + "type": "VentilationStandard", + "name": "venStd", + "description": "Ventilation standard, ASHRAE 62.1 or Title 24", + "unit": "-" + }, + { + "type": "Boolean", + "name": "have_CO2Sen", + "description": "True: some zones have CO2 sensor", + "unit": "-" + }, + { + "type": "Real", + "name": "dpAbsMinOutDam", + "description": "Absolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflow", + "unit": "Pa" + }, + { + "type": "Real", + "name": "dpDesMinOutDam", + "description": "Design minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflow", + "unit": "Pa" + }, + { + "type": "Real", + "name": "minSpe", + "description": "Minimum supply fan speed", + "unit": "-" + }, + { + "type": "SimpleController", + "name": "dpCon", + "description": "Type of differential pressure setpoint controller", + "unit": "-" + }, + { + "type": "Real", + "name": "kDp", + "description": "Gain of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "TiDp", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "TdDp", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "retDamPhy_max", + "description": "Physically fixed maximum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "retDamPhy_min", + "description": "Physically fixed minimum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_max", + "description": "Physically fixed maximum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_min", + "description": "Physically fixed minimum position of the outdoor air damper", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common": { + "inputs": [ + { + "type": "Real", + "name": "VOut_flow_normalized", + "description": "Measured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate", + "unit": "-" + }, + { + "type": "Real", + "name": "VOutMinSet_flow_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate", + "unit": "-" + }, + { + "type": "Integer", + "name": "uOpeMod", + "description": "AHU operation mode status signal", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan proven on", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yOutDam_min", + "description": "Minimum outdoor air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam_max", + "description": "Maximum outdoor air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam_min", + "description": "Minimum return air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam_max", + "description": "Maximum return air damper position limit", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDamPhy_max", + "description": "Physical maximum return air damper position limit. Required as an input for the economizer enable disable sequence", + "unit": "-" + }, + { + "type": "Boolean", + "name": "yEnaMinOut", + "description": "True: enable minimum outdoor air control loop", + "unit": "-" + } + ], + "parameters": [ + { + "type": "SimpleController", + "name": "controllerType", + "description": "Type of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "k", + "description": "Gain of damper limit controller", + "unit": "-" + }, + { + "type": "Real", + "name": "Ti", + "description": "Time constant of damper limit controller integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "Td", + "description": "Time constant of damper limit controller derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "uRetDam_min", + "description": "Loop signal value to start decreasing the maximum return air damper position", + "unit": "-" + }, + { + "type": "Real", + "name": "retDamPhy_max", + "description": "Physically fixed maximum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "retDamPhy_min", + "description": "Physically fixed minimum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_max", + "description": "Physically fixed maximum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_min", + "description": "Physically fixed minimum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "yMin", + "description": "Lower limit of control loop signal", + "unit": "-" + }, + { + "type": "Real", + "name": "yMax", + "description": "Upper limit of control loop signal", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Enable": { + "inputs": [ + { + "type": "Real", + "name": "TOut", + "description": "Outdoor air temperature", + "unit": "K" + }, + { + "type": "Real", + "name": "hOut", + "description": "Outdoor air enthalpy", + "unit": "J/kg" + }, + { + "type": "Real", + "name": "TOutCut", + "description": "OA temperature high limit cutoff. For differential dry bulb temperature condition use return air temperature measurement", + "unit": "K" + }, + { + "type": "Real", + "name": "hOutCut", + "description": "OA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurement", + "unit": "J/kg" + }, + { + "type": "Real", + "name": "uOutDam_min", + "description": "Minimum outdoor air damper position, output from damper position limits sequence", + "unit": "-" + }, + { + "type": "Real", + "name": "uOutDam_max", + "description": "Maximum outdoor air damper position, output from damper position limits sequence", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDam_max", + "description": "Maximum return air damper position, output from damper position limits sequence", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDam_min", + "description": "Minimum return air damper position, output from damper position limits sequence", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDamPhy_max", + "description": "Physical maximum return air damper position, output from damper position limits sequence", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan proven on", + "unit": "-" + }, + { + "type": "Integer", + "name": "uFreProSta", + "description": "Freeze protection stage status signal", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yOutDam_max", + "description": "Maximum outdoor air damper position", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam_min", + "description": "Minimum return air damper position", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam_max", + "description": "Maximum return air damper position", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Boolean", + "name": "use_enthalpy", + "description": "Set to true to evaluate outdoor air (OA) enthalpy in addition to temperature", + "unit": "-" + }, + { + "type": "Real", + "name": "delTOutHis", + "description": "Delta between the temperature hysteresis high and low limit", + "unit": "K" + }, + { + "type": "Real", + "name": "delEntHis", + "description": "Delta between the enthalpy hysteresis high and low limits", + "unit": "J/kg" + }, + { + "type": "Real", + "name": "retDamFulOpeTim", + "description": "Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control\n at disable to avoid pressure fluctuations", + "unit": "s" + }, + { + "type": "Real", + "name": "disDel", + "description": "Short time delay before closing the OA damper at disable to avoid pressure fluctuations", + "unit": "s" + }, + { + "type": "Real", + "name": "TOutHigLimCutHig", + "description": "Hysteresis high limit cutoff", + "unit": "K" + }, + { + "type": "Real", + "name": "TOutHigLimCutLow", + "description": "Hysteresis low limit cutoff", + "unit": "-" + }, + { + "type": "Real", + "name": "hOutHigLimCutHig", + "description": "Hysteresis block high limit cutoff", + "unit": "J/kg" + }, + { + "type": "Real", + "name": "hOutHigLimCutLow", + "description": "Hysteresis block low limit cutoff", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan": { + "inputs": [ + { + "type": "Real", + "name": "uTSup", + "description": "Supply air temperature control loop signal", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDam_max", + "description": "Maximum return air damper position limit as returned by the economizer enable-disable sequence", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDam_min", + "description": "Minimum return air damper position limit as returned by the economizer enable-disable sequence", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yRetDam", + "description": "Return air damper position", + "unit": "-" + }, + { + "type": "Real", + "name": "yRelDam", + "description": "Relief air damper position", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam", + "description": "Outdoor air damper position", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Boolean", + "name": "have_dirCon", + "description": "True: the building have direct pressure control", + "unit": "-" + }, + { + "type": "Real", + "name": "uMin", + "description": "Lower limit of controller input when outdoor damper opens (see diagram)", + "unit": "-" + }, + { + "type": "Real", + "name": "uMax", + "description": "Upper limit of controller input when return damper is closed (see diagram)", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs": { + "inputs": [ + { + "type": "Real", + "name": "uTSup", + "description": "Signal for supply air temperature control (T Sup Control Loop Signal in diagram)", + "unit": "-" + }, + { + "type": "Real", + "name": "uOutDam_min", + "description": "Minimum economizer damper position limit as returned by the damper position limits sequence", + "unit": "-" + }, + { + "type": "Real", + "name": "uOutDam_max", + "description": "Maximum economizer damper position limit as returned by the economizer enable-disable sequence.\n If the economizer is disabled, this value equals uOutDam_min", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDam_min", + "description": "Minimum return air damper position limit as returned by the economizer enable-disable sequence", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDam_max", + "description": "Maximum return air damper position limit as returned by the economizer enable-disable sequence", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yOutDam", + "description": "Economizer damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam", + "description": "Return air damper commanded position", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Real", + "name": "uMin", + "description": "Lower limit of controller input when outdoor damper opens (see diagram)", + "unit": "-" + }, + { + "type": "Real", + "name": "uMax", + "description": "Upper limit of controller input when return damper is closed (see diagram)", + "unit": "-" + }, + { + "type": "Real", + "name": "uOutDamMax", + "description": "Maximum loop signal for the OA damper to be fully open", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDamMin", + "description": "Minimum loop signal for the RA damper to be fully open", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits": { + "inputs": [ + { + "type": "Real", + "name": "TRet", + "description": "Return air temperature", + "unit": "K" + }, + { + "type": "Real", + "name": "hRet", + "description": "Return air enthalpy. For differential enthalpy use return air enthalpy measurement", + "unit": "J/kg" + } + ], + "outputs": [ + { + "type": "Real", + "name": "TCut", + "description": "Outdoor air temperature high limit cutoff", + "unit": "K" + }, + { + "type": "Real", + "name": "hCut", + "description": "Outdoor air enthalpy high limit cutoff", + "unit": "J/kg" + } + ], + "parameters": [ + { + "type": "EnergyStandard", + "name": "eneStd", + "description": "Energy standard, ASHRAE 90.1 or Title 24", + "unit": "-" + }, + { + "type": "ControlEconomizer", + "name": "ecoHigLimCon", + "description": "Economizer high limit control device", + "unit": "-" + }, + { + "type": "ASHRAEClimateZone", + "name": "ashCliZon", + "description": "ASHRAE climate zone", + "unit": "-" + }, + { + "type": "Title24ClimateZone", + "name": "tit24CliZon", + "description": "California Title 24 climate zone", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller": { + "inputs": [ + { + "type": "Real", + "name": "VOutMinSet_flow_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate", + "unit": "-" + }, + { + "type": "Real", + "name": "VOut_flow_normalized", + "description": "Measured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate", + "unit": "-" + }, + { + "type": "Real", + "name": "uSupFan", + "description": "Commanded supply fan speed", + "unit": "-" + }, + { + "type": "Real", + "name": "effAbsOutAir_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate ", + "unit": "-" + }, + { + "type": "Real", + "name": "uCO2Loo_max", + "description": "Maximum Zone CO2 control loop", + "unit": "-" + }, + { + "type": "Real", + "name": "effDesOutAir_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate ", + "unit": "-" + }, + { + "type": "Real", + "name": "dpMinOutDam", + "description": "Measured pressure difference across the minimum outdoor air damper", + "unit": "Pa" + }, + { + "type": "Real", + "name": "uTSup", + "description": "Signal for supply air temperature control (T Sup Control Loop Signal in diagram)", + "unit": "-" + }, + { + "type": "Real", + "name": "TOut", + "description": "Outdoor air (OA) temperature", + "unit": "K" + }, + { + "type": "Real", + "name": "TAirRet", + "description": "Used only for fixed plus differential dry bulb temperature high limit cutoff", + "unit": "K" + }, + { + "type": "Real", + "name": "hAirOut", + "description": "Outdoor air enthalpy", + "unit": "J/kg" + }, + { + "type": "Real", + "name": "hAirRet", + "description": "Return air enthalpy", + "unit": "J/kg" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan status", + "unit": "-" + }, + { + "type": "Integer", + "name": "uOpeMod", + "description": "AHU operation mode status signal", + "unit": "-" + }, + { + "type": "Integer", + "name": "uFreProSta", + "description": "Freeze protection status", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yOutDam_min", + "description": "Minimum outdoor air damper position limit", + "unit": "-" + }, + { + "type": "Boolean", + "name": "yEnaMinOut", + "description": "True: enable minimum outdoor air control loop", + "unit": "-" + }, + { + "type": "Real", + "name": "yMinOutDam", + "description": "Minimum outdoor air flow damper commanded position", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1MinOutDam", + "description": "Minimum outdoor air damper command on position", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam", + "description": "Return air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yRelDam", + "description": "Relief air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam", + "description": "Outdoor air damper commanded position", + "unit": "-" + } + ], + "parameters": [ + { + "type": "OutdoorAirSection", + "name": "minOADes", + "description": "Design of minimum outdoor air and economizer function", + "unit": "-" + }, + { + "type": "PressureControl", + "name": "buiPreCon", + "description": "Type of building pressure control system", + "unit": "-" + }, + { + "type": "EnergyStandard", + "name": "eneStd", + "description": "Energy standard, ASHRAE 90.1 or Title 24", + "unit": "-" + }, + { + "type": "ControlEconomizer", + "name": "ecoHigLimCon", + "description": "Economizer high limit control device", + "unit": "-" + }, + { + "type": "ASHRAEClimateZone", + "name": "ashCliZon", + "description": "ASHRAE climate zone", + "unit": "-" + }, + { + "type": "Title24ClimateZone", + "name": "tit24CliZon", + "description": "California Title 24 climate zone", + "unit": "-" + }, + { + "type": "Real", + "name": "minSpe", + "description": "Minimum supply fan speed", + "unit": "-" + }, + { + "type": "SimpleController", + "name": "minOAConTyp", + "description": "Type of minimum outdoor air controller", + "unit": "-" + }, + { + "type": "Real", + "name": "kMinOA", + "description": "Gain of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "TiMinOA", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "TdMinOA", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "VentilationStandard", + "name": "venStd", + "description": "Ventilation standard, ASHRAE 62.1 or Title 24", + "unit": "-" + }, + { + "type": "Boolean", + "name": "have_CO2Sen", + "description": "True: some zones have CO2 sensor", + "unit": "-" + }, + { + "type": "Real", + "name": "dpAbsMinOutDam", + "description": "Absolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflow", + "unit": "-" + }, + { + "type": "Real", + "name": "dpDesMinOutDam", + "description": "Design minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflow", + "unit": "Pa" + }, + { + "type": "SimpleController", + "name": "dpConTyp", + "description": "Type of differential pressure setpoint controller", + "unit": "-" + }, + { + "type": "Real", + "name": "kDp", + "description": "Gain of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "TiDp", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "TdDp", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "uRetDam_min", + "description": "Loop signal value to start decreasing the maximum return air damper position", + "unit": "-" + }, + { + "type": "Real", + "name": "delTOutHis", + "description": "Delta between the temperature hysteresis high and low limit", + "unit": "K" + }, + { + "type": "Real", + "name": "delEntHis", + "description": "Delta between the enthalpy hysteresis high and low limits", + "unit": "J/kg" + }, + { + "type": "Real", + "name": "retDamFulOpeTim", + "description": "Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control at disable to avoid pressure fluctuations", + "unit": "s" + }, + { + "type": "Real", + "name": "disDel", + "description": "Short time delay before closing the OA damper at disable to avoid pressure fluctuations", + "unit": "s" + }, + { + "type": "Real", + "name": "retDamPhy_max", + "description": "Physically fixed maximum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "retDamPhy_min", + "description": "Physically fixed minimum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_max", + "description": "Physically fixed maximum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_min", + "description": "Physically fixed minimum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "minOutDamPhy_max", + "description": "Physically fixed maximum position of the minimum outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "minOutDamPhy_min", + "description": "Physically fixed minimum position of the minimum outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "uHeaMax", + "description": "Lower limit of controller input when outdoor damper opens (see diagram)", + "unit": "-" + }, + { + "type": "Real", + "name": "uCooMin", + "description": "Upper limit of controller input when return damper is closed (see diagram)", + "unit": "-" + }, + { + "type": "Real", + "name": "uOutDamMax", + "description": "Maximum loop signal for the OA damper to be fully open", + "unit": "-" + }, + { + "type": "Real", + "name": "uRetDamMin", + "description": "Minimum loop signal for the RA damper to be fully open", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond": { + "inputs": [ + { + "type": "Integer", + "name": "numOfReq", + "description": "Number of requests from zones/systems", + "unit": "-" + }, + { + "type": "Boolean", + "name": "uDevSta", + "description": "On/Off status of the associated device", + "unit": "-" + }, + { + "type": "Boolean", + "name": "uHol", + "description": "Hold signal", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "y", + "description": "Setpoint that have been reset", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Boolean", + "name": "have_hol", + "description": "Set to true to allow holding the reset, false to continuously reset when enabled", + "unit": "-" + }, + { + "type": "Real", + "name": "iniSet", + "description": "Initial setpoint", + "unit": "-" + }, + { + "type": "Real", + "name": "minSet", + "description": "Minimum setpoint", + "unit": "-" + }, + { + "type": "Real", + "name": "maxSet", + "description": "Maximum setpoint", + "unit": "-" + }, + { + "type": "Real", + "name": "delTim", + "description": "Delay time", + "unit": "s" + }, + { + "type": "Real", + "name": "samplePeriod", + "description": "Sample period of component", + "unit": "s" + }, + { + "type": "Integer", + "name": "numIgnReq", + "description": "Number of ignored requests", + "unit": "-" + }, + { + "type": "Real", + "name": "triAmo", + "description": "Trim amount", + "unit": "-" + }, + { + "type": "Real", + "name": "resAmo", + "description": "Respond amount (must have opposite sign of triAmo)", + "unit": "-" + }, + { + "type": "Real", + "name": "maxRes", + "description": "Maximum response per time interval (must have same sign as resAmo)", + "unit": "-" + }, + { + "type": "Real", + "name": "dtHol", + "description": "Minimum hold time", + "unit": "s" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyFan": { + "inputs": [ + { + "type": "Integer", + "name": "uOpeMod", + "description": "System operation mode", + "unit": "-" + }, + { + "type": "Real", + "name": "dpDuc", + "description": "Measured duct static pressure", + "unit": "Pa" + }, + { + "type": "Integer", + "name": "uZonPreResReq", + "description": "Zone static pressure reset requests", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Boolean", + "name": "y1SupFan", + "description": "Supply fan command on", + "unit": "-" + }, + { + "type": "Real", + "name": "ySupFan", + "description": "Supply fan commanded speed", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Boolean", + "name": "have_perZonRehBox", + "description": "Check if there is any VAV-reheat boxes on perimeter zones", + "unit": "-" + }, + { + "type": "Real", + "name": "iniSet", + "description": "Initial setpoint", + "unit": "Pa" + }, + { + "type": "Real", + "name": "minSet", + "description": "Minimum setpoint", + "unit": "Pa" + }, + { + "type": "Real", + "name": "maxSet", + "description": "Duct design maximum static pressure. It is the Max_DSP shown in Section 3.2.1.1 of Guideline 36", + "unit": "Pa" + }, + { + "type": "Real", + "name": "delTim", + "description": "Delay time after which trim and respond is activated", + "unit": "s" + }, + { + "type": "Real", + "name": "samplePeriod", + "description": "Sample period", + "unit": "s" + }, + { + "type": "Integer", + "name": "numIgnReq", + "description": "Number of ignored requests", + "unit": "-" + }, + { + "type": "Real", + "name": "triAmo", + "description": "Trim amount", + "unit": "Pa" + }, + { + "type": "Real", + "name": "resAmo", + "description": "Respond amount (must be opposite in to triAmo)", + "unit": "Pa" + }, + { + "type": "Real", + "name": "maxRes", + "description": "Maximum response per time interval (same sign as resAmo)", + "unit": "Pa" + }, + { + "type": "SimpleController", + "name": "controllerType", + "description": "Type of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "k", + "description": "Gain of controller, normalized using maxSet", + "unit": "-" + }, + { + "type": "Real", + "name": "Ti", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "Td", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "maxSpe", + "description": "Maximum allowed fan speed", + "unit": "-" + }, + { + "type": "Real", + "name": "minSpe", + "description": "Lowest allowed fan speed if fan is on", + "unit": "-" + }, + { + "type": "Real", + "name": "iniSpe", + "description": "Initial speed when fan is enabled. It has to be greater than the lowest allowed speed", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplySignals": { + "inputs": [ + { + "type": "Real", + "name": "TAirSup", + "description": "Measured supply air temperature", + "unit": "K" + }, + { + "type": "Real", + "name": "TAirSupSet", + "description": "Supply air temperature setpoint", + "unit": "K" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan status", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yHeaCoi", + "description": "Heating coil commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yCooCoi", + "description": "Cooling coil commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "uTSup", + "description": "Supply temperature control signal", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Boolean", + "name": "have_heaCoi", + "description": "True: the AHU has heating coil. It could be the hot water coil, or the electric heating coil", + "unit": "-" + }, + { + "type": "Boolean", + "name": "have_cooCoi", + "description": "True: the AHU has cooling coil. It could be the chilled water coil, or the direct expansion coil", + "unit": "-" + }, + { + "type": "SimpleController", + "name": "controllerType", + "description": "Type of controller for supply air temperature signal", + "unit": "-" + }, + { + "type": "Real", + "name": "kTSup", + "description": "Gain of controller for supply air temperature signal", + "unit": "-/K" + }, + { + "type": "Real", + "name": "TiTSup", + "description": "Time constant of integrator block for supply temperature control signal", + "unit": "s" + }, + { + "type": "Real", + "name": "TdTSup", + "description": "Time constant of derivative block for supply temperature control signal", + "unit": "s" + }, + { + "type": "Real", + "name": "uHea_max", + "description": "Upper limit of controller signal when heating coil is off. Require -1 < uHea_max < uCoo_min < 1.", + "unit": "-" + }, + { + "type": "Real", + "name": "uCoo_min", + "description": "Lower limit of controller signal when cooling coil is off. Require -1 < uHea_max < uCoo_min < 1.", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplyTemperature": { + "inputs": [ + { + "type": "Real", + "name": "TOut", + "description": "Outdoor air temperature", + "unit": "K" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan status", + "unit": "-" + }, + { + "type": "Integer", + "name": "uOpeMod", + "description": "System operation mode", + "unit": "-" + }, + { + "type": "Integer", + "name": "uZonTemResReq", + "description": "Zone cooling supply air temperature reset request", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "TAirSupSet", + "description": "Supply air temperature setpoint", + "unit": "K" + } + ], + "parameters": [ + { + "type": "Real", + "name": "TSupCoo_min", + "description": "Lowest cooling supply air temperature setpoint when the outdoor air temperature is at the\n higher value of the reset range and above", + "unit": "K" + }, + { + "type": "Real", + "name": "TSupCoo_max", + "description": "Highest cooling supply air temperature setpoint. It is typically 18 degC (65 degF) \n in mild and dry climates, 16 degC (60 degF) or lower in humid climates", + "unit": "K" + }, + { + "type": "Real", + "name": "TOut_min", + "description": "Lower value of the outdoor air temperature reset range. Typically value is 16 degC (60 degF)", + "unit": "K" + }, + { + "type": "Real", + "name": "TOut_max", + "description": "Higher value of the outdoor air temperature reset range. Typically value is 21 degC (70 degF)", + "unit": "K" + }, + { + "type": "Real", + "name": "TSupWarUpSetBac", + "description": "Supply temperature in warm up and set back mode", + "unit": "K" + }, + { + "type": "Real", + "name": "delTim", + "description": "Delay timer", + "unit": "s" + }, + { + "type": "Real", + "name": "samplePeriod", + "description": "Sample period of component", + "unit": "s" + }, + { + "type": "Integer", + "name": "numIgnReq", + "description": "Number of ignorable requests for TrimResponse logic", + "unit": "-" + }, + { + "type": "Real", + "name": "triAmo", + "description": "Trim amount", + "unit": "K" + }, + { + "type": "Real", + "name": "resAmo", + "description": "Response amount", + "unit": "K" + }, + { + "type": "Real", + "name": "maxRes", + "description": "Maximum response per time interval", + "unit": "K" + }, + { + "type": "Real", + "name": "TDeaBan", + "description": "Default supply temperature setpoint when the AHU is disabled", + "unit": "K" + }, + { + "type": "Real", + "name": "iniSet", + "description": "Initial setpoint", + "unit": "K" + }, + { + "type": "Real", + "name": "maxSet", + "description": "Maximum setpoint", + "unit": "K" + }, + { + "type": "Real", + "name": "minSet", + "description": "Minimum setpoint", + "unit": "K" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.ASHRAE62_1.AHU": { + "inputs": [ + { + "type": "Real", + "name": "VSumAdjPopBreZon_flow", + "description": "Sum of the adjusted population component breathing zone flow rate", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VSumAdjAreBreZon_flow", + "description": "Sum of the adjusted area component breathing zone flow rate", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VSumZonPri_flow", + "description": "Sum of the zone primary airflow rates for all zones in all zone groups that are in occupied mode", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "uOutAirFra_max", + "description": "Maximum zone outdoor air fraction", + "unit": "-" + }, + { + "type": "Real", + "name": "VAirOut_flow", + "description": "Measured outdoor air volumetric flow rate", + "unit": "m3/s" + } + ], + "outputs": [ + { + "type": "Real", + "name": "VUncOutAir_flow", + "description": "Uncorrected minimum outdoor airflow rate", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VEffAirOut_flow_min", + "description": "Effective minimum outdoor airflow setpoint", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "effOutAir_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by the design total outdoor airflow rate ", + "unit": "-" + }, + { + "type": "Real", + "name": "outAir_normalized", + "description": "Normalized outdoor airflow rate", + "unit": "-" + } + ], + "parameters": [ + { + "type": "OutdoorAirSection", + "name": "minOADes", + "description": "Type of outdoor air section", + "unit": "-" + }, + { + "type": "Real", + "name": "VUncDesOutAir_flow", + "description": "Uncorrected design outdoor airflow rate, including diversity where applicable. It can be determined using the 62MZCalc spreadsheet from ASHRAE 62.1 User's Manual", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VDesTotOutAir_flow", + "description": "Design total outdoor airflow rate. It can be determined using the 62MZCalc spreadsheet from ASHRAE 62.1 User's Manual", + "unit": "m3/s" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReliefDamper": { + "inputs": [ + { + "type": "Real", + "name": "dpBui", + "description": "Building static pressure difference, relative to ambient (positive if pressurized)", + "unit": "Pa" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan status", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yRelDam", + "description": "Relief damper commanded position", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Real", + "name": "dpBuiSet", + "description": "Building static pressure difference relative to ambient (positive to pressurize the building)", + "unit": "Pa" + }, + { + "type": "Real", + "name": "k", + "description": "Gain, applied to building pressure control error normalized with dpBuiSet", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReturnFanDirectPressure": { + "inputs": [ + { + "type": "Real", + "name": "dpBui", + "description": "Building static pressure difference, relative to ambient (positive if pressurized)", + "unit": "Pa" + }, + { + "type": "Boolean", + "name": "u1MinOutAirDam", + "description": "Minimum outdoor air damper status, true when it is open", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan status", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yDpBui", + "description": "Averaged building static pressure", + "unit": "Pa" + }, + { + "type": "Real", + "name": "yRelDam", + "description": "Relief damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "dpDisSet", + "description": "Return fan discharge static pressure setpoint", + "unit": "Pa" + }, + { + "type": "Real", + "name": "yRetFan", + "description": "Return fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RetFan", + "description": "Return fan commanded on", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Real", + "name": "dpBuiSet", + "description": "Building static pressure difference relative to ambient (positive to pressurize the building)", + "unit": "Pa" + }, + { + "type": "Real", + "name": "p_rel_RetFan_min", + "description": "Return fan discharge static pressure difference minimum setpoint,no less than 2.4 Pa", + "unit": "Pa" + }, + { + "type": "Real", + "name": "p_rel_RetFan_max", + "description": "Return fan discharge static pressure maximum setpoint", + "unit": "Pa" + }, + { + "type": "Real", + "name": "disSpe_min", + "description": "Return fan speed when providing the minimum return fan discharge static pressure difference", + "unit": "-" + }, + { + "type": "Real", + "name": "disSpe_max", + "description": "Return fan speed when providing the maximum return fan discharge static pressure difference", + "unit": "-" + }, + { + "type": "SimpleController", + "name": "conTyp", + "description": "Type of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "k", + "description": "Gain, normalized using dpBuiSet", + "unit": "-" + }, + { + "type": "Real", + "name": "Ti", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "Td", + "description": "Time constant of derivative block", + "unit": "s" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReturnFanAirflowTracking": { + "inputs": [ + { + "type": "Real", + "name": "VAirSup_flow", + "description": "Measured AHU supply airflow rate", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VAirRet_flow", + "description": "Measured AHU return airflow rate", + "unit": "m3/s" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan status", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yRetFan", + "description": "Return fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RetFan", + "description": "Return fan commanded on", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Real", + "name": "difFloSet", + "description": "Airflow differential between supply air and return air fans required to maintain building pressure at desired pressure", + "unit": "m3/s" + }, + { + "type": "SimpleController", + "name": "conTyp", + "description": "Type of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "k", + "description": "Gain, normalized using dpBuiSet", + "unit": "-" + }, + { + "type": "Real", + "name": "Ti", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "Td", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "maxSpe", + "description": "Upper limit of output", + "unit": "-" + }, + { + "type": "Real", + "name": "minSpe", + "description": "Lower limit of output", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Title24.AHU": { + "inputs": [ + { + "type": "Real", + "name": "VSumZonAbsMin_flow", + "description": "Sum of the zone absolute minimum outdoor airflow setpoint", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VSumZonDesMin_flow", + "description": "Sum of the zone design minimum outdoor airflow setpoint", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "uCO2Loo_max", + "description": "Maximum Zone CO2 control loop", + "unit": "-" + }, + { + "type": "Real", + "name": "VAirOut_flow", + "description": "Measured outdoor air volumetric flow rate", + "unit": "m3/s" + } + ], + "outputs": [ + { + "type": "Real", + "name": "VEffAbsOutAir_flow", + "description": "Effective outdoor air absolute minimum setpoint", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "effAbsOutAir_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate ", + "unit": "-" + }, + { + "type": "Real", + "name": "VEffDesOutAir_flow", + "description": "Effective outdoor air design minimum setpoint", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "effDesOutAir_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate ", + "unit": "-" + }, + { + "type": "Real", + "name": "effOutAir_normalized", + "description": "Effective minimum outdoor airflow setpoint, normalized by the design total outdoor airflow rate ", + "unit": "-" + }, + { + "type": "Real", + "name": "outAir_normalized", + "description": "Normalized outdoor airflow rate", + "unit": "-" + } + ], + "parameters": [ + { + "type": "OutdoorAirSection", + "name": "minOADes", + "description": "Type of outdoor air section", + "unit": "-" + }, + { + "type": "Boolean", + "name": "have_CO2Sen", + "description": "True: there are zones have CO2 sensor", + "unit": "-" + }, + { + "type": "Real", + "name": "VAbsOutAir_flow", + "description": "Design outdoor airflow rate when all zones with CO2 sensors or occupancy sensors are unpopulated", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VDesOutAir_flow", + "description": "Design minimum outdoor airflow rate with the areas served by the system are occupied at their design population, including diversity where applicable", + "unit": "m3/s" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.ReliefFan": { + "inputs": [ + { + "type": "Real", + "name": "dpBui", + "description": "Building static pressure difference, relative to ambient (positive if pressurized)", + "unit": "Pa" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "AHU supply fan proven on status", + "unit": "-" + } + ], + "outputs": [ + { + "type": "Real", + "name": "yDpBui", + "description": "Building static pressure difference, relative to ambient (positive if pressurized)", + "unit": "Pa" + }, + { + "type": "Boolean", + "name": "y1RelDam", + "description": "True: 2-position relief damper commanded open", + "unit": "-" + }, + { + "type": "Real", + "name": "yRelFan", + "description": "Relief fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RelFan", + "description": "Relief fan commanded on", + "unit": "-" + } + ], + "parameters": [ + { + "type": "Real", + "name": "relFanSpe_min", + "description": "Relief fan minimum speed", + "unit": "-" + }, + { + "type": "Real", + "name": "dpBuiSet", + "description": "Building static pressure difference relative to ambient (positive to pressurize the building)", + "unit": "Pa" + }, + { + "type": "Real", + "name": "k", + "description": "Gain, normalized using dpBuiSet", + "unit": "-" + }, + { + "type": "Real", + "name": "hys", + "description": "Hysteresis for checking the controller output value", + "unit": "-" + } + ] + }, + "Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller": { + "inputs": [ + { + "type": "Integer", + "name": "uAhuOpeMod", + "description": "Operation mode for AHU operation", + "unit": "-" + }, + { + "type": "Integer", + "name": "uZonPreResReq", + "description": "Zone static pressure reset requests", + "unit": "-" + }, + { + "type": "Real", + "name": "dpDuc", + "description": "Measured duct static pressure", + "unit": "Pa" + }, + { + "type": "Real", + "name": "TOut", + "description": "Outdoor air temperature", + "unit": "K" + }, + { + "type": "Integer", + "name": "uZonTemResReq", + "description": "Zone cooling supply air temperature reset request", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SupFan", + "description": "Supply fan status", + "unit": "-" + }, + { + "type": "Real", + "name": "TAirSup", + "description": "Measured supply air temperature", + "unit": "K" + }, + { + "type": "Real", + "name": "VSumAdjPopBreZon_flow", + "description": "Sum of the adjusted population component breathing zone flow rate", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VSumAdjAreBreZon_flow", + "description": "Sum of the adjusted area component breathing zone flow rate", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VSumZonPri_flow", + "description": "Sum of the zone primary airflow rates for all zones in all zone groups that are in occupied mode", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "uOutAirFra_max", + "description": "Maximum zone outdoor air fraction, equals to the maximum of primary outdoor air fraction of all zones", + "unit": "-" + }, + { + "type": "Real", + "name": "VSumZonAbsMin_flow", + "description": "Sum of the zone absolute minimum outdoor airflow setpoint", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VSumZonDesMin_flow", + "description": "Sum of the zone design minimum outdoor airflow setpoint", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VAirOut_flow", + "description": "Measured outdoor air volumetric flow rate", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "uCO2Loo_max", + "description": "Maximum zone CO2 control loop output", + "unit": "-" + }, + { + "type": "Real", + "name": "dpMinOutDam", + "description": "Measured pressure difference across the minimum outdoor air damper", + "unit": "Pa" + }, + { + "type": "Real", + "name": "TAirRet", + "description": "Used only for fixed plus differential dry bulb temperature high limit cutoff", + "unit": "K" + }, + { + "type": "Real", + "name": "hAirOut", + "description": "Outdoor air enthalpy", + "unit": "J/kg" + }, + { + "type": "Real", + "name": "hAirRet", + "description": "OA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurement", + "unit": "J/kg" + }, + { + "type": "Boolean", + "name": "u1FreSta", + "description": "Freeze protection stat signal. The stat is normally close (the input is normally true), when enabling freeze protection, the input becomes false", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1SofSwiRes", + "description": "Freeze protection reset signal from software switch", + "unit": "-" + }, + { + "type": "Boolean", + "name": "u1RelFan", + "description": "Relief fan status", + "unit": "-" + }, + { + "type": "Real", + "name": "TAirMix", + "description": "Measured mixed air temperature", + "unit": "K" + }, + { + "type": "Real", + "name": "dpBui", + "description": "Measured building static pressure difference, relative to ambient (positive if pressurized)", + "unit": "Pa" + }, + { + "type": "Real", + "name": "VAirSup_flow", + "description": "Measured AHU supply airflow rate", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VAirRet_flow", + "description": "Measured AHU return airflow rate", + "unit": "m3/s" + } + ], + "outputs": [ + { + "type": "Real", + "name": "TAirSupSet", + "description": "AHU supply air temperature setpoint", + "unit": "K" + }, + { + "type": "Real", + "name": "VEffAirOut_flow_min", + "description": "Effective minimum outdoor airflow setpoint", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "yMinOutDam", + "description": "Minimum outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1MinOutDam", + "description": "Minimum outdoor air damper command on", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetDam", + "description": "Return air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yRelDam", + "description": "Relief air damper commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yOutDam", + "description": "Economizer outdoor air damper commanded position", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1EneCHWPum", + "description": "Commanded on to energize chilled water pump", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1SupFan", + "description": "Supply fan command on", + "unit": "-" + }, + { + "type": "Real", + "name": "ySupFan", + "description": "Air handler supply fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RetFan", + "description": "Return fan commanded on", + "unit": "-" + }, + { + "type": "Real", + "name": "yRetFan", + "description": "Return fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RelFan", + "description": "Relief fan commanded on", + "unit": "-" + }, + { + "type": "Real", + "name": "yRelFan", + "description": "Relief fan commanded speed", + "unit": "-" + }, + { + "type": "Boolean", + "name": "y1RelDam", + "description": "True: 2-position relief damper is commanded open", + "unit": "-" + }, + { + "type": "Real", + "name": "yCooCoi", + "description": "Cooling coil valve commanded position", + "unit": "-" + }, + { + "type": "Real", + "name": "yHeaCoi", + "description": "Heating coil valve commanded position", + "unit": "-" + }, + { + "type": "Integer", + "name": "yAla", + "description": "Alarm level", + "unit": "-" + }, + { + "type": "Real", + "name": "yDpBui", + "description": "Building static pressure difference, relative to ambient (positive if pressurized)", + "unit": "Pa" + }, + { + "type": "Real", + "name": "dpDisSet", + "description": "Return fan discharge static pressure setpoint", + "unit": "Pa" + }, + { + "type": "Integer", + "name": "yChiWatResReq", + "description": "Chilled water reset request", + "unit": "-" + }, + { + "type": "Integer", + "name": "yChiPlaReq", + "description": "Chiller plant request", + "unit": "-" + }, + { + "type": "Integer", + "name": "yHotWatResReq", + "description": "Hot water reset request", + "unit": "-" + }, + { + "type": "Integer", + "name": "yHotWatPlaReq", + "description": "Hot water plant request", + "unit": "-" + } + ], + "parameters": [ + { + "type": "EnergyStandard", + "name": "eneStd", + "description": "Energy standard, ASHRAE 90.1 or Title 24", + "unit": "-" + }, + { + "type": "VentilationStandard", + "name": "venStd", + "description": "Ventilation standard, ASHRAE 62.1 or Title 24", + "unit": "-" + }, + { + "type": "ASHRAEClimateZone", + "name": "ashCliZon", + "description": "ASHRAE climate zone", + "unit": "-" + }, + { + "type": "Title24ClimateZone", + "name": "tit24CliZon", + "description": "California Title 24 climate zone", + "unit": "-" + }, + { + "type": "Boolean", + "name": "have_frePro", + "description": "True: enable freeze protection", + "unit": "-" + }, + { + "type": "FreezeStat", + "name": "freSta", + "description": "Type of freeze stat", + "unit": "-" + }, + { + "type": "OutdoorAirSection", + "name": "minOADes", + "description": "Type of outdoor air section", + "unit": "-" + }, + { + "type": "PressureControl", + "name": "buiPreCon", + "description": "Type of building pressure control system", + "unit": "-" + }, + { + "type": "Boolean", + "name": "have_ahuRelFan", + "description": "True: relief fan is part of AHU; False: the relief fans group that may associate multiple AHUs", + "unit": "-" + }, + { + "type": "ControlEconomizer", + "name": "ecoHigLimCon", + "description": "Economizer high limit control device", + "unit": "-" + }, + { + "type": "CoolingCoil", + "name": "cooCoi", + "description": "Cooling coil type", + "unit": "-" + }, + { + "type": "HeatingCoil", + "name": "heaCoi", + "description": "Heating coil type", + "unit": "-" + }, + { + "type": "Boolean", + "name": "have_perZonRehBox", + "description": "Check if there is any VAV-reheat boxes on perimeter zones", + "unit": "-" + }, + { + "type": "Real", + "name": "VUncDesOutAir_flow", + "description": "Uncorrected design outdoor airflow rate, including diversity where applicable. It can be determined using the 62MZCalc spreadsheet from ASHRAE 62.1 User's Manual", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VDesTotOutAir_flow", + "description": "Design total outdoor airflow rate. It can be determined using the 62MZCalc spreadsheet from ASHRAE 62.1 User's Manual", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VAbsOutAir_flow", + "description": "Design outdoor airflow rate when all zones with CO2 sensors or occupancy sensors are unpopulated. Needed when complying with Title 24 requirements", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "VDesOutAir_flow", + "description": "Design minimum outdoor airflow rate with the areas served by the system are occupied at their design population, including diversity where applicable. Needed when complying with Title 24 requirements", + "unit": "m3/s" + }, + { + "type": "Real", + "name": "pIniSet", + "description": "Initial pressure setpoint for fan speed control", + "unit": "Pa" + }, + { + "type": "Real", + "name": "pMinSet", + "description": "Minimum pressure setpoint for fan speed control", + "unit": "Pa" + }, + { + "type": "Real", + "name": "pMaxSet", + "description": "Duct design maximum static pressure. It is the Max_DSP shown in Section 3.2.1.1 of Guideline 36", + "unit": "Pa" + }, + { + "type": "Real", + "name": "pDelTim", + "description": "Delay time after which trim and respond is activated", + "unit": "s" + }, + { + "type": "Real", + "name": "pSamplePeriod", + "description": "Sample period", + "unit": "s" + }, + { + "type": "Integer", + "name": "pNumIgnReq", + "description": "Number of ignored requests", + "unit": "-" + }, + { + "type": "Real", + "name": "pTriAmo", + "description": "Trim amount", + "unit": "Pa" + }, + { + "type": "Real", + "name": "pResAmo", + "description": "Respond amount (must be opposite in to trim amount)", + "unit": "Pa" + }, + { + "type": "Real", + "name": "pMaxRes", + "description": "Maximum response per time interval (same sign as respond amount)", + "unit": "Pa" + }, + { + "type": "SimpleController", + "name": "fanSpeCon", + "description": "Supply fan speed PID controller", + "unit": "-" + }, + { + "type": "Real", + "name": "kFanSpe", + "description": "Gain of supply fan speed PID controller", + "unit": "-" + }, + { + "type": "Real", + "name": "TiFanSpe", + "description": "Time constant of integrator block for supply fan speed PID controller", + "unit": "s" + }, + { + "type": "Real", + "name": "TdFanSpe", + "description": "Time constant of derivative block for supply fan speed PID controller", + "unit": "s" + }, + { + "type": "Real", + "name": "supFanSpe_max", + "description": "Maximum allowed supply fan speed", + "unit": "-" + }, + { + "type": "Real", + "name": "supFanSpe_min", + "description": "Lowest allowed supply fan speed if fan is on", + "unit": "-" + }, + { + "type": "Real", + "name": "iniFanSpe", + "description": "Initial speed when fan is enabled. It has to be greater than the lowest allowed speed", + "unit": "-" + }, + { + "type": "Real", + "name": "TSupCoo_min", + "description": "Lowest cooling supply air temperature setpoint when the outdoor air temperature is at the higher value of the reset range and above", + "unit": "K" + }, + { + "type": "Real", + "name": "TSupCoo_max", + "description": "Highest cooling supply air temperature setpoint. It is typically 18 degC (65 degF)\n in mild and dry climates, 16 degC (60 degF) or lower in humid climates", + "unit": "K" + }, + { + "type": "Real", + "name": "TOut_min", + "description": "Lower value of the outdoor air temperature reset range. Typically value is 16 degC (60 degF)", + "unit": "K" + }, + { + "type": "Real", + "name": "TOut_max", + "description": "Higher value of the outdoor air temperature reset range. Typically value is 21 degC (70 degF)", + "unit": "K" + }, + { + "type": "Real", + "name": "TSupWarUpSetBac", + "description": "Supply temperature in warm up and set back mode", + "unit": "K" + }, + { + "type": "Real", + "name": "delTimSupTem", + "description": "Delay timer", + "unit": "s" + }, + { + "type": "Real", + "name": "samPerSupTem", + "description": "Sample period of component", + "unit": "s" + }, + { + "type": "Integer", + "name": "ignReqSupTem", + "description": "Number of ignorable requests for TrimResponse logic", + "unit": "-" + }, + { + "type": "Real", + "name": "triAmoSupTem", + "description": "Trim amount", + "unit": "K" + }, + { + "type": "Real", + "name": "resAmoSupTem", + "description": "Response amount", + "unit": "K" + }, + { + "type": "Real", + "name": "maxResSupTem", + "description": "Maximum response per time interval", + "unit": "K" + }, + { + "type": "SimpleController", + "name": "valCon", + "description": "Type of controller for coil valves control", + "unit": "-" + }, + { + "type": "Real", + "name": "kVal", + "description": "Gain of controller for valve control", + "unit": "-" + }, + { + "type": "Real", + "name": "TiVal", + "description": "Time constant of integrator block for valve control", + "unit": "s" + }, + { + "type": "Real", + "name": "TdVal", + "description": "Time constant of derivative block for valve control", + "unit": "s" + }, + { + "type": "Real", + "name": "uHeaCoi_max", + "description": "Upper limit of controller signal when heating coil is off. Require -1 < uHea_max < uCoo_min < 1.", + "unit": "-" + }, + { + "type": "Real", + "name": "uCooCoi_min", + "description": "Lower limit of controller signal when cooling coil is off. Require -1 < uHea_max < uCoo_min < 1.", + "unit": "-" + }, + { + "type": "SimpleController", + "name": "minOAConTyp", + "description": "Type of minimum outdoor air controller", + "unit": "-" + }, + { + "type": "Real", + "name": "kMinOA", + "description": "Gain of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "TiMinOA", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "TdMinOA", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Boolean", + "name": "have_CO2Sen", + "description": "True: some zones have CO2 sensor", + "unit": "-" + }, + { + "type": "Real", + "name": "dpAbsMinOutDam", + "description": "Absolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflow", + "unit": "-" + }, + { + "type": "Real", + "name": "dpDesMinOutDam", + "description": "Design minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflow", + "unit": "Pa" + }, + { + "type": "SimpleController", + "name": "dpConTyp", + "description": "Type of differential pressure setpoint controller", + "unit": "-" + }, + { + "type": "Real", + "name": "kDp", + "description": "Gain of controller", + "unit": "-" + }, + { + "type": "Real", + "name": "TiDp", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "TdDp", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "uRetDam_min", + "description": "Loop signal value to start decreasing the maximum return air damper position", + "unit": "-" + }, + { + "type": "Real", + "name": "delTOutHis", + "description": "Delta between the temperature hysteresis high and low limit", + "unit": "K" + }, + { + "type": "Real", + "name": "delEntHis", + "description": "Delta between the enthalpy hysteresis high and low limits", + "unit": "J/kg" + }, + { + "type": "Real", + "name": "retDamFulOpeTim", + "description": "Time period to keep return air damper fully open before releasing it for minimum outdoor airflow control\n at disable to avoid pressure fluctuations", + "unit": "s" + }, + { + "type": "Real", + "name": "disDel", + "description": "Short time delay before closing the outdoor air damper at disable to avoid pressure fluctuations", + "unit": "s" + }, + { + "type": "Real", + "name": "retDamPhy_max", + "description": "Physically fixed maximum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "retDamPhy_min", + "description": "Physically fixed minimum position of the return air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_max", + "description": "Physically fixed maximum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "outDamPhy_min", + "description": "Physically fixed minimum position of the outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "minOutDamPhy_max", + "description": "Physically fixed maximum position of the minimum outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "minOutDamPhy_min", + "description": "Physically fixed minimum position of the minimum outdoor air damper", + "unit": "-" + }, + { + "type": "Real", + "name": "uHeaMax", + "description": "Lower limit of controller input when outdoor damper opens (see diagram)", + "unit": "-" + }, + { + "type": "Real", + "name": "uCooMin", + "description": "Upper limit of controller input when return damper is closed (see diagram)", + "unit": "-" + }, + { + "type": "Integer", + "name": "minHotWatReq", + "description": "Minimum heating hot-water plant request to active the heating plant", + "unit": "-" + }, + { + "type": "SimpleController", + "name": "freProHeaCoiCon", + "description": "Freeze protection heating coil controller", + "unit": "-" + }, + { + "type": "Real", + "name": "kFrePro", + "description": "Gain of coil controller", + "unit": "-" + }, + { + "type": "Real", + "name": "TiFrePro", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "TdFrePro", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "yMaxFrePro", + "description": "Upper limit of output", + "unit": "-" + }, + { + "type": "Real", + "name": "yMinFrePro", + "description": "Lower limit of output", + "unit": "-" + }, + { + "type": "Real", + "name": "dpBuiSet", + "description": "Building static pressure difference relative to ambient (positive to pressurize the building)", + "unit": "Pa" + }, + { + "type": "Real", + "name": "kRelDam", + "description": "Gain, applied to building pressure control error normalized with dpBuiSet", + "unit": "-" + }, + { + "type": "Real", + "name": "difFloSet", + "description": "Airflow differential between supply air and return air fans required to maintain building pressure at desired pressure", + "unit": "m3/s" + }, + { + "type": "SimpleController", + "name": "retFanCon", + "description": "Type of controller for return fan", + "unit": "-" + }, + { + "type": "Real", + "name": "kRetFan", + "description": "Gain, normalized using dpBuiSet", + "unit": "-" + }, + { + "type": "Real", + "name": "TiRetFan", + "description": "Time constant of integrator block", + "unit": "s" + }, + { + "type": "Real", + "name": "TdRetFan", + "description": "Time constant of derivative block", + "unit": "s" + }, + { + "type": "Real", + "name": "retFanSpe_max", + "description": "Maximum return fan speed", + "unit": "-" + }, + { + "type": "Real", + "name": "retFanSpe_min", + "description": "Minimum return fan speed", + "unit": "-" + }, + { + "type": "Real", + "name": "p_rel_RetFan_min", + "description": "Minimum return fan discharge static pressure difference setpoint", + "unit": "Pa" + }, + { + "type": "Real", + "name": "p_rel_RetFan_max", + "description": "Maximum return fan discharge static pressure difference setpoint", + "unit": "Pa" + }, + { + "type": "Real", + "name": "relFanSpe_min", + "description": "Relief fan minimum speed", + "unit": "-" + }, + { + "type": "Real", + "name": "kRelFan", + "description": "Gain of relief fan controller, normalized using dpBuiSet", + "unit": "-" + }, + { + "type": "Real", + "name": "Thys", + "description": "Hysteresis for checking temperature difference", + "unit": "-" + }, + { + "type": "Real", + "name": "posHys", + "description": "Hysteresis for checking valve position difference", + "unit": "-" + }, + { + "type": "Real", + "name": "hys", + "description": "Hysteresis for checking the relief fan controller output value", + "unit": "-" + } + ] + } + } +} \ No newline at end of file diff --git a/test/test_cdlDoc.js b/test/test_cdlDoc.js index 97be7e29..c8da8643 100644 --- a/test/test_cdlDoc.js +++ b/test/test_cdlDoc.js @@ -128,8 +128,8 @@ mocha.describe('cdlDoc', function () { processHref($, documentation) assert.strictEqual( $.html(), - '

      See Section 5 and

      See Section 5 and Library.ExternalControlBlock

      ' ) }) @@ -139,38 +139,12 @@ mocha.describe('cdlDoc', function () { const createAnchorId = cdlDoc.__get__('createAnchorId') mocha.it('should return "1.1heading-text"', function () { assert.strictEqual( - createAnchorId('1.1', 'Heading Text'), + createAnchorId('Heading Text', '1.1'), '1.1heading-text' ) }) }) - mocha.describe('#createNomenclature()', function () { - const createNomenclature = cdlDoc.__get__('createNomenclature') - mocha.it('should modify the documentation object', function () { - const documentation = [ - { - section: '1.' - }, - { - section: '2.' - }, - { - section: '2.2' - } - ] - createNomenclature(documentation) - assert.deepStrictEqual( - documentation.map(({ headingIdx }) => headingIdx), - [1, 1, 2] - ) - assert.deepStrictEqual( - documentation.map(({ headingNum }) => headingNum), - ['1', '2', '2.1'] - ) - }) - }) - mocha.describe('#modifyInfo()', function () { const modifyInfo = cdlDoc.__get__('modifyInfo') const docElement = { @@ -189,21 +163,23 @@ mocha.describe('cdlDoc', function () { headingIdx: 1, headingNum: '5' } - const modifiedDoc = - '

      ' + - '5. ' + - 'Heading from description string

      \n

      ' + - '5.1. Existing heading

      \n' + - '\n

      Documentation with T + dT1 + dT2 (22 °C, adjustable)

      \n' + const modifiedInfo = { + html: '

      3. Heading from description string

      \n' + + '

      3.1. Existing heading

      \n' + + '\n' + + '

      Documentation with T + dT1 + dT2 (22 °C, adjustable)

      \n', + lastHeadingNum: '3.1' + } mocha.it('should return the given HTML string', function () { - assert.strictEqual( + assert.deepStrictEqual( modifyInfo( docElement, { 'frePro.T': 293.15, 'frePro.dT1': 'frePro.dT2', 'frePro.dT2': 1 }, { 'frePro.T': { unit: 'K', displayUnit: 'degC' }, 'frePro.dT1': { unit: 'K' } }, - unitData + unitData, + '2.1' ), - modifiedDoc + modifiedInfo ) }) }) @@ -225,13 +201,16 @@ mocha.describe('cdlDoc', function () { const jsons = JSON.parse(fs.readFileSync(path.join( process.cwd(), 'test', 'cdlDoc', 'MultiZoneVav.json' ), 'utf8')) - cdlDoc.buildDoc(jsons[0], jsons, unitData, outputDir, 'MultiZoneVavDoc') - const htmlDoc = fs.readFileSync(path.join(outputDir, 'MultiZoneVavDoc.html'), 'utf8') + cdlDoc.buildDoc(jsons[0], jsons, unitData, outputDir, /* includeVariables= */ true, 'MultiZoneVavDoc') + const htmlDoc = fs.readFileSync(path.join(outputDir, 'MultiZoneVavDoc.html')) const htmlDocExp = fs.readFileSync(path.join( process.cwd(), 'test', 'cdlDoc', 'MultiZoneVavDoc.html' - ), 'utf8') + )) fs.rmSync(outputDir, { recursive: true, force: true }) - assert.strictEqual(htmlDoc, htmlDocExp) + assert.strictEqual( + cheerio.loadBuffer(htmlDoc).text(), + cheerio.loadBuffer(htmlDocExp).text() + ) }) }) })