Running command: "" <> buildModelFMU(OpenHPL.Examples.HPSimple_Francis_IPSLGenInfBus,fileNamePrefix="OpenHPL_OpenHPL_Examples_HPSimple_Francis_IPSLGenInfBus",fmuType="me",version="2.0",platforms={"static"}) Notification: Performance of loadModel(OpenHPL): time 2.328/2.328, allocations: 258 MB / 265.1 MB, free: 5.379 MB / 218.7 MB Notification: Performance of FrontEnd - loaded program: time 2.044e-05/2.034e-05, allocations: 3.984 kB / 327.7 MB, free: 9.898 MB / 266.7 MB Notification: Performance of FrontEnd - Absyn->SCode: time 0.1279/0.1279, allocations: 60.24 MB / 388 MB, free: 13.56 MB / 330.7 MB Notification: Performance of FrontEnd - scodeFlatten: time 0.526/0.6539, allocations: 108.4 MB / 496.4 MB, free: 3.605 MB / 378.7 MB Notification: Performance of FrontEnd - mkProgramGraph: time 0.0002774/0.6543, allocations: 86.95 kB / 496.5 MB, free: 3.594 MB / 378.7 MB Notification: Performance of FrontEnd - DAE generated: time 0.207/0.8613, allocations: 43.36 MB / 0.5272 GB, free: 1.379 MB / 410.7 MB Notification: Performance of FrontEnd: time 2.585e-06/0.8614, allocations: 0 / 0.5272 GB, free: 1.379 MB / 410.7 MB Notification: Performance of Transformations before backend: time 0.0002067/0.8616, allocations: 51.94 kB / 0.5273 GB, free: 1.328 MB / 410.7 MB Notification: Model statistics after passing the front-end and creating the data structures used by the back-end: * Number of equations: 398 * Number of variables: 398 Notification: Performance of Generate backend data structure: time 0.01266/0.8743, allocations: 2.703 MB / 0.5299 GB, free: 14.76 MB / 426.7 MB Notification: Performance of prepare preOptimizeDAE: time 5.453e-05/0.8744, allocations: 12.03 kB / 0.5299 GB, free: 14.75 MB / 426.7 MB Notification: Performance of preOpt normalInlineFunction (simulation): time 0.006547/0.8809, allocations: 0.7005 MB / 0.5306 GB, free: 14.09 MB / 426.7 MB Notification: Performance of preOpt evaluateParameters (simulation): time 0.004343/0.8853, allocations: 1.235 MB / 0.5318 GB, free: 13.06 MB / 426.7 MB Notification: Performance of preOpt simplifyIfEquations (simulation): time 0.0005463/0.8859, allocations: 307 kB / 0.5321 GB, free: 12.71 MB / 426.7 MB Notification: Performance of preOpt expandDerOperator (simulation): time 0.0005167/0.8864, allocations: 99.84 kB / 0.5322 GB, free: 12.62 MB / 426.7 MB Notification: Performance of preOpt removeEqualFunctionCalls (simulation): time 0.004834/0.8913, allocations: 1.655 MB / 0.5338 GB, free: 11.58 MB / 426.7 MB Notification: Performance of preOpt clockPartitioning (simulation): time 0.004335/0.8957, allocations: 1.59 MB / 0.5354 GB, free: 10.45 MB / 426.7 MB Notification: Performance of preOpt findStateOrder (simulation): time 4.999e-05/0.8957, allocations: 0 / 0.5354 GB, free: 10.45 MB / 426.7 MB Notification: Performance of preOpt replaceEdgeChange (simulation): time 0.0002421/0.896, allocations: 4 kB / 0.5354 GB, free: 10.45 MB / 426.7 MB Notification: Performance of preOpt inlineArrayEqn (simulation): time 4.407e-05/0.8961, allocations: 40 kB / 0.5354 GB, free: 10.41 MB / 426.7 MB Notification: Performance of preOpt removeSimpleEquations (simulation): time 0.021/0.9171, allocations: 6.206 MB / 0.5415 GB, free: 4.238 MB / 426.7 MB Notification: Performance of preOpt comSubExp (simulation): time 0.01804/0.9352, allocations: 3.255 MB / 0.5446 GB, free: 0.9336 MB / 426.7 MB Notification: Performance of preOpt resolveLoops (simulation): time 0.002608/0.9378, allocations: 0.8592 MB / 0.5455 GB, free: 84 kB / 426.7 MB Notification: Performance of preOpt evalFunc (simulation): time 0.001518/0.9394, allocations: 0.8837 MB / 0.5463 GB, free: 15.01 MB / 442.7 MB Notification: Performance of preOpt encapsulateWhenConditions (simulation): time 5.551e-05/0.9394, allocations: 60.55 kB / 0.5464 GB, free: 14.95 MB / 442.7 MB Notification: Performance of pre-optimization done (n=179): time 5.53e-06/0.9395, allocations: 0 / 0.5464 GB, free: 14.95 MB / 442.7 MB [/var/lib/jenkins/ws/OpenModelicaLibraryTestingWork/OMCompiler/build/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo:552:5-552:12:writable] Error: Model is structurally singular, error found sorting equations 114: Frequency.y = Frequency.k * order2_1.w; 112: governor.add3.u2 = governor.gain_f.k * Frequency.y; 115: governor.P_ref = power.offset + (if time < power.startTime then 0.0 else if time < power.startTime + power.duration then (time - power.startTime) * power.height / power.duration else power.height); 108: governor.look_up_table.u[1] = governor.gain_P.k * governor.P_ref; 94: governor.look_up_table.y[1] = Modelica.Blocks.Tables.Internal.getTable1DValue(governor.look_up_table.tableID, 1, governor.look_up_table.u[1]); 104: der(governor.control.x_scaled[1]) = (governor.control.a_end * governor.Y_gv - governor.control.a[2] * governor.control.x_scaled[1]) / governor.control.a[1]; 106: governor.control.x[1] = governor.control.x_scaled[1] / governor.control.a_end; 107: governor.add1.u2 = governor.gain_droop.k * governor.Y_gv; 105: governor.control.y = (governor.control.bb[2] - governor.control.a[2] * governor.control.d) * governor.control.x[1] + governor.control.d * governor.Y_gv; 111: governor.add2.u2 = governor.add3.k1 * governor.const.k + governor.add3.k2 * governor.add3.u2; 113: governor.add2.u1 = governor.gain_droop2.k * governor.look_up_table.y[1]; 109: governor.add1.y = governor.add1.k1 * governor.control.y + governor.add1.k2 * governor.add1.u2; 95: der(governor.pilot_servo.x_scaled[1]) = (governor.pilot_servo.a_end * governor.add2.y - governor.pilot_servo.a[2] * governor.pilot_servo.x_scaled[1]) / governor.pilot_servo.a[1]; 110: governor.add2.y = governor.add2.k1 * governor.add2.u1 + governor.add2.k2 * governor.add2.u2 + governor.add2.k3 * governor.add1.y; 97: governor.pilot_servo.x[1] = governor.pilot_servo.x_scaled[1] / governor.pilot_servo.a_end; 96: governor.pilot_servo.y = (governor.pilot_servo.bb[2] - governor.pilot_servo.a[2] * governor.pilot_servo.d) * governor.pilot_servo.x[1] + governor.pilot_servo.d * governor.add2.y; 101: governor.gain_T_s.y = governor.gain_T_s.k * governor.pilot_servo.y; 46: turbine.d0_2 = turbine.l * (turbine.r_v ^ 2.0 - turbine.R_v_ ^ 2.0) / (turbine.l - turbine.R_v_); 47: turbine.theta_0 = turbine.theta0 - acos(0.5 * (turbine.r_v ^ 2.0 + turbine.R_v_ ^ 2.0 - turbine.d0_2) / (turbine.R_v_ * turbine.r_v)); 52: turbine.Wdot_t_n = turbine.W_t1_n + turbine.k_ft3_ * turbine.Vdot_n_ ^ 2.0 - turbine.W_t2_n; 51: turbine.W_t1_n = 0.1047197551196598 * data.rho * turbine.Vdot_n_ ^ 2.0 * turbine.n_n * turbine.R_1_ * turbine.cot_a1_n / turbine.A_1; 53: turbine.alpha1_n = atan(1.0 / turbine.cot_a1_n); 54: turbine.alpha1_n = acos(0.5 * turbine.d_n / turbine.l) - acos(0.5 * (turbine.d_n ^ 2.0 + turbine.R_v_ ^ 2.0 - turbine.r_v ^ 2.0) / (turbine.R_v_ * turbine.d_n)); 55: turbine.theta_n = turbine.theta0 - acos(0.5 * (turbine.r_v ^ 2.0 + turbine.R_v_ ^ 2.0 - turbine.d_n ^ 2.0) / (turbine.R_v_ * turbine.r_v)); 83: der(order2_1.delta) = order2_1.w_b * (-1.0 + order2_1.w); 82: order2_1.iq = order2_1.c2 * order2_1.vd + order2_1.vf_MB * order2_1.c1 - order2_1.c1 * order2_1.vq; 81: order2_1.id = order2_1.vf_MB * order2_1.c3 + (-order2_1.c3) * order2_1.vq - order2_1.c1 * order2_1.vd; 88: infiniteBus.p.vi = (sin(order2_1.delta) * order2_1.vq - cos(order2_1.delta) * order2_1.vd) * order2_1.V_MBtoSB; 87: infiniteBus.p.vr = (sin(order2_1.delta) * order2_1.vd + cos(order2_1.delta) * order2_1.vq) * order2_1.V_MBtoSB; 92: Normilizer.y = Normilizer.k * Normilizer.u; 91: order2_1.pe = (order2_1.vq + order2_1.ra * order2_1.iq) * order2_1.iq + (order2_1.vd + order2_1.ra * order2_1.id) * order2_1.id; 84: der(order2_1.w) = (Normilizer.y * order2_1.S_SBtoMB - order2_1.pe) / order2_1.M; 27: penstock.v = penstock.Vdot / penstock.A_; 26: penstock.Vdot = penstock.mdot / data.rho; 28: penstock.M = data.rho * penstock.L * penstock.Vdot; 29: penstock.F_f = OpenHPL.Functions.DarcyFriction.Friction(penstock.v, penstock.D_, penstock.L, data.rho, data.mu, penstock.p_eps); 23: der(tail.m) = 0.0; 19: tail.A = tail.H * (tail.w + 2.0 * tail.H * tan(0.0174532925199433 * tail.alpha)); 21: tail.F_f = 0.0; 20: tail.m = data.rho * tail.A * tail.L; 15: discharge.v = discharge.Vdot / discharge.A_; 14: discharge.Vdot = penstock.mdot / data.rho; 22: 0.0 = tail.A * (data.p_a - discharge.p_o) + data.g * data.rho * tail.A * tail.H - tail.F_f; 16: discharge.M = data.rho * discharge.L * discharge.Vdot; 17: discharge.F_f = OpenHPL.Functions.DarcyFriction.Friction(discharge.v, discharge.D_, discharge.L, data.rho, data.mu, discharge.p_eps); 30: der(penstock.M) = data.rho * penstock.Vdot ^ 2.0 * (1.0 / penstock.A_i + (-1.0) / penstock.A_o) + intake.p_o * penstock.A_i + penstock.m * data.g * penstock.cos_theta + (-penstock.F_f) - penstock.p_o * penstock.A_o; 18: der(discharge.M) = data.rho * discharge.Vdot ^ 2.0 * (1.0 / discharge.A_i + (-1.0) / discharge.A_o) + discharge.p_i * discharge.A_i + discharge.m * data.g * discharge.cos_theta + (-discharge.F_f) - discharge.p_o * discharge.A_o; 79: turbine.dp_tr = penstock.p_o - discharge.p_i; 75: turbine.cot_a2 = turbine.cot_b2 + RealizerAng.y * turbine.R_2_ * turbine.A_2 / turbine.Vdot; 76: turbine.cot_g1 = turbine.cot_a1 - RealizerAng.y * turbine.R_1_ * turbine.A_1 / turbine.Vdot; 65: turbine.Wdot_ft_l = if governor.Y_gv < turbine.u_min then turbine.k_ft4 * turbine.Vdot ^ 2.0 else turbine.k_ft3_ * turbine.Vdot ^ 2.0; 64: turbine.Wdot_ft_w = if governor.Y_gv < turbine.u_min then 0.0 else turbine.k_ft2_ * turbine.Vdot * turbine.cot_a2 ^ 2.0; 63: turbine.Wdot_ft_s = if governor.Y_gv < turbine.u_min then 0.0 else turbine.k_ft1_ * turbine.Vdot * (turbine.cot_g1 - turbine.cot_b1) ^ 2.0; 77: turbine.dp_tr * turbine.Vdot + 0.5 * penstock.mdot * turbine.Vdot ^ 2.0 * (turbine.A_0 ^ (-2.0) - turbine.A_2 ^ (-2.0)) = turbine.Wdot_t; 66: turbine.Wdot_ft = turbine.Wdot_ft_s + turbine.Wdot_ft_w + turbine.Wdot_ft_l; 78: turbine.Wdot_t = Normilizer.u + turbine.Wdot_ft; 61: turbine.W_t2 = penstock.mdot * RealizerAng.y * turbine.R_2_ * (RealizerAng.y * turbine.R_2_ + turbine.Vdot * turbine.cot_b2 / turbine.A_2); 34: surgeTank.m = data.rho * surgeTank.A * surgeTank.l; 5: der(reservoir.m) = 0.0; 1: reservoir.A = reservoir.H * (reservoir.w + 2.0 * reservoir.H * tan(0.0174532925199433 * reservoir.alpha)); 3: reservoir.F_f = 0.0; 2: reservoir.m = data.rho * reservoir.A * reservoir.L; 9: intake.v = intake.Vdot / intake.A_; 4: 0.0 = reservoir.A * (data.p_a - intake.p_i) + data.g * data.rho * reservoir.A * reservoir.H - reservoir.F_f; 10: intake.M = data.rho * intake.L * intake.Vdot; 11: intake.F_f = OpenHPL.Functions.DarcyFriction.Friction(intake.v, intake.D_, intake.L, data.rho, data.mu, intake.p_eps); 12: der(intake.M) = data.rho * intake.Vdot ^ 2.0 * (1.0 / intake.A_i + (-1.0) / intake.A_o) + intake.p_i * intake.A_i + intake.m * data.g * intake.cos_theta + (-intake.F_f) - intake.p_o * intake.A_o; 42: surgeTank.F_g = surgeTank.m * data.g * surgeTank.cos_theta; 35: surgeTank.F_f = OpenHPL.Functions.DarcyFriction.Friction(surgeTank.v, surgeTank.D, surgeTank.l, data.rho, data.mu, surgeTank.p_eps); 41: surgeTank.F_p = (intake.p_o - data.p_a) * surgeTank.A; 40: surgeTank.F = surgeTank.F_p + (-surgeTank.F_f) - surgeTank.F_g; 39: surgeTank.Mdot = surgeTank.mdot * surgeTank.v; 32: der(surgeTank.m) = surgeTank.mdot; 33: der(surgeTank.M) = surgeTank.Mdot + surgeTank.F; 37: surgeTank.M = surgeTank.m * surgeTank.v; 38: surgeTank.v = surgeTank.Vdot / surgeTank.A; 6: intake.Vdot = data.rho; 36: surgeTank.mdot = data.rho * surgeTank.Vdot; 8: intake.Vdot = intake.mdot / data.rho; 93: RealizerAng.y = RealizerAng.k * order2_1.w; 57: turbine.Vdot = penstock.mdot / data.rho; 62: Normilizer.u = turbine.W_t1 - turbine.W_t2; 43: surgeTank.mdot = intake.mdot - penstock.mdot; 60: turbine.W_t1 = penstock.mdot * RealizerAng.y * turbine.R_1_ * turbine.Vdot * turbine.cot_a1 / turbine.A_1; 74: turbine.cot_a1 = cos(turbine.alpha1) / turbine.sin_a1; 71: turbine.r_v ^ 2.0 = turbine.d ^ 2.0 + turbine.R_v_ ^ 2.0 + (-2.0) * turbine.d * turbine.R_v_ * cos(turbine.psi); 59: turbine.sin_a1 = sin(turbine.alpha1); 73: turbine.alpha1 = turbine.phi - turbine.psi; 72: cos(turbine.phi) = 0.5 * turbine.d / turbine.l; 45: turbine.theta0 = acos(turbine.r_Y / turbine.R_Y); 70: turbine.d ^ 2.0 = turbine.r_v ^ 2.0 + turbine.R_v_ ^ 2.0 + (-2.0) * turbine.r_v * turbine.R_v_ * cos(turbine.dtheta); 48: turbine.R_Y = 1.8 + turbine.r_Y; 69: turbine.dtheta = turbine.theta - turbine.theta0; 49: turbine.u_start = sqrt(turbine.r_Y ^ 2.0 + turbine.R_Y ^ 2.0 + (-2.0) * turbine.r_Y * turbine.R_Y * cos(turbine.theta_0)); 50: turbine.u_end = sqrt(turbine.r_Y ^ 2.0 + turbine.R_Y ^ 2.0 + (-2.0) * turbine.r_Y * turbine.R_Y * cos(turbine.theta_n)); 68: turbine.Y ^ 2.0 = turbine.r_Y ^ 2.0 + turbine.R_Y ^ 2.0 + (-2.0) * turbine.r_Y * turbine.R_Y * cos(turbine.theta); 67: turbine.Y = turbine.u_start + governor.Y_gv * (turbine.u_end - turbine.u_start); 103: governor.Y_gv = homotopy(smooth(0, if governor.main_servo.y > governor.limiter_Y_gv.uMax then governor.limiter_Y_gv.uMax else if governor.main_servo.y < governor.limiter_Y_gv.uMin then governor.limiter_Y_gv.uMin else governor.main_servo.y), governor.main_servo.y); 99: governor.main_servo.y = (governor.main_servo.bb[2] - governor.main_servo.a[2] * governor.main_servo.d) * governor.main_servo.x[1] + governor.main_servo.d * governor.limiter_dotY_gv.y; 102: governor.limiter_dotY_gv.y = homotopy(smooth(0, if governor.gain_T_s.y > governor.limiter_dotY_gv.uMax then governor.limiter_dotY_gv.uMax else if governor.gain_T_s.y < governor.limiter_dotY_gv.uMin then governor.limiter_dotY_gv.uMin else governor.gain_T_s.y), governor.gain_T_s.y); 100: governor.main_servo.x[1] = governor.main_servo.x_scaled[1] / governor.main_servo.a_end; 98: der(governor.main_servo.x_scaled[1]) = (governor.main_servo.a_end * governor.limiter_dotY_gv.y - governor.main_servo.a[2] * governor.main_servo.x_scaled[1]) / governor.main_servo.a[1]; for variables governor.control.x_scaled[1](72), governor.add2.u2(68), governor.pilot_servo.x_scaled[1](80), pwLinewithOpening1.ir.im(47), RealizerAng.y(87), pwLinewithOpening1.is.im(51), pwLinewithOpening1.vr.im(49), pwLinewithOpening1.vr.re(50), pwLinewithOpening1.is.re(52), pwLine2.Q12(44), pwLinewithOpening1.ir.re(48), pwLine2.P12(46), order2_1.pe(90), pwLine2.P21(45), governor.look_up_table.u[1](84), Normilizer.u(89), pwLinewithOpening1.Q21(53), turbine.W_t1(132), turbine.Wdot_ft_l(128), turbine.Wdot_ft_s(130), turbine.W_t2(131), turbine.Wdot_t(127), turbine.Vdot(126), turbine.c_m1(125), order2_1.vd(94), order2_1.P(96), order2_1.w(97), order2_1.id(92), order2_1.vq(93), governor.pilot_servo.x[1](81), governor.pilot_servo.y(82), turbine.theta_0(108), penstock.dp(149), penstock.p_o(150), penstock.Vdot(148), surgeTank.Mdot(144), turbine.theta(121), reservoir.m(178), reservoir.F_f(176), penstock.v(153), tail.Vdot_i(157), discharge.M(164), tail.H(155), reservoir.A(179), tail.A(159), surgeTank.M(145), tail.m(158), turbine.d_n(103), turbine.theta_n(102), turbine.alpha1_n(101), turbine.d(114), turbine.sin_a1(116), turbine.cot_g1(117), order2_1.p.ir(100), turbine.Y(112), order2_1.p.ii(99), turbine.cot_a1(119), surgeTank.m(146), intake.M(171), intake.mdot(174), intake.v(173), reservoir.H(175), intake.Vdot(167), intake.F_f(172), discharge.v(166), discharge.dp(161), discharge.Vdot(160), surgeTank.F_g(138), surgeTank.F(143), surgeTank.F_f(139), surgeTank.h(137), surgeTank.Vdot(136), discharge.p_i(163), surgeTank.mdot(147), surgeTank.v(141), surgeTank.F_p(140), intake.p_i(170), surgeTank.l(142), intake.dp(168), Normilizer.y(88), turbine.dtheta(120), turbine.cot_a2(118), turbine.dp_tr(135), turbine.phi(123), turbine.W_t1_n(105), turbine.u_end(107), turbine.psi(122), turbine.u_start(106), turbine.cot_a1_n(104), turbine.Wdot_ft(133), turbine.d0_2(109), turbine.Wdot_ft_w(129), turbine.R_Y(113), tail.F_f(156), penstock.F_f(152), turbine.Y0(111), turbine.theta0(110), pwLinewithOpening1.Q12(54), governor.P_ref(86), pwLinewithOpening1.P21(55), governor.Y_gv(85), governor.look_up_table.y[1](83), order2_1.delta(98) Error: Internal error Transformation Module PFPlusExt index Reduction Method Pantelides failed!