﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
2606	Bad equation solving (wrong symbolic manipulation)	Adrian Pop	probably noone	"Solving this system of equations:
{{{
a = (1 - b)*c + b * d;
a = y;
c = gy;
d = ly;
}}}
for b should result in:
{{{
b = (gy - y)/(gy + ly)
}}}
but OpenModelica does:
{{{
b = (gy - y)/(gy - ly)
}}}
This happens in the AVM model:
C2M2L_CyPhy.Test_Assemblies_Decl.SystemDesignTest
The system is:
{{{
driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.y = 
 (1.0 - driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.lim_p) * 
 driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.u2 + 
 driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.lim_p * 
 driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.u1;

driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.positive_Negative_Split.u = 
driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.y;

driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.gain.y = 
driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.u2;

driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.limited_Map.y = 
driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.u1;
}}}
solved for:
driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.proportional_Combining.lim_p
results in this code for initialization:
{{{
/*
 equation index: 7718
 type: SIMPLE_ASSIGN
 driveLineDesign._example_Engine_Basic_Tstat_Degas._torque_and_fueling_1_1._proportional_Combining._lim_p = 
 DIVISION(
 driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.gain.y - 
 driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.positive_Negative_Split.u, 
 driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.gain.y - 
 driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.limited_Map.y)
 */
}}}
which is clearly wrong, it should be addition instead of subtraction in the divisor:
{{{
driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.gain.y + 
 driveLineDesign.example_Engine_Basic_Tstat_Degas.torque_and_fueling_1_1.limited_Map.y
}}}
"	defect	closed	blocker	1.9.1	Backend	trunk	invalid		Lennart Ochel Willi Braun Martin Sjölund
