4.8 0 False C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\03_motor\MR_dynamics2.emx 2020-7-17 15:47:18 '; type Mainmodel end; implementation bg submodels Base 392 296 description ' 4.8 1 False True Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link.emx 2020-7-16 14:21:54 Base '; type Submodel ports power out p [6,1]; signal in Hin [4,4]; power in p1 [6,1]; signal out Hout [4,4]; parameters real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s}; real m = 0.00455 {kg}; real COMdim[3,1] = [0.0; 0.0325; 0.0] {m}; real dim[3,1] = [0.0; 0.065; 0.0] {m}; end; icon bg bottom figures rectangle 360 224 424 368 color 0 fill 10025880; text 'Link' 392 296 color 0; terminals p 360 256 fixed; Hin 360 336 fixed; p1 424 256 fixed; Hout 424 336 fixed; end; implementation bg submodels AdHi0 544 416 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power in p1 [6,1]; power out p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg left figures text 'MTF' 544 416 color 0 18 bold; end; implementation eq variables real onlyRotH[4,4]; code //Only rotations with respect to the inertial system matter! onlyRotH = H; onlyRotH[1,4] = 0; onlyRotH[2,4] = 0; onlyRotH[3,4] = 0; p2.e = transpose(Adjoint(onlyRotH)) * p1.e; p1.f = Adjoint(onlyRotH) * p2.f; implementation_end; AdHij 864 304 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power out p1 [6,1]; power in p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg top figures text 'MTF' 864 304 color 0 18 bold; end; implementation eq equations //Only rotations with respect to the inertial system matter! p1.e = transpose(Adjoint(H)) * p2.e; p2.f = Adjoint(H) * p1.f; implementation_end; AdHik 544 248 description ' 4.0 1 False Bond Graph\TF.emx 2007-9-25 12:4:2 True '; type TF ports power in p1 [6,1]; power out p2 [6,1]; restrictions causality constraint not_equal p1 p2; parameters real COMdim[3,1] = [0.0; 0.0325; 0.0]; end; icon bg left figures text 'TF' 544 248 color 0 18 bold; end; implementation eq //Frame in joint connected to port 1 //Principal inertial frame connected in port 2 variables real d[3]; //distance between frames real R[3,3]; //rotation between frames real H[4,4]; //homogeneous matrix real AdH[6,6]; //Adjoint of homogeneous matrix equations d = COMdim; //distance of 1 in z direction of frames R = eye(3); //no rotation H = homogeneous(R,d); AdH = Adjoint(H); p1.f = AdH * p2.f; p2.e = transpose(AdH) * p1.e; implementation_end; AdHik1 544 360 description ' 4.0 1 False Bond Graph\TF.emx 2007-9-25 12:4:2 True '; type TF ports power in p1 [6,1]; power out p2 [6,1]; restrictions causality constraint not_equal p1 p2; parameters real COMdim[3,1] = [0.0; 0.0325; 0.0]; end; icon bg left figures text 'TF' 544 360 color 0 18 bold; end; implementation eq //Frame in joint connected to port 1 //Principal inertial frame connected in port 2 variables real d[3]; //distance between frames real R[3,3]; //rotation between frames real H[4,4]; //homogeneous matrix real AdH[6,6]; //Adjoint of homogeneous matrix equations d = COMdim; //distance of 1 in z direction of frames R = eye(3); //no rotation H = homogeneous(R,d); AdH = Adjoint(H); p1.f = AdH * p2.f; p2.e = transpose(AdH) * p1.e; implementation_end; EJS 608 184 description ' 4.0 1 False Bond Graph\MGY.emx 2007-10-31 11:43:6 True '; type MGY ports power in p1 [6,1]; parameters real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6]; real m = 0.00455; end; icon bg top figures text 'MGY' 608 184 color 0 18 bold; end; implementation eq //EJS / Gyroscopic effects variables real II[6,6]; //Inertial tensor real Q[6,6]; real QI[6,6]; real v[3]; real omega[3]; equations II = [ I[1],0, 0, 0, 0, 0; 0, I[2],0, 0, 0, 0; 0, 0, I[3],0, 0, 0; 0, 0, 0, m, 0, 0; 0, 0, 0, 0, m, 0; 0, 0, 0, 0, 0, m]; v[1:3] = p1.f[4:6]; omega[1:3] = p1.f[1:3]; Q[1:3,1:3] = -skew(omega); Q[1:3,4:6] = -skew(v); Q[4:6,1:3] = [0,0,0;0,0,0;0,0,0];//matrix filled with zeros Q[4:6,4:6] = -skew(omega); QI = Q*II; p1.e = QI*p1.f;implementation_end; Gravity 656 416 description ' 4.0 1 False Bond Graph\Se.emx 2007-9-25 12:3:26 True '; type Se ports power out p [6,1]; restrictions causality fixed out p; parameters real m = 0.00455; end; icon bg bottom figures text 'Se' 656 416 color 0 18 bold; end; implementation eq variables real effort[6]; equations effort = [0;0;0;0;0;-9.8*m]; p.e = effort; implementation_end; Hij 864 496 description ' 4.1 1 False H.emx 2010-9-21 15:03:50 True '; type Gain ports signal in input [4,4]; signal out output [4,4]; signal out Hab [4,4]; parameters real dim[3,1] = [0.0; 0.065; 0.0]; end; icon bg bottom figures rectangle 848.1 480 879.9 512 color 0 fill 15132390; text 'H' 864 496 color 16711680 16 bold; end; implementation eq equations Hab = homogeneous(eye(3),dim); output = input * Hab; implementation_end; InertialTensor 480 184 description ' 4.0 1 False Bond Graph\I.emx 2007-9-25 12:2:12 True '; type I ports power in p [6,1]; signal out state [6,1]; restrictions causality preferred in p; parameters real m = 0.00455; real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6]; end; icon bg top figures text 'I' 480 184 color 0 18 bold; end; implementation eq variables real II[6,6]; //Inertial tensor equations II = [I[1],0, 0, 0, 0, 0; 0, I[2],0, 0, 0, 0; 0, 0, I[3],0, 0, 0; 0, 0, 0, m, 0, 0; 0, 0, 0, 0, m, 0; 0, 0, 0, 0, 0, m]; state = int(p.e); //state = generalized momentum p.f = inverse(II)*state; implementation_end; plug Hout 984 496; plug p1 984 304; plug Hin 472 496; plug p 472 304; Splitter1 544 496 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 540.8 492.8 547.2 499.2 color -1 fill 0; ellipse 539.7 491.7 548.3 500.3 color -1; terminals input 544 496 fixed; end; implementation eq equations collect (output) = input; implementation_end; Ta00 600 416 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg bottom figures text '1' 600 416 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; Ta0j 544 304 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg bottom figures text '1' 544 304 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; Ta0k 544 184 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg top figures text '1' 544 184 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; end; connections AdHi0\p2 => AdHik1\p1; AdHij\p1 => Ta0j\p; AdHik\p2 => Ta0k\p; AdHik1\p2 => Ta0j\p; Gravity\p => Ta00\p; Hij\Hab -> AdHij\H; Hij\output -> Hout; Hin -> Splitter1\input; p <= Ta0j\p; p1 => AdHij\p2; Splitter1\output -> AdHi0\H; Splitter1\output -> Hij\input; Ta00\p => AdHi0\p1; Ta0j\p => AdHik\p1; Ta0k\p => EJS\p1; Ta0k\p => InertialTensor\p; end; parameterrelations InertialTensor\I = I; InterialTensor\m = m; EJS\I = I; EJS\m = m; AdHik\COMdim = COMdim; AdHik1\COMdim = COMdim; Hij\dim = dim; Gravity\m=m;parameterrelations_end; figures text 'b = current link (body) a = previous link (body) i = Body fixed frame, fixed in joint with previous link j = Body fixed frame, fixed in joint with next link k = Body fixed frame, principal inertial frame 0 = inertial system ' 288 280 color 0; implementation_end; Base1 584 296 description ' 4.8 1 False True Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link.emx 2020-7-16 14:21:54 Base '; type Submodel ports power out p [6,1]; signal in Hin [4,4]; power in p1 [6,1]; signal out Hout [4,4]; parameters real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s}; real m = 0.00455 {kg}; real COMdim[3,1] = [0.0; 0.025; 0.0] {m}; real dim[3,1] = [0.0; 0.05; 0.0] {m}; end; icon bg bottom figures rectangle 552 224 616 368 color 0 fill 10025880; text 'Link' 584 296 color 0; terminals p 552 256 fixed; Hin 552 336 fixed; p1 616 256 fixed; Hout 616 336 fixed; end; implementation bg submodels AdHi0 664 416 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power in p1 [6,1]; power out p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg left figures text 'MTF' 664 416 color 0 18 bold; end; implementation eq variables real onlyRotH[4,4]; code //Only rotations with respect to the inertial system matter! onlyRotH = H; onlyRotH[1,4] = 0; onlyRotH[2,4] = 0; onlyRotH[3,4] = 0; p2.e = transpose(Adjoint(onlyRotH)) * p1.e; p1.f = Adjoint(onlyRotH) * p2.f; implementation_end; AdHij 816 304 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power out p1 [6,1]; power in p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg top figures text 'MTF' 816 304 color 0 18 bold; end; implementation eq equations //Only rotations with respect to the inertial system matter! p1.e = transpose(Adjoint(H)) * p2.e; p2.f = Adjoint(H) * p1.f; implementation_end; AdHik 664 248 description ' 4.0 1 False Bond Graph\TF.emx 2007-9-25 12:4:2 True '; type TF ports power in p1 [6,1]; power out p2 [6,1]; restrictions causality constraint not_equal p1 p2; parameters real COMdim[3,1] = [0.0; 0.025; 0.0]; end; icon bg left figures text 'TF' 664 248 color 0 18 bold; end; implementation eq //Frame in joint connected to port 1 //Principal inertial frame connected in port 2 variables real d[3]; //distance between frames real R[3,3]; //rotation between frames real H[4,4]; //homogeneous matrix real AdH[6,6]; //Adjoint of homogeneous matrix equations d = COMdim; //distance of 1 in z direction of frames R = eye(3); //no rotation H = homogeneous(R,d); AdH = Adjoint(H); p1.f = AdH * p2.f; p2.e = transpose(AdH) * p1.e; implementation_end; AdHik1 664 360 description ' 4.0 1 False Bond Graph\TF.emx 2007-9-25 12:4:2 True '; type TF ports power out p1 [6,1]; power in p2 [6,1]; restrictions causality constraint not_equal p1 p2; parameters real COMdim[3,1] = [0.0; 0.025; 0.0]; end; icon bg left figures text 'TF' 664 360 color 0 18 bold; end; implementation eq //Principal inertial frame connected in port 2 variables real d[3]; //distance between frames real R[3,3]; //rotation between frames real H[4,4]; //homogeneous matrix real AdH[6,6]; //Adjoint of homogeneous matrix equations d = COMdim; //distance of 1 in z direction of frames R = eye(3); //no rotation H = homogeneous(R,d); AdH = Adjoint(H); p1.f = AdH * p2.f; p2.e = transpose(AdH) * p1.e; implementation_end; EJS 728 184 description ' 4.0 1 False Bond Graph\MGY.emx 2007-10-31 11:43:6 True '; type MGY ports power in p1 [6,1]; parameters real I[3,1] = [7.583e-7; 3.6458e-8; 7.364583e-7]; real m = 0.0035; end; icon bg top figures text 'MGY' 728 184 color 0 18 bold; end; implementation eq //EJS / Gyroscopic effects variables real II[6,6]; //Inertial tensor real Q[6,6]; real QI[6,6]; real v[3]; real omega[3]; equations II = [ I[1],0, 0, 0, 0, 0; 0, I[2],0, 0, 0, 0; 0, 0, I[3],0, 0, 0; 0, 0, 0, m, 0, 0; 0, 0, 0, 0, m, 0; 0, 0, 0, 0, 0, m]; v[1:3] = p1.f[4:6]; omega[1:3] = p1.f[1:3]; Q[1:3,1:3] = -skew(omega); Q[1:3,4:6] = -skew(v); Q[4:6,1:3] = [0,0,0;0,0,0;0,0,0];//matrix filled with zeros Q[4:6,4:6] = -skew(omega); QI = Q*II; p1.e = QI*p1.f;implementation_end; Gravity 776 416 description ' 4.0 1 False Bond Graph\Se.emx 2007-9-25 12:3:26 True '; type Se ports power out p [6,1]; restrictions causality fixed out p; parameters real m = 0.0035; end; icon bg bottom figures text 'Se' 776 416 color 0 18 bold; end; implementation eq variables real effort[6]; equations effort = [0;0;0;0;0;-9.8*m]; p.e = effort; implementation_end; Hij 816 496 description ' 4.1 1 False H.emx 2010-9-21 15:03:50 True '; type Gain ports signal in input [4,4]; signal out output [4,4]; signal out Hab [4,4]; parameters real dim[3,1] = [0.0; 0.05; 0.0]; end; icon bg bottom figures rectangle 800.1 480 831.9 512 color 0 fill 15132390; text 'H' 816 496 color 16711680 16 bold; end; implementation eq equations Hab = homogeneous(eye(3),dim); output = input * Hab; implementation_end; InertialTensor 600 184 description ' 4.0 1 False Bond Graph\I.emx 2007-9-25 12:2:12 True '; type I ports power in p [6,1]; signal out state [6,1]; restrictions causality preferred in p; parameters real m = 0.0035; real I[3,1] = [7.583e-7; 3.6458e-8; 7.364583e-7]; end; icon bg top figures text 'I' 600 184 color 0 18 bold; end; implementation eq variables real II[6,6]; //Inertial tensor equations II = [I[1],0, 0, 0, 0, 0; 0, I[2],0, 0, 0, 0; 0, 0, I[3],0, 0, 0; 0, 0, 0, m, 0, 0; 0, 0, 0, 0, m, 0; 0, 0, 0, 0, 0, m]; state = int(p.e); //state = generalized momentum p.f = inverse(II)*state; implementation_end; plug Hout 896 496; plug p1 904 304; plug Hin 592 496; plug p 592 304; Splitter1 664 496 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 660.8 492.8 667.2 499.2 color -1 fill 0; ellipse 659.7 491.7 668.3 500.3 color -1; terminals input 664 496 fixed; end; implementation eq equations collect (output) = input; implementation_end; Ta00 720 416 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg bottom figures text '1' 720 416 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; Ta0j 664 304 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg bottom figures text '1' 664 304 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; Ta0k 664 184 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg top figures text '1' 664 184 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; end; connections AdHi0\p2 => AdHik1\p2; AdHik\p2 => Ta0k\p; Gravity\p => Ta00\p; Hij\Hab -> AdHij\H; Hij\output -> Hout; Hin -> Splitter1\input; p <= Ta0j\p; p1 => AdHij\p2; Splitter1\output -> AdHi0\H; Splitter1\output -> Hij\input; Ta00\p => AdHi0\p1; Ta0j\p <= AdHij\p1; Ta0j\p <= AdHik1\p1; Ta0j\p => AdHik\p1; Ta0k\p => EJS\p1; Ta0k\p => InertialTensor\p; end; parameterrelations InertialTensor\I = I; InterialTensor\m = m; EJS\I = I; EJS\m = m; AdHik\COMdim = COMdim; AdHik1\COMdim = COMdim; Hij\dim = dim; Gravity\m=m;parameterrelations_end; figures text 'b = current link (body) a = previous link (body) i = Body fixed frame, fixed in joint with previous link j = Body fixed frame, fixed in joint with next link k = Body fixed frame, principal inertial frame 0 = inertial system ' 288 280 color 0; implementation_end; Base2 888 504 description '4.81FalseTrueBond Graph\MR\center_of_mass.emx2020-7-17 13:52:18Baseparameters real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s}; real m = 0.00455 {kg};'; type Submodel ports power out p [6,1]; signal in Hin [4,4]; power in p1 [6,1]; signal out Hout [4,4]; end; icon bg bottom figures rectangle 856 464 920 544 color 0 fill 255; text 'COM' 888 488 color 0; terminals p 856 480 fixed; Hin 856 528 fixed; p1 920 480 fixed; Hout 920 528 fixed; end; implementation bg submodels AdHi0 544 400 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power in p1 [6,1]; power out p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg left figures text 'MTF' 544 400 color 0 18 bold; end; implementation eq variables real onlyRotH[4,4]; code //Only rotations with respect to the inertial system matter! onlyRotH = H; onlyRotH[1,4] = 0; onlyRotH[2,4] = 0; onlyRotH[3,4] = 0; p2.e = transpose(Adjoint(onlyRotH)) * p1.e; p1.f = Adjoint(onlyRotH) * p2.f; implementation_end; EJS 616 256 description ' 4.0 1 False Bond Graph\MGY.emx 2007-10-31 11:43:6 True '; type MGY ports power in p1 [6,1]; end; icon bg top figures text 'MGY' 616 256 color 0 18 bold; end; implementation eq //EJS / Gyroscopic effects parameters real global I[3]; real global m; variables real II[6,6]; //Inertial tensor real Q[6,6]; real QI[6,6]; real Ia[6]; initialequations Ia[1:3] = I; Ia[4:6] = m; II = diag(Ia); equations Q = transpose(adjoint(p1.f)); QI = Q*II; p1.e = QI*p1.f;implementation_end; Gravity 616 400 description ' 4.0 1 False Bond Graph\Se.emx 2007-9-25 12:3:26 True '; type Se ports power out p [6,1]; restrictions causality fixed out p; end; icon bg bottom figures text 'Se' 616 400 color 0 18 bold; end; implementation eq parameters real global m; variables real effort[6]; equations effort = [0;0;0;0;0;-g_n*m]; p.e = effort; implementation_end; InertialTensor 480 256 description ' 4.0 1 False Bond Graph\I.emx 2007-9-25 12:2:12 True '; type I ports power in p [6,1]; signal out state [6,1]; restrictions causality preferred in p; end; icon bg top figures text 'I' 480 256 color 0 18 bold; end; implementation eq parameters real global I[3]; real global m; variables real II[6,6]; //Inertial tensor real Ia[6]; initialequations Ia[1:3] = I; Ia[4:6] = m; II = diag(Ia); equations state = int(p.e); //state = generalized momentum p.f = inverse(II)*state; implementation_end; plug Hin 472 496; plug p1 752 304; plug Hout 768 496; plug p 472 304; Splitter1 544 496 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 540.8 492.8 547.2 499.2 color -1 fill 0; ellipse 539.7 491.7 548.3 500.3 color -1; terminals input 544 496 fixed; end; implementation eq equations collect (output) = input; implementation_end; Ta0j 544 304 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg bottom figures text '1' 544 304 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; Ta0k 544 256 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg top figures text '1' 544 256 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; end; connections AdHi0\p2 => Ta0j\p; Gravity\p => AdHi0\p1; Hin -> Splitter1\input; p <= Ta0j\p; p1 => Ta0j\p; Splitter1\output -> AdHi0\H; Splitter1\output -> Hout; Ta0j\p => Ta0k\p; Ta0k\p => EJS\p1; Ta0k\p => InertialTensor\p; end; parameterrelations InertialTensor\I = I; InterialTensor\m = m; EJS\I = I; EJS\m = m; AdHik\COMdim = COMdim; AdHik1\COMdim = COMdim; Hij\dim = dim; Gravity\m=m;parameterrelations_end; figures text 'b = current link (body) a = previous link (body) i = Body fixed frame, fixed in joint with previous link j = Body fixed frame, fixed in joint with next link k = Body fixed frame, principal inertial frame 0 = inertial system ' 288 280 color 0; implementation_end; Base3 544 504 description ' 4.8 1 False True Bond Graph\MR\center_of_mass.emx 2020-7-17 13:52:18 Base '; type Submodel ports power out p [6,1]; signal in Hin [4,4]; power in p1 [6,1]; signal out Hout [4,4]; end; icon bg bottom figures rectangle 512 464 576 544 color 0 fill 255; text 'COM' 544 488 color 0; terminals p 512 480 fixed; Hin 512 528 fixed; p1 576 480 fixed; Hout 576 528 fixed; end; implementation bg submodels AdHi0 544 400 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power in p1 [6,1]; power out p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg left figures text 'MTF' 544 400 color 0 18 bold; end; implementation eq variables real onlyRotH[4,4]; code //Only rotations with respect to the inertial system matter! onlyRotH = H; onlyRotH[1,4] = 0; onlyRotH[2,4] = 0; onlyRotH[3,4] = 0; p2.e = transpose(Adjoint(onlyRotH)) * p1.e; p1.f = Adjoint(onlyRotH) * p2.f; implementation_end; EJS 616 256 description ' 4.0 1 False Bond Graph\MGY.emx 2007-10-31 11:43:6 True '; type MGY ports power in p1 [6,1]; parameters real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6]; real m = 0.00455; end; icon bg top figures text 'MGY' 616 256 color 0 18 bold; end; implementation eq //EJS / Gyroscopic effects variables real II[6,6]; //Inertial tensor real Q[6,6]; real QI[6,6]; real Ia[6]; initialequations Ia[1:3] = I; Ia[4:6] = m; II = diag(Ia); equations Q = transpose(adjoint(p1.f)); QI = Q*II; p1.e = QI*p1.f;implementation_end; Gravity 616 400 description ' 4.0 1 False Bond Graph\Se.emx 2007-9-25 12:3:26 True '; type Se ports power out p [6,1]; restrictions causality fixed out p; parameters real m = 0.00455; end; icon bg bottom figures text 'Se' 616 400 color 0 18 bold; end; implementation eq variables real effort[6]; equations effort = [0;0;0;0;0;-g_n*m]; p.e = effort; implementation_end; InertialTensor 472 256 description ' 4.0 1 False Bond Graph\I.emx 2007-9-25 12:2:12 True '; type I ports power in p [6,1]; signal out state [6,1]; restrictions causality preferred in p; parameters real m = 0.00455; real I[3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6]; end; icon bg top figures text 'I' 472 256 color 0 18 bold; end; implementation eq variables real II[6,6]; //Inertial tensor equations II = [I[1],0, 0, 0, 0, 0; 0, I[2],0, 0, 0, 0; 0, 0, I[3],0, 0, 0; 0, 0, 0, m, 0, 0; 0, 0, 0, 0, m, 0; 0, 0, 0, 0, 0, m]; state = int(p.e); //state = generalized momentum p.f = inverse(II)*state; implementation_end; plug Hin 472 496; plug p1 616 304; plug Hout 616 496; plug p 472 304; Splitter1 544 496 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 540.8 492.8 547.2 499.2 color -1 fill 0; ellipse 539.7 491.7 548.3 500.3 color -1; terminals input 544 496 fixed; end; implementation eq equations collect (output) = input; implementation_end; Ta0j 544 304 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg bottom figures text '1' 544 304 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; Ta0k 544 256 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg top figures text '1' 544 256 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; end; connections AdHi0\p2 => Ta0j\p; Gravity\p => AdHi0\p1; Hin -> Splitter1\input; p <= Ta0j\p; p1 => Ta0j\p; Splitter1\output -> AdHi0\H; Splitter1\output -> Hout; Ta0j\p => Ta0k\p; Ta0k\p => EJS\p1; Ta0k\p => InertialTensor\p; end; parameterrelations InertialTensor\I = I; InterialTensor\m = m; EJS\I = I; EJS\m = m; AdHik\COMdim = COMdim; AdHik1\COMdim = COMdim; Hij\dim = dim; Gravity\m=m;parameterrelations_end; figures text 'b = current link (body) a = previous link (body) i = Body fixed frame, fixed in joint with previous link j = Body fixed frame, fixed in joint with next link k = Body fixed frame, principal inertial frame 0 = inertial system ' 288 280 color 0; implementation_end; Constant 168 336 description ' 4.0 1 False Signal\Sources\Constant.emx 2007-10-19 14:48:44 True '; type Constant ports signal out output [4,4]; end; icon bg bottom figures rectangle 152.1 320 183.9 352 color 0 fill 15132390; line 156.9 331.6 178.9 331.6 color 16711680 width 2; line 154.2 342.7 179.9 342.7 color 0; line 156.5 326.7 156.5 345 color 0; end; implementation eq equations output = eye(4); implementation_end; Constant1 296 48 description '4.01False Signal\Sources\Constant.emx 2007-10-19 14:48:44 '; type Constant ports signal out output; end; icon bg bottom figures rectangle 280.1 32 311.9 64 color 0 fill 15132390; line 284.9 43.6 306.9 43.6 color 16711680 width 2; line 282.2 54.7 307.9 54.7 color 0; line 284.5 38.7 284.5 57 color 0; end; implementation eq parameters real C = 1.0; // output value equations output = C; implementation_end; Constant2 480 688 description '4.01False Signal\Sources\Constant.emx 2007-10-19 14:48:44 '; type Constant ports signal out output; end; icon bg bottom figures rectangle 464.1 672 495.9 704 color 0 fill 15132390; line 468.9 683.6 490.9 683.6 color 16711680 width 2; line 466.2 694.7 491.9 694.7 color 0; line 468.5 678.7 468.5 697 color 0; end; implementation eq parameters real C = 1.0; // output value equations output = C; implementation_end; Joint 384.1 502 description ' 4.8 1 False True Bond Graph\MR\joint-v2.emx 2020-7-17 15:47:03 '; type 'Submodel-rotz' ports power out p [6,1]; power in p1; power in p2 [6,1]; signal in Hin [4,4]; signal out Hout [4,4]; end; icon bg bottom figures rectangle 352.2 464 416 540 color 0 fill 14745599; text 'Joint' 384 496 color 0; terminals p 352 480 fixed; p1 384 464 fixed; p2 416 480 fixed; Hin 352 528 fixed; Hout 416 528 fixed; end; implementation bg submodels AdHji 416 328 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power out p1 [6,1]; power in p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg bottom figures text 'MTF' 416 328 color 0 18 bold; end; implementation eq equations p2.e = transpose(Adjoint(H)) * p1.e; p1.f = Adjoint(H) * p2.f;implementation_end; JointType 232 216 description '4.81FalseTrueparameters real joint = 3;'; type Submodel ports mechanical in p1; signal out output [4,4]; power out p2 [6,1]; end; implementation bg submodels Integrate 320 272 description ' 4.0 1 False Signal\Block Diagram\Integrate.emx 2007-9-26 12:3:23 True '; type Integrate ports signal in input; signal out output [4,4]; parameters real init = -2.9496; end; icon bg figures rectangle 304 256 336 288 color 0 fill 15132390; text 'ò' 320 269.3 color 16711680 'SymbolProp BT' 21 symbol; end; implementation eq parameters real global joint; variables real R[3,3]; real p[3]; real q; real qa[6]; real temp [4,4]; initialequations qa = 0; equations q = -int(input,init); qa[joint] = q; R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',qa); output = homogeneous(R,qa[4:6]);implementation_end; plug p1 240 188; plug output 320 368; plug p2 240 412; OneJunction2 240 271.9 description ' 4.2 1 False Bond Graph\FlowSensor.emx 2011-11-29 15:50:53 '; knot FlowSensor ports mechanical knot in p1 [1]; power knot out p2 [1]; signal knot out flow [1]; restrictions causality constraint not_equal p1 p2; end; icon bg ellipse figures ellipse 233.1 264.8 246.9 279.1 color 0 fill 16777215; text 'f' 240 271.2 color 0; end; implementation eq equations p2.f = p1.f; p1.e = p2.e; flow = p1.f; implementation_end; uTbai 240 328 description ' 4.0 1 False Bond Graph\TF.emx 2007-9-25 12:4:2 True '; type TF ports power in p1; power out p2 [6,1]; restrictions causality constraint not_equal p1 p2; causality fixed in p1; causality fixed out p2; parameters real Cconstraint = 1.0e-4; real Rconstraint = 1000.0; end; icon bg left figures text 'TF' 240 328 color 0 18 bold; end; implementation eq parameters real global joint; variables real i; real state[6]; equations /*p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint); p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint); p2.e[3] = p1.e; p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint); p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint); p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint); p1.f = p2.f[3];*/ state = int(p2.f); for i = 1 to 6 do if i == joint then p1.f = p2.f[i]; p2.e[i] = p1.e; else p2.e[i] = (Rconstraint*-p2.f[i] + -state[i]/Cconstraint); end; end; implementation_end; end; connections Integrate\output -> output; OneJunction2\flow -> Integrate\input; OneJunction2\p2 => uTbai\p1; p1 => OneJunction2\p1; uTbai\p2 => p2; end; implementation_end; MatrixMul 312 480 description ' 4.0 1 False Signal\Block Diagram\Gain.emx 2007-9-26 12:15:12 True '; type Gain ports signal in input1 [4,4]; signal out output [4,4]; signal in input2 [4,4]; end; icon bg bottom figures rectangle 296.1 464 327.9 496 color 0 fill 15132390; text 'X' 312 480 color 16711680 16 bold; end; implementation eq variables real temp[4,4]; equations output = input2*input1; temp = input2*input1; implementation_end; plug p 104 328; plug p1 232 88; plug p2 488 328; plug Hin 104 480; plug Hout 496 480; Splitter2 312 216 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 308.8 212.8 315.2 219.2 color -1 fill 0; ellipse 307.7 211.7 316.3 220.3 color -1; terminals input 312 216 fixed; end; implementation eq equations collect (output) = input; implementation_end; Wbai 232 328 description ' 4.0 1 False Bond Graph\ZeroJunction.emx 2007-9-27 9:51:43 True '; knot ZeroJunction ports power knot duplicatable none p [6,1]; signal knot out effort [6,1]; restrictions causality constraint one_in p; end; icon bg bottom figures text '0' 232 328 color 0 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; end; connections Hin -> MatrixMul\input2; JointType\output -> Splitter2\input; JointType\p2 => Wbai\p; MatrixMul\output -> Hout; p <= Wbai\p; p1 => JointType\p1; p2 => AdHji\p2; Splitter2\output -> AdHji\H 416 216; Splitter2\output -> MatrixMul\input1; Wbai\p <= AdHji\p1; end; parameterrelations EndstopMin\Rendstop = Rendstop; EndstopMin\Cendstop = Cendstop; EndstopMin\InitialPos = InitialPos; EndstopMin\EndstopPos = MinEndstopPos; EndstopMax\Rendstop = Rendstop; EndstopMax\Cendstop = Cendstop; EndstopMax\InitialPos = InitialPos; EndstopMax\EndstopPos = MaxEndstopPos; Rjoint\Rjoint= Rjoint; Integrate\init = InitialPos; uTbai\Rconstraint = Rconstraint; uTbai\Cconstraint = Cconstraint; parameterrelations_end; figures text 'b = next link (body) a = previous link (body) i = Frame fixed in previous body, fixed in joint j = Frame fixed in next body, fixed in joint ' 672 392 color 0; implementation_end; Joint1 728.1 502 description ' 4.8 1 False True Bond Graph\MR\joint-v2.emx 2020-7-17 14:55:32 '; type 'Submodel-rotz' ports power out p [6,1]; power in p1; power in p2 [6,1]; signal in Hin [4,4]; signal out Hout [4,4]; signal out q; end; icon bg bottom figures rectangle 696.2 464 760 540 color 0 fill 14745599; text 'Joint' 728 496 color 0; terminals p 696 480 fixed; p1 728 464 fixed; p2 760 480 fixed; Hin 696 528 fixed; Hout 760 528 fixed; end; implementation bg submodels AdHji 424 424 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power out p1 [6,1]; power in p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg bottom figures text 'MTF' 424 424 color 0 18 bold; end; implementation eq equations p2.e = transpose(Adjoint(H)) * p1.e; p1.f = Adjoint(H) * p2.f;implementation_end; JointType 240 312 description '4.81FalseTrueparameters real joint = 3;'; type Submodel ports mechanical in p1; signal out output [4,4]; power out p2 [6,1]; signal out q; end; implementation bg submodels Integrate 320 272 description ' 4.0 1 False Signal\Block Diagram\Integrate.emx 2007-9-26 12:3:23 True '; type Integrate ports signal in input; signal out output [4,4]; signal out q; parameters real init = -2.9496; end; icon bg figures rectangle 304 256 336 288 color 0 fill 15132390; text 'ò' 320 269.3 color 16711680 'SymbolProp BT' 21 symbol; end; implementation eq parameters real global joint; variables real R[3,3]; real p[3]; real qa[6]; real temp [4,4]; initialequations qa = 0; equations q = -int(input,init); qa[joint] = q; R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',qa); output = homogeneous(R,qa[4:6]);implementation_end; plug p1 240 188; plug output 320 416; plug p2 240 412; plug q 320 184; OneJunction2 240 271.9 description ' 4.2 1 False Bond Graph\FlowSensor.emx 2011-11-29 15:50:53 '; knot FlowSensor ports mechanical knot in p1 [1]; power knot out p2 [1]; signal knot out flow [1]; restrictions causality constraint not_equal p1 p2; end; icon bg ellipse figures ellipse 233.1 264.8 246.9 279.1 color 0 fill 16777215; text 'f' 240 271.2 color 0; end; implementation eq equations p2.f = p1.f; p1.e = p2.e; flow = p1.f; implementation_end; uTbai 240 328 description ' 4.0 1 False Bond Graph\TF.emx 2007-9-25 12:4:2 True '; type TF ports power in p1; power out p2 [6,1]; restrictions causality constraint not_equal p1 p2; causality fixed in p1; causality fixed out p2; parameters real Cconstraint = 1.0e-4; real Rconstraint = 1000.0; end; icon bg left figures text 'TF' 240 328 color 0 18 bold; end; implementation eq parameters real global joint; variables real i; real state[6]; equations /*p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint); p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint); p2.e[3] = p1.e; p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint); p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint); p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint); p1.f = p2.f[3];*/ state = int(p2.f); for i = 1 to 6 do if i == joint then p1.f = p2.f[i]; p2.e[i] = p1.e; else p2.e[i] = (Rconstraint*-p2.f[i] + -state[i]/Cconstraint); end; end; implementation_end; end; connections Integrate\output -> output; Integrate\q -> q; OneJunction2\flow -> Integrate\input; OneJunction2\p2 => uTbai\p1; p1 => OneJunction2\p1; uTbai\p2 => p2; end; implementation_end; MatrixMul 320 576 description ' 4.0 1 False Signal\Block Diagram\Gain.emx 2007-9-26 12:15:12 True '; type Gain ports signal in input1 [4,4]; signal out output [4,4]; signal in input2 [4,4]; end; icon bg bottom figures rectangle 304.1 560 335.9 592 color 0 fill 15132390; text 'X' 320 576 color 16711680 16 bold; end; implementation eq equations output = input2*input1; implementation_end; plug p 112 424; plug p1 240 40; plug p2 496 424; plug Hin 112 576; plug Hout 504 576; plug q 112 312; Splitter2 320 312 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 316.8 308.8 323.2 315.2 color -1 fill 0; ellipse 315.7 307.7 324.3 316.3 color -1; terminals input 320 312 fixed; end; implementation eq equations collect (output) = input; implementation_end; Wbai 240 424 description ' 4.0 1 False Bond Graph\ZeroJunction.emx 2007-9-27 9:51:43 True '; knot ZeroJunction ports power knot duplicatable none p [6,1]; signal knot out effort [6,1]; restrictions causality constraint one_in p; end; icon bg bottom figures text '0' 240 424 color 0 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; end; connections Hin -> MatrixMul\input2; JointType\output -> Splitter2\input; JointType\p1 <= p1; JointType\p2 => Wbai\p; JointType\q -> q; MatrixMul\output -> Hout; p <= Wbai\p; p2 => AdHji\p2; Splitter2\output -> AdHji\H 424 312; Splitter2\output -> MatrixMul\input1; Wbai\p <= AdHji\p1; end; parameterrelations EndstopMin\Rendstop = Rendstop; EndstopMin\Cendstop = Cendstop; EndstopMin\InitialPos = InitialPos; EndstopMin\EndstopPos = MinEndstopPos; EndstopMax\Rendstop = Rendstop; EndstopMax\Cendstop = Cendstop; EndstopMax\InitialPos = InitialPos; EndstopMax\EndstopPos = MaxEndstopPos; Rjoint\Rjoint= Rjoint; Integrate\init = InitialPos; uTbai\Rconstraint = Rconstraint; uTbai\Cconstraint = Cconstraint; parameterrelations_end; figures text 'b = next link (body) a = previous link (body) i = Frame fixed in previous body, fixed in joint j = Frame fixed in next body, fixed in joint ' 680 488 color 0; implementation_end; JointBase1 488.2 296 description ' 4.1 1 False True Joint-roty.emx 2011-1-18 17:30:05 '; type 'Submodel-roty' ports power out p [6,1]; power in p1; power in p2 [6,1]; signal in Hin [4,4]; signal out Hout [4,4]; parameters real Rconstraint = 1000.0; real Cconstraint = 1.0e-4; real Rendstop = 1000.0; real Cendstop = 1.0e-4; real InitialPos = -1.13; real MaxEndstopPos = 1.57; real MinEndstopPos = -1.131; real Rjoint = 0.1; end; icon bg bottom figures rectangle 456.5 224 520 368 color 0 fill 14745599; text 'Joint-roty' 488.5 299 color 0; terminals p 456 256 fixed; p1 487.5 224 fixed; p2 520 256 fixed; Hin 456 336 fixed; Hout 520 336 fixed; end; implementation bg submodels AdHji 424 424 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power out p1 [6,1]; power in p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg bottom figures text 'MTF' 424 424 color 0 18 bold; end; implementation eq equations p2.e = transpose(Adjoint(H)) * p1.e; p1.f = Adjoint(H) * p2.f;implementation_end; Integrate 320 336 description ' 4.0 1 False Signal\Block Diagram\Integrate.emx 2007-9-26 12:3:23 True '; type Integrate ports signal in input; signal out output [4,4]; parameters real init = -2.9496; end; icon bg figures rectangle 304 320 336 352 color 0 fill 15132390; text 'ò' 320 333.3 color 16711680 'SymbolProp BT' 21 symbol; end; implementation eq variables real R[3,3]; real p[3]; real q; equations q = -int(input,init); R = [ cos(q), -sin(q), 0; sin(q), cos(q), 0; 0, 0, 1]; p = [0;0;0]; output = homogeneous(R,p); implementation_end; MatrixMul 320 496 description ' 4.0 1 False Signal\Block Diagram\Gain.emx 2007-9-26 12:15:12 True '; type Gain ports signal in input1 [4,4]; signal out output [4,4]; signal in input2 [4,4]; end; icon bg bottom figures rectangle 304.1 480 335.9 512 color 0 fill 15132390; text 'X' 320 496 color 16711680 16 bold; end; implementation eq equations output = input2*input1; implementation_end; plug p1 240 56; plug p2 496 424; plug Hin 112 496; plug Hout 504 496; plug p 112 424; OneJunction 240 272 description '4.01False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 '; knot OneJunction ports power knot duplicatable none p [1]; signal knot out flow [1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 240 272 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; Rjoint 192 272 description ' 4.0 1 False Bond Graph\R.emx 2007-9-25 12:3:18 True '; type R ports power in p; parameters real Rjoint = 0.1; end; icon bg bottom figures text 'R' 192 272 color 0 18 bold; end; implementation eq equations p.e = Rjoint * p.f; implementation_end; Splitter2 320 368 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 316.8 364.8 323.2 371.2 color -1 fill 0; ellipse 315.7 363.7 324.3 372.3 color -1; terminals input 320 368 fixed; end; implementation eq equations collect (output) = input; implementation_end; Tbai 240 384 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg left figures text '1' 240 384 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; uTbai 240 328 description ' 4.0 1 False Bond Graph\TF.emx 2007-9-25 12:4:2 True '; type TF ports power in p1; power out p2 [6,1]; restrictions causality constraint not_equal p1 p2; causality fixed in p1; causality fixed out p2; parameters real Cconstraint = 1.0e-4; real Rconstraint = 1000.0; end; icon bg left figures text 'TF' 240 328 color 0 18 bold; end; implementation eq equations p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint); p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint); p2.e[3] = p1.e; p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint); p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint); p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint); p1.f = p2.f[3]; implementation_end; Wbai 240 424 description ' 4.0 1 False Bond Graph\ZeroJunction.emx 2007-9-27 9:51:43 True '; knot ZeroJunction ports power knot duplicatable none p [6,1]; signal knot out effort [6,1]; restrictions causality constraint one_in p; end; icon bg bottom figures text '0' 240 424 color 0 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; ZeroJunction 240 104 description '4.01False Bond Graph\ZeroJunction.emx 2007-9-27 9:51:43 '; knot ZeroJunction ports power knot duplicatable none p [1]; signal knot out effort [1]; restrictions causality constraint one_in p; end; icon bg figures text '0' 240 104 color 0 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; end; connections Hin -> MatrixMul\input2; Integrate\output -> Splitter2\input; MatrixMul\output -> Hout; OneJunction\flow -> Integrate\input 320 272; OneJunction\p => Rjoint\p; OneJunction\p => uTbai\p1; p <= Wbai\p; p1 => ZeroJunction\p; p2 => AdHji\p2; Splitter2\output -> AdHji\H 424 368; Splitter2\output -> MatrixMul\input1; Tbai\p => Wbai\p; uTbai\p2 => Tbai\p; Wbai\p <= AdHji\p1; ZeroJunction\p => OneJunction\p; end; parameterrelations EndstopMin\Rendstop = Rendstop; EndstopMin\Cendstop = Cendstop; EndstopMin\InitialPos = InitialPos; EndstopMin\EndstopPos = MinEndstopPos; EndstopMax\Rendstop = Rendstop; EndstopMax\Cendstop = Cendstop; EndstopMax\InitialPos = InitialPos; EndstopMax\EndstopPos = MaxEndstopPos; Rjoint\Rjoint= Rjoint; Integrate\init = InitialPos; uTbai\Rconstraint = Rconstraint; uTbai\Cconstraint = Cconstraint;parameterrelations_end; figures text 'b = next link (body) a = previous link (body) i = Frame fixed in previous body, fixed in joint j = Frame fixed in next body, fixed in joint ' 744 400 color 0; implementation_end; JointBase2 296.2 296 description ' 4.1 1 False True Joint-roty.emx 2011-1-18 17:30:05 '; type 'Submodel-roty' ports power out p [6,1]; power in p1; power in p2 [6,1]; signal in Hin [4,4]; signal out Hout [4,4]; parameters real Rconstraint = 1000.0; real Cconstraint = 1.0e-4; real Rendstop = 1000.0; real Cendstop = 1.0e-4; real InitialPos = 0.0; real MaxEndstopPos = 1.57; real MinEndstopPos = -1.131; real Rjoint = 0.1; end; icon bg bottom figures rectangle 264.5 224 328 368 color 0 fill 14745599; text 'Joint-roty' 296.5 299 color 0; terminals p 264 256 fixed; p1 295.5 224 fixed; p2 328 256 fixed; Hin 264 336 fixed; Hout 328 336 fixed; end; implementation bg submodels AdHji 424 424 description ' 4.0 1 False Bond Graph\MTF.emx 2007-9-25 12:3:3 True '; type MTF ports power out p1 [6,1]; power in p2 [6,1]; signal in H [4,4]; restrictions causality constraint not_equal p1 p2; end; icon bg bottom figures text 'MTF' 424 424 color 0 18 bold; end; implementation eq equations p2.e = transpose(Adjoint(H)) * p1.e; p1.f = Adjoint(H) * p2.f;implementation_end; Integrate 320 328 description ' 4.0 1 False Signal\Block Diagram\Integrate.emx 2007-9-26 12:3:23 True '; type Integrate ports signal in input; signal out output [4,4]; parameters real init = -2.9496; end; icon bg figures rectangle 304 312 336 344 color 0 fill 15132390; text 'ò' 320 325.3 color 16711680 'SymbolProp BT' 21 symbol; end; implementation eq variables real R[3,3]; real p[3]; real q; equations q = -int(input,init); R = [ cos(q), -sin(q), 0; sin(q), cos(q), 0; 0, 0, 1]; p = [0;0;0]; output = homogeneous(R,p); implementation_end; MatrixMul 320 496 description ' 4.0 1 False Signal\Block Diagram\Gain.emx 2007-9-26 12:15:12 True '; type Gain ports signal in input1 [4,4]; signal out output [4,4]; signal in input2 [4,4]; end; icon bg bottom figures rectangle 304.1 480 335.9 512 color 0 fill 15132390; text 'X' 320 496 color 16711680 16 bold; end; implementation eq equations output = input2*input1; implementation_end; plug p1 240 56; plug p2 496 424; plug Hin 112 496; plug Hout 504 496; plug p 112 424; OneJunction 240 272 description '4.01False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 '; knot OneJunction ports power knot duplicatable none p [1]; signal knot out flow [1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 240 272 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; Rjoint 192 272 description ' 4.0 1 False Bond Graph\R.emx 2007-9-25 12:3:18 True '; type R ports power in p; parameters real Rjoint = 0.1; end; icon bg bottom figures text 'R' 192 272 color 0 18 bold; end; implementation eq equations p.e = Rjoint * p.f; implementation_end; Splitter2 320 368 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 316.8 364.8 323.2 371.2 color -1 fill 0; ellipse 315.7 363.7 324.3 372.3 color -1; terminals input 320 368 fixed; end; implementation eq equations collect (output) = input; implementation_end; Tbai 240 376 description ' 4.0 1 False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 True '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg left figures text '1' 240 376 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; uTbai 240 328 description ' 4.0 1 False Bond Graph\TF.emx 2007-9-25 12:4:2 True '; type TF ports power in p1; power out p2 [6,1]; restrictions causality constraint not_equal p1 p2; causality fixed in p1; causality fixed out p2; parameters real Cconstraint = 1.0e-4; real Rconstraint = 1000.0; end; icon bg left figures text 'TF' 240 328 color 0 18 bold; end; implementation eq equations p2.e[1] = (Rconstraint*-p2.f[1] + int(-p2.f[1])/Cconstraint); p2.e[2] = (Rconstraint*-p2.f[2] + int(-p2.f[2])/Cconstraint); p2.e[3] = p1.e; p2.e[4] = (Rconstraint*-p2.f[4] + int(-p2.f[4])/Cconstraint); p2.e[5] = (Rconstraint*-p2.f[5] + int(-p2.f[5])/Cconstraint); p2.e[6] = (Rconstraint*-p2.f[6] + int(-p2.f[6])/Cconstraint); p1.f = p2.f[3]; implementation_end; Wbai 240 424 description ' 4.0 1 False Bond Graph\ZeroJunction.emx 2007-9-27 9:51:43 True '; knot ZeroJunction ports power knot duplicatable none p [6,1]; signal knot out effort [6,1]; restrictions causality constraint one_in p; end; icon bg bottom figures text '0' 240 424 color 0 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; ZeroJunction 240 160 description '4.01False Bond Graph\ZeroJunction.emx 2007-9-27 9:51:43 '; knot ZeroJunction ports power knot duplicatable none p [1]; signal knot out effort [1]; restrictions causality constraint one_in p; end; icon bg figures text '0' 240 160 color 0 18 bold; end; implementation eq equations sum (direct (p.f)) = 0; equal (collect (p.e)); effort = first (p.e); implementation_end; end; connections Hin -> MatrixMul\input2; Integrate\output -> Splitter2\input; MatrixMul\output -> Hout; OneJunction\flow -> Integrate\input 320 272; OneJunction\p => Rjoint\p; OneJunction\p => uTbai\p1; p <= Wbai\p; p1 => ZeroJunction\p; p2 => AdHji\p2; Splitter2\output -> AdHji\H 424 368; Splitter2\output -> MatrixMul\input1; Tbai\p => Wbai\p; uTbai\p2 => Tbai\p; Wbai\p <= AdHji\p1; ZeroJunction\p => OneJunction\p; end; parameterrelations EndstopMin\Rendstop = Rendstop; EndstopMin\Cendstop = Cendstop; EndstopMin\InitialPos = InitialPos; EndstopMin\EndstopPos = MinEndstopPos; EndstopMax\Rendstop = Rendstop; EndstopMax\Cendstop = Cendstop; EndstopMax\InitialPos = InitialPos; EndstopMax\EndstopPos = MaxEndstopPos; Rjoint\Rjoint= Rjoint; Integrate\init = InitialPos; uTbai\Rconstraint = Rconstraint; uTbai\Cconstraint = Cconstraint;parameterrelations_end; figures text 'b = next link (body) a = previous link (body) i = Frame fixed in previous body, fixed in joint j = Frame fixed in next body, fixed in joint ' 744 400 color 0; implementation_end; Link 464 504 description ' 4.8 Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx 1 False 2020-7-16 17:44:32 False '; type 'Submodel-Equation' ports signal in Hin [4,4]; signal out Hout [4,4]; power in Pin [6,1]; power out Pout [6,1]; restrictions causality constraint not_equal Pin Pout; end; icon bg bottom figures rectangle 432 464 496 544 color 0 fill 8454041; text 'name' 464 488 color 0 'Clear Sans' 16; terminals Hin 432 528 fixed; Hout 496 528 fixed; Pin 496 480 fixed; Pout 432 480 fixed; end; implementation eq parameters real offset[3]= [0.0; 0.0325; 0.0]; //coordinates of joint_1 variables real Hab[4,4]; real AdHab[6,6]; equations Hab = homogeneous(eye(3),offset); AdHab = Adjoint(eye(3),offset); Hout = Hin * Hab; Pout.e = transpose(AdHab) * Pin.e; Pin.f = AdHab * Pout.f; implementation_end; Link1 624 504 description ' 4.8 Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx 1 False 2020-7-16 17:44:32 False '; type 'Submodel-Equation' ports signal in Hin [4,4]; signal out Hout [4,4]; power in Pin [6,1]; power out Pout [6,1]; restrictions causality constraint not_equal Pin Pout; end; icon bg bottom figures rectangle 592 464 656 544 color 0 fill 8454041; text 'name' 624 488 color 0 'Clear Sans' 16; terminals Hin 592 528 fixed; Hout 656 528 fixed; Pin 656 480 fixed; Pout 592 480 fixed; end; implementation eq parameters real offset[3]= [0.0; 0.0325; 0.0]; //coordinates of joint_1 variables real Hab[4,4]; real AdHab[6,6]; equations Hab = homogeneous(eye(3),offset); AdHab = Adjoint(eye(3),offset); Hout = Hin * Hab; Pout.e = transpose(AdHab) * Pin.e; Pin.f = AdHab * Pout.f; implementation_end; Link2 808 504 description ' 4.8 Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx 1 False 2020-7-16 17:44:32 False '; type 'Submodel-Equation' ports signal in Hin [4,4]; signal out Hout [4,4]; power in Pin [6,1]; power out Pout [6,1]; restrictions causality constraint not_equal Pin Pout; end; icon bg bottom figures rectangle 776 464 840 544 color 0 fill 8454041; text 'name' 808 488 color 0 'Clear Sans' 16; terminals Hin 776 528 fixed; Hout 840 528 fixed; Pin 840 480 fixed; Pout 776 480 fixed; end; implementation eq parameters real offset[3]= [0; 0.025; 0]; //coordinates of joint_1 variables real Hab[4,4]; real AdHab[6,6]; equations Hab = homogeneous(eye(3),offset); AdHab = Adjoint(eye(3),offset); Hout = Hin * Hab; Pout.e = transpose(AdHab) * Pin.e; Pin.f = AdHab * Pout.f; implementation_end; Link3 968 504 description ' 4.8 Z:\home\wouter\Documents\20-sim\library\Bond Graph\MR\link-v2.emx 1 False 2020-7-16 17:44:32 False '; type 'Submodel-Equation' ports signal in Hin [4,4]; signal out Hout [4,4]; power in Pin [6,1]; power out Pout [6,1]; restrictions causality constraint not_equal Pin Pout; end; icon bg bottom figures rectangle 936 464 1000 544 color 0 fill 8454041; text 'name' 968 488 color 0 'Clear Sans' 16; terminals Hin 936 528 fixed; Hout 1000 528 fixed; Pin 1000 480 fixed; Pout 936 480 fixed; end; implementation eq parameters real offset[3]= [0; 0.025; 0]; //coordinates of joint_1 variables real Hab[4,4]; real AdHab[6,6]; equations Hab = homogeneous(eye(3),offset); AdHab = Adjoint(eye(3),offset); Hout = Hin * Hab; Pout.e = transpose(AdHab) * Pin.e; Pin.f = AdHab * Pout.f; implementation_end; new_joint1 672 592 description '4.0 Template\Submodel-Equation.emx 1 False 2007-11-1 22:32:1 False '; type 'Submodel-Equation' ports signal in input [4,4]; signal out output; end; implementation eq variables real position[3]; real rotation[3]; real R[3,3]; equations // start typing here position = input[1:3,4]; rotation = [input[3,2];input[1,3];input[2,1]]; R = input[1:3,1:3];implementation_end; new_joint2 1064 528 description '4.0 Template\Submodel-Equation.emx 1 False 2007-11-1 22:32:1 False '; type 'Submodel-Equation' ports signal in input [4,4]; signal out output; end; implementation eq variables real position[3]; real rotation[3]; real R[3,3]; equations // start typing here position = input[1:3,4]; rotation = [input[3,2];input[1,3];input[2,1]]; R = input[1:3,1:3];implementation_end; OneJunction 232 256 description '4.01False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 232 256 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; OneJunction1 304 480 description '4.01False Bond Graph\OneJunction.emx 2007-9-27 9:51:18 '; knot OneJunction ports power knot duplicatable none p [6,1]; signal knot out flow [6,1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 304 480 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; ori_joint1 440 408 description '4.0 Template\Submodel-Equation.emx 1 False 2007-11-1 22:32:1 False '; type 'Submodel-Equation' ports signal in input [4,4]; signal out output; end; implementation eq variables real position[3]; real rotation[3]; real R[3,3]; equations // start typing here position = input[1:3,4]; rotation = [input[3,2];input[1,3];input[2,1]]; R = input[1:3,1:3]; implementation_end; ori_joint2 760 336 description '4.0 Template\Submodel-Equation.emx 1 False 2007-11-1 22:32:1 False '; type 'Submodel-Equation' ports signal in input [4,4]; signal out output; end; implementation eq variables real position[3]; real rotation[3]; real R[3,3]; equations // start typing here position = input[1:3,4]; rotation = [input[3,2];input[1,3];input[2,1]]; R = input[1:3,1:3];implementation_end; Sf 160 256 description '4.01False Bond Graph\3D\Sf-3.emx 2007-9-25 12:11:58 '; type 'Sf-3' ports power out p [6,1]; restrictions causality fixed in p; end; icon bg bottom figures text 'Sf' 160 256 color 0 18 bold; end; implementation eq parameters real flow[6,1] = 0; variables real effort [6]; equations p.f = flow; effort = p.e; implementation_end; Sf1 256 480 description '4.01False Bond Graph\3D\Sf-3.emx 2007-9-25 12:11:58 '; type 'Sf-3' ports power out p [6,1]; restrictions causality fixed in p; end; icon bg bottom figures text 'Sf' 256 480 color 0 18 bold; end; implementation eq parameters real flow[6,1] = 0; variables real effort [6]; equations p.f = flow; effort = p.e; implementation_end; Splitter1 296 96 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [1]; signal knot in input [1]; end; icon bg ellipse figures ellipse 292.8 92.8 299.2 99.2 color -1 fill 0; ellipse 291.7 91.7 300.3 100.3 color -1; terminals input 296 96 fixed; end; implementation eq equations collect (output) = input; implementation_end; Splitter2 232 336 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 228.8 332.8 235.2 339.2 color -1 fill 0; ellipse 227.7 331.7 236.3 340.3 color -1; terminals input 232 336 fixed; end; implementation eq equations collect (output) = input; implementation_end; Splitter3 480 640 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [1]; signal knot in input [1]; end; icon bg ellipse figures ellipse 476.8 636.8 483.2 643.2 color -1 fill 0; ellipse 475.7 635.7 484.3 644.3 color -1; terminals input 480 640 fixed; end; implementation eq equations collect (output) = input; implementation_end; Splitter4 232 528 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 228.8 524.8 235.2 531.2 color -1 fill 0; ellipse 227.7 523.7 236.3 532.3 color -1; terminals input 232 528 fixed; end; implementation eq equations collect (output) = input; implementation_end; Splitter5 440 336 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 436.8 332.8 443.2 339.2 color -1 fill 0; ellipse 435.7 331.7 444.3 340.3 color -1; terminals input 440 336 fixed; end; implementation eq equations collect (output) = input; implementation_end; Splitter6 672 528 description '4.0 Signal\Block Diagram\Splitter.emx 2008-01-17 11:28:29 1 False '; knot Splitter ports signal knot duplicatable out output [4,4]; signal knot in input [4,4]; end; icon bg ellipse figures ellipse 668.8 524.8 675.2 531.2 color -1 fill 0; ellipse 667.7 523.7 676.3 532.3 color -1; terminals input 672 528 fixed; end; implementation eq equations collect (output) = input; implementation_end; Submodel1 296 144 description ' 4.8 1 '; type Submodel ports signal in input; power out p2; end; implementation bg submodels Gain1 552 88 description '4.01False Signal\Block Diagram\Gain.emx 2007-9-26 12:15:12 '; type Gain ports signal in input; signal out output; end; icon bg bottom figures rectangle 536.1 72 567.9 104 color 0 fill 15132390; text 'K' 552 88 color 16711680 16 bold; end; implementation eq parameters real K = 12.0; // gain equations output = K * input; implementation_end; GY 624 184 description ' 4.2 1 False Bond Graph\GY.emx 2011-11-29 15:53:45 '; type GY ports power in p1; power out p2; restrictions causality constraint equal p1 p2; end; icon bg bottom figures text 'GY' 624 184 color 0 18 bold; end; implementation eq parameters real r = 0.127; equations p1.e = r * p2.f; p2.e = r * p1.f; implementation_end; MSe 624 88 description ' 4.2 1 False Bond Graph\MSe.emx 2011-11-29 16:12:33 '; type MSe ports power out p; signal in effort; restrictions causality fixed out p; end; icon bg bottom figures text 'MSe' 624 88 color 0 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; plug input 424 88; plug p2 624 220; OneJunction2 624 136 description ' 4.2 1 False Bond Graph\OneJunction.emx 2011-11-29 16:17:51 '; knot OneJunction ports power knot duplicatable none p [1]; signal knot out flow [1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 624 136 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; R 664 136 description ' 4.2 1 False Bond Graph\R.emx 2011-11-29 16:35:37 '; type R ports power in p; end; icon bg bottom figures text 'R' 664 136 color 0 18 bold; end; implementation eq parameters real r = 0.08; equations p.e = r * p.f; implementation_end; SignalLimiter2 488 88 description '4.01False Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx 2007-9-26 12:47:40 '; type 'SignalLimiter-Limit' ports signal in input; signal out output; end; icon bg bottom figures group rectangle 472 72 504 104 color 0 fill 15132390; line 487.9 76.5 487.9 101 color 0 fill 15132390; line 475 88.2 500.7 88.2 color 0 fill 15132390; spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2; spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2; spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2; end; end; implementation eq parameters real maximum = 1; real minimum = -1; equations output = limit (input, minimum, maximum); implementation_end; end; connections Gain1\output -> MSe\effort; GY\p2 => p2; input -> SignalLimiter2\input; MSe\p => OneJunction2\p; OneJunction2\p => GY\p1; R\p <= OneJunction2\p; SignalLimiter2\output -> Gain1\input; end; implementation_end; Submodel2 488 96 description ' 4.8 1 '; type Submodel ports signal in input; power out p2; end; implementation bg submodels Gain1 552 88 description '4.01False Signal\Block Diagram\Gain.emx 2007-9-26 12:15:12 '; type Gain ports signal in input; signal out output; end; icon bg bottom figures rectangle 536.1 72 567.9 104 color 0 fill 15132390; text 'K' 552 88 color 16711680 16 bold; end; implementation eq parameters real K = 12.0; // gain equations output = K * input; implementation_end; GY 624 184 description ' 4.2 1 False Bond Graph\GY.emx 2011-11-29 15:53:45 '; type GY ports power in p1; power out p2; restrictions causality constraint equal p1 p2; end; icon bg bottom figures text 'GY' 624 184 color 0 18 bold; end; implementation eq parameters real r = 0.127; equations p1.e = r * p2.f; p2.e = r * p1.f; implementation_end; MSe 624 88 description ' 4.2 1 False Bond Graph\MSe.emx 2011-11-29 16:12:33 '; type MSe ports power out p; signal in effort; restrictions causality fixed out p; end; icon bg bottom figures text 'MSe' 624 88 color 0 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; plug input 424 88; plug p2 624 220; OneJunction2 624 136 description ' 4.2 1 False Bond Graph\OneJunction.emx 2011-11-29 16:17:51 '; knot OneJunction ports power knot duplicatable none p [1]; signal knot out flow [1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 624 136 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; R 664 136 description ' 4.2 1 False Bond Graph\R.emx 2011-11-29 16:35:37 '; type R ports power in p; end; icon bg bottom figures text 'R' 664 136 color 0 18 bold; end; implementation eq parameters real r = 0.08; equations p.e = r * p.f; implementation_end; SignalLimiter2 488 88 description '4.01False Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx 2007-9-26 12:47:40 '; type 'SignalLimiter-Limit' ports signal in input; signal out output; end; icon bg bottom figures group rectangle 472 72 504 104 color 0 fill 15132390; line 487.9 76.5 487.9 101 color 0 fill 15132390; line 475 88.2 500.7 88.2 color 0 fill 15132390; spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2; spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2; spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2; end; end; implementation eq parameters real maximum = 1; real minimum = -1; equations output = limit (input, minimum, maximum); implementation_end; end; connections Gain1\output -> MSe\effort; GY\p2 => p2; input -> SignalLimiter2\input; MSe\p => OneJunction2\p; OneJunction2\p => GY\p1; R\p <= OneJunction2\p; SignalLimiter2\output -> Gain1\input; end; implementation_end; Submodel4 384 640 description ' 4.8 1 '; type Submodel ports signal in input; power out p2; end; implementation bg submodels Gain1 552 88 description '4.01False Signal\Block Diagram\Gain.emx 2007-9-26 12:15:12 '; type Gain ports signal in input; signal out output; end; icon bg bottom figures rectangle 536.1 72 567.9 104 color 0 fill 15132390; text 'K' 552 88 color 16711680 16 bold; end; implementation eq parameters real K = 12.0; // gain equations output = K * input; implementation_end; GY 624 184 description ' 4.2 1 False Bond Graph\GY.emx 2011-11-29 15:53:45 '; type GY ports power in p1; power out p2; restrictions causality constraint equal p1 p2; end; icon bg bottom figures text 'GY' 624 184 color 0 18 bold; end; implementation eq parameters real r = 0.127; equations p1.e = r * p2.f; p2.e = r * p1.f; implementation_end; MSe 624 88 description ' 4.2 1 False Bond Graph\MSe.emx 2011-11-29 16:12:33 '; type MSe ports power out p; signal in effort; restrictions causality fixed out p; end; icon bg bottom figures text 'MSe' 624 88 color 0 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; plug input 424 88; plug p2 624 220; OneJunction2 624 136 description ' 4.2 1 False Bond Graph\OneJunction.emx 2011-11-29 16:17:51 '; knot OneJunction ports power knot duplicatable none p [1]; signal knot out flow [1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 624 136 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; R 664 136 description ' 4.2 1 False Bond Graph\R.emx 2011-11-29 16:35:37 '; type R ports power in p; end; icon bg bottom figures text 'R' 664 136 color 0 18 bold; end; implementation eq parameters real r = 0.08; equations p.e = r * p.f; implementation_end; SignalLimiter2 488 88 description '4.01False Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx 2007-9-26 12:47:40 '; type 'SignalLimiter-Limit' ports signal in input; signal out output; end; icon bg bottom figures group rectangle 472 72 504 104 color 0 fill 15132390; line 487.9 76.5 487.9 101 color 0 fill 15132390; line 475 88.2 500.7 88.2 color 0 fill 15132390; spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2; spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2; spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2; end; end; implementation eq parameters real maximum = 1; real minimum = -1; equations output = limit (input, minimum, maximum); implementation_end; end; connections Gain1\output -> MSe\effort; GY\p2 => p2; input -> SignalLimiter2\input; MSe\p => OneJunction2\p; OneJunction2\p => GY\p1; R\p <= OneJunction2\p; SignalLimiter2\output -> Gain1\input; end; implementation_end; Submodel5 728 640 description ' 4.8 1 '; type Submodel ports signal in input; power out p2; end; implementation bg submodels Gain1 552 88 description '4.01False Signal\Block Diagram\Gain.emx 2007-9-26 12:15:12 '; type Gain ports signal in input; signal out output; end; icon bg bottom figures rectangle 536.1 72 567.9 104 color 0 fill 15132390; text 'K' 552 88 color 16711680 16 bold; end; implementation eq parameters real K = 12.0; // gain equations output = K * input; implementation_end; GY 624 184 description ' 4.2 1 False Bond Graph\GY.emx 2011-11-29 15:53:45 '; type GY ports power in p1; power out p2; restrictions causality constraint equal p1 p2; end; icon bg bottom figures text 'GY' 624 184 color 0 18 bold; end; implementation eq parameters real r = 0.127; equations p1.e = r * p2.f; p2.e = r * p1.f; implementation_end; MSe 624 88 description ' 4.2 1 False Bond Graph\MSe.emx 2011-11-29 16:12:33 '; type MSe ports power out p; signal in effort; restrictions causality fixed out p; end; icon bg bottom figures text 'MSe' 624 88 color 0 18 bold; end; implementation eq variables real flow; equations p.e = effort; flow = p.f; implementation_end; plug input 424 88; plug p2 624 220; OneJunction2 624 136 description ' 4.2 1 False Bond Graph\OneJunction.emx 2011-11-29 16:17:51 '; knot OneJunction ports power knot duplicatable none p [1]; signal knot out flow [1]; restrictions causality constraint one_out p; end; icon bg figures text '1' 624 136 color 0 18 bold; end; implementation eq equations sum (direct (p.e)) = 0; equal (collect (p.f)); flow = first (p.f); implementation_end; R 664 136 description ' 4.2 1 False Bond Graph\R.emx 2011-11-29 16:35:37 '; type R ports power in p; end; icon bg bottom figures text 'R' 664 136 color 0 18 bold; end; implementation eq parameters real r = 0.08; equations p.e = r * p.f; implementation_end; SignalLimiter2 488 88 description '4.01False Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx 2007-9-26 12:47:40 '; type 'SignalLimiter-Limit' ports signal in input; signal out output; end; icon bg bottom figures group rectangle 472 72 504 104 color 0 fill 15132390; line 487.9 76.5 487.9 101 color 0 fill 15132390; line 475 88.2 500.7 88.2 color 0 fill 15132390; spline 481.9 95.1 493.9 81.4 color 16711680 fill 15132390 width 2; spline 493.3 82.2 501.9 81.8 color 16711680 fill 15132390 width 2; spline 475 95.6 481.9 95.1 color 16711680 fill 15132390 width 2; end; end; implementation eq parameters real maximum = 1; real minimum = -1; equations output = limit (input, minimum, maximum); implementation_end; end; connections Gain1\output -> MSe\effort; GY\p2 => p2; input -> SignalLimiter2\input; MSe\p => OneJunction2\p; OneJunction2\p => GY\p1; R\p <= OneJunction2\p; SignalLimiter2\output -> Gain1\input; end; implementation_end; Wtip0 760 256 description ' 4.0 1 False Bond Graph\Se.emx 2007-9-25 12:3:26 True '; type Se ports power out p [6,1]; restrictions causality fixed out p; end; icon bg bottom figures text 'Se' 760 256 color 0 18 bold; end; implementation eq parameters real effort = 0.0; variables real flow[6]; equations p.e = effort; flow = p.f; implementation_end; Wtip1 1064 480 description ' 4.0 1 False Bond Graph\Se.emx 2007-9-25 12:3:26 True '; type Se ports power out p [6,1]; restrictions causality fixed out p; end; icon bg bottom figures text 'Se' 1064 480 color 0 18 bold; end; implementation eq parameters real effort = 0.0; variables real flow[6]; equations p.e = effort; flow = p.f; implementation_end; end; connections Base\Hout -> Splitter5\input; Base\p => JointBase2\p2; Base1\Hout -> ori_joint2\input; Base1\p => JointBase1\p2; Base2\Hout -> Link3\Hin; Base2\p1 <= Link3\Pout; Base3\Hout -> Link1\Hin; Base3\p1 <= Link1\Pout; Constant\output -> Splitter2\input; Constant1\output -> Splitter1\input; Constant2\output -> Splitter3\input; Joint\Hout -> Link\Hin; Joint\p2 <= Link\Pout; Joint1\Hout -> Link2\Hin; Joint1\p2 <= Link2\Pout; JointBase1\Hout -> Base1\Hin; JointBase1\p => Base\p1; JointBase2\Hout -> Base\Hin; JointBase2\p => OneJunction\p; Link\Hout -> Base3\Hin; Link\Pin <= Base3\p; Link1\Hout -> Splitter6\input; Link1\Pin <= Joint1\p; Link2\Hout -> Base2\Hin; Link2\Pin <= Base2\p; Link3\Hout -> new_joint2\input; Link3\Pin <= Wtip1\p; OneJunction\p <= Sf\p; OneJunction1\p <= Joint\p; OneJunction1\p <= Sf1\p; Splitter1\output -> Submodel1\input; Splitter1\output -> Submodel2\input; Splitter2\output -> JointBase2\Hin; Splitter2\output -> Splitter4\input; Splitter3\output -> Submodel4\input; Splitter3\output -> Submodel5\input; Splitter4\output -> Joint\Hin; Splitter5\output -> JointBase1\Hin; Splitter5\output -> ori_joint1\input; Splitter6\output -> Joint1\Hin; Splitter6\output -> new_joint1\input; Submodel1\p2 => JointBase2\p1; Submodel2\p2 => JointBase1\p1; Submodel4\p2 => Joint\p1; Submodel5\p2 => Joint1\p1; Wtip0\p => Base1\p1; end; implementation_end; ]]> Experiment 1 4.8 Base1\InertialTensor\state_initial 6 1 0 0 0 0 0 0 Base2\InertialTensor\state_initial 6 1 0 0 0 0 0 0 Base3\InertialTensor\state_initial 6 1 0 0 0 0 0 0 Base\InertialTensor\state_initial 6 1 0 0 0 0 0 0 Joint1\JointType\uTbai\state_initial 6 1 0 0 0 0 0 0 Joint\JointType\uTbai\state_initial 6 1 0 0 0 0 0 0 new_state1_initial 0 new_state10_initial 0 new_state2_initial 0 new_state3_initial 0 new_state4_initial 0 new_state5_initial 0 new_state6_initial 0 new_state7_initial 0 new_state8_initial 0 new_state9_initial 0 Submodel4\R\p.f_initial 0 Submodel5\R\p.f_initial 0 time ori_joint1\position[1] ori_joint1\position[2] ori_joint1\position[3] new_joint1\position[1] new_joint1\position[2] new_joint1\position[3] ori_joint2\position[1] ori_joint2\position[2] ori_joint2\position[3] ori_joint1\R[1,3] ori_joint1\R[2,3] ori_joint1\R[3,3] ori_joint1\R[1,2] ori_joint1\R[2,2] ori_joint1\R[3,2] ori_joint2\R[1,3] ori_joint2\R[2,3] ori_joint2\R[3,3] ori_joint2\R[1,2] ori_joint2\R[2,2] ori_joint2\R[3,2] new_joint2\position[1] new_joint2\position[2] new_joint2\position[3] GraphPlot 1 false 16777215 true true 15780518 12624260 0 10 10 10 false 16777215 true 1 model true Arial 12 34 400 0 0 0 0 Arial 12 34 400 0 0 0 0 Arial 10 34 400 0 0 0 0 Arial 12 34 400 0 0 0 0 true true false 0.0 1.424742322143329 true 3 -0.1 0.1 true 1 -0.1 0.1 true 1 -0.1 0.1 true 1 -0.1 0.1 true 1 -0.1 0.1 true 1 -0.1 0.1 true 1 3355111 1 3355111 0 true 1 1 1 true true time true ori_joint1\position[1] 6076255 1 6076255 0 true 1 1 1 true true time true ori_joint1\position[2] 12553035 1 12553035 0 true 1 1 1 true true time true ori_joint1\position[3] 15086320 1 15086320 0 true 1 1 1 true true time true new_joint1\position[1] 15790150 1 15790150 0 true 1 1 1 true true time true new_joint1\position[2] 1696255 1 1696255 0 true 1 1 1 true true time true new_joint1\position[3] true 0 16777215 D3DPlot 2 false 16777215 true 3D Animation 137 true false 4294967295 Gradients\BlueWhite.png true 1.0 1.0 1 1 1 true Reference Frame Bryant false false false false false false 1 1 1 false Default Lights and Cameras Bryant false false false false false false false Ambient 1 1 Direct3D false false false false false false 0 0.3 0.3 0.3 1 1 1 true 0.3 0.3 0.3 1 1 1 true true false false false Parallel -3 5 3 0.457495710997814 -0.762492851663023 -0.457495710997814 0.235379601434674 -0.392299335724456 0.889211827642101 Direct3D false false false false false false 3 0.5 0.5 0.5 1 1 1 true 1.0 0.0 0.0 0.5 0.5 0.5 1 1 1 true 0.5 0.5 0.5 1 1 1 true false true true false Spot Light 1 -3 -5 1 0.50709255283711 0.845154254728517 -0.169030850945703 0.0869656553478673 0.144942758913112 0.985610760609162 Direct3D false false false false false false 2 0.5 0.5 0.5 1 1 1 true 1.0 0.05 0.05 1.0471975511965976 1.0471975511965976 0.0 0.5 0.5 0.5 1 1 1 true 0.5 0.5 0.5 1 1 1 true false true true false Spot Light 2 2 -3 -1 -0.534522483824849 0.801783725737273 0.267261241912424 0.14824986333222 -0.22237479499833 0.963624111659432 Direct3D false false false false false false 2 1 1 1 1 1 1 true 1.0 0.05 0.05 1.5707963267948966 1.5707963267948966 0.0 1 1 1 1 1 1 true 0.5 0.5 0.5 1 1 1 true false true true false Camera Looking at Origin 5.66443922345846 -1.87918322175823 8.35361970698833 -0.551742297648959 0.183041043883461 -0.813680780920319 -0.77229119625168 0.256208355506313 0.581311953051802 Direct3D false false false false false false 0.01 100.0 true 0.003926990816987242 45.0 -10.0 10.0 10.0 -10.0 true true 1 true true true false Front(XY)-Camera 10 -1 1 Direct3D false false false false false false 0.01 100.0 true 9.999999999999998 45.0 -9.999999999999998 9.999999999999998 9.999999999999998 -9.999999999999998 true true 1 true false false false Side(YZ)-Camera 10 -1 1 Direct3D false false false false false false 0.01 100.0 true 9.999999999999998 45.0 -9.999999999999998 9.999999999999998 9.999999999999998 -9.999999999999998 true true 1 true false false false Top(XZ)-Camera 10 -1 1 Direct3D false false false false false false 0.01 100.0 true 9.999999999999998 45.0 -9.999999999999998 9.999999999999998 9.999999999999998 -9.999999999999998 true true 1 true false false 10 10 10 false Scenery Bryant false false false false false false 1 1 1 false Reference Frame Bryant false false false false false false 5.0 ori_joint1\position[1] -0.05242625720312162 ori_joint1\position[2] 0.03842509018430717 ori_joint1\position[3] 0.0 15 true true 0.1 15 true 0.1 0.1 0.0649999976158142 true 1 1 1 1.0 1 1 1 true 0.5 0.5 0.5 15 false false Line -0.806557803124948 0.591155233604726 1 Direct3D false false false false false false 1.0 ori_joint2\position[1] -0.10031667574147025 ori_joint2\position[2] 0.024054710501717216 ori_joint2\position[3] 0.0 15 true true 0.1 15 true 0.1 0.1 0.0500000007450581 true 1 1 1 1.0 1 1 1 true 0.5 0.5 0.5 15 false false Line ori_joint1\position[1] -0.05242625720312162 ori_joint1\position[2] 0.03842509018430717 ori_joint1\position[3] 0.0 -0.957808370766973 -0.287407593651799 1 Direct3D false false false false false false 1 1 1 false Reference Frame ori_joint1\position[1] -0.05242625720312162 ori_joint1\position[2] 0.03842509018430717 ori_joint1\position[3] 0.0 ori_joint1\R[1,3] 0.0 ori_joint1\R[2,3] 0.0 ori_joint1\R[3,3] 1.0 ori_joint1\R[1,2] -0.806557803124948 ori_joint1\R[2,2] 0.5911552336047257 ori_joint1\R[3,2] 0.0 Matrix false false false false false false 1 1 1 false Reference Frame ori_joint2\position[1] -0.10031667574147025 ori_joint2\position[2] 0.024054710501717216 ori_joint2\position[3] 0.0 ori_joint2\R[1,3] 0.0 ori_joint2\R[2,3] 0.0 ori_joint2\R[3,3] 1.0 ori_joint2\R[1,2] -0.9578083707669727 ori_joint2\R[2,2] -0.2874075936517991 ori_joint2\R[3,2] 0.0 Matrix false false false false false false GraphPlot 3 false 16777215 true true 15780518 12624260 0 10 10 10 false 16777215 true 1 model(1) true Arial 12 34 400 0 0 0 0 Arial 12 34 400 0 0 0 0 Arial 10 34 400 0 0 0 0 Arial 12 34 400 0 0 0 0 true true false 0.0 1.424742322143329 true 3 -0.25 0.25 true 2 -0.25 0.25 true 2 -0.25 0.25 true 2 -0.25 0.25 true 2 -0.25 0.25 true 2 -0.25 0.25 true 2 3355111 1 3355111 0 true 1 1 1 true true time true ori_joint2\position[1] 6076255 1 6076255 0 true 1 1 1 true true time true ori_joint2\position[2] 12553035 1 12553035 0 true 1 1 1 true true time true ori_joint2\position[3] 15086320 1 15086320 0 true 1 1 1 true true time true new_joint2\position[1] 15790150 1 15790150 0 true 1 1 1 true true time true new_joint2\position[2] 1696255 1 1696255 0 true 1 1 1 true true time true new_joint2\position[3] true 0 16777215 1 true Window 1 0 1 3 Base 2 true Window 2 0 2 Base 0.200521 0.191667 0.840104 0.771296 0.0859375 0.0712963 0.84375 0.833333 0.0 10.0 false true false false 0.1 1.0e-6 1.0e-7 false true Euler 0.01 false BackwardEuler 1.0e-5 1.0e-5 1.0e-5 1.0e-5 0.01 1.0 AdamsBashforth 0.01 false RungeKutta2 0.01 false RungeKutta4 0.01 false RungeKutta8 false 0.0 false 0.0 1.0e-6 1.0e-6 0.9 0.33 6.0 0.0 false 100000 false 1000 RungeKuttaFehlberg false 0.0 false 0.0 1.0e-6 1.0e-6 VodeAdams false 0.0 false 0.0 1.0e-6 1.0e-6 true true BDFMethod 1.0e-5 1.0e-5 1.0e-5 1.0e-5 false 0.0 false 0.0 MeBDFiMethod 1.0e-5 1.0e-5 1.0e-5 1.0e-5 false 0.0 false 0.0 7 10 false true true false true 0 0.0 true MultipleRun true UseEndValue 0.001 BroydonFletcherGoldfarbShanno true true true true false 1.0