#5457 closed defect (duplicate)
Re-simulation does not consider updated value
Reported by: | ceraolo | Owned by: | somebody |
---|---|---|---|
Priority: | high | Milestone: | 1.14.0 |
Component: | *unknown* | Version: | v1.13.2 |
Keywords: | Cc: |
Description (last modified by ceraolo)
Consider the following model
model Test2 import Modelica.Constants.pi; parameter Real Ipm = 1.5; parameter Real varPar (fixed=false); initial equation if Ipm>1.0 then varPar=pi/2; else varPar=asin(Ipm); end if; equation end Test2;
When run from OMEdit with default simulation parameters (and "Evaluate all parameter at compile time" unchecked) I get for varPar, correctly 1.5708.
Now I change, from the plotting perspective, Ipm from 1.5 to 0.5, and click on re-simulate button.
Then varPar remains at the old value instead of changing into 0.523599.
Checked with Connected to v1.14.0-dev-234 under windows (64 bit)
Change History (10)
comment:1 Changed 5 years ago by ceraolo
- Summary changed from An issue with parameters and and initial equations to An issue with parameters and initial equations
comment:2 in reply to: ↑ description Changed 5 years ago by Arinomo <trista.arinomo@…>
comment:3 Changed 5 years ago by ceraolo
Well, my report was bad.
I'm going to change name and description of the ticket in the next few minutes.
comment:4 Changed 5 years ago by ceraolo
- Description modified (diff)
- Summary changed from An issue with parameters and initial equations to Re-simulation does not consider updated value
comment:5 Changed 5 years ago by Arinomo <trista.arinomo@…>
Could you test this itteration?
model initParam import Modelica.Constants.pi; parameter Real Ipm; parameter Real varPar(fixed=false); initial equation if Ipm>1.0 then varPar=pi/2; else varPar=asin(Ipm); end if; equation end initParam;
if I understand it correctly, Re-Simulate doesn't re-build/re-compile your model, since you set Ipm to 1.5, it always take that value. But if you arn't defining Ipm, you can change its value and got a right simualtion result. Or you could set
parameter Real Ipm(start=1.5, fixed=false);
but somehow i cannot cahnge the value if it set to parameter and have a start value.
comment:6 follow-ups: ↓ 9 ↓ 10 Changed 5 years ago by ceraolo
Your initParam works as expected.
I suspect that in this ticket's model Ipm is not changeable since it is used in an if condition and therefore considered to be a structural parameter.
In this case, however, the edit box under the Value column should not appear.
Yes, I'm pretty sure this is the reason. For this I'm going to change again this ticket's description and its priority :-)
comment:7 Changed 5 years ago by ceraolo
- Resolution set to duplicate
- Status changed from new to closed
comment:8 Changed 5 years ago by ceraolo
duplicate of #5454
comment:9 in reply to: ↑ 6 Changed 5 years ago by Arinomo <trista.arinomo@…>
Replying to ceraolo:
Your initParam works as expected.
I suspect that in this ticket's model Ipm is not changeable since it is used in an if condition and therefore considered to be a structural parameter.
In this case, however, the edit box under the Value column should not appear.
Yes, I'm pretty sure this is the reason. I'm going to close this ticket.
Just to an idea, you could also define Ipm as input
input Real Ipm(start=1.5,fixed=fasle)
so you can change the value in plotting view. Hope it helps.
comment:10 in reply to: ↑ 6 Changed 5 years ago by casella
Replying to ceraolo:
I suspect that in this ticket's model Ipm is not changeable since it is used in an if condition and therefore considered to be a structural parameter.
Absolutely.
In this case, however, the edit box under the Value column should not appear.
That's the subject of #5454, I've added a comment there.
Replying to ceraolo:
Your model work for me using ver1.14.0-def. With Ipm = 1.5, i got varPar = 1.5708 and for Ipm = 0.5, i've got varPar = 0.523599.Do you have any additional flags set?