lbl-srg / EnergyPlusToFMU

EnergyPlus export as a Functional Mockup Unit for co-simulation
41 stars 17 forks source link

Outputs do not change with inputs #7

Closed yyuanjoy closed 7 years ago

yyuanjoy commented 7 years ago

Hi Thierry

I use the "schedule" example to generated a FMU file, and then import this file into dymola. Firstly, I found I have to change the .idf of the schedule example, because it is the v8-5-0, while I'm using v8-6-0. The input format for "other equipment" is different in these two version. If I kept the example unchanged, I can still generate the FMU, but dymola will stay as "initializing" and cannot get the results.

Then, I used a real expression in dymola as the FMU input, but unfortunately, no matter how I change the input, the output, which is the Troom, never changes.

Test.zip

I've attached the files I used in this test. Would you please kindly guide me what's wrong in my model? Thank you a lot!!

Best, Yuan

tsnouidui commented 7 years ago

@yyuanjoy I looked at your .mo file and saw few issues:

The simulation stop time was set in the .mo file to be 86400s. You set thefmi_NumberOfSteps to be 144 which implies a time step of 600s. However your IDF file had a time step of 15 minutes. So you need to change fmi_NumberOfStepsto be 96.

I am not sure whether you set the simulation Stop time in Dymola to also be 86400. This needs to be done too since Dymola does not propagate simulation settings to the FMU. To change that, go to the Simulation Setup tab of Dymola, and set the simulation Stop time to match the Stop time set in the FMU.

You will also need to set the output Interval length of Dymola to be 900. This will make sure that Dymola does not call the FMU at times different from time+ time step.

These changes should lead to following simulation command:

simulateModel("fmutest", stopTime=86400, numberOfIntervals=0, outputInterval=900, method="dassl", resultFile="fmutest");

I ran the example you sent without any issues.

yyuanjoy commented 7 years ago

@tsnouidui

I've synchronized the time steps as you suggested. However, I still cannot impact the output by changing the input real expression. For example, the attached picture is the outputs of two simulation senario, where I set inputs as 1 and 2000, respectively. You can see that the output lines are exactly the same. If there any other possible error I could have made? Thank you!!

Best, Yuan simulation_results

tsnouidui commented 7 years ago

@yyuanjoy

I looked at your IDf and saw following:

! ===============================================================
! Other Equipment to link FMU air system to this room model
! -- Sensible heat transfer
OtherEquipment,
    OthEquSen_ZoneOne,       !- Name
    None,                    !- Fuel Type
    ZONE ONE,                !- Zone or ZoneList Name
    Sch 1,                   !- Schedule Name
    EquipmentLevel,          !- Design Level Calculation Method
    1,                       !- Design Level {W}
    ,                        !- Power per Zone Floor Area {W/m2}
    0,                       !- Power per Person {W/Person}
    0,                       !- Fraction Latent
    0,                       !- Fraction Radiant
    ;                        !- Fraction Lost

ExternalInterface:FunctionalMockupUnitExport:To:Schedule,
    FMU_OthEqu_ZoneOne,      !- Schedule Name
    Fraction,                !- Schedule Type Limits Names
    Q,                       !- FMU Variable Name
    0;                       !- Initial Value

The OtherEquipmentdoesn't seem to be using the right schedule. It is set to use the Schedule with the name Sch 1 whereas the ExternalInterface Schedule's name is FMU_OthEqu_ZoneOne.

This might explain why you do not see any changes when changing inputs.

yyuanjoy commented 7 years ago

Hi Thierry,

I followed your suggestion and change the schedule name as “Sch 1”. The inputs are as follow

OtherEquipment, ZONE ONE OthEq 1, !- Name Electricity, !- Fuel Type ZONE ONE, !- Zone or ZoneList Name Sch 1, !- Schedule Name EquipmentLevel, !- Design Level Calculation Method 1, !- Design Level {W} , !- Power per Zone Floor Area {W/m2} 0.000, !- Power per Person {W/Person} 0, !- Fraction Latent 0.3, !- Fraction Radiant ; !- Fraction Lost

ExternalInterface:FunctionalMockupUnitExport:To:Schedule, Sch 1, !- Schedule Name Fraction, !- Schedule Type Limits Names Q, !- FMU Variable Name 0; !- Initial Value

However, Dymola failed to initialize the input FMU file. Attached is the dymola scree. It takes forever to initializing simulation.

Please for your further instruction. Thank you a lot!!

Best, Yuan Yuan

[cid:image001.png@01D2B84A.DD08AE30] From: Thierry Nouidui [mailto:notifications@github.com] Sent: 2017年4月11日 1:34 To: lbl-srg/EnergyPlusToFMU Cc: Yuan, Yuan Export License Required - US UTRC-China; Mention Subject: [External] Re: [lbl-srg/EnergyPlusToFMU] Outputs do not change with inputs (#7)

@yyuanjoyhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_yyuanjoy&d=DwMFaQ&c=ilBQI1lupc9Y65XwNblLtw&r=CWtew779q57pGI86XM_CM9f6HAAKLxyG8xcR2cpD3FU&m=9BaZZ2RVGtCfk3Jl67zBfv1zKr-WT2O0qCiDy-Stoa0&s=ZACcuZg6jmjMsq3CyTlrg45rb3bqoHW7LmUSUCyen0U&e=

I looked at your IDf and saw following:

! ===============================================================

! Other Equipment to link FMU air system to this room model

! -- Sensible heat transfer

OtherEquipment,

OthEquSen_ZoneOne,       !- Name

None,                    !- Fuel Type

ZONE ONE,                !- Zone or ZoneList Name

Sch 1,                   !- Schedule Name

EquipmentLevel,          !- Design Level Calculation Method

1,                       !- Design Level {W}

,                        !- Power per Zone Floor Area {W/m2}

0,                       !- Power per Person {W/Person}

0,                       !- Fraction Latent

0,                       !- Fraction Radiant

;                        !- Fraction Lost

ExternalInterface:FunctionalMockupUnitExport:To:Schedule,

FMU_OthEqu_ZoneOne,      !- Schedule Name

Fraction,                !- Schedule Type Limits Names

Q,                       !- FMU Variable Name

0;                       !- Initial Value

The OtherEquipmentdoesn't seem to be using the right schedule. It is set to use the Schedule with the name Sch 1 whereas the ExternalInterface Schedule's name is FMU_OthEqu_ZoneOne.

This might explain why you do not see any changes when changing inputs.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_lbl-2Dsrg_EnergyPlusToFMU_issues_7-23issuecomment-2D293021982&d=DwMFaQ&c=ilBQI1lupc9Y65XwNblLtw&r=CWtew779q57pGI86XM_CM9f6HAAKLxyG8xcR2cpD3FU&m=9BaZZ2RVGtCfk3Jl67zBfv1zKr-WT2O0qCiDy-Stoa0&s=FvVcpFZ8NyJqU2Rbsy6aK1soVzF0shlZ0TUWu2yekmY&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AZhdl-5F0ohwz0-2DemYdNhi-5Fol-5FNC5-2Dsgahks5rumf7gaJpZM4MsrA0&d=DwMFaQ&c=ilBQI1lupc9Y65XwNblLtw&r=CWtew779q57pGI86XM_CM9f6HAAKLxyG8xcR2cpD3FU&m=9BaZZ2RVGtCfk3Jl67zBfv1zKr-WT2O0qCiDy-Stoa0&s=-XGVCqY6ij7JK_8mrb84av4i0VbVLM67WttSdqY9t5U&e=.

tsnouidui commented 7 years ago

@yyuanjoy your IDF contains another schedule with name Sch 1:

Schedule:Year, Sch 1, !- Name Fraction, !- Schedule Type Limits Name Week Sch 1, !- Schedule:Week Name 1 1, !- Start Month 1 1, !- Start Day 1 12, !- End Month 1 31; !- End Day 1

I suggest to use a different and unique name and make sure that you don't have duplicates schedule names in your IDF file.

yyuanjoy commented 7 years ago

It works now. Thank you!

From: Thierry Nouidui [mailto:notifications@github.com] Sent: 2017年4月20日 1:09 To: lbl-srg/EnergyPlusToFMU Cc: Yuan, Yuan Export License Required - US UTRC-China; Mention Subject: [External] Re: [lbl-srg/EnergyPlusToFMU] Outputs do not change with inputs (#7)

@yyuanjoyhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_yyuanjoy&d=DwMFaQ&c=ilBQI1lupc9Y65XwNblLtw&r=CWtew779q57pGI86XM_CM9f6HAAKLxyG8xcR2cpD3FU&m=vl5V5QibMVj9e_lJK4j1o9QdHgqmQ9eQHZbCq0Jr9e0&s=6_okxWWoOJmoZ5yebjlPYB7-SeFZeiD6XapNuaoBfPQ&e= your IDF contains another schedule with name Sch 1:

Schedule:Year, Sch 1, !- Name Fraction, !- Schedule Type Limits Name Week Sch 1, !- Schedule:Week Name 1 1, !- Start Month 1 1, !- Start Day 1 12, !- End Month 1 31; !- End Day 1

I suggest to use a different and unique name and make sure that you don't have duplicates schedule names in your IDF file.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_lbl-2Dsrg_EnergyPlusToFMU_issues_7-23issuecomment-2D295348833&d=DwMFaQ&c=ilBQI1lupc9Y65XwNblLtw&r=CWtew779q57pGI86XM_CM9f6HAAKLxyG8xcR2cpD3FU&m=vl5V5QibMVj9e_lJK4j1o9QdHgqmQ9eQHZbCq0Jr9e0&s=DL41radcmypIgJl97cUaJEggscatpXxFC8iv9mxf4zw&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AZhdlzxheFpl0yOq8GysQ0W9PnyyrdVPks5rxj-2DwgaJpZM4MsrA0&d=DwMFaQ&c=ilBQI1lupc9Y65XwNblLtw&r=CWtew779q57pGI86XM_CM9f6HAAKLxyG8xcR2cpD3FU&m=vl5V5QibMVj9e_lJK4j1o9QdHgqmQ9eQHZbCq0Jr9e0&s=cQgkkD_HMpAKPo3CcHEIQwV-9E2N4vBXJ9hzuWi9cVg&e=.

tsnouidui commented 7 years ago

Great. I will then close this.