Skip to content

Conversation

@chipbarnaby
Copy link
Contributor

Description

Support for revised variable speed heat pump model, including

  • PERFORMANCEMAP, PMGRIDAXIS, and PMLOOKUPDATA input
  • Modification of RSYS input to reference PERFORMANCEMAP
  • Significant rework of RSYS internals to use performance map data.
  • Update of fan power and defrost models re revised modeling assumptions
  • Documentation for above
  • Minor results changes for several regression tests; replaced test ASHPVC2.cse with perfmap.cse

@chipbarnaby chipbarnaby marked this pull request as draft May 13, 2024 14:24
@nealkruis nealkruis changed the title Perfmap Add performance map based RSYS systems Dec 10, 2024
ASHPHYD "ASHPHydronic"
ASHPPKGRM "ASHPPkgRoom"
ASHPVC "VCHP2"
ASHPPM "ASHPPM|!VCHP3"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this work? I don't think I've seen this before?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The choice scheme supports aliases. From cndtypes.def --

///////////////////////////////////////////////////////////////////////////////
// Choices: text <-> constant mapping
///////////////////////////////////////////////////////////////////////////////
// choice TEXT may specify aliases ("MAIN|ALIAS1|ALIAS2")
// choices may have TEXT beginning a prefix
// * = hidden (output only, not recognized on input)
// ! = alias (alternative wording for prior "real" choice
// ~ = deprecated alias (same as ! but info msg on input)
// else "normal"
// NOTE: only MAIN yields #define C_XXX_xxx
///////////////////////////////////////////////////////////////////////////////

src/CNRECS.DEF Outdated
Comment on lines 695 to 697
*i CULSTR pmx_id // axis identifier (e.g. "DBT")
// cannot use PMGRIDAXIS.name
// multiple PMGRIDAXISs may use same pmx_id
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should call this "type" instead of "id"? "id" makes it sound like it's something the user can make up, but really it needs to match the types defined by the particular performance map use case.

src/CNRECS.DEF Outdated
*f *e FLOAT_GZ rs_COP115; // output: full speed cooling COP at 115F
*f *e FLOAT_GEZ rs_cap82; // output: total full speed net cooling capacity at 82 F (>= 0), Btuh
*f *e FLOAT_GZ rs_COP82; // output: full speed cooling COP at 82F
#if 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean up before merge.

src/cnloads.cpp Outdated
{ // pre-2024 assumptions for non-ASHPPM types
// reverse-calc from prior hard-coded Btuh/ton values
float fanHeatPerTon =
#if 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean up?

src/cnloads.cpp Outdated
#endif
rs_IsPkgRoom() ? 0.f // package room: no fan power adjustment
: rs_fan.fn_motTy == C_MOTTYCH_PSC ? 500. // PSC: .365 W/cfm
#if 1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean up?

src/cueval.cpp Outdated
return RCOK;
} // cupfree
//============================================================================
#if 0 // out of service
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean up?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes

src/cueval.h Outdated
#endif
RC FC cuEvalR( void *ip, void **ppv, const char **pmsg, USI *pBadH);
RC FC cupfree( DMP *p);
#if 0 // out of service, 3-24
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean up?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes

src/nummeth.cpp Outdated
return i;
} // ::regula
//-----------------------------------------------------------------------------
#if 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean up? What is this all about?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Somebody's root finding method that I must have been fooling with. Deleted.

// class PMGRIDAXIS: perfmap grid values (independent vars, e.g. DBT, speed, )
// class PMLOOKUPDATA: perfmap performance data (e.g. capacity, power, )
///////////////////////////////////////////////////////////////////////////////
PMACCESS::PMACCESS()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This class should be renamed so it's clear it is specific to the RSYS use-case.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe. Wait for typed performance map redesign and see what falls out.

@nealkruis nealkruis self-requested a review December 17, 2024 00:36
Copy link
Contributor

@nealkruis nealkruis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One 32-bit regression test is failing, and might want to change "DBT" to something more specific.

Comment on lines 77 to 78
Documents the dimension of the axis, for example "DBT", "Speed", or "Flow".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not just the dimension, but the actual grid variable (since, for example, multiple axes might be dry bulb temperatures). "DBT" should be changed to "OutdoorDryBulbTemperature" (or something similar).

@nealkruis nealkruis merged commit 0f5ce40 into main Dec 18, 2024
3 of 4 checks passed
@nealkruis nealkruis deleted the perfmap branch December 18, 2024 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants