?ĐķvvvvvvvvvvvvNNNiiiNNNiiivvvĐAAAĐAAAiiivvvĝvvviiiNNNvvv[[[vvv[[[iiiĝĝMoteur_a_air 0 0 library_path 'f:\bond graph'; type Mainmodel end; icon bg figures rectangle -56.2 -26 56.2 26 fill 12895428; text 'moteur_a_air' -3.7 -4 color -1 16; end; implementation bg submodels C1 270 232.5 library_path 'Bond Graph'; type CC ports power in p1; power in p2; signal out state1; signal out state2; signal out state3; power out p3; restrictions causality preferred out p1; orientation constraint not_equal p1 p2; causality preferred out p2; end; icon bg figures text 'C' 270 232.5 48 bold; end; implementation eq // this model represents a two port C-element: p.e = (1/C)*p.f written here as p.e = A*p.f // A = [a11 , a12 ; a21 , a22] parameters real cv = 718.0; real R = 287.0; equations // you can change these equations into any (non-linear) version by adding your own functions // use f(x) button at the left of the window to see all available functions state1 = int (p1.f); state2 = int (p2.f); state3 = int (p3.f); p1.e = state1/cv/state2; p2.e = R/cv*state1/state3; p3.e = R/cv*state1/state3; implementation_end; OneJunction1 210 292.5 library_path 'Bond Graph'; knot OneJunction ports pneumatic knot duplicatable none p [1]; signal knot out flow [1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 210 292.5 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; ZeroJunction1 270 142.5 library_path 'Bond Graph'; knot ZeroJunction ports pseudothermal knot duplicatable none p [1]; signal knot out effort [1]; restrictions causality constraint one_in p; end; icon bg figures text '0' 270 142.5 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; A_p 210 360 library_path 'Bond Graph'; type TF ports pneumatic in p1; translation out p2; restrictions causality constraint not_equal p1 p2; parameters real r = 200.0; end; icon bg right figures text 'TF' 210 360 18 bold; end; implementation eq equations p1.e = r * p2.e; p2.f = r * p1.f; implementation_end; ZeroJunction2 210 427.5 library_path 'Bond Graph'; knot ZeroJunction ports translation knot duplicatable none p [1]; signal knot out effort [1]; restrictions causality constraint one_in p; end; icon bg figures text '0' 210 427.5 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; MTF1 210 547.5 library_path 'Bond Graph'; type MTF ports rotation in p1; translation out p2; signal in r; restrictions causality constraint not_equal p1 p2; end; icon bg figures text 'MTF' 210 547.5 18 bold; end; implementation eq equations p1.e = r * p2.e; p2.f = r * p1.f; implementation_end; omega 210 615 library_path 'Bond Graph'; knot OneJunction ports rotation knot duplicatable none p [1]; signal knot out flow [1]; restrictions causality constraint one_out p; end; icon bg bottom figures text '1' 210 615 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; J 127.5 615 library_path 'Bond Graph'; type I ports rotation in p; signal out state; restrictions causality preferred in p; parameters real i = 0.00164; end; icon bg left figures text 'I' 127.5 615 18 bold; end; implementation eq equations state = int(p.e); p.f = state / i; implementation_end; b_tau 210 690 library_path 'Bond Graph'; type R ports power in p; parameters real r = 0.0; end; icon bg right figures text 'R' 210 690 18 bold; end; implementation eq equations p.e = r * p.f; implementation_end; ZeroJunction3 330 232.5 library_path 'Bond Graph'; knot ZeroJunction ports pseudopneumatic knot duplicatable none p [1]; signal knot out effort [1]; restrictions causality constraint one_in p; end; icon bg figures text '0' 330 232.5 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; T_e 292.5 52.5 library_path 'Bond Graph'; type Se ports power out p; restrictions causality fixed out p; parameters real effort = 293.0; end; icon bg top figures text 'Se' 292.5 52.5 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; P_e 352.5 52.5 library_path 'Bond Graph'; type Se ports power out p; restrictions causality fixed out p; parameters real effort = 800000.0; end; icon bg top figures text 'Se' 352.5 52.5 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; T_s 427.5 300 library_path 'Bond Graph'; type Se ports power in p; restrictions causality fixed out p; parameters real effort = 293.0; end; icon bg bottom figures text 'Se' 427.5 300 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; P_s 427.5 360 library_path 'Bond Graph'; type Se ports power in p; restrictions causality fixed out p; parameters real effort = 100000.0; end; icon bg bottom figures text 'Se' 427.5 360 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; MSf1 210 142.5 library_path 'Bond Graph'; type MSf ports power in p; signal in flow; restrictions causality fixed in p; end; icon bg figures text 'MSf' 210 142.5 18 bold; end; implementation eq variables real effort; equations p.f = flow; effort = p.e; implementation_end; x_p 277.5 495 library_path 'Signal\Block Diagram'; type Integrate ports signal in input {m/s} ; signal out output {m} ; parameters real initial = 0.0; end; icon bg bottom figures rectangle 262.5 480 292.5 510 fill 15132390; text '' 277.5 492.5 color 16711680 'SymbolProp BT' 21 symbol; end; implementation eq equations output = int (input, initial); implementation_end; Submodel2 337.5 547.5 library_path 'System'; type Submodel ports signal in p1 {rad} ; signal out p2 {m} ; parameters real R = 0.04; real L = 0.12; end; icon bg figures rectangle 303.5 525.5 371.5 569.5 color 255 fill 16777215; text 'm(theta)' 337.5 547.5 color -1 16; end; implementation eq equations p2 = R*sin(p1)-R*R*sin(p1)*cos(p1)/sqrt(L*L-R*R*sqr(sin(p1)));implementation_end; theta 457.5 615 library_path 'Signal\Block Diagram'; type Integrate ports signal in input; signal out output; parameters real initial = 0.0; end; icon bg bottom figures rectangle 442.5 600 472.5 630 fill 15132390; text '' 457.5 612.5 color 16711680 'SymbolProp BT' 21 symbol; end; implementation eq equations output = int (input, initial); implementation_end; Splitter1 330 495 library_path 'System'; knot Splitter ports signal knot duplicatable out output [1]; signal knot in input [1]; end; icon bg ellipse figures ellipse 327 492 333 498 color -1 fill 0; ellipse 326 491 334 499 color -1; terminals input 330 495 fixed; output 330 495 fixed; end; implementation eq equations collect (output) = input; implementation_end; Splitter2 457.5 547.5 library_path 'System'; knot Splitter ports signal knot duplicatable out output [1]; signal knot in input [1]; end; icon bg ellipse figures ellipse 454.5 544.5 460.5 550.5 color -1 fill 0; ellipse 453.5 543.5 461.5 551.5 color -1; terminals input 457.5 547.5 fixed; output 457.5 547.5 fixed; end; implementation eq equations collect (output) = input; implementation_end; Patm 112.5 292.5 library_path 'Bond Graph'; type Se ports pneumatic in p; restrictions causality fixed out p; parameters real effort = 100000.0; end; icon bg bottom figures text 'Se' 112.5 292.5 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; R1 330 142.5 library_path 'bond graph'; type R ports pseudothermal in p1; pseudopneumatic in p2; pseudothermal out p3; pseudopneumatic out p4; signal in A; end; icon bg figures text 'R' 330 142.5 48 bold; end; implementation eq parameters real gamma; real R; real cp; variables real Pu; real Tu; real Pd; real Pr; real m_point; equations Pr = 0; if p2.e > p4.e then Pu = p2.e; Tu = p1.e; Pd = p4.e; else Pu = p4.e; Tu = p3.e; Pd = p2.e; end; Pr = Pd / Pu; if Pr > ((2/(gamma + 1))^(gamma/(gamma - 1)) then Pr = Pd/Pu; else Pr = ((2/(gamma + 1))^(gamma/(gamma - 1)); end; m_point = A*Pu/sqrt(Tu)*sqrt(2*gamma/(R*(gamma - 1)))*sqrt(Pr^(2/gamma) - Pr^((gamma + 1)/gamma)); if p2.e > p4.e then p2.f = m_point; p4.f = m_point; end; if p2.e < p4.e then p2.f = -m_point; p4.f = -m_point; end; p1.f = cp* Tu * p2.f; p3.f = cp* Tu * p2.f; implementation_end; R2 330 330 library_path 'bond graph'; type R ports pseudothermal in p1; pseudopneumatic in p2; pseudothermal out p3; pseudopneumatic out p4; signal in A; end; icon bg figures text 'R' 330 330 48 bold; end; implementation eq parameters real gamma; real R; real cp; variables real Pu; real Tu; real Pd; real Pr; real m_point; equations Pr = 0; if p2.e > p4.e then Pu = p2.e; Tu = p1.e; Pd = p4.e; else Pu = p4.e; Tu = p3.e; Pd = p2.e; end; Pr = Pd/Pu; if Pr > ((2/(gamma + 1))^(gamma/(gamma - 1)) then Pr = Pd/Pu; else Pr = ((2/(gamma + 1))^(gamma/(gamma - 1)); end; m_point = A*Pu/sqrt(Tu)*sqrt(2*gamma/(R*(gamma - 1)))*sqrt(Pr^(2/gamma) - Pr^((gamma + 1)/gamma)); if p2.e > p4.e then p2.f = m_point; p4.f = m_point; end; if p2.e < p4.e then p2.f = -m_point; p4.f = -m_point; end; p1.f = cp* Tu * p2.f; p3.f = cp* Tu * p2.f; implementation_end; FlowSensor1 210 495 library_path 'Bond Graph'; knot FlowSensor ports translation knot in p1 [1]; translation knot out p2 [1]; signal knot out flow [1]; restrictions causality constraint not_equal p1 p2; end; icon bg ellipse figures ellipse 203.5 489.5 216.5 502.5 fill 16777215; text 'f' 210.5 494.5; end; implementation eq equations p2.f = p1.f; p1.e = p2.e; flow = p1.f; implementation_end; Submodel3 330 412.5 library_path 'System'; type Submodel ports signal in p1; signal out p2; parameters real xe = 0.12; real he = 0.02; real we = 0.017; end; icon bg figures rectangle 296 390.5 364 434.5 fill 16777215; text 'sortie' 330 412.5 color -1 16; end; implementation eq equations if p1 > xe + he then p2 = 0; else if p1 > xe then p2 = we * (xe + he - p1); else p2 = we * he; end; end; implementation_end; Submodel1 465 142.5 library_path 'System'; type Submodel ports signal in p1; signal out p2; signal in p3; parameters real xe = 0.12; real Ai_max = 0.00029; end; icon bg figures rectangle 431 120.5 499 164.5 fill 16777215; text 'entre' 465 142.5 color -1 16; end; implementation eq variables real alpha; equations if p1/2/pi >= 0 and p1/2/pi < 1 then alpha = p1 ; else alpha = p1 - floor(p1/2/pi)*2*pi ; end; if alpha >= pi and p3 > xe then p2 = Ai_max ; else p2 = 0; end; implementation_end; PowerSensor1 210 232.5 library_path 'Bond Graph'; knot PowerSensor ports power knot in p1 [1]; pneumatic knot out p2 [1]; signal knot out P [1] {W} ; restrictions causality constraint not_equal p1 p2; end; icon bg ellipse figures ellipse 203.5 226.5 216.5 239.5 fill 16777215; text 'P' 210 232.5; end; implementation eq equations p2.e = p1.e; p1.f = p2.f; P = p1.e .* p1.f; implementation_end; end; connections OneJunction1\p => A_p\p1; A_p\p2 => ZeroJunction2\p; omega\p => MTF1\p1; omega\p => J\p; omega\p => b_tau\p; ZeroJunction1\p => C1\p1; ZeroJunction3\p => C1\p2; omega\flow -> theta\input; theta\output -> Splitter2\input; Submodel2\p2 -> MTF1\r; x_p\output -> Splitter1\input; OneJunction1\p => Patm\p; T_e\p => R1\p1; P_e\p => R1\p2; R1\p3 => ZeroJunction1\p; R1\p4 => ZeroJunction3\p; R2\p3 => T_s\p; R2\p4 => P_s\p; ZeroJunction3\p => R2\p2; ZeroJunction1\p => R2\p1; MTF1\p2 => FlowSensor1\p1; FlowSensor1\p2 => ZeroJunction2\p; FlowSensor1\flow -> x_p\input; Submodel3\p2 -> R2\A; Submodel3\p1 <- Splitter1\output; Submodel1\p2 -> R1\A; ZeroJunction1\p => MSf1\p; C1\p3 => PowerSensor1\p1; PowerSensor1\p2 => OneJunction1\p; PowerSensor1\P -> MSf1\flow; Submodel2\p1 <- Splitter2\output; Submodel1\p3 <- Splitter1\output 465 495; Submodel1\p1 <- Splitter2\output 525 142.5 525 547.5; end; figures line 672 255 287 254.5 color 8441087 width 2 end open; line 825 427.5 457.5 382.5 color 8441087 width 2 end open; line 759 524.5 225 540 color 8441087 width 2 end open; line 652.5 360 247.5 360 color 8441087 width 2 end open; ellipse 395.6 256.9 459.3 418.1 color 8441087 width 2; ellipse 705 607.5 720 622.5 fill 16777215 width 3; ellipse 765 547.5 780 562.5 fill 16777215 width 3; rectangle 649 317.3 775 371.8 color 65535 fill 65535 width 3; line 780.5 449 848 449 width 3; line 780 405 780 202.5 width 3; text 'Moteur air' 105 22.5 color 255 'Comic Sans MS' 36; line 22.5 52.5 187.5 52.5 color 255 width 4; line 718.5 612 766.5 557.5 width 3; line 773 547 712.5 352.5 width 3; line 645 465 644.5 202 width 3; line 780 405 847.5 405 width 3; line 780 449.5 780 464.5 width 3; line 645 202.5 697.5 202.5 width 3; line 780 202.5 727.5 202.5 width 3; line 689.5 210 734.5 210 width 3; line 695 202.5 695 172.5 669.5 173 668.5 136 754.5 135 width 3; line 753 137 753 174.5 width 3; line 754.5 172 727.5 172.5 727.5 202.5 width 3; text 'P_e' 690.5 152 color -1 16; text 'P_s' 850 436 color -1 16; text 'T_e' 725 152.5 color -1 16; text 'T_s' 850 415 color -1 16; line 708.5 145.5 401 63 color 8441087 width 2 end open; ellipse 243.8 18.8 405 82.5 color 8441087 width 2; line 742.5 577.5 225 607.5 color 8441087 width 2 end open; line 712.5 675 712.5 120 color 3355647 end open; ellipse 705 337.5 720 352.5 fill 16777215 width 3; text 'P' 682.5 270 color -1 16; text 'T' 735 270 color -1 16; text 'V' 705 270 color -1 16; text 'theta' 757.5 630 color -1 16; text 'Bond graph dans les domaines suivants : mcanique des solides indformables mcanique des fluides anisothermes thermodynamique' 877.5 60 color 16777215 fill 16711680 'Comic Sans MS' 21 bold; implementation_end;