[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EnergyPlus_Support] Re: Can parametrics objects be used within EMS?



Thanks for Your interest in the topic.
Unfortunately, I could not made it with Jean idea, although it shed light in the right direction. I could not read and modify the schedule values at the same time so I did the following:
1. I created new schedule
   Schedule:Compact,
    HW LOOPSCHEDULE1,        !- Name
    Temperature,             !- Schedule Type Limits Name
    Through: 12/31,          !- Field 1
    For: AllDays,            !- Field 2
    Until: 24:00,            !- Field 3
    =$SuppT;                 !- Field 4

2. Added new sensor in EMS - Jean Proposal
EnergyManagementSystem:Sensor,
    HWLS,                    !- Name
    HW LOOPSCHEDULE1,        !- Output:Variable or Output:Meter Index Key Name
    Schedule Value;          !- Output:Variable or Output:Meter Name

3. Adjusted EMS program

EnergyManagementSystem:Program,
    HWSupplyTemperatureControl,  !- Name
    IF (OutsideAirSensor < (0 - 12.0)),  !- Program Line 1
    SET ControlValve=HWLS,   !- Program Line 2
    ELSEIF (OutsideAirSensor > 12.0),  !- A4
    SET ControlValve=45.0,   !- A5
    ELSE,                    !- A6
    SET ControlValve=(1/12)*(22.5-(0.5)*(HWLS))*OutsideAirSensor+(0.5)*((HWLS)+45),  !- A7
    ENDIF;                   !- A8

Now the values in HW LoopSchedule are changing in the right way, although Central Boiler Output Node Temp and HW Supply Node Temp are different, but probably is due to different input values compared to the original file which was working fine (HW LoopSchedule Value, and both node temperatures were identical)

Marko

--- In EnergyPlus_Support@xxxxxxxxxxxxxxx, Yi Zhang <yizhang@...> wrote:
>
> Dear Marko,
> 
> It looks to me Jean has provided a viable solution. Could you let us know if it worked? On the other hand, I think your original problem may be from the way the parameter was referenced in the EMS code. To use the parameter, you need to insert "=$SuppT", rather than just "$SuppT". You may open one of the idf files generated by the parametric pre-processor, and search for "$SuppT". If you find any, that would mean they haven't been replaced with the actual value.
> 
> If you only need to inject values into your model, rather than using the formula or logic functions of the parametric pre-processor, jEPlus may be easier tool for your job. Another potential advantage of jE+ is that you can in fact define the whole EMS program as a parameter, to test different control logics.
> 
> Cheers,
> 
> Yi
> 
> From: EnergyPlus_Support@xxxxxxxxxxxxxxx [mailto:EnergyPlus_Support@xxxxxxxxxxxxxxx] On Behalf Of Jean marais
> Sent: 10 July 2013 11:21
> To: EnergyPlus_Support@xxxxxxxxxxxxxxx
> Subject: [EnergyPlus_Support] Re: Can parametrics objects be used within EMS?
> 
> 
> 
> Do you define how the parametric files are to be called? e.g.
> 
> Parametric:FileNameSuffix,
> Names,
> P1,
> P2;
> 
> I would think the parametric preprocessor runs and inserts the values into each sepperate idf. Then in the simulation the EMS code is envoked as normal, i.e. there you won't see any $, but only the value that was written in.
> 
> I would however, do the substitution via a variable where myvalue,
> is the first on the line...for example:
> 
> Schedule:Compact,
> HW LOOPSCHEDULE, !- Name
> Temperature, !- Schedule Type Limits Name
> Through: 12/31, !- Field 1
> For: Weekdays WinterDesignDay, !- Field 2
> Until: 24:00, !- Field 3
> =$SuppT, !- Field 4
> For: AllOtherDays, !- Field 5
> Until: 24:00, !- Field 6
> 45; !- Field 7
> 
> EnergyManagementSystem:GlobalVariable,
> SuppTvalue; !- Erl Variable 2 Name
> 
> EnergyManagementSystem:Sensor,
> HW_LOOPSCHEDULE_Sensor,
> HW LOOPSCHEDULE,
> Schedule Value;
> 
> EnergyManagementSystem:Program,
> HWSupplyTemperatureControl, !- Name
> 
> SET SuppTvalue = HW LOOPSCHEDULE Sensor,
> 
> IF (OutsideAirSensor < (0 - 12.0)), !- Program Line 1
> SET ControlValve==SuppTvalue,!- Program Line 2
> ELSEIF (OutsideAirSensor > 12.0), !- A4
> SET ControlValve=45.0, !- A5
> ELSE, !- A6
> SET ControlValve=((1/12)*(22.5-(0.5)*SuppTvalue))*OutsideAirSensor+((0.5)*(SuppTvalue+45), !- A7
> ENDIF; !- A8
> 
> *********************************
> or you could try direct from the sensor in as
> 
> IF (OutsideAirSensor < (0 - 12.0)), !- Program Line 1
> SET ControlValve==HW_LOOPSCHEDULE_Sensor,!- Program Line 2
> ELSEIF (OutsideAirSensor > 12.0), !- A4
> SET ControlValve=45.0, !- A5
> ELSE, !- A6
> SET ControlValve=((1/12)*(22.5-(0.5)*HW_LOOPSCHEDULE_Sensor))*OutsideAirSensor+((0.5)*(HW_LOOPSCHEDULE_Sensor+45), !- A7
> ENDIF; !- A8
> 
> Jean
> 
> --- In EnergyPlus_Support@xxxxxxxxxxxxxxx<mailto:EnergyPlus_Support%40yahoogroups.com>, "marko.ignjatovic1980" <marko.ignjatovic1980@> wrote:
> >
> > Hi all,
> >
> > I am trying to do sensitivity analysis of my model. I generated sample for input vector(s), and figured that the easiest way is to use Parametrics within E+. In my model I modeled simple boiler control using EMS. It worked fine when I had only design values. Now, i tried inserting objects from parametric runs, but E+ collapses. In addition I am giving part of IDF file.
> >
> > Sincerely
> >
> > Marko
> >
> > Schedule value varied by EMS
> >
> > Schedule:Compact,
> > HW LOOPSCHEDULE, !- Name
> > Temperature, !- Schedule Type Limits Name
> > Through: 12/31, !- Field 1
> > For: Weekdays WinterDesignDay, !- Field 2
> > Until: 24:00, !- Field 3
> > =$SuppT, !- Field 4
> > For: AllOtherDays, !- Field 5
> > Until: 24:00, !- Field 6
> > 45; !- Field 7
> >
> > EMS Sensor
> >
> > EnergyManagementSystem:Sensor,
> > OutsideAirSensor, !- Name
> > Environment, !- Output:Variable or Output:Meter Index Key Name
> > Outdoor Dry Bulb; !- Output:Variable or Output:Meter Name
> >
> >
> > EMS Actuator
> >
> > EnergyManagementSystem:Actuator,
> > ControlValve, !- Name
> > HW LOOPSCHEDULE, !- Actuated Component Unique Name
> > Schedule:Compact, !- Actuated Component Type
> > Schedule Value; !- Actuated Component Control Type
> >
> > EMS Program Calling mng
> >
> > EnergyManagementSystem:ProgramCallingManager,
> > HWSupplyTemp Control, !- Name
> > BeginTimestepBeforePredictor, !- EnergyPlus Model Calling Point
> > HWSupplyTemperatureControl; !- Program Name 1
> >
> > EMS Program
> >
> > EnergyManagementSystem:Program,
> > HWSupplyTemperatureControl, !- Name
> > IF (OutsideAirSensor < (0 - 12.0)), !- Program Line 1
> > SET ControlValve==$SuppT,!- Program Line 2
> > ELSEIF (OutsideAirSensor > 12.0), !- A4
> > SET ControlValve=45.0, !- A5
> > ELSE, !- A6
> > SET ControlValve=((1/12)*(22.5-(0.5)*$SuppT))*OutsideAirSensor+((0.5)*($SuppT+45), !- A7
> > ENDIF; !- A8
> >
> > Parametric
> >
> > Parametric:SetValueForRun,
> > $SuppT, !- Name
> > 64.3905; !- Value for run 1
> >
>



------------------------------------

Primary EnergyPlus support is found at:
http://energyplus.helpserve.com or send a message to energyplus-support@xxxxxxxx

The primary EnergyPlus web site is found at:
http://www.energyplus.gov

The group web site is:
http://groups.yahoo.com/group/EnergyPlus_Support/

Attachments are currently allowed but be mindful that not everyone has a high speed connection.  Limit attachments to small files.

EnergyPlus Documentation is searchable.  Open EPlusMainMenu.pdf under the Documentation link and press the "search" button.
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/EnergyPlus_Support/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/EnergyPlus_Support/join
    (Yahoo! ID required)

<*> To change settings via email:
    EnergyPlus_Support-digest@xxxxxxxxxxxxxxx 
    EnergyPlus_Support-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    EnergyPlus_Support-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/