PowerAndWindowSystem.mo 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. model PowerAndWindowSystem
  2. // power params
  3. parameter Real J = 0.085;
  4. parameter Real b = 5;
  5. parameter Real K = 1.8;
  6. parameter Real R = 0.15;
  7. parameter Real L = 0.036;
  8. parameter Real V_abs = 12;
  9. // window params
  10. parameter Real wJ = 0.08;
  11. parameter Real wr = 0.017;
  12. parameter Real wb = 150;
  13. parameter Real wc = 1e3;
  14. // power vars
  15. Real V;
  16. Real theta;
  17. output Real i;
  18. Real omega;
  19. input Real u;
  20. input Real d;
  21. // window vars
  22. Real wtau;
  23. output Real wx;
  24. output Real wv;
  25. Real womega;
  26. Real wtheta;
  27. Real wfriction;
  28. equation
  29. // power equations
  30. V = if u > 0.5 then V_abs
  31. else if d > 0.5 then - V_abs
  32. else 0.0;
  33. der(omega) = (K * i + (- wtau) - b * omega) / J;
  34. L * der(i) = V - R * i - K * omega;
  35. der(theta) = omega;
  36. // window equations
  37. der(wtheta) = womega;
  38. wtau = wc * (theta - wtheta) - wfriction;
  39. der(womega) = wtau/wJ;
  40. wx = wr * wtheta;
  41. wv = wr * womega;
  42. wfriction = wb*wv;
  43. annotation(
  44. experiment(StartTime = 0, StopTime = 1, Tolerance = 1e-6, Interval = 0.002)
  45. );
  46. end PowerAndWindowSystem;