Opened 11 years ago
Closed 7 years ago
#2246 closed defect (worksforme)
Variable index model gives incorrect results
Reported by: | casella | Owned by: | probably noone |
---|---|---|---|
Priority: | high | Milestone: | 1.13.0 |
Component: | Backend | Version: | trunk |
Keywords: | Cc: |
Description (last modified by casella)
The following model
model foo Real x1, x2; equation der(x1) = 2; if x1 < 1 then der(x2) = 1; else x2 = 1; end if; end foo;
simulated for one second gives as results x1 = 2*time (which is correct) and x2 = time, which is wrong for time > 0.5.
I understand an error should be generated at time = 0.5, or maybe right at compile time, unless we can handle variable structure systems, which we obviously can't (or can we?).
Change History (11)
comment:1 Changed 11 years ago by sjoelund.se
- Description modified (diff)
comment:2 Changed 11 years ago by casella
- Description modified (diff)
comment:3 Changed 11 years ago by sjoelund.se
- Milestone changed from 1.9.0 to 1.9.1
comment:4 Changed 10 years ago by sjoelund.se
- Milestone changed from 1.9.1 to 1.9.2
This ticket was not closed for 1.9.1, which has now been released. It was batch modified for milestone 1.9.2 (but maybe an empty milestone was more appropriate; feel free to change it).
comment:5 Changed 10 years ago by sjoelund.se
- Milestone changed from 1.9.2 to 1.9.3
Milestone changed to 1.9.3 since 1.9.2 was released.
comment:6 Changed 9 years ago by sjoelund.se
- Milestone changed from 1.9.3 to 1.9.4
Moved to new milestone 1.9.4
comment:7 Changed 9 years ago by sjoelund.se
- Milestone changed from 1.9.4 to 1.9.5
Milestone pushed to 1.9.5
comment:8 Changed 9 years ago by sjoelund.se
- Milestone changed from 1.9.5 to 1.10.0
Milestone renamed
comment:9 Changed 8 years ago by sjoelund.se
- Milestone changed from 1.10.0 to 1.11.0
Ticket retargeted after milestone closed
comment:10 Changed 8 years ago by sjoelund.se
- Milestone changed from 1.11.0 to 1.12.0
Milestone moved to 1.12.0 due to 1.11.0 already being released.
comment:11 Changed 7 years ago by casella
- Milestone changed from 1.12.0 to 1.13.0
- Resolution set to worksforme
- Status changed from new to closed
As of v1.13.0-dev-155-g68350e9, the simulation stops at time = 0.5. There, the debugger shows that it is not possible to solve
if x1 < 1.0 then $DER.x2 - 1.0 else x2 - 1.0 = 0
for der(x2), which I think points out clearly enough what is the root cause of the problem.
Postponed until 1.9.1