Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

9884 linhas
281KB

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Document>
  3. <Model version="4.8" build="4.8.2.10124">
  4. <Sidops><![CDATA[model 128 184
  5. description '<Information>
  6. <Description>
  7. <Version>4.8</Version>
  8. <IsMainModel>0</IsMainModel>
  9. <KeepParameterValues>False</KeepParameterValues>
  10. <LibraryPath>C:\users\wouter\My Documents\studie\ma\mahd\implementation\SCARA\06_arm\arm_model.emx</LibraryPath>
  11. <TimeStamp>2020-7-23 11:32:46</TimeStamp>
  12. </Description>
  13. </Information>';
  14. type Mainmodel
  15. end;
  16. implementation bg
  17. submodels
  18. Body1 520 496
  19. description '<Description><Version>4.0</Version>
  20. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  21. <IsMainModel>1</IsMainModel>
  22. <KeepParameterValues>False</KeepParameterValues>
  23. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  24. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  25. </Description>';
  26. type 'Submodel-Equation'
  27. ports
  28. signal in input [4,4];
  29. end;
  30. implementation eq
  31. parameters
  32. real dimension[3] = [0.005;0.01;0.065] {m};
  33. variables
  34. real position[3];
  35. real rotation[3];
  36. real R[3,3];
  37. equations
  38. position = input[1:3,4];
  39. rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
  40. //[input[3,2];input[1,3];input[2,1]];
  41. R = input[1:3,1:3];implementation_end;
  42. Body2 792 544
  43. description '<Description><Version>4.0</Version>
  44. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  45. <IsMainModel>1</IsMainModel>
  46. <KeepParameterValues>False</KeepParameterValues>
  47. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  48. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  49. </Description>';
  50. type 'Submodel-Equation'
  51. ports
  52. signal in input [4,4];
  53. end;
  54. implementation eq
  55. parameters
  56. real dimension[3] = [0.005;0.025;0.01] {m};
  57. variables
  58. real position[3];
  59. real rotation[3];
  60. real R[3,3];
  61. equations
  62. position = input[1:3,4];
  63. rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
  64. //[input[3,2];input[1,3];input[2,1]];
  65. R = input[1:3,1:3];implementation_end;
  66. Body3 704 496
  67. description '<Description><Version>4.0</Version>
  68. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  69. <IsMainModel>1</IsMainModel>
  70. <KeepParameterValues>False</KeepParameterValues>
  71. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  72. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  73. </Description>';
  74. type 'Submodel-Equation'
  75. ports
  76. signal in input [4,4];
  77. end;
  78. implementation eq
  79. parameters
  80. real dimension[3] = [0.005;0.01;0.065] {m};
  81. variables
  82. real position[3];
  83. real rotation[3];
  84. real R[3,3];
  85. equations
  86. position = input[1:3,4];
  87. rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
  88. //[input[3,2];input[1,3];input[2,1]];
  89. R = input[1:3,1:3];implementation_end;
  90. Body4 696 200
  91. description '<Description><Version>4.0</Version>
  92. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  93. <IsMainModel>1</IsMainModel>
  94. <KeepParameterValues>False</KeepParameterValues>
  95. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  96. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  97. </Description>';
  98. type 'Submodel-Equation'
  99. ports
  100. signal in input [4,4];
  101. end;
  102. implementation eq
  103. parameters
  104. real dimension[3] = [0.005;0.05;0.01] {m};
  105. variables
  106. real position[3];
  107. real rotation[3];
  108. real R[3,3];
  109. equations
  110. position = input[1:3,4];
  111. rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
  112. //[input[3,2];input[1,3];input[2,1]];
  113. R = input[1:3,1:3];implementation_end;
  114. Body5 920 232
  115. description '<Description><Version>4.0</Version>
  116. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  117. <IsMainModel>1</IsMainModel>
  118. <KeepParameterValues>False</KeepParameterValues>
  119. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  120. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  121. </Description>';
  122. type 'Submodel-Equation'
  123. ports
  124. signal in input [4,4];
  125. end;
  126. implementation eq
  127. parameters
  128. real dimension[3] = [0.005;0.025;0.01] {m};
  129. variables
  130. real position[3];
  131. real rotation[3];
  132. real R[3,3];
  133. equations
  134. position = input[1:3,4];
  135. rotation = dll('EulerAngles.dll','EulXYZsFromHMatrix',input);
  136. //[input[3,2];input[1,3];input[2,1]];
  137. R = input[1:3,1:3];implementation_end;
  138. COM_body1 496 376
  139. description '<Information><Description><Version>4.8</Version><IsMainModel>1</IsMainModel><LibraryPath>Bond Graph\MR\center_of_mass_v2.emx</LibraryPath><TimeStamp>2020-7-21 12:24:38</TimeStamp></Description><Attributes><GlobalRelations>parameters
  140. real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
  141. real m = 0.00455 {kg};</GlobalRelations></Attributes></Information>';
  142. type Submodel
  143. ports
  144. signal in Hin [4,4];
  145. signal out Hout [4,4];
  146. power out p [6,1];
  147. end;
  148. icon bg bottom
  149. figures
  150. rectangle 480 344 512 408 color 0 fill 139;
  151. text 'COM' 496 376 color 0 'Clear Sans' 16;
  152. terminals
  153. Hin 480 360 fixed;
  154. p 480 392 fixed;
  155. end;
  156. implementation bg
  157. submodels
  158. AdHi0 544 400
  159. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:3</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  160. type MTF
  161. ports
  162. power in p1 [6,1];
  163. power out p2 [6,1];
  164. signal in H [4,4];
  165. restrictions
  166. causality constraint not_equal p1 p2;
  167. end;
  168. icon bg left
  169. figures
  170. text 'MTF' 544 400 color 0 18 bold;
  171. end;
  172. implementation eq
  173. variables
  174. real onlyRotH[4,4];
  175. code
  176. //Only rotations with respect to the inertial system matter!
  177. onlyRotH = H;
  178. onlyRotH[1,4] = 0;
  179. onlyRotH[2,4] = 0;
  180. onlyRotH[3,4] = 0;
  181. p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
  182. p1.f = Adjoint(onlyRotH) * p2.f;
  183. implementation_end;
  184. EJS 616 336
  185. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-10-31 11:43:6</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  186. type MGY
  187. ports
  188. power in p1 [6,1];
  189. end;
  190. icon bg top
  191. figures
  192. text 'MGY' 616 336 color 0 18 bold;
  193. end;
  194. implementation eq
  195. //EJS / Gyroscopic effects
  196. parameters
  197. real global I[3];
  198. real global m;
  199. variables
  200. real II[6,6]; //Inertial tensor
  201. real Q[6,6];
  202. real QI[6,6];
  203. real Ia[6];
  204. initialequations
  205. Ia[1:3] = I;
  206. Ia[4:6] = m;
  207. II = diag(Ia);
  208. equations
  209. Q = transpose(adjoint(p1.f));
  210. QI = Q*II;
  211. p1.e = QI*p1.f;implementation_end;
  212. Gravity 624 400
  213. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:26</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  214. type Se
  215. ports
  216. power out p [6,1];
  217. restrictions
  218. causality fixed out p;
  219. end;
  220. icon bg bottom
  221. figures
  222. text 'Se' 624 400 color 0 18 bold;
  223. end;
  224. implementation eq
  225. parameters
  226. real global m;
  227. variables
  228. real effort[6];
  229. equations
  230. effort = [0;0;0;0;0;-g_n*m];
  231. p.e = effort;
  232. implementation_end;
  233. InertialTensor 544 272
  234. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  235. <LibraryPath>Bond Graph\3D\I-3.emx</LibraryPath>
  236. <TimeStamp>2007-9-25 12:12:14</TimeStamp>
  237. </Description>';
  238. type 'I-3'
  239. ports
  240. power in p [6,1];
  241. signal out state [6,1];
  242. restrictions
  243. causality preferred in p;
  244. end;
  245. icon bg bottom
  246. figures
  247. text 'I' 544 272 color 0 18 bold;
  248. end;
  249. implementation eq
  250. parameters
  251. real global I[3];
  252. real global m;
  253. variables
  254. real II[6,6]; //Inertial tensor
  255. real Ia[6];
  256. initialequations
  257. Ia[1:3] = I;
  258. Ia[4:6] = m;
  259. II = diag(Ia);
  260. equations
  261. state = int(p.e); //state = generalized momentum
  262. p.f = inverse(II)*state;
  263. implementation_end;
  264. plug Hin 433.4 496;
  265. plug Hout 691.2 496;
  266. plug p 439.4 336;
  267. Splitter1 544 496
  268. description '<Description><Version>4.0</Version>
  269. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  270. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  271. <IsMainModel>1</IsMainModel>
  272. <KeepParameterValues>False</KeepParameterValues>
  273. </Description>';
  274. knot Splitter
  275. ports
  276. signal knot duplicatable out output [4,4];
  277. signal knot in input [4,4];
  278. end;
  279. icon bg ellipse
  280. figures
  281. ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
  282. ellipse 539.7 491.7 548.3 500.3 color -1;
  283. terminals
  284. input 544 496 fixed;
  285. end;
  286. implementation eq
  287. equations
  288. collect (output) = input;
  289. implementation_end;
  290. Ta0j 544 336
  291. description '<Description>
  292. <Version>4.0</Version>
  293. <IsMainModel>1</IsMainModel>
  294. <KeepParameterValues>False</KeepParameterValues>
  295. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  296. <TimeStamp>2007-9-27 9:51:18</TimeStamp>
  297. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  298. <Description></Description>
  299. </Description>';
  300. knot OneJunction
  301. ports
  302. power knot duplicatable none p [6,1];
  303. signal knot out flow [6,1];
  304. restrictions
  305. causality constraint one_out p;
  306. end;
  307. icon bg bottom
  308. figures
  309. text '1' 544 336 color 0 18 bold;
  310. end;
  311. implementation eq
  312. equations
  313. sum (direct (p.e)) = 0;
  314. equal (collect (p.f));
  315. flow = first (p.f);
  316. implementation_end;
  317. ZeroJunction1 504 336
  318. description '<Information>
  319. <Description>
  320. <Version>4.2</Version>
  321. <IsMainModel>1</IsMainModel>
  322. <KeepParameterValues>False</KeepParameterValues>
  323. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  324. <TimeStamp>2011-11-29 16:45:16</TimeStamp>
  325. </Description>
  326. </Information>';
  327. knot ZeroJunction
  328. ports
  329. power knot duplicatable none p [6,1];
  330. signal knot out effort [6,1];
  331. restrictions
  332. causality constraint one_in p;
  333. end;
  334. icon bg
  335. figures
  336. text '0' 504 336 color 0 18 bold;
  337. end;
  338. implementation eq
  339. equations
  340. sum (direct (p.f)) = 0;
  341. equal (collect (p.e));
  342. effort = first (p.e);
  343. implementation_end;
  344. end;
  345. connections
  346. AdHi0\p2 => Ta0j\p;
  347. Gravity\p => AdHi0\p1;
  348. Hin -> Splitter1\input;
  349. Splitter1\output -> AdHi0\H;
  350. Splitter1\output -> Hout;
  351. Ta0j\p => EJS\p1;
  352. Ta0j\p => InertialTensor\p;
  353. ZeroJunction1\p => p;
  354. ZeroJunction1\p => Ta0j\p;
  355. end;
  356. implementation_end;
  357. COM_body2 776 688
  358. description '<Information>
  359. <Description>
  360. <Version>4.8</Version>
  361. <IsMainModel>1</IsMainModel>
  362. <LibraryPath>Bond Graph\MR\center_of_mass_v2.emx</LibraryPath>
  363. <TimeStamp>2020-7-21 12:24:38</TimeStamp>
  364. </Description>
  365. <Attributes>
  366. <GlobalRelations>parameters
  367. real I [3,1] = [0.01;0.01;0.0001] {N.m.s};
  368. real m = 0.5 {kg};</GlobalRelations>
  369. </Attributes>
  370. </Information>';
  371. type Submodel
  372. ports
  373. signal in Hin [4,4];
  374. signal out Hout [4,4];
  375. power out p [6,1];
  376. end;
  377. icon bg bottom
  378. figures
  379. rectangle 744 672 808 704 color 0 fill 139;
  380. text 'COM' 776 688 color 0 'Clear Sans' 16;
  381. terminals
  382. Hin 792 672 fixed;
  383. p 760 672 fixed;
  384. end;
  385. implementation bg
  386. submodels
  387. AdHi0 544 400
  388. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:3</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  389. type MTF
  390. ports
  391. power in p1 [6,1];
  392. power out p2 [6,1];
  393. signal in H [4,4];
  394. restrictions
  395. causality constraint not_equal p1 p2;
  396. end;
  397. icon bg left
  398. figures
  399. text 'MTF' 544 400 color 0 18 bold;
  400. end;
  401. implementation eq
  402. variables
  403. real onlyRotH[4,4];
  404. code
  405. //Only rotations with respect to the inertial system matter!
  406. onlyRotH = H;
  407. onlyRotH[1,4] = 0;
  408. onlyRotH[2,4] = 0;
  409. onlyRotH[3,4] = 0;
  410. p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
  411. p1.f = Adjoint(onlyRotH) * p2.f;
  412. implementation_end;
  413. EJS 616 336
  414. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-10-31 11:43:6</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  415. type MGY
  416. ports
  417. power in p1 [6,1];
  418. end;
  419. icon bg top
  420. figures
  421. text 'MGY' 616 336 color 0 18 bold;
  422. end;
  423. implementation eq
  424. //EJS / Gyroscopic effects
  425. parameters
  426. real global I[3];
  427. real global m;
  428. variables
  429. real II[6,6]; //Inertial tensor
  430. real Q[6,6];
  431. real QI[6,6];
  432. real Ia[6];
  433. initialequations
  434. Ia[1:3] = I;
  435. Ia[4:6] = m;
  436. II = diag(Ia);
  437. equations
  438. Q = transpose(adjoint(p1.f));
  439. QI = Q*II;
  440. p1.e = QI*p1.f;implementation_end;
  441. Gravity 624 400
  442. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:26</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  443. type Se
  444. ports
  445. power out p [6,1];
  446. restrictions
  447. causality fixed out p;
  448. end;
  449. icon bg bottom
  450. figures
  451. text 'Se' 624 400 color 0 18 bold;
  452. end;
  453. implementation eq
  454. parameters
  455. real global m;
  456. variables
  457. real effort[6];
  458. equations
  459. effort = [0;0;0;0;0;-g_n*m];
  460. p.e = effort;
  461. implementation_end;
  462. InertialTensor 544 272
  463. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  464. <LibraryPath>Bond Graph\3D\I-3.emx</LibraryPath>
  465. <TimeStamp>2007-9-25 12:12:14</TimeStamp>
  466. </Description>';
  467. type 'I-3'
  468. ports
  469. power in p [6,1];
  470. signal out state [6,1];
  471. restrictions
  472. causality preferred in p;
  473. end;
  474. icon bg bottom
  475. figures
  476. text 'I' 544 272 color 0 18 bold;
  477. end;
  478. implementation eq
  479. parameters
  480. real global I[3];
  481. real global m;
  482. variables
  483. real II[6,6]; //Inertial tensor
  484. real Ia[6];
  485. initialequations
  486. Ia[1:3] = I;
  487. Ia[4:6] = m;
  488. II = diag(Ia);
  489. equations
  490. state = int(p.e); //state = generalized momentum
  491. p.f = inverse(II)*state;
  492. implementation_end;
  493. plug Hin 433.4 496;
  494. plug Hout 691.2 496;
  495. plug p 439.4 336;
  496. Splitter1 544 496
  497. description '<Description><Version>4.0</Version>
  498. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  499. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  500. <IsMainModel>1</IsMainModel>
  501. <KeepParameterValues>False</KeepParameterValues>
  502. </Description>';
  503. knot Splitter
  504. ports
  505. signal knot duplicatable out output [4,4];
  506. signal knot in input [4,4];
  507. end;
  508. icon bg ellipse
  509. figures
  510. ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
  511. ellipse 539.7 491.7 548.3 500.3 color -1;
  512. terminals
  513. input 544 496 fixed;
  514. end;
  515. implementation eq
  516. equations
  517. collect (output) = input;
  518. implementation_end;
  519. Ta0j 544 336
  520. description '<Description>
  521. <Version>4.0</Version>
  522. <IsMainModel>1</IsMainModel>
  523. <KeepParameterValues>False</KeepParameterValues>
  524. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  525. <TimeStamp>2007-9-27 9:51:18</TimeStamp>
  526. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  527. <Description></Description>
  528. </Description>';
  529. knot OneJunction
  530. ports
  531. power knot duplicatable none p [6,1];
  532. signal knot out flow [6,1];
  533. restrictions
  534. causality constraint one_out p;
  535. end;
  536. icon bg bottom
  537. figures
  538. text '1' 544 336 color 0 18 bold;
  539. end;
  540. implementation eq
  541. equations
  542. sum (direct (p.e)) = 0;
  543. equal (collect (p.f));
  544. flow = first (p.f);
  545. implementation_end;
  546. ZeroJunction1 504 336
  547. description '<Information>
  548. <Description>
  549. <Version>4.2</Version>
  550. <IsMainModel>1</IsMainModel>
  551. <KeepParameterValues>False</KeepParameterValues>
  552. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  553. <TimeStamp>2011-11-29 16:45:16</TimeStamp>
  554. </Description>
  555. </Information>';
  556. knot ZeroJunction
  557. ports
  558. power knot duplicatable none p [6,1];
  559. signal knot out effort [6,1];
  560. restrictions
  561. causality constraint one_in p;
  562. end;
  563. icon bg
  564. figures
  565. text '0' 504 336 color 0 18 bold;
  566. end;
  567. implementation eq
  568. equations
  569. sum (direct (p.f)) = 0;
  570. equal (collect (p.e));
  571. effort = first (p.e);
  572. implementation_end;
  573. end;
  574. connections
  575. AdHi0\p2 => Ta0j\p;
  576. Gravity\p => AdHi0\p1;
  577. Hin -> Splitter1\input;
  578. Splitter1\output -> AdHi0\H;
  579. Splitter1\output -> Hout;
  580. Ta0j\p => EJS\p1;
  581. Ta0j\p => InertialTensor\p;
  582. ZeroJunction1\p => p;
  583. ZeroJunction1\p => Ta0j\p;
  584. end;
  585. implementation_end;
  586. COM_body3 696 376
  587. description '<Information><Description><Version>4.8</Version><IsMainModel>1</IsMainModel><LibraryPath>Bond Graph\MR\center_of_mass_v2.emx</LibraryPath><TimeStamp>2020-7-21 12:24:38</TimeStamp></Description><Attributes><GlobalRelations>parameters
  588. real I [3,1] = [1.6399999999999998e-6; 4.7e-8; 1.61e-6] {N.m.s};
  589. real m = 0.00455 {kg};</GlobalRelations></Attributes></Information>';
  590. type Submodel
  591. ports
  592. signal in Hin [4,4];
  593. signal out Hout [4,4];
  594. power out p [6,1];
  595. end;
  596. icon bg bottom
  597. figures
  598. rectangle 680 344 712 408 color 0 fill 139;
  599. text 'COM' 696 376 color 0 'Clear Sans' 16;
  600. terminals
  601. Hin 680 360 fixed;
  602. p 680 392 fixed;
  603. end;
  604. implementation bg
  605. submodels
  606. AdHi0 544 400
  607. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:3</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  608. type MTF
  609. ports
  610. power in p1 [6,1];
  611. power out p2 [6,1];
  612. signal in H [4,4];
  613. restrictions
  614. causality constraint not_equal p1 p2;
  615. end;
  616. icon bg left
  617. figures
  618. text 'MTF' 544 400 color 0 18 bold;
  619. end;
  620. implementation eq
  621. variables
  622. real onlyRotH[4,4];
  623. code
  624. //Only rotations with respect to the inertial system matter!
  625. onlyRotH = H;
  626. onlyRotH[1,4] = 0;
  627. onlyRotH[2,4] = 0;
  628. onlyRotH[3,4] = 0;
  629. p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
  630. p1.f = Adjoint(onlyRotH) * p2.f;
  631. implementation_end;
  632. EJS 616 336
  633. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-10-31 11:43:6</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  634. type MGY
  635. ports
  636. power in p1 [6,1];
  637. end;
  638. icon bg top
  639. figures
  640. text 'MGY' 616 336 color 0 18 bold;
  641. end;
  642. implementation eq
  643. //EJS / Gyroscopic effects
  644. parameters
  645. real global I[3];
  646. real global m;
  647. variables
  648. real II[6,6]; //Inertial tensor
  649. real Q[6,6];
  650. real QI[6,6];
  651. real Ia[6];
  652. initialequations
  653. Ia[1:3] = I;
  654. Ia[4:6] = m;
  655. II = diag(Ia);
  656. equations
  657. Q = transpose(adjoint(p1.f));
  658. QI = Q*II;
  659. p1.e = QI*p1.f;implementation_end;
  660. Gravity 624 400
  661. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:26</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  662. type Se
  663. ports
  664. power out p [6,1];
  665. restrictions
  666. causality fixed out p;
  667. end;
  668. icon bg bottom
  669. figures
  670. text 'Se' 624 400 color 0 18 bold;
  671. end;
  672. implementation eq
  673. parameters
  674. real global m;
  675. variables
  676. real effort[6];
  677. equations
  678. effort = [0;0;0;0;0;-g_n*m];
  679. p.e = effort;
  680. implementation_end;
  681. InertialTensor 544 272
  682. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  683. <LibraryPath>Bond Graph\3D\I-3.emx</LibraryPath>
  684. <TimeStamp>2007-9-25 12:12:14</TimeStamp>
  685. </Description>';
  686. type 'I-3'
  687. ports
  688. power in p [6,1];
  689. signal out state [6,1];
  690. restrictions
  691. causality preferred in p;
  692. end;
  693. icon bg bottom
  694. figures
  695. text 'I' 544 272 color 0 18 bold;
  696. end;
  697. implementation eq
  698. parameters
  699. real global I[3];
  700. real global m;
  701. variables
  702. real II[6,6]; //Inertial tensor
  703. real Ia[6];
  704. initialequations
  705. Ia[1:3] = I;
  706. Ia[4:6] = m;
  707. II = diag(Ia);
  708. equations
  709. state = int(p.e); //state = generalized momentum
  710. p.f = inverse(II)*state;
  711. implementation_end;
  712. plug Hin 433.4 496;
  713. plug Hout 691.2 496;
  714. plug p 439.4 336;
  715. Splitter1 544 496
  716. description '<Description><Version>4.0</Version>
  717. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  718. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  719. <IsMainModel>1</IsMainModel>
  720. <KeepParameterValues>False</KeepParameterValues>
  721. </Description>';
  722. knot Splitter
  723. ports
  724. signal knot duplicatable out output [4,4];
  725. signal knot in input [4,4];
  726. end;
  727. icon bg ellipse
  728. figures
  729. ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
  730. ellipse 539.7 491.7 548.3 500.3 color -1;
  731. terminals
  732. input 544 496 fixed;
  733. end;
  734. implementation eq
  735. equations
  736. collect (output) = input;
  737. implementation_end;
  738. Ta0j 544 336
  739. description '<Description>
  740. <Version>4.0</Version>
  741. <IsMainModel>1</IsMainModel>
  742. <KeepParameterValues>False</KeepParameterValues>
  743. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  744. <TimeStamp>2007-9-27 9:51:18</TimeStamp>
  745. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  746. <Description></Description>
  747. </Description>';
  748. knot OneJunction
  749. ports
  750. power knot duplicatable none p [6,1];
  751. signal knot out flow [6,1];
  752. restrictions
  753. causality constraint one_out p;
  754. end;
  755. icon bg bottom
  756. figures
  757. text '1' 544 336 color 0 18 bold;
  758. end;
  759. implementation eq
  760. equations
  761. sum (direct (p.e)) = 0;
  762. equal (collect (p.f));
  763. flow = first (p.f);
  764. implementation_end;
  765. ZeroJunction1 504 336
  766. description '<Information>
  767. <Description>
  768. <Version>4.2</Version>
  769. <IsMainModel>1</IsMainModel>
  770. <KeepParameterValues>False</KeepParameterValues>
  771. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  772. <TimeStamp>2011-11-29 16:45:16</TimeStamp>
  773. </Description>
  774. </Information>';
  775. knot ZeroJunction
  776. ports
  777. power knot duplicatable none p [6,1];
  778. signal knot out effort [6,1];
  779. restrictions
  780. causality constraint one_in p;
  781. end;
  782. icon bg
  783. figures
  784. text '0' 504 336 color 0 18 bold;
  785. end;
  786. implementation eq
  787. equations
  788. sum (direct (p.f)) = 0;
  789. equal (collect (p.e));
  790. effort = first (p.e);
  791. implementation_end;
  792. end;
  793. connections
  794. AdHi0\p2 => Ta0j\p;
  795. Gravity\p => AdHi0\p1;
  796. Hin -> Splitter1\input;
  797. Splitter1\output -> AdHi0\H;
  798. Splitter1\output -> Hout;
  799. Ta0j\p => EJS\p1;
  800. Ta0j\p => InertialTensor\p;
  801. ZeroJunction1\p => p;
  802. ZeroJunction1\p => Ta0j\p;
  803. end;
  804. implementation_end;
  805. COM_body4 632 56
  806. description '<Information><Description><Version>4.8</Version><IsMainModel>1</IsMainModel><LibraryPath>Bond Graph\MR\center_of_mass_v2.emx</LibraryPath><TimeStamp>2020-7-21 12:24:38</TimeStamp></Description><Attributes><GlobalRelations>parameters
  807. real I [3,1] = [7.583333333333335e-7; 3.645833333333334e-8; 7.364583333333335e-7] {N.m.s};
  808. real m = 0.0035 {kg};</GlobalRelations></Attributes></Information>';
  809. type Submodel
  810. ports
  811. signal in Hin [4,4];
  812. signal out Hout [4,4];
  813. power out p [6,1];
  814. end;
  815. icon bg bottom
  816. figures
  817. rectangle 600 40 664 72 color 0 fill 139;
  818. text 'COM' 632 56 color 0 'Clear Sans' 16;
  819. terminals
  820. Hin 648 72 fixed;
  821. p 616 72 fixed;
  822. end;
  823. implementation bg
  824. submodels
  825. AdHi0 544 400
  826. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:3</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  827. type MTF
  828. ports
  829. power in p1 [6,1];
  830. power out p2 [6,1];
  831. signal in H [4,4];
  832. restrictions
  833. causality constraint not_equal p1 p2;
  834. end;
  835. icon bg left
  836. figures
  837. text 'MTF' 544 400 color 0 18 bold;
  838. end;
  839. implementation eq
  840. variables
  841. real onlyRotH[4,4];
  842. code
  843. //Only rotations with respect to the inertial system matter!
  844. onlyRotH = H;
  845. onlyRotH[1,4] = 0;
  846. onlyRotH[2,4] = 0;
  847. onlyRotH[3,4] = 0;
  848. p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
  849. p1.f = Adjoint(onlyRotH) * p2.f;
  850. implementation_end;
  851. EJS 616 336
  852. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-10-31 11:43:6</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  853. type MGY
  854. ports
  855. power in p1 [6,1];
  856. end;
  857. icon bg top
  858. figures
  859. text 'MGY' 616 336 color 0 18 bold;
  860. end;
  861. implementation eq
  862. //EJS / Gyroscopic effects
  863. parameters
  864. real global I[3];
  865. real global m;
  866. variables
  867. real II[6,6]; //Inertial tensor
  868. real Q[6,6];
  869. real QI[6,6];
  870. real Ia[6];
  871. initialequations
  872. Ia[1:3] = I;
  873. Ia[4:6] = m;
  874. II = diag(Ia);
  875. equations
  876. Q = transpose(adjoint(p1.f));
  877. QI = Q*II;
  878. p1.e = QI*p1.f;implementation_end;
  879. Gravity 624 400
  880. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:26</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  881. type Se
  882. ports
  883. power out p [6,1];
  884. restrictions
  885. causality fixed out p;
  886. end;
  887. icon bg bottom
  888. figures
  889. text 'Se' 624 400 color 0 18 bold;
  890. end;
  891. implementation eq
  892. parameters
  893. real global m;
  894. variables
  895. real effort[6];
  896. equations
  897. effort = [0;0;0;0;0;-g_n*m];
  898. p.e = effort;
  899. implementation_end;
  900. InertialTensor 544 272
  901. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  902. <LibraryPath>Bond Graph\3D\I-3.emx</LibraryPath>
  903. <TimeStamp>2007-9-25 12:12:14</TimeStamp>
  904. </Description>';
  905. type 'I-3'
  906. ports
  907. power in p [6,1];
  908. signal out state [6,1];
  909. restrictions
  910. causality preferred in p;
  911. end;
  912. icon bg bottom
  913. figures
  914. text 'I' 544 272 color 0 18 bold;
  915. end;
  916. implementation eq
  917. parameters
  918. real global I[3];
  919. real global m;
  920. variables
  921. real II[6,6]; //Inertial tensor
  922. real Ia[6];
  923. initialequations
  924. Ia[1:3] = I;
  925. Ia[4:6] = m;
  926. II = diag(Ia);
  927. equations
  928. state = int(p.e); //state = generalized momentum
  929. p.f = inverse(II)*state;
  930. implementation_end;
  931. plug Hin 433.4 496;
  932. plug Hout 691.2 496;
  933. plug p 439.4 336;
  934. Splitter1 544 496
  935. description '<Description><Version>4.0</Version>
  936. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  937. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  938. <IsMainModel>1</IsMainModel>
  939. <KeepParameterValues>False</KeepParameterValues>
  940. </Description>';
  941. knot Splitter
  942. ports
  943. signal knot duplicatable out output [4,4];
  944. signal knot in input [4,4];
  945. end;
  946. icon bg ellipse
  947. figures
  948. ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
  949. ellipse 539.7 491.7 548.3 500.3 color -1;
  950. terminals
  951. input 544 496 fixed;
  952. end;
  953. implementation eq
  954. equations
  955. collect (output) = input;
  956. implementation_end;
  957. Ta0j 544 336
  958. description '<Description>
  959. <Version>4.0</Version>
  960. <IsMainModel>1</IsMainModel>
  961. <KeepParameterValues>False</KeepParameterValues>
  962. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  963. <TimeStamp>2007-9-27 9:51:18</TimeStamp>
  964. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  965. <Description></Description>
  966. </Description>';
  967. knot OneJunction
  968. ports
  969. power knot duplicatable none p [6,1];
  970. signal knot out flow [6,1];
  971. restrictions
  972. causality constraint one_out p;
  973. end;
  974. icon bg bottom
  975. figures
  976. text '1' 544 336 color 0 18 bold;
  977. end;
  978. implementation eq
  979. equations
  980. sum (direct (p.e)) = 0;
  981. equal (collect (p.f));
  982. flow = first (p.f);
  983. implementation_end;
  984. ZeroJunction1 504 336
  985. description '<Information>
  986. <Description>
  987. <Version>4.2</Version>
  988. <IsMainModel>1</IsMainModel>
  989. <KeepParameterValues>False</KeepParameterValues>
  990. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  991. <TimeStamp>2011-11-29 16:45:16</TimeStamp>
  992. </Description>
  993. </Information>';
  994. knot ZeroJunction
  995. ports
  996. power knot duplicatable none p [6,1];
  997. signal knot out effort [6,1];
  998. restrictions
  999. causality constraint one_in p;
  1000. end;
  1001. icon bg
  1002. figures
  1003. text '0' 504 336 color 0 18 bold;
  1004. end;
  1005. implementation eq
  1006. equations
  1007. sum (direct (p.f)) = 0;
  1008. equal (collect (p.e));
  1009. effort = first (p.e);
  1010. implementation_end;
  1011. end;
  1012. connections
  1013. AdHi0\p2 => Ta0j\p;
  1014. Gravity\p => AdHi0\p1;
  1015. Hin -> Splitter1\input;
  1016. Splitter1\output -> AdHi0\H;
  1017. Splitter1\output -> Hout;
  1018. Ta0j\p => EJS\p1;
  1019. Ta0j\p => InertialTensor\p;
  1020. ZeroJunction1\p => p;
  1021. ZeroJunction1\p => Ta0j\p;
  1022. end;
  1023. implementation_end;
  1024. COM_body5 1064 136
  1025. description '<Information><Description><Version>4.8</Version><IsMainModel>1</IsMainModel><LibraryPath>Bond Graph\MR\center_of_mass_v2.emx</LibraryPath><TimeStamp>2020-7-21 12:24:38</TimeStamp></Description><Attributes><GlobalRelations>parameters
  1026. real I [3,1] = [0.018;0.159;0.159] {mN.m.s};
  1027. real m = 0.015 {kg};</GlobalRelations></Attributes></Information>';
  1028. type Submodel
  1029. ports
  1030. signal in Hin [4,4];
  1031. signal out Hout [4,4];
  1032. power out p [6,1];
  1033. end;
  1034. icon bg bottom
  1035. figures
  1036. rectangle 1048 104 1080 168 color 0 fill 139;
  1037. text 'COM' 1064 136 color 0 'Clear Sans' 16;
  1038. terminals
  1039. Hin 1048 152 fixed;
  1040. p 1048 120 fixed;
  1041. end;
  1042. implementation bg
  1043. submodels
  1044. AdHi0 544 400
  1045. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:3</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  1046. type MTF
  1047. ports
  1048. power in p1 [6,1];
  1049. power out p2 [6,1];
  1050. signal in H [4,4];
  1051. restrictions
  1052. causality constraint not_equal p1 p2;
  1053. end;
  1054. icon bg left
  1055. figures
  1056. text 'MTF' 544 400 color 0 18 bold;
  1057. end;
  1058. implementation eq
  1059. variables
  1060. real onlyRotH[4,4];
  1061. code
  1062. //Only rotations with respect to the inertial system matter!
  1063. onlyRotH = H;
  1064. onlyRotH[1,4] = 0;
  1065. onlyRotH[2,4] = 0;
  1066. onlyRotH[3,4] = 0;
  1067. p2.e = transpose(Adjoint(onlyRotH)) * p1.e;
  1068. p1.f = Adjoint(onlyRotH) * p2.f;
  1069. implementation_end;
  1070. EJS 616 336
  1071. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-10-31 11:43:6</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  1072. type MGY
  1073. ports
  1074. power in p1 [6,1];
  1075. end;
  1076. icon bg top
  1077. figures
  1078. text 'MGY' 616 336 color 0 18 bold;
  1079. end;
  1080. implementation eq
  1081. //EJS / Gyroscopic effects
  1082. parameters
  1083. real global I[3];
  1084. real global m;
  1085. variables
  1086. real II[6,6]; //Inertial tensor
  1087. real Q[6,6];
  1088. real QI[6,6];
  1089. real Ia[6];
  1090. initialequations
  1091. Ia[1:3] = I;
  1092. Ia[4:6] = m;
  1093. II = diag(Ia);
  1094. equations
  1095. Q = transpose(adjoint(p1.f));
  1096. QI = Q*II;
  1097. p1.e = QI*p1.f;implementation_end;
  1098. Gravity 624 400
  1099. description '<Information><Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><LibraryPath></LibraryPath><TimeStamp>2007-9-25 12:3:26</TimeStamp><AllowLibraryUpdate>True</AllowLibraryUpdate></Description></Information>';
  1100. type Se
  1101. ports
  1102. power out p [6,1];
  1103. restrictions
  1104. causality fixed out p;
  1105. end;
  1106. icon bg bottom
  1107. figures
  1108. text 'Se' 624 400 color 0 18 bold;
  1109. end;
  1110. implementation eq
  1111. parameters
  1112. real global m;
  1113. variables
  1114. real effort[6];
  1115. equations
  1116. effort = [0;0;0;0;0;-g_n*m];
  1117. p.e = effort;
  1118. implementation_end;
  1119. InertialTensor 544 272
  1120. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  1121. <LibraryPath>Bond Graph\3D\I-3.emx</LibraryPath>
  1122. <TimeStamp>2007-9-25 12:12:14</TimeStamp>
  1123. </Description>';
  1124. type 'I-3'
  1125. ports
  1126. power in p [6,1];
  1127. signal out state [6,1];
  1128. restrictions
  1129. causality preferred in p;
  1130. end;
  1131. icon bg bottom
  1132. figures
  1133. text 'I' 544 272 color 0 18 bold;
  1134. end;
  1135. implementation eq
  1136. parameters
  1137. real global I[3];
  1138. real global m;
  1139. variables
  1140. real II[6,6]; //Inertial tensor
  1141. real Ia[6];
  1142. initialequations
  1143. Ia[1:3] = I;
  1144. Ia[4:6] = m;
  1145. II = diag(Ia);
  1146. equations
  1147. state = int(p.e); //state = generalized momentum
  1148. p.f = inverse(II)*state;
  1149. implementation_end;
  1150. plug Hin 433.4 496;
  1151. plug Hout 691.2 496;
  1152. plug p 439.4 336;
  1153. Splitter1 544 496
  1154. description '<Description><Version>4.0</Version>
  1155. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  1156. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  1157. <IsMainModel>1</IsMainModel>
  1158. <KeepParameterValues>False</KeepParameterValues>
  1159. </Description>';
  1160. knot Splitter
  1161. ports
  1162. signal knot duplicatable out output [4,4];
  1163. signal knot in input [4,4];
  1164. end;
  1165. icon bg ellipse
  1166. figures
  1167. ellipse 540.8 492.8 547.2 499.2 color -1 fill 0;
  1168. ellipse 539.7 491.7 548.3 500.3 color -1;
  1169. terminals
  1170. input 544 496 fixed;
  1171. end;
  1172. implementation eq
  1173. equations
  1174. collect (output) = input;
  1175. implementation_end;
  1176. Ta0j 544 336
  1177. description '<Description>
  1178. <Version>4.0</Version>
  1179. <IsMainModel>1</IsMainModel>
  1180. <KeepParameterValues>False</KeepParameterValues>
  1181. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  1182. <TimeStamp>2007-9-27 9:51:18</TimeStamp>
  1183. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  1184. <Description></Description>
  1185. </Description>';
  1186. knot OneJunction
  1187. ports
  1188. power knot duplicatable none p [6,1];
  1189. signal knot out flow [6,1];
  1190. restrictions
  1191. causality constraint one_out p;
  1192. end;
  1193. icon bg bottom
  1194. figures
  1195. text '1' 544 336 color 0 18 bold;
  1196. end;
  1197. implementation eq
  1198. equations
  1199. sum (direct (p.e)) = 0;
  1200. equal (collect (p.f));
  1201. flow = first (p.f);
  1202. implementation_end;
  1203. ZeroJunction1 504 336
  1204. description '<Information>
  1205. <Description>
  1206. <Version>4.2</Version>
  1207. <IsMainModel>1</IsMainModel>
  1208. <KeepParameterValues>False</KeepParameterValues>
  1209. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  1210. <TimeStamp>2011-11-29 16:45:16</TimeStamp>
  1211. </Description>
  1212. </Information>';
  1213. knot ZeroJunction
  1214. ports
  1215. power knot duplicatable none p [6,1];
  1216. signal knot out effort [6,1];
  1217. restrictions
  1218. causality constraint one_in p;
  1219. end;
  1220. icon bg
  1221. figures
  1222. text '0' 504 336 color 0 18 bold;
  1223. end;
  1224. implementation eq
  1225. equations
  1226. sum (direct (p.f)) = 0;
  1227. equal (collect (p.e));
  1228. effort = first (p.e);
  1229. implementation_end;
  1230. end;
  1231. connections
  1232. AdHi0\p2 => Ta0j\p;
  1233. Gravity\p => AdHi0\p1;
  1234. Hin -> Splitter1\input;
  1235. Splitter1\output -> AdHi0\H;
  1236. Splitter1\output -> Hout;
  1237. Ta0j\p => EJS\p1;
  1238. Ta0j\p => InertialTensor\p;
  1239. ZeroJunction1\p => p;
  1240. ZeroJunction1\p => Ta0j\p;
  1241. end;
  1242. implementation_end;
  1243. Ground1 1052 711.5
  1244. description '<Information>
  1245. <Description>
  1246. <Version>4.8</Version>
  1247. <IsMainModel>1</IsMainModel>
  1248. <LibraryPath>Bond Graph\MR\Ground.emx</LibraryPath>
  1249. <TimeStamp>2020-7-23 09:30:51</TimeStamp>
  1250. </Description>
  1251. </Information>';
  1252. type Submodel
  1253. ports
  1254. power in p [6,1];
  1255. signal out output [4,4];
  1256. end;
  1257. icon bg bottom
  1258. figures
  1259. line 1016 704 1032 720 color 0 fill 15132390;
  1260. line 1024 704 1040 720 color 0 fill 15132390;
  1261. line 1008 704 1024 720 color 0 fill 15132390;
  1262. line 1048 720 1032 704 color 0 fill 15132390;
  1263. line 1056 720 1040 704 color 0 fill 15132390;
  1264. line 1064 720 1048 704 color 0 fill 15132390;
  1265. line 1080 720 1064 704 color 0 fill 15132390;
  1266. line 1072 720 1056 704 color 0 fill 15132390;
  1267. line 1088 720 1072 704 color 0 fill 15132390;
  1268. line 1096 720 1080 704 color 0 fill 15132390;
  1269. line 1008 704 1096 704 color 0 fill 15132390 width 2;
  1270. line 1088 704 1096 712 color 0 fill 15132390;
  1271. line 1008 712 1016 720 color 0 fill 15132390;
  1272. terminals
  1273. p 1032 704 fixed;
  1274. output 1064 704 fixed;
  1275. end;
  1276. implementation bg
  1277. submodels
  1278. plug p 240 88;
  1279. plug output 240 120;
  1280. OneJunction2 192 88
  1281. description '<Information>
  1282. <Description>
  1283. <Version>4.2</Version>
  1284. <IsMainModel>1</IsMainModel>
  1285. <KeepParameterValues>False</KeepParameterValues>
  1286. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  1287. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  1288. </Description>
  1289. </Information>';
  1290. knot OneJunction
  1291. ports
  1292. power knot duplicatable none p [6,1];
  1293. signal knot out flow [6,1];
  1294. restrictions
  1295. causality constraint one_out p;
  1296. end;
  1297. icon bg
  1298. figures
  1299. text '1' 192 88 color 0 18 bold;
  1300. end;
  1301. implementation eq
  1302. equations
  1303. sum (direct (p.e)) = 0;
  1304. equal (collect (p.f));
  1305. flow = first (p.f);
  1306. implementation_end;
  1307. Sf2 136 88
  1308. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  1309. <LibraryPath>Bond Graph\2D\Sf-2.emx</LibraryPath>
  1310. <TimeStamp>2007-9-25 12:7:5</TimeStamp>
  1311. </Description>';
  1312. type 'Sf-2'
  1313. ports
  1314. power out p [6,1];
  1315. restrictions
  1316. causality fixed in p;
  1317. end;
  1318. icon bg bottom
  1319. figures
  1320. text 'Sf' 136 88 color 0 18 bold;
  1321. end;
  1322. implementation eq
  1323. parameters
  1324. real flow[6,1] = 0;
  1325. variables
  1326. real effort [6];
  1327. equations
  1328. p.f = flow;
  1329. effort = p.e;
  1330. implementation_end;
  1331. Zero 144 120
  1332. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  1333. <LibraryPath>Signal\Sources\Zero.emx</LibraryPath>
  1334. <TimeStamp>2007-9-27 15:54:36</TimeStamp>
  1335. </Description>
  1336. ';
  1337. type Zero
  1338. ports
  1339. signal out output [4,4];
  1340. end;
  1341. icon bg bottom
  1342. figures
  1343. rectangle 128.1 104 159.9 136 color 0 fill 15132390;
  1344. text '0' 144 120 color 16711680 18 bold;
  1345. end;
  1346. implementation eq
  1347. equations
  1348. output = eye(4);implementation_end;
  1349. end;
  1350. connections
  1351. p => OneJunction2\p;
  1352. Sf2\p => OneJunction2\p;
  1353. Zero\output -> output;
  1354. end;
  1355. implementation_end;
  1356. Ground2 436 623.5
  1357. description '<Information>
  1358. <Description>
  1359. <Version>4.8</Version>
  1360. <IsMainModel>1</IsMainModel>
  1361. <LibraryPath>Bond Graph\MR\Ground.emx</LibraryPath>
  1362. <TimeStamp>2020-7-23 09:30:51</TimeStamp>
  1363. </Description>
  1364. </Information>';
  1365. type Submodel
  1366. ports
  1367. power in p [6,1];
  1368. signal out output [4,4];
  1369. end;
  1370. icon bg bottom
  1371. figures
  1372. line 400 616 416 632 color 0 fill 15132390;
  1373. line 408 616 424 632 color 0 fill 15132390;
  1374. line 392 616 408 632 color 0 fill 15132390;
  1375. line 432 632 416 616 color 0 fill 15132390;
  1376. line 440 632 424 616 color 0 fill 15132390;
  1377. line 448 632 432 616 color 0 fill 15132390;
  1378. line 464 632 448 616 color 0 fill 15132390;
  1379. line 456 632 440 616 color 0 fill 15132390;
  1380. line 472 632 456 616 color 0 fill 15132390;
  1381. line 480 632 464 616 color 0 fill 15132390;
  1382. line 392 616 480 616 color 0 fill 15132390 width 2;
  1383. line 472 616 480 624 color 0 fill 15132390;
  1384. line 392 624 400 632 color 0 fill 15132390;
  1385. terminals
  1386. p 416 616 fixed;
  1387. output 448 616 fixed;
  1388. end;
  1389. implementation bg
  1390. submodels
  1391. plug p 240 88;
  1392. plug output 240 120;
  1393. OneJunction2 192 88
  1394. description '<Information>
  1395. <Description>
  1396. <Version>4.2</Version>
  1397. <IsMainModel>1</IsMainModel>
  1398. <KeepParameterValues>False</KeepParameterValues>
  1399. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  1400. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  1401. </Description>
  1402. </Information>';
  1403. knot OneJunction
  1404. ports
  1405. power knot duplicatable none p [6,1];
  1406. signal knot out flow [6,1];
  1407. restrictions
  1408. causality constraint one_out p;
  1409. end;
  1410. icon bg
  1411. figures
  1412. text '1' 192 88 color 0 18 bold;
  1413. end;
  1414. implementation eq
  1415. equations
  1416. sum (direct (p.e)) = 0;
  1417. equal (collect (p.f));
  1418. flow = first (p.f);
  1419. implementation_end;
  1420. Sf2 136 88
  1421. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  1422. <LibraryPath>Bond Graph\2D\Sf-2.emx</LibraryPath>
  1423. <TimeStamp>2007-9-25 12:7:5</TimeStamp>
  1424. </Description>';
  1425. type 'Sf-2'
  1426. ports
  1427. power out p [6,1];
  1428. restrictions
  1429. causality fixed in p;
  1430. end;
  1431. icon bg bottom
  1432. figures
  1433. text 'Sf' 136 88 color 0 18 bold;
  1434. end;
  1435. implementation eq
  1436. parameters
  1437. real flow[6,1] = 0;
  1438. variables
  1439. real effort [6];
  1440. equations
  1441. p.f = flow;
  1442. effort = p.e;
  1443. implementation_end;
  1444. Zero 144 120
  1445. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  1446. <LibraryPath>Signal\Sources\Zero.emx</LibraryPath>
  1447. <TimeStamp>2007-9-27 15:54:36</TimeStamp>
  1448. </Description>
  1449. ';
  1450. type Zero
  1451. ports
  1452. signal out output [4,4];
  1453. end;
  1454. icon bg bottom
  1455. figures
  1456. rectangle 128.1 104 159.9 136 color 0 fill 15132390;
  1457. text '0' 144 120 color 16711680 18 bold;
  1458. end;
  1459. implementation eq
  1460. equations
  1461. output = eye(4);implementation_end;
  1462. end;
  1463. connections
  1464. p => OneJunction2\p;
  1465. Sf2\p => OneJunction2\p;
  1466. Zero\output -> output;
  1467. end;
  1468. implementation_end;
  1469. inverse_kinematics 320 744
  1470. description '<Information>
  1471. <Description>
  1472. <Version>4.8</Version>
  1473. <LibraryPath>SCARA\inverse_kinematics_v1.emx</LibraryPath>
  1474. <IsMainModel>1</IsMainModel>
  1475. <KeepParameterValues>False</KeepParameterValues>
  1476. <TimeStamp>2020-7-10 12:26:18</TimeStamp>
  1477. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  1478. </Description>
  1479. </Information>';
  1480. type 'Submodel-Equation'
  1481. ports
  1482. signal in input [2,1] {m} ;
  1483. signal out angle1 {rad} ;
  1484. signal out angle2 {rad} ;
  1485. signal out a {rad} ;
  1486. signal out b {rad} ;
  1487. signal out c {rad} ;
  1488. signal out phi {rad} ;
  1489. end;
  1490. implementation eq
  1491. parameters
  1492. real A_length = 0.065 {m}; // length of first arm
  1493. real B_length = 0.05 {m}; // length of second arm
  1494. real to_rad = 1 {rad};
  1495. variables
  1496. real x {m}, y {m};
  1497. real C_length {m}; // length to x and y.
  1498. equations
  1499. x = input[1];
  1500. y = input[2];
  1501. phi = atan2(y, x);
  1502. C_length = sqrt(x^2 + y^2);
  1503. a = arccos ((B_length^2 + C_length^2 - A_length^2) / (2 * B_length * C_length));
  1504. b = arccos ((A_length^2 + C_length^2 - B_length^2) / (2 * A_length * C_length));
  1505. c = arccos ((A_length^2 + B_length^2 - C_length^2) / (2 * A_length * B_length));
  1506. angle1 = b + phi;
  1507. angle2 = angle1 - pi * to_rad + c;
  1508. implementation_end;
  1509. JointA 432 536
  1510. description '<Information>
  1511. <Description>
  1512. <Version>4.8</Version>
  1513. <IsMainModel>1</IsMainModel>
  1514. <LibraryPath>Bond Graph\MR\joint-v3.emx</LibraryPath>
  1515. <TimeStamp>2020-7-21 12:08:53</TimeStamp>
  1516. </Description>
  1517. </Information>';
  1518. type 'Submodel-v3'
  1519. ports
  1520. power in Pin [6,1];
  1521. power in Pdiff [6,1];
  1522. signal in Hin [4,4];
  1523. signal out Hout [4,4];
  1524. signal out Hdiff [4,4];
  1525. power out Pout [6,1];
  1526. end;
  1527. icon bg bottom
  1528. figures
  1529. rectangle 400 512 464 560 color 0 fill 14745599;
  1530. text 'Joint' 432 536 color 0 'Clear Sans' 16;
  1531. terminals
  1532. Pin 416 560 fixed;
  1533. Hin 448 512 fixed;
  1534. Hout 448 560 fixed;
  1535. Pout 416 512 fixed;
  1536. end;
  1537. implementation bg
  1538. submodels
  1539. AdHji 424 424
  1540. description '<Description>
  1541. <Version>4.0</Version>
  1542. <IsMainModel>1</IsMainModel>
  1543. <KeepParameterValues>False</KeepParameterValues>
  1544. <LibraryPath>Bond Graph\MTF.emx</LibraryPath>
  1545. <TimeStamp>2007-9-25 12:3:3</TimeStamp>
  1546. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  1547. </Description>';
  1548. type MTF
  1549. ports
  1550. power out p1 [6,1];
  1551. power in p2 [6,1];
  1552. signal in H [4,4];
  1553. restrictions
  1554. causality constraint not_equal p1 p2;
  1555. end;
  1556. icon bg bottom
  1557. figures
  1558. text 'MTF' 424 424 color 0 18 bold;
  1559. end;
  1560. implementation eq
  1561. equations
  1562. p2.e = transpose(Adjoint(H)) * p1.e;
  1563. p1.f = Adjoint(H) * p2.f;implementation_end;
  1564. FlowSensor2 184 311.9
  1565. description '<Information>
  1566. <Description>
  1567. <Version>4.2</Version>
  1568. <IsMainModel>1</IsMainModel>
  1569. <KeepParameterValues>False</KeepParameterValues>
  1570. <LibraryPath>Bond Graph\FlowSensor.emx</LibraryPath>
  1571. <TimeStamp>2011-11-29 15:50:53</TimeStamp>
  1572. </Description>
  1573. </Information>';
  1574. knot FlowSensor
  1575. ports
  1576. power knot in p1 [6,1];
  1577. power knot out p2 [6,1];
  1578. signal knot out flow [6,1];
  1579. restrictions
  1580. causality constraint not_equal p1 p2;
  1581. end;
  1582. icon bg ellipse
  1583. figures
  1584. ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
  1585. text 'f' 184 311.2 color 0;
  1586. end;
  1587. implementation eq
  1588. equations
  1589. p2.f = p1.f;
  1590. p1.e = p2.e;
  1591. flow = p1.f;
  1592. implementation_end;
  1593. Hmatrix 256 312
  1594. description '<Information><Description><Version>4.0</Version><LibraryPath>Template\Submodel-Equation.emx</LibraryPath><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><TimeStamp>2007-11-1 22:32:1</TimeStamp><AllowLibraryUpdate>False</AllowLibraryUpdate></Description></Information>';
  1595. type 'Submodel-Equation'
  1596. ports
  1597. signal in flow [6,1];
  1598. signal out H [4,4];
  1599. end;
  1600. icon bg
  1601. figures
  1602. rectangle 224 296 288 328 color 0 fill 15132390;
  1603. text 'name' 256 312 color 0 'Clear Sans' 16;
  1604. end;
  1605. implementation eq
  1606. parameters
  1607. real init[4] = [1;0;0;0];
  1608. variables
  1609. real q[4]; //quaternions
  1610. real W[3,4]; //Quaternion Rates Matrix
  1611. real R[3,3]; //Rotation Matrix
  1612. real p[3]; //Position Vector
  1613. real dq[4];
  1614. real Wb[3,4];
  1615. equations
  1616. dq = transpose(Wb) * flow[1:3] ./ 2;
  1617. q = int(dq,init);
  1618. p = int(flow[4:6]);
  1619. W = [-q[2], q[1], -q[4], q[3];
  1620. -q[3], q[4], q[1], -q[2];
  1621. -q[4], -q[3], q[2], q[1]];
  1622. Wb = [ -q[2], q[1], q[4], -q[3];
  1623. -q[3], -q[4], q[1], q[2];
  1624. -q[4], q[3], -q[2], q[1]];
  1625. R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
  1626. 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
  1627. 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
  1628. H = homogeneous(R,p);
  1629. implementation_end;
  1630. MatrixMul 320 576
  1631. description '<Description>
  1632. <Version>4.0</Version>
  1633. <IsMainModel>1</IsMainModel>
  1634. <KeepParameterValues>False</KeepParameterValues>
  1635. <LibraryPath>Signal\Block Diagram\Gain.emx</LibraryPath>
  1636. <TimeStamp>2007-9-26 12:15:12</TimeStamp>
  1637. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  1638. </Description>';
  1639. type Gain
  1640. ports
  1641. signal in input1 [4,4];
  1642. signal out output [4,4];
  1643. signal in input2 [4,4];
  1644. end;
  1645. icon bg bottom
  1646. figures
  1647. rectangle 304.1 560 335.9 592 color 0 fill 15132390;
  1648. text 'X' 320 576 color 16711680 16 bold;
  1649. end;
  1650. implementation eq
  1651. equations
  1652. output = input2*input1; implementation_end;
  1653. plug Pin 492.1 424;
  1654. plug Pdiff 184 225;
  1655. plug Hin 130.8 576;
  1656. plug Hout 478.4 576;
  1657. plug Hdiff 320 222;
  1658. plug Pout 134.7 424;
  1659. Splitter2 320 312
  1660. description '<Description><Version>4.0</Version>
  1661. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  1662. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  1663. <IsMainModel>1</IsMainModel>
  1664. <KeepParameterValues>False</KeepParameterValues>
  1665. </Description>';
  1666. knot Splitter
  1667. ports
  1668. signal knot duplicatable out output [4,4];
  1669. signal knot in input [4,4];
  1670. end;
  1671. icon bg ellipse
  1672. figures
  1673. ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
  1674. ellipse 315.7 307.7 324.3 316.3 color -1;
  1675. terminals
  1676. input 320 312 fixed;
  1677. end;
  1678. implementation eq
  1679. equations
  1680. collect (output) = input;
  1681. implementation_end;
  1682. Wbai 184 424
  1683. description '<Description>
  1684. <Version>4.0</Version>
  1685. <IsMainModel>1</IsMainModel>
  1686. <KeepParameterValues>False</KeepParameterValues>
  1687. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  1688. <TimeStamp>2007-9-27 9:51:43</TimeStamp>
  1689. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  1690. </Description>';
  1691. knot ZeroJunction
  1692. ports
  1693. power knot duplicatable none p [6,1];
  1694. signal knot out effort [6,1];
  1695. restrictions
  1696. causality constraint one_in p;
  1697. end;
  1698. icon bg bottom
  1699. figures
  1700. text '0' 184 424 color 0 18 bold;
  1701. end;
  1702. implementation eq
  1703. equations
  1704. sum (direct (p.f)) = 0;
  1705. equal (collect (p.e));
  1706. effort = first (p.e);
  1707. implementation_end;
  1708. end;
  1709. connections
  1710. FlowSensor2\flow -> Hmatrix\flow;
  1711. FlowSensor2\p2 => Wbai\p;
  1712. Hin -> MatrixMul\input2;
  1713. Hmatrix\H -> Splitter2\input;
  1714. MatrixMul\output -> Hout;
  1715. Pdiff => FlowSensor2\p1;
  1716. Pin => AdHji\p2;
  1717. Splitter2\output -> AdHji\H 424 312;
  1718. Splitter2\output -> Hdiff;
  1719. Splitter2\output -> MatrixMul\input1;
  1720. Wbai\p <= AdHji\p1;
  1721. Wbai\p => Pout;
  1722. end;
  1723. implementation_end;
  1724. JointB 432 216
  1725. description '<Information>
  1726. <Description>
  1727. <Version>4.8</Version>
  1728. <IsMainModel>1</IsMainModel>
  1729. <LibraryPath>Bond Graph\MR\joint-v3.emx</LibraryPath>
  1730. <TimeStamp>2020-7-21 12:08:53</TimeStamp>
  1731. </Description>
  1732. </Information>';
  1733. type 'Submodel-v3'
  1734. ports
  1735. power in Pin [6,1];
  1736. power in Pdiff [6,1];
  1737. signal in Hin [4,4];
  1738. signal out Hout [4,4];
  1739. signal out Hdiff [4,4];
  1740. power out Pout [6,1];
  1741. end;
  1742. icon bg bottom
  1743. figures
  1744. rectangle 400 192 464 240 color 0 fill 14745599;
  1745. text 'Joint' 432 216 color 0 'Clear Sans' 16;
  1746. terminals
  1747. Pin 416 240 fixed;
  1748. Hin 448 192 fixed;
  1749. Hout 448 240 fixed;
  1750. Pout 416 192 fixed;
  1751. end;
  1752. implementation bg
  1753. submodels
  1754. AdHji 424 424
  1755. description '<Description>
  1756. <Version>4.0</Version>
  1757. <IsMainModel>1</IsMainModel>
  1758. <KeepParameterValues>False</KeepParameterValues>
  1759. <LibraryPath>Bond Graph\MTF.emx</LibraryPath>
  1760. <TimeStamp>2007-9-25 12:3:3</TimeStamp>
  1761. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  1762. </Description>';
  1763. type MTF
  1764. ports
  1765. power out p1 [6,1];
  1766. power in p2 [6,1];
  1767. signal in H [4,4];
  1768. restrictions
  1769. causality constraint not_equal p1 p2;
  1770. end;
  1771. icon bg bottom
  1772. figures
  1773. text 'MTF' 424 424 color 0 18 bold;
  1774. end;
  1775. implementation eq
  1776. equations
  1777. p2.e = transpose(Adjoint(H)) * p1.e;
  1778. p1.f = Adjoint(H) * p2.f;implementation_end;
  1779. FlowSensor2 184 311.9
  1780. description '<Information>
  1781. <Description>
  1782. <Version>4.2</Version>
  1783. <IsMainModel>1</IsMainModel>
  1784. <KeepParameterValues>False</KeepParameterValues>
  1785. <LibraryPath>Bond Graph\FlowSensor.emx</LibraryPath>
  1786. <TimeStamp>2011-11-29 15:50:53</TimeStamp>
  1787. </Description>
  1788. </Information>';
  1789. knot FlowSensor
  1790. ports
  1791. power knot in p1 [6,1];
  1792. power knot out p2 [6,1];
  1793. signal knot out flow [6,1];
  1794. restrictions
  1795. causality constraint not_equal p1 p2;
  1796. end;
  1797. icon bg ellipse
  1798. figures
  1799. ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
  1800. text 'f' 184 311.2 color 0;
  1801. end;
  1802. implementation eq
  1803. equations
  1804. p2.f = p1.f;
  1805. p1.e = p2.e;
  1806. flow = p1.f;
  1807. implementation_end;
  1808. Hmatrix 256 312
  1809. description '<Information><Description><Version>4.0</Version><LibraryPath>Template\Submodel-Equation.emx</LibraryPath><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><TimeStamp>2007-11-1 22:32:1</TimeStamp><AllowLibraryUpdate>False</AllowLibraryUpdate></Description></Information>';
  1810. type 'Submodel-Equation'
  1811. ports
  1812. signal in flow [6,1];
  1813. signal out H [4,4];
  1814. end;
  1815. icon bg
  1816. figures
  1817. rectangle 224 296 288 328 color 0 fill 15132390;
  1818. text 'name' 256 312 color 0 'Clear Sans' 16;
  1819. end;
  1820. implementation eq
  1821. parameters
  1822. real init[4] = [1;0;0;0];
  1823. variables
  1824. real q[4]; //quaternions
  1825. real W[3,4]; //Quaternion Rates Matrix
  1826. real R[3,3]; //Rotation Matrix
  1827. real p[3]; //Position Vector
  1828. real dq[4];
  1829. real Wb[3,4];
  1830. equations
  1831. dq = transpose(Wb) * flow[1:3] ./ 2;
  1832. q = int(dq,init);
  1833. p = int(flow[4:6]);
  1834. W = [-q[2], q[1], -q[4], q[3];
  1835. -q[3], q[4], q[1], -q[2];
  1836. -q[4], -q[3], q[2], q[1]];
  1837. Wb = [ -q[2], q[1], q[4], -q[3];
  1838. -q[3], -q[4], q[1], q[2];
  1839. -q[4], q[3], -q[2], q[1]];
  1840. R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
  1841. 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
  1842. 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
  1843. H = homogeneous(R,p);
  1844. implementation_end;
  1845. MatrixMul 320 576
  1846. description '<Description>
  1847. <Version>4.0</Version>
  1848. <IsMainModel>1</IsMainModel>
  1849. <KeepParameterValues>False</KeepParameterValues>
  1850. <LibraryPath>Signal\Block Diagram\Gain.emx</LibraryPath>
  1851. <TimeStamp>2007-9-26 12:15:12</TimeStamp>
  1852. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  1853. </Description>';
  1854. type Gain
  1855. ports
  1856. signal in input1 [4,4];
  1857. signal out output [4,4];
  1858. signal in input2 [4,4];
  1859. end;
  1860. icon bg bottom
  1861. figures
  1862. rectangle 304.1 560 335.9 592 color 0 fill 15132390;
  1863. text 'X' 320 576 color 16711680 16 bold;
  1864. end;
  1865. implementation eq
  1866. equations
  1867. output = input2*input1; implementation_end;
  1868. plug Pin 492.1 424;
  1869. plug Pdiff 184 225;
  1870. plug Hin 130.8 576;
  1871. plug Hout 478.4 576;
  1872. plug Hdiff 320 222;
  1873. plug Pout 134.7 424;
  1874. Splitter2 320 312
  1875. description '<Description><Version>4.0</Version>
  1876. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  1877. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  1878. <IsMainModel>1</IsMainModel>
  1879. <KeepParameterValues>False</KeepParameterValues>
  1880. </Description>';
  1881. knot Splitter
  1882. ports
  1883. signal knot duplicatable out output [4,4];
  1884. signal knot in input [4,4];
  1885. end;
  1886. icon bg ellipse
  1887. figures
  1888. ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
  1889. ellipse 315.7 307.7 324.3 316.3 color -1;
  1890. terminals
  1891. input 320 312 fixed;
  1892. end;
  1893. implementation eq
  1894. equations
  1895. collect (output) = input;
  1896. implementation_end;
  1897. Wbai 184 424
  1898. description '<Description>
  1899. <Version>4.0</Version>
  1900. <IsMainModel>1</IsMainModel>
  1901. <KeepParameterValues>False</KeepParameterValues>
  1902. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  1903. <TimeStamp>2007-9-27 9:51:43</TimeStamp>
  1904. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  1905. </Description>';
  1906. knot ZeroJunction
  1907. ports
  1908. power knot duplicatable none p [6,1];
  1909. signal knot out effort [6,1];
  1910. restrictions
  1911. causality constraint one_in p;
  1912. end;
  1913. icon bg bottom
  1914. figures
  1915. text '0' 184 424 color 0 18 bold;
  1916. end;
  1917. implementation eq
  1918. equations
  1919. sum (direct (p.f)) = 0;
  1920. equal (collect (p.e));
  1921. effort = first (p.e);
  1922. implementation_end;
  1923. end;
  1924. connections
  1925. FlowSensor2\flow -> Hmatrix\flow;
  1926. FlowSensor2\p2 => Wbai\p;
  1927. Hin -> MatrixMul\input2;
  1928. Hmatrix\H -> Splitter2\input;
  1929. MatrixMul\output -> Hout;
  1930. Pdiff => FlowSensor2\p1;
  1931. Pin => AdHji\p2;
  1932. Splitter2\output -> AdHji\H 424 312;
  1933. Splitter2\output -> Hdiff;
  1934. Splitter2\output -> MatrixMul\input1;
  1935. Wbai\p <= AdHji\p1;
  1936. Wbai\p => Pout;
  1937. end;
  1938. implementation_end;
  1939. JointC 944 616
  1940. description '<Information>
  1941. <Description>
  1942. <Version>4.8</Version>
  1943. <IsMainModel>1</IsMainModel>
  1944. <LibraryPath>Bond Graph\MR\joint-v3.emx</LibraryPath>
  1945. <TimeStamp>2020-7-21 12:08:53</TimeStamp>
  1946. </Description>
  1947. </Information>';
  1948. type 'Submodel-v3'
  1949. ports
  1950. power in Pin [6,1];
  1951. power in Pdiff [6,1];
  1952. signal in Hin [4,4];
  1953. signal out Hout [4,4];
  1954. signal out Hdiff [4,4];
  1955. power out Pout [6,1];
  1956. end;
  1957. icon bg bottom
  1958. figures
  1959. rectangle 920 584 968 648 color 0 fill 14745599;
  1960. text 'Joint' 944 616 color 0 'Clear Sans' 16;
  1961. terminals
  1962. Pin 920 632 fixed;
  1963. Hin 968 600 fixed;
  1964. Hout 920 600 fixed;
  1965. Pout 968 632 fixed;
  1966. end;
  1967. implementation bg
  1968. submodels
  1969. AdHji 424 424
  1970. description '<Description>
  1971. <Version>4.0</Version>
  1972. <IsMainModel>1</IsMainModel>
  1973. <KeepParameterValues>False</KeepParameterValues>
  1974. <LibraryPath>Bond Graph\MTF.emx</LibraryPath>
  1975. <TimeStamp>2007-9-25 12:3:3</TimeStamp>
  1976. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  1977. </Description>';
  1978. type MTF
  1979. ports
  1980. power out p1 [6,1];
  1981. power in p2 [6,1];
  1982. signal in H [4,4];
  1983. restrictions
  1984. causality constraint not_equal p1 p2;
  1985. end;
  1986. icon bg bottom
  1987. figures
  1988. text 'MTF' 424 424 color 0 18 bold;
  1989. end;
  1990. implementation eq
  1991. equations
  1992. p2.e = transpose(Adjoint(H)) * p1.e;
  1993. p1.f = Adjoint(H) * p2.f;implementation_end;
  1994. FlowSensor2 184 311.9
  1995. description '<Information>
  1996. <Description>
  1997. <Version>4.2</Version>
  1998. <IsMainModel>1</IsMainModel>
  1999. <KeepParameterValues>False</KeepParameterValues>
  2000. <LibraryPath>Bond Graph\FlowSensor.emx</LibraryPath>
  2001. <TimeStamp>2011-11-29 15:50:53</TimeStamp>
  2002. </Description>
  2003. </Information>';
  2004. knot FlowSensor
  2005. ports
  2006. power knot in p1 [6,1];
  2007. power knot out p2 [6,1];
  2008. signal knot out flow [6,1];
  2009. restrictions
  2010. causality constraint not_equal p1 p2;
  2011. end;
  2012. icon bg ellipse
  2013. figures
  2014. ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
  2015. text 'f' 184 311.2 color 0;
  2016. end;
  2017. implementation eq
  2018. equations
  2019. p2.f = p1.f;
  2020. p1.e = p2.e;
  2021. flow = p1.f;
  2022. implementation_end;
  2023. Hmatrix 256 312
  2024. description '<Information><Description><Version>4.0</Version><LibraryPath>Template\Submodel-Equation.emx</LibraryPath><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><TimeStamp>2007-11-1 22:32:1</TimeStamp><AllowLibraryUpdate>False</AllowLibraryUpdate></Description></Information>';
  2025. type 'Submodel-Equation'
  2026. ports
  2027. signal in flow [6,1];
  2028. signal out H [4,4];
  2029. end;
  2030. icon bg
  2031. figures
  2032. rectangle 224 296 288 328 color 0 fill 15132390;
  2033. text 'name' 256 312 color 0 'Clear Sans' 16;
  2034. end;
  2035. implementation eq
  2036. parameters
  2037. real init[4] = [1;0;0;0];
  2038. variables
  2039. real q[4]; //quaternions
  2040. real W[3,4]; //Quaternion Rates Matrix
  2041. real R[3,3]; //Rotation Matrix
  2042. real p[3]; //Position Vector
  2043. real dq[4];
  2044. real Wb[3,4];
  2045. equations
  2046. dq = transpose(Wb) * flow[1:3] ./ 2;
  2047. q = int(dq,init);
  2048. p = int(flow[4:6]);
  2049. W = [-q[2], q[1], -q[4], q[3];
  2050. -q[3], q[4], q[1], -q[2];
  2051. -q[4], -q[3], q[2], q[1]];
  2052. Wb = [ -q[2], q[1], q[4], -q[3];
  2053. -q[3], -q[4], q[1], q[2];
  2054. -q[4], q[3], -q[2], q[1]];
  2055. R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
  2056. 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
  2057. 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
  2058. H = homogeneous(R,p);
  2059. implementation_end;
  2060. MatrixMul 320 576
  2061. description '<Description>
  2062. <Version>4.0</Version>
  2063. <IsMainModel>1</IsMainModel>
  2064. <KeepParameterValues>False</KeepParameterValues>
  2065. <LibraryPath>Signal\Block Diagram\Gain.emx</LibraryPath>
  2066. <TimeStamp>2007-9-26 12:15:12</TimeStamp>
  2067. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2068. </Description>';
  2069. type Gain
  2070. ports
  2071. signal in input1 [4,4];
  2072. signal out output [4,4];
  2073. signal in input2 [4,4];
  2074. end;
  2075. icon bg bottom
  2076. figures
  2077. rectangle 304.1 560 335.9 592 color 0 fill 15132390;
  2078. text 'X' 320 576 color 16711680 16 bold;
  2079. end;
  2080. implementation eq
  2081. equations
  2082. output = input2*input1; implementation_end;
  2083. plug Pin 492.1 424;
  2084. plug Pdiff 184 225;
  2085. plug Hin 130.8 576;
  2086. plug Hout 478.4 576;
  2087. plug Hdiff 320 222;
  2088. plug Pout 134.7 424;
  2089. Splitter2 320 312
  2090. description '<Description><Version>4.0</Version>
  2091. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  2092. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  2093. <IsMainModel>1</IsMainModel>
  2094. <KeepParameterValues>False</KeepParameterValues>
  2095. </Description>';
  2096. knot Splitter
  2097. ports
  2098. signal knot duplicatable out output [4,4];
  2099. signal knot in input [4,4];
  2100. end;
  2101. icon bg ellipse
  2102. figures
  2103. ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
  2104. ellipse 315.7 307.7 324.3 316.3 color -1;
  2105. terminals
  2106. input 320 312 fixed;
  2107. end;
  2108. implementation eq
  2109. equations
  2110. collect (output) = input;
  2111. implementation_end;
  2112. Wbai 184 424
  2113. description '<Description>
  2114. <Version>4.0</Version>
  2115. <IsMainModel>1</IsMainModel>
  2116. <KeepParameterValues>False</KeepParameterValues>
  2117. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  2118. <TimeStamp>2007-9-27 9:51:43</TimeStamp>
  2119. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2120. </Description>';
  2121. knot ZeroJunction
  2122. ports
  2123. power knot duplicatable none p [6,1];
  2124. signal knot out effort [6,1];
  2125. restrictions
  2126. causality constraint one_in p;
  2127. end;
  2128. icon bg bottom
  2129. figures
  2130. text '0' 184 424 color 0 18 bold;
  2131. end;
  2132. implementation eq
  2133. equations
  2134. sum (direct (p.f)) = 0;
  2135. equal (collect (p.e));
  2136. effort = first (p.e);
  2137. implementation_end;
  2138. end;
  2139. connections
  2140. FlowSensor2\flow -> Hmatrix\flow;
  2141. FlowSensor2\p2 => Wbai\p;
  2142. Hin -> MatrixMul\input2;
  2143. Hmatrix\H -> Splitter2\input;
  2144. MatrixMul\output -> Hout;
  2145. Pdiff => FlowSensor2\p1;
  2146. Pin => AdHji\p2;
  2147. Splitter2\output -> AdHji\H 424 312;
  2148. Splitter2\output -> Hdiff;
  2149. Splitter2\output -> MatrixMul\input1;
  2150. Wbai\p <= AdHji\p1;
  2151. Wbai\p => Pout;
  2152. end;
  2153. implementation_end;
  2154. JointD 632 536
  2155. description '<Information>
  2156. <Description>
  2157. <Version>4.8</Version>
  2158. <IsMainModel>1</IsMainModel>
  2159. <LibraryPath>Bond Graph\MR\joint-v3.emx</LibraryPath>
  2160. <TimeStamp>2020-7-21 12:08:53</TimeStamp>
  2161. </Description>
  2162. </Information>';
  2163. type 'Submodel-v3'
  2164. ports
  2165. power in Pin [6,1];
  2166. power in Pdiff [6,1];
  2167. signal in Hin [4,4];
  2168. signal out Hout [4,4];
  2169. signal out Hdiff [4,4];
  2170. power out Pout [6,1];
  2171. end;
  2172. icon bg bottom
  2173. figures
  2174. rectangle 600 512 664 560 color 0 fill 14745599;
  2175. text 'Joint' 632 536 color 0 'Clear Sans' 16;
  2176. terminals
  2177. Pin 616 512 fixed;
  2178. Hin 648 560 fixed;
  2179. Hout 648 512 fixed;
  2180. Pout 616 560 fixed;
  2181. end;
  2182. implementation bg
  2183. submodels
  2184. AdHji 424 424
  2185. description '<Description>
  2186. <Version>4.0</Version>
  2187. <IsMainModel>1</IsMainModel>
  2188. <KeepParameterValues>False</KeepParameterValues>
  2189. <LibraryPath>Bond Graph\MTF.emx</LibraryPath>
  2190. <TimeStamp>2007-9-25 12:3:3</TimeStamp>
  2191. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2192. </Description>';
  2193. type MTF
  2194. ports
  2195. power out p1 [6,1];
  2196. power in p2 [6,1];
  2197. signal in H [4,4];
  2198. restrictions
  2199. causality constraint not_equal p1 p2;
  2200. end;
  2201. icon bg bottom
  2202. figures
  2203. text 'MTF' 424 424 color 0 18 bold;
  2204. end;
  2205. implementation eq
  2206. equations
  2207. p2.e = transpose(Adjoint(H)) * p1.e;
  2208. p1.f = Adjoint(H) * p2.f;implementation_end;
  2209. FlowSensor2 184 311.9
  2210. description '<Information>
  2211. <Description>
  2212. <Version>4.2</Version>
  2213. <IsMainModel>1</IsMainModel>
  2214. <KeepParameterValues>False</KeepParameterValues>
  2215. <LibraryPath>Bond Graph\FlowSensor.emx</LibraryPath>
  2216. <TimeStamp>2011-11-29 15:50:53</TimeStamp>
  2217. </Description>
  2218. </Information>';
  2219. knot FlowSensor
  2220. ports
  2221. power knot in p1 [6,1];
  2222. power knot out p2 [6,1];
  2223. signal knot out flow [6,1];
  2224. restrictions
  2225. causality constraint not_equal p1 p2;
  2226. end;
  2227. icon bg ellipse
  2228. figures
  2229. ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
  2230. text 'f' 184 311.2 color 0;
  2231. end;
  2232. implementation eq
  2233. equations
  2234. p2.f = p1.f;
  2235. p1.e = p2.e;
  2236. flow = p1.f;
  2237. implementation_end;
  2238. Hmatrix 256 312
  2239. description '<Information><Description><Version>4.0</Version><LibraryPath>Template\Submodel-Equation.emx</LibraryPath><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><TimeStamp>2007-11-1 22:32:1</TimeStamp><AllowLibraryUpdate>False</AllowLibraryUpdate></Description></Information>';
  2240. type 'Submodel-Equation'
  2241. ports
  2242. signal in flow [6,1];
  2243. signal out H [4,4];
  2244. end;
  2245. icon bg
  2246. figures
  2247. rectangle 224 296 288 328 color 0 fill 15132390;
  2248. text 'name' 256 312 color 0 'Clear Sans' 16;
  2249. end;
  2250. implementation eq
  2251. parameters
  2252. real init[4] = [1;0;0;0];
  2253. variables
  2254. real q[4]; //quaternions
  2255. real W[3,4]; //Quaternion Rates Matrix
  2256. real R[3,3]; //Rotation Matrix
  2257. real p[3]; //Position Vector
  2258. real dq[4];
  2259. real Wb[3,4];
  2260. equations
  2261. dq = transpose(Wb) * flow[1:3] ./ 2;
  2262. q = int(dq,init);
  2263. p = int(flow[4:6]);
  2264. W = [-q[2], q[1], -q[4], q[3];
  2265. -q[3], q[4], q[1], -q[2];
  2266. -q[4], -q[3], q[2], q[1]];
  2267. Wb = [ -q[2], q[1], q[4], -q[3];
  2268. -q[3], -q[4], q[1], q[2];
  2269. -q[4], q[3], -q[2], q[1]];
  2270. R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
  2271. 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
  2272. 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
  2273. H = homogeneous(R,p);
  2274. implementation_end;
  2275. MatrixMul 320 576
  2276. description '<Description>
  2277. <Version>4.0</Version>
  2278. <IsMainModel>1</IsMainModel>
  2279. <KeepParameterValues>False</KeepParameterValues>
  2280. <LibraryPath>Signal\Block Diagram\Gain.emx</LibraryPath>
  2281. <TimeStamp>2007-9-26 12:15:12</TimeStamp>
  2282. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2283. </Description>';
  2284. type Gain
  2285. ports
  2286. signal in input1 [4,4];
  2287. signal out output [4,4];
  2288. signal in input2 [4,4];
  2289. end;
  2290. icon bg bottom
  2291. figures
  2292. rectangle 304.1 560 335.9 592 color 0 fill 15132390;
  2293. text 'X' 320 576 color 16711680 16 bold;
  2294. end;
  2295. implementation eq
  2296. equations
  2297. output = input2*input1; implementation_end;
  2298. plug Pin 492.1 424;
  2299. plug Pdiff 184 225;
  2300. plug Hin 130.8 576;
  2301. plug Hout 478.4 576;
  2302. plug Hdiff 320 222;
  2303. plug Pout 134.7 424;
  2304. Splitter2 320 312
  2305. description '<Description><Version>4.0</Version>
  2306. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  2307. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  2308. <IsMainModel>1</IsMainModel>
  2309. <KeepParameterValues>False</KeepParameterValues>
  2310. </Description>';
  2311. knot Splitter
  2312. ports
  2313. signal knot duplicatable out output [4,4];
  2314. signal knot in input [4,4];
  2315. end;
  2316. icon bg ellipse
  2317. figures
  2318. ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
  2319. ellipse 315.7 307.7 324.3 316.3 color -1;
  2320. terminals
  2321. input 320 312 fixed;
  2322. end;
  2323. implementation eq
  2324. equations
  2325. collect (output) = input;
  2326. implementation_end;
  2327. Wbai 184 424
  2328. description '<Description>
  2329. <Version>4.0</Version>
  2330. <IsMainModel>1</IsMainModel>
  2331. <KeepParameterValues>False</KeepParameterValues>
  2332. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  2333. <TimeStamp>2007-9-27 9:51:43</TimeStamp>
  2334. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2335. </Description>';
  2336. knot ZeroJunction
  2337. ports
  2338. power knot duplicatable none p [6,1];
  2339. signal knot out effort [6,1];
  2340. restrictions
  2341. causality constraint one_in p;
  2342. end;
  2343. icon bg bottom
  2344. figures
  2345. text '0' 184 424 color 0 18 bold;
  2346. end;
  2347. implementation eq
  2348. equations
  2349. sum (direct (p.f)) = 0;
  2350. equal (collect (p.e));
  2351. effort = first (p.e);
  2352. implementation_end;
  2353. end;
  2354. connections
  2355. FlowSensor2\flow -> Hmatrix\flow;
  2356. FlowSensor2\p2 => Wbai\p;
  2357. Hin -> MatrixMul\input2;
  2358. Hmatrix\H -> Splitter2\input;
  2359. MatrixMul\output -> Hout;
  2360. Pdiff => FlowSensor2\p1;
  2361. Pin => AdHji\p2;
  2362. Splitter2\output -> AdHji\H 424 312;
  2363. Splitter2\output -> Hdiff;
  2364. Splitter2\output -> MatrixMul\input1;
  2365. Wbai\p <= AdHji\p1;
  2366. Wbai\p => Pout;
  2367. end;
  2368. implementation_end;
  2369. JointE 632 216
  2370. description '<Information>
  2371. <Description>
  2372. <Version>4.8</Version>
  2373. <IsMainModel>1</IsMainModel>
  2374. <LibraryPath>Bond Graph\MR\joint-v3.emx</LibraryPath>
  2375. <TimeStamp>2020-7-21 12:08:53</TimeStamp>
  2376. </Description>
  2377. </Information>';
  2378. type 'Submodel-v3'
  2379. ports
  2380. power in Pin [6,1];
  2381. power in Pdiff [6,1];
  2382. signal in Hin [4,4];
  2383. signal out Hout [4,4];
  2384. signal out Hdiff [4,4];
  2385. power out Pout [6,1];
  2386. end;
  2387. icon bg bottom
  2388. figures
  2389. rectangle 600 192 664 240 color 0 fill 14745599;
  2390. text 'Joint' 632 216 color 0 'Clear Sans' 16;
  2391. terminals
  2392. Pin 616 192 fixed;
  2393. Hin 648 240 fixed;
  2394. Hout 648 192 fixed;
  2395. Pout 616 240 fixed;
  2396. end;
  2397. implementation bg
  2398. submodels
  2399. AdHji 424 424
  2400. description '<Description>
  2401. <Version>4.0</Version>
  2402. <IsMainModel>1</IsMainModel>
  2403. <KeepParameterValues>False</KeepParameterValues>
  2404. <LibraryPath>Bond Graph\MTF.emx</LibraryPath>
  2405. <TimeStamp>2007-9-25 12:3:3</TimeStamp>
  2406. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2407. </Description>';
  2408. type MTF
  2409. ports
  2410. power out p1 [6,1];
  2411. power in p2 [6,1];
  2412. signal in H [4,4];
  2413. restrictions
  2414. causality constraint not_equal p1 p2;
  2415. end;
  2416. icon bg bottom
  2417. figures
  2418. text 'MTF' 424 424 color 0 18 bold;
  2419. end;
  2420. implementation eq
  2421. equations
  2422. p2.e = transpose(Adjoint(H)) * p1.e;
  2423. p1.f = Adjoint(H) * p2.f;implementation_end;
  2424. FlowSensor2 184 311.9
  2425. description '<Information>
  2426. <Description>
  2427. <Version>4.2</Version>
  2428. <IsMainModel>1</IsMainModel>
  2429. <KeepParameterValues>False</KeepParameterValues>
  2430. <LibraryPath>Bond Graph\FlowSensor.emx</LibraryPath>
  2431. <TimeStamp>2011-11-29 15:50:53</TimeStamp>
  2432. </Description>
  2433. </Information>';
  2434. knot FlowSensor
  2435. ports
  2436. power knot in p1 [6,1];
  2437. power knot out p2 [6,1];
  2438. signal knot out flow [6,1];
  2439. restrictions
  2440. causality constraint not_equal p1 p2;
  2441. end;
  2442. icon bg ellipse
  2443. figures
  2444. ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
  2445. text 'f' 184 311.2 color 0;
  2446. end;
  2447. implementation eq
  2448. equations
  2449. p2.f = p1.f;
  2450. p1.e = p2.e;
  2451. flow = p1.f;
  2452. implementation_end;
  2453. Hmatrix 256 312
  2454. description '<Information><Description><Version>4.0</Version><LibraryPath>Template\Submodel-Equation.emx</LibraryPath><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><TimeStamp>2007-11-1 22:32:1</TimeStamp><AllowLibraryUpdate>False</AllowLibraryUpdate></Description></Information>';
  2455. type 'Submodel-Equation'
  2456. ports
  2457. signal in flow [6,1];
  2458. signal out H [4,4];
  2459. end;
  2460. icon bg
  2461. figures
  2462. rectangle 224 296 288 328 color 0 fill 15132390;
  2463. text 'name' 256 312 color 0 'Clear Sans' 16;
  2464. end;
  2465. implementation eq
  2466. parameters
  2467. real init[4] = [1;0;0;0];
  2468. variables
  2469. real q[4]; //quaternions
  2470. real W[3,4]; //Quaternion Rates Matrix
  2471. real R[3,3]; //Rotation Matrix
  2472. real p[3]; //Position Vector
  2473. real dq[4];
  2474. real Wb[3,4];
  2475. equations
  2476. dq = transpose(Wb) * flow[1:3] ./ 2;
  2477. q = int(dq,init);
  2478. p = int(flow[4:6]);
  2479. W = [-q[2], q[1], -q[4], q[3];
  2480. -q[3], q[4], q[1], -q[2];
  2481. -q[4], -q[3], q[2], q[1]];
  2482. Wb = [ -q[2], q[1], q[4], -q[3];
  2483. -q[3], -q[4], q[1], q[2];
  2484. -q[4], q[3], -q[2], q[1]];
  2485. R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
  2486. 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
  2487. 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
  2488. H = homogeneous(R,p);
  2489. implementation_end;
  2490. MatrixMul 320 576
  2491. description '<Description>
  2492. <Version>4.0</Version>
  2493. <IsMainModel>1</IsMainModel>
  2494. <KeepParameterValues>False</KeepParameterValues>
  2495. <LibraryPath>Signal\Block Diagram\Gain.emx</LibraryPath>
  2496. <TimeStamp>2007-9-26 12:15:12</TimeStamp>
  2497. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2498. </Description>';
  2499. type Gain
  2500. ports
  2501. signal in input1 [4,4];
  2502. signal out output [4,4];
  2503. signal in input2 [4,4];
  2504. end;
  2505. icon bg bottom
  2506. figures
  2507. rectangle 304.1 560 335.9 592 color 0 fill 15132390;
  2508. text 'X' 320 576 color 16711680 16 bold;
  2509. end;
  2510. implementation eq
  2511. equations
  2512. output = input2*input1; implementation_end;
  2513. plug Pin 492.1 424;
  2514. plug Pdiff 184 225;
  2515. plug Hin 130.8 576;
  2516. plug Hout 478.4 576;
  2517. plug Hdiff 320 222;
  2518. plug Pout 134.7 424;
  2519. Splitter2 320 312
  2520. description '<Description><Version>4.0</Version>
  2521. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  2522. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  2523. <IsMainModel>1</IsMainModel>
  2524. <KeepParameterValues>False</KeepParameterValues>
  2525. </Description>';
  2526. knot Splitter
  2527. ports
  2528. signal knot duplicatable out output [4,4];
  2529. signal knot in input [4,4];
  2530. end;
  2531. icon bg ellipse
  2532. figures
  2533. ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
  2534. ellipse 315.7 307.7 324.3 316.3 color -1;
  2535. terminals
  2536. input 320 312 fixed;
  2537. end;
  2538. implementation eq
  2539. equations
  2540. collect (output) = input;
  2541. implementation_end;
  2542. Wbai 184 424
  2543. description '<Description>
  2544. <Version>4.0</Version>
  2545. <IsMainModel>1</IsMainModel>
  2546. <KeepParameterValues>False</KeepParameterValues>
  2547. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  2548. <TimeStamp>2007-9-27 9:51:43</TimeStamp>
  2549. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2550. </Description>';
  2551. knot ZeroJunction
  2552. ports
  2553. power knot duplicatable none p [6,1];
  2554. signal knot out effort [6,1];
  2555. restrictions
  2556. causality constraint one_in p;
  2557. end;
  2558. icon bg bottom
  2559. figures
  2560. text '0' 184 424 color 0 18 bold;
  2561. end;
  2562. implementation eq
  2563. equations
  2564. sum (direct (p.f)) = 0;
  2565. equal (collect (p.e));
  2566. effort = first (p.e);
  2567. implementation_end;
  2568. end;
  2569. connections
  2570. FlowSensor2\flow -> Hmatrix\flow;
  2571. FlowSensor2\p2 => Wbai\p;
  2572. Hin -> MatrixMul\input2;
  2573. Hmatrix\H -> Splitter2\input;
  2574. MatrixMul\output -> Hout;
  2575. Pdiff => FlowSensor2\p1;
  2576. Pin => AdHji\p2;
  2577. Splitter2\output -> AdHji\H 424 312;
  2578. Splitter2\output -> Hdiff;
  2579. Splitter2\output -> MatrixMul\input1;
  2580. Wbai\p <= AdHji\p1;
  2581. Wbai\p => Pout;
  2582. end;
  2583. implementation_end;
  2584. JointF 792 136
  2585. description '<Information>
  2586. <Description>
  2587. <Version>4.8</Version>
  2588. <IsMainModel>1</IsMainModel>
  2589. <LibraryPath>Bond Graph\MR\joint-v3.emx</LibraryPath>
  2590. <TimeStamp>2020-7-21 12:08:53</TimeStamp>
  2591. </Description>
  2592. </Information>';
  2593. type 'Submodel-v3'
  2594. ports
  2595. power in Pin [6,1];
  2596. power in Pdiff [6,1];
  2597. signal in Hin [4,4];
  2598. signal out Hout [4,4];
  2599. signal out Hdiff [4,4];
  2600. power out Pout [6,1];
  2601. end;
  2602. icon bg bottom
  2603. figures
  2604. rectangle 768 104 816 168 color 0 fill 14745599;
  2605. text 'Joint' 792 136 color 0 'Clear Sans' 16;
  2606. terminals
  2607. Pin 816 120 fixed;
  2608. Hin 768 152 fixed;
  2609. Hout 816 152 fixed;
  2610. Pout 768 120 fixed;
  2611. end;
  2612. implementation bg
  2613. submodels
  2614. AdHji 424 424
  2615. description '<Description>
  2616. <Version>4.0</Version>
  2617. <IsMainModel>1</IsMainModel>
  2618. <KeepParameterValues>False</KeepParameterValues>
  2619. <LibraryPath>Bond Graph\MTF.emx</LibraryPath>
  2620. <TimeStamp>2007-9-25 12:3:3</TimeStamp>
  2621. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2622. </Description>';
  2623. type MTF
  2624. ports
  2625. power out p1 [6,1];
  2626. power in p2 [6,1];
  2627. signal in H [4,4];
  2628. restrictions
  2629. causality constraint not_equal p1 p2;
  2630. end;
  2631. icon bg bottom
  2632. figures
  2633. text 'MTF' 424 424 color 0 18 bold;
  2634. end;
  2635. implementation eq
  2636. equations
  2637. p2.e = transpose(Adjoint(H)) * p1.e;
  2638. p1.f = Adjoint(H) * p2.f;implementation_end;
  2639. FlowSensor2 184 311.9
  2640. description '<Information>
  2641. <Description>
  2642. <Version>4.2</Version>
  2643. <IsMainModel>1</IsMainModel>
  2644. <KeepParameterValues>False</KeepParameterValues>
  2645. <LibraryPath>Bond Graph\FlowSensor.emx</LibraryPath>
  2646. <TimeStamp>2011-11-29 15:50:53</TimeStamp>
  2647. </Description>
  2648. </Information>';
  2649. knot FlowSensor
  2650. ports
  2651. power knot in p1 [6,1];
  2652. power knot out p2 [6,1];
  2653. signal knot out flow [6,1];
  2654. restrictions
  2655. causality constraint not_equal p1 p2;
  2656. end;
  2657. icon bg ellipse
  2658. figures
  2659. ellipse 177.1 304.8 190.9 319.1 color 0 fill 16777215;
  2660. text 'f' 184 311.2 color 0;
  2661. end;
  2662. implementation eq
  2663. equations
  2664. p2.f = p1.f;
  2665. p1.e = p2.e;
  2666. flow = p1.f;
  2667. implementation_end;
  2668. Hmatrix 256 312
  2669. description '<Information><Description><Version>4.0</Version><LibraryPath>Template\Submodel-Equation.emx</LibraryPath><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues><TimeStamp>2007-11-1 22:32:1</TimeStamp><AllowLibraryUpdate>False</AllowLibraryUpdate></Description></Information>';
  2670. type 'Submodel-Equation'
  2671. ports
  2672. signal in flow [6,1];
  2673. signal out H [4,4];
  2674. end;
  2675. icon bg
  2676. figures
  2677. rectangle 224 296 288 328 color 0 fill 15132390;
  2678. text 'name' 256 312 color 0 'Clear Sans' 16;
  2679. end;
  2680. implementation eq
  2681. parameters
  2682. real init[4] = [1;0;0;0];
  2683. variables
  2684. real q[4]; //quaternions
  2685. real W[3,4]; //Quaternion Rates Matrix
  2686. real R[3,3]; //Rotation Matrix
  2687. real p[3]; //Position Vector
  2688. real dq[4];
  2689. real Wb[3,4];
  2690. equations
  2691. dq = transpose(Wb) * flow[1:3] ./ 2;
  2692. q = int(dq,init);
  2693. p = int(flow[4:6]);
  2694. W = [-q[2], q[1], -q[4], q[3];
  2695. -q[3], q[4], q[1], -q[2];
  2696. -q[4], -q[3], q[2], q[1]];
  2697. Wb = [ -q[2], q[1], q[4], -q[3];
  2698. -q[3], -q[4], q[1], q[2];
  2699. -q[4], q[3], -q[2], q[1]];
  2700. R = [q[1]^2+q[2]^2-q[3]^2-q[4]^2, 2*(q[2]*q[3]+q[1]*q[4]), 2*(q[2]*q[4]-q[1]*q[3]);
  2701. 2*(q[2]*q[3]-q[1]*q[4]), q[1]^2-q[2]^2+q[3]^2-q[4]^2, 2*(q[3]*q[4]+q[1]*q[2]);
  2702. 2*(q[2]*q[4]+q[1]*q[3]), 2*(q[3]*q[4]-q[1]*q[2]), q[1]^2-q[2]^2-q[3]^2+q[4]^2];
  2703. H = homogeneous(R,p);
  2704. implementation_end;
  2705. MatrixMul 320 576
  2706. description '<Description>
  2707. <Version>4.0</Version>
  2708. <IsMainModel>1</IsMainModel>
  2709. <KeepParameterValues>False</KeepParameterValues>
  2710. <LibraryPath>Signal\Block Diagram\Gain.emx</LibraryPath>
  2711. <TimeStamp>2007-9-26 12:15:12</TimeStamp>
  2712. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2713. </Description>';
  2714. type Gain
  2715. ports
  2716. signal in input1 [4,4];
  2717. signal out output [4,4];
  2718. signal in input2 [4,4];
  2719. end;
  2720. icon bg bottom
  2721. figures
  2722. rectangle 304.1 560 335.9 592 color 0 fill 15132390;
  2723. text 'X' 320 576 color 16711680 16 bold;
  2724. end;
  2725. implementation eq
  2726. equations
  2727. output = input2*input1; implementation_end;
  2728. plug Pin 492.1 424;
  2729. plug Pdiff 184 225;
  2730. plug Hin 130.8 576;
  2731. plug Hout 478.4 576;
  2732. plug Hdiff 320 222;
  2733. plug Pout 134.7 424;
  2734. Splitter2 320 312
  2735. description '<Description><Version>4.0</Version>
  2736. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  2737. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  2738. <IsMainModel>1</IsMainModel>
  2739. <KeepParameterValues>False</KeepParameterValues>
  2740. </Description>';
  2741. knot Splitter
  2742. ports
  2743. signal knot duplicatable out output [4,4];
  2744. signal knot in input [4,4];
  2745. end;
  2746. icon bg ellipse
  2747. figures
  2748. ellipse 316.8 308.8 323.2 315.2 color -1 fill 0;
  2749. ellipse 315.7 307.7 324.3 316.3 color -1;
  2750. terminals
  2751. input 320 312 fixed;
  2752. end;
  2753. implementation eq
  2754. equations
  2755. collect (output) = input;
  2756. implementation_end;
  2757. Wbai 184 424
  2758. description '<Description>
  2759. <Version>4.0</Version>
  2760. <IsMainModel>1</IsMainModel>
  2761. <KeepParameterValues>False</KeepParameterValues>
  2762. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  2763. <TimeStamp>2007-9-27 9:51:43</TimeStamp>
  2764. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2765. </Description>';
  2766. knot ZeroJunction
  2767. ports
  2768. power knot duplicatable none p [6,1];
  2769. signal knot out effort [6,1];
  2770. restrictions
  2771. causality constraint one_in p;
  2772. end;
  2773. icon bg bottom
  2774. figures
  2775. text '0' 184 424 color 0 18 bold;
  2776. end;
  2777. implementation eq
  2778. equations
  2779. sum (direct (p.f)) = 0;
  2780. equal (collect (p.e));
  2781. effort = first (p.e);
  2782. implementation_end;
  2783. end;
  2784. connections
  2785. FlowSensor2\flow -> Hmatrix\flow;
  2786. FlowSensor2\p2 => Wbai\p;
  2787. Hin -> MatrixMul\input2;
  2788. Hmatrix\H -> Splitter2\input;
  2789. MatrixMul\output -> Hout;
  2790. Pdiff => FlowSensor2\p1;
  2791. Pin => AdHji\p2;
  2792. Splitter2\output -> AdHji\H 424 312;
  2793. Splitter2\output -> Hdiff;
  2794. Splitter2\output -> MatrixMul\input1;
  2795. Wbai\p <= AdHji\p1;
  2796. Wbai\p => Pout;
  2797. end;
  2798. implementation_end;
  2799. Joint_dynA 320 536
  2800. description '<Description>
  2801. <Version>4.8</Version>
  2802. <IsMainModel>1</IsMainModel>
  2803. </Description>';
  2804. type Submodel
  2805. ports
  2806. power out output [6,1];
  2807. signal in angle {rad} ;
  2808. end;
  2809. implementation bg
  2810. submodels
  2811. C 264 200
  2812. description '<Information>
  2813. <Description>
  2814. <Version>4.2</Version>
  2815. <IsMainModel>1</IsMainModel>
  2816. <KeepParameterValues>False</KeepParameterValues>
  2817. <LibraryPath>Bond Graph\C.emx</LibraryPath>
  2818. <TimeStamp>2011-11-29 15:58:35</TimeStamp>
  2819. </Description>
  2820. </Information>';
  2821. type C
  2822. ports
  2823. power in p;
  2824. signal out state;
  2825. restrictions
  2826. causality preferred out p;
  2827. end;
  2828. icon bg bottom
  2829. figures
  2830. text 'C' 264 200 color 0 18 bold;
  2831. end;
  2832. implementation eq
  2833. parameters
  2834. real c = 0.001;
  2835. equations
  2836. state = int(p.f);
  2837. p.e = state / c;
  2838. implementation_end;
  2839. C1 191.8 216.2
  2840. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  2841. <LibraryPath>Bond Graph\3D\C-3.emx</LibraryPath>
  2842. <TimeStamp>2007-9-25 12:12:8</TimeStamp>
  2843. </Description>';
  2844. type 'C-3'
  2845. ports
  2846. power in p [3,1];
  2847. signal out state [3,1];
  2848. restrictions
  2849. causality preferred out p;
  2850. end;
  2851. icon bg top
  2852. figures
  2853. text 'C' 191.8 216.2 color 0 18 bold;
  2854. end;
  2855. implementation eq
  2856. parameters
  2857. real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
  2858. equations
  2859. state = int(p.f);
  2860. p.e = inverse(c) *state;
  2861. implementation_end;
  2862. C4 191.8 232.2
  2863. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  2864. <LibraryPath>Bond Graph\2D\C-2.emx</LibraryPath>
  2865. <TimeStamp>2007-9-25 12:7:27</TimeStamp>
  2866. </Description>';
  2867. type 'C-2'
  2868. ports
  2869. power in p [2,1];
  2870. signal out state [2,1];
  2871. restrictions
  2872. causality preferred out p;
  2873. end;
  2874. icon bg bottom
  2875. figures
  2876. text 'C' 191.8 232.2 color 0 18 bold;
  2877. end;
  2878. implementation eq
  2879. parameters
  2880. real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
  2881. equations
  2882. state = int(p.f);
  2883. p.e = inverse(c) *state;
  2884. implementation_end;
  2885. plug output 468 216;
  2886. plug angle 224 80;
  2887. OneJunction5 239.8 232.2
  2888. description '<Information>
  2889. <Description>
  2890. <Version>4.2</Version>
  2891. <IsMainModel>1</IsMainModel>
  2892. <KeepParameterValues>False</KeepParameterValues>
  2893. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  2894. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  2895. </Description>
  2896. </Information>';
  2897. knot OneJunction
  2898. ports
  2899. power knot duplicatable none p [2,1];
  2900. signal knot out flow [2,1];
  2901. restrictions
  2902. causality constraint one_out p;
  2903. end;
  2904. icon bg
  2905. figures
  2906. text '1' 239.8 232.2 color 0 18 bold;
  2907. end;
  2908. implementation eq
  2909. equations
  2910. sum (direct (p.e)) = 0;
  2911. equal (collect (p.f));
  2912. flow = first (p.f);
  2913. implementation_end;
  2914. OneJunction7 239.8 216.2
  2915. description '<Information>
  2916. <Description>
  2917. <Version>4.2</Version>
  2918. <IsMainModel>1</IsMainModel>
  2919. <KeepParameterValues>False</KeepParameterValues>
  2920. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  2921. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  2922. </Description>
  2923. </Information>';
  2924. knot OneJunction
  2925. ports
  2926. power knot duplicatable none p [3,1];
  2927. signal knot out flow [3,1];
  2928. restrictions
  2929. causality constraint one_out p;
  2930. end;
  2931. icon bg
  2932. figures
  2933. text '1' 239.8 216.2 color 0 18 bold;
  2934. end;
  2935. implementation eq
  2936. equations
  2937. sum (direct (p.e)) = 0;
  2938. equal (collect (p.f));
  2939. flow = first (p.f);
  2940. implementation_end;
  2941. OneJunction8 312 200
  2942. description '<Information>
  2943. <Description>
  2944. <Version>4.2</Version>
  2945. <IsMainModel>1</IsMainModel>
  2946. <KeepParameterValues>False</KeepParameterValues>
  2947. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  2948. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  2949. </Description>
  2950. </Information>';
  2951. knot OneJunction
  2952. ports
  2953. rotation knot duplicatable none p [1];
  2954. signal knot out flow [1];
  2955. restrictions
  2956. causality constraint one_out p;
  2957. end;
  2958. icon bg
  2959. figures
  2960. text '1' 312 200 color 0 18 bold;
  2961. end;
  2962. implementation eq
  2963. equations
  2964. sum (direct (p.e)) = 0;
  2965. equal (collect (p.f));
  2966. flow = first (p.f);
  2967. implementation_end;
  2968. PowerMux 402 216
  2969. specifications active 'rot_x'
  2970. specification 'rot_x'
  2971. description '<Information>
  2972. <Description>
  2973. <Version>4.8</Version>
  2974. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  2975. <TimeStamp>2020-7-20 14:35:23</TimeStamp>
  2976. <IsMainModel>1</IsMainModel>
  2977. <KeepParameterValues>False</KeepParameterValues>
  2978. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  2979. </Description>
  2980. </Information>';
  2981. type 'PowerMux-Rotation'
  2982. ports
  2983. power in input;
  2984. power out output [6,1];
  2985. power in input_rot2 [2,1];
  2986. power in input_pos3 [3,1];
  2987. restrictions
  2988. causality constraint not_equal input output;
  2989. causality constraint not_equal input_rot2 output;
  2990. causality constraint not_equal input_pos3 output;
  2991. end;
  2992. icon bg bottom
  2993. figures
  2994. line 400 192 400 240 color 0 width 2;
  2995. rectangle 396 192 408 240 color -1;
  2996. text '1' 405 210 color 8421504 8;
  2997. terminals
  2998. input 400 200 fixed;
  2999. output 400 216 fixed;
  3000. input_rot2 400 232 fixed;
  3001. input_pos3 400 216 fixed;
  3002. end;
  3003. implementation eq
  3004. equations
  3005. output.e[1] = input.e;
  3006. output.e[2:3] = input_rot2.e;
  3007. output.e[4:6] = input_pos3.e;
  3008. output.f[1] = input.f;
  3009. output.f[2:3] = input_rot2.f;
  3010. output.f[4:6] = input_pos3.f;implementation_end;
  3011. specification_end;
  3012. specification 'rot_y'
  3013. description '<Description>
  3014. <Version>4.1</Version>
  3015. <LibraryPath>Bond Graph\PowerMux.emx</LibraryPath>
  3016. <TimeStamp>2011-3-4 15:12:50</TimeStamp>
  3017. <IsMainModel>1</IsMainModel>
  3018. <KeepParameterValues>False</KeepParameterValues>
  3019. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  3020. </Description>';
  3021. type PowerMux
  3022. ports
  3023. power in input;
  3024. power out output [6,1];
  3025. power in input_rot2 [2,1];
  3026. power in input_pos3 [3,1];
  3027. restrictions
  3028. causality constraint not_equal input output;
  3029. causality constraint not_equal input_rot2 output;
  3030. causality constraint not_equal input_pos3 output;
  3031. end;
  3032. icon bg bottom
  3033. figures
  3034. line 242 274 290 274 color 0 width 2;
  3035. rectangle 242 266 290 278 color -1;
  3036. text '1' 260 269 color 8421504 8;
  3037. terminals
  3038. input 250 274 fixed;
  3039. output 266 274 fixed;
  3040. input_rot2 282 274 fixed;
  3041. input_pos3 266 274 fixed;
  3042. end;
  3043. implementation eq
  3044. equations
  3045. output.e[1] = input_rot2.e[1];
  3046. output.e[2] = input.e;
  3047. output.e[3] = input_rot2.e[2];
  3048. output.e[4:6] = input_pos3.e;
  3049. output.f[1] = input_rot2.f[1];
  3050. output.f[2] = input.f;
  3051. output.f[3] = input_rot2.f[2];
  3052. output.f[4:6] = input_pos3.f;implementation_end;
  3053. specification_end;
  3054. specification 'rot_z'
  3055. description '<Information>
  3056. <Description>
  3057. <Version>4.8</Version>
  3058. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  3059. <TimeStamp>2020-7-21 12:05:13</TimeStamp>
  3060. <IsMainModel>1</IsMainModel>
  3061. <KeepParameterValues>False</KeepParameterValues>
  3062. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  3063. </Description>
  3064. </Information>';
  3065. type PowerMux
  3066. ports
  3067. power in input;
  3068. power out output [6,1];
  3069. power in input_rot2 [2,1];
  3070. power in input_pos3 [3,1];
  3071. restrictions
  3072. causality constraint not_equal input output;
  3073. causality constraint not_equal input_rot2 output;
  3074. causality constraint not_equal input_pos3 output;
  3075. end;
  3076. icon bg bottom
  3077. figures
  3078. line 242 274 290 274 color 0 width 2;
  3079. rectangle 242 266 290 278 color -1;
  3080. text '1' 260 269 color 8421504 8;
  3081. terminals
  3082. input 250 274 fixed;
  3083. output 266 274 fixed;
  3084. input_rot2 282 274 fixed;
  3085. input_pos3 266 274 fixed;
  3086. end;
  3087. implementation eq
  3088. equations
  3089. output.e[3] = input.e;
  3090. output.e[1:2] = input_rot2.e;
  3091. output.e[4:6] = input_pos3.e;
  3092. output.f[3] = input.f;
  3093. output.f[1:2] = input_rot2.f;
  3094. output.f[4:6] = input_pos3.f;implementation_end;
  3095. specification_end;
  3096. end;
  3097. R 312 152
  3098. description '<Information>
  3099. <Description>
  3100. <Version>4.2</Version>
  3101. <IsMainModel>1</IsMainModel>
  3102. <KeepParameterValues>False</KeepParameterValues>
  3103. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  3104. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  3105. </Description>
  3106. </Information>';
  3107. type R
  3108. ports
  3109. power in p;
  3110. end;
  3111. icon bg bottom
  3112. figures
  3113. text 'R' 312 152 color 0 18 bold;
  3114. end;
  3115. implementation eq
  3116. parameters
  3117. real r = 0.001;
  3118. equations
  3119. p.e = r * p.f;
  3120. implementation_end;
  3121. R4 239.8 288.2
  3122. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  3123. <LibraryPath>Bond Graph\2D\R-2.emx</LibraryPath>
  3124. <TimeStamp>2007-9-25 12:6:54</TimeStamp>
  3125. </Description>';
  3126. type 'R-2'
  3127. ports
  3128. power in p [2,1];
  3129. end;
  3130. icon bg bottom
  3131. figures
  3132. text 'R' 239.8 288.2 color 0 18 bold;
  3133. end;
  3134. implementation eq
  3135. parameters
  3136. real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
  3137. equations
  3138. p.e = r * p.f;
  3139. implementation_end;
  3140. R5 239.8 168.2
  3141. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  3142. <LibraryPath>Bond Graph\3D\R-3.emx</LibraryPath>
  3143. <TimeStamp>2007-9-25 12:11:54</TimeStamp>
  3144. </Description>';
  3145. type 'R-3'
  3146. ports
  3147. power in p [3,1];
  3148. end;
  3149. icon bg top
  3150. figures
  3151. text 'R' 239.8 168.2 color 0 18 bold;
  3152. end;
  3153. implementation eq
  3154. parameters
  3155. real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
  3156. equations
  3157. p.e = r * p.f;
  3158. implementation_end;
  3159. stepper_model 360 80
  3160. description '<Information><Description><Version>4.8</Version><IsMainModel>1</IsMainModel><LibraryPath>Motor\stepper_model.emx</LibraryPath><TimeStamp>2020-7-23 10:54:47</TimeStamp></Description><Attributes><GlobalRelations>parameters
  3161. real I_phase = 3.4 {mH};
  3162. real R_phase = 2.9 {ohm};
  3163. real u_max = 6 {V};
  3164. real RotorInertia = 5.6e-6 {kg.m2};
  3165. real StepperMass = 0.29 {kg};
  3166. real angle_step = 1.8 {deg};
  3167. real n_phase = 2 {none};
  3168. real fluxLinkage = 0.0022 {Wb};
  3169. real detentTorque = 0.01 {N.m};
  3170. variables
  3171. real omega;
  3172. real p; // rotor division
  3173. initialequations
  3174. p = 2 * pi / (2 * n_phase * angle_step);
  3175. omega = 200;</GlobalRelations></Attributes></Information>';
  3176. type Submodel
  3177. ports
  3178. signal in angle;
  3179. rotation out p;
  3180. end;
  3181. implementation bg
  3182. submodels
  3183. I 560 104
  3184. description '<Information>
  3185. <Description>
  3186. <Version>4.2</Version>
  3187. <IsMainModel>1</IsMainModel>
  3188. <KeepParameterValues>False</KeepParameterValues>
  3189. <LibraryPath>Bond Graph\I.emx</LibraryPath>
  3190. <TimeStamp>2011-11-29 15:55:55</TimeStamp>
  3191. </Description>
  3192. </Information>';
  3193. type I
  3194. ports
  3195. power in p;
  3196. signal out state;
  3197. restrictions
  3198. causality preferred in p;
  3199. end;
  3200. icon bg bottom
  3201. figures
  3202. text 'I' 560 104 color 0 18 bold;
  3203. end;
  3204. implementation eq
  3205. parameters
  3206. real global I_phase;
  3207. equations
  3208. state = int(p.e);
  3209. p.f = state / I_phase;
  3210. implementation_end;
  3211. I1 608 328
  3212. description '<Information>
  3213. <Description>
  3214. <Version>4.2</Version>
  3215. <IsMainModel>1</IsMainModel>
  3216. <KeepParameterValues>False</KeepParameterValues>
  3217. <LibraryPath>Bond Graph\I.emx</LibraryPath>
  3218. <TimeStamp>2011-11-29 15:55:55</TimeStamp>
  3219. </Description>
  3220. </Information>';
  3221. type I
  3222. ports
  3223. power in p;
  3224. signal out state;
  3225. restrictions
  3226. causality preferred in p;
  3227. end;
  3228. icon bg bottom
  3229. figures
  3230. text 'I' 608 328 color 0 18 bold;
  3231. end;
  3232. implementation eq
  3233. parameters
  3234. real global I_phase;
  3235. equations
  3236. state = int(p.e);
  3237. p.f = state / I_phase;
  3238. implementation_end;
  3239. I2 752 160
  3240. description '<Information>
  3241. <Description>
  3242. <Version>4.2</Version>
  3243. <IsMainModel>1</IsMainModel>
  3244. <KeepParameterValues>False</KeepParameterValues>
  3245. <LibraryPath>Bond Graph\I.emx</LibraryPath>
  3246. <TimeStamp>2011-11-29 15:55:55</TimeStamp>
  3247. </Description>
  3248. </Information>';
  3249. type I
  3250. ports
  3251. power in p;
  3252. signal out state;
  3253. restrictions
  3254. causality preferred in p;
  3255. end;
  3256. icon bg bottom
  3257. figures
  3258. text 'I' 752 160 color 0 18 bold;
  3259. end;
  3260. implementation eq
  3261. parameters
  3262. real global RotorInertia;
  3263. equations
  3264. state = int(p.e);
  3265. p.f = state / (RotorInertia);
  3266. implementation_end;
  3267. MGY_a 656 160
  3268. description '<Information>
  3269. <Description>
  3270. <Version>4.2</Version>
  3271. <IsMainModel>1</IsMainModel>
  3272. <KeepParameterValues>False</KeepParameterValues>
  3273. <LibraryPath>Bond Graph\MGY.emx</LibraryPath>
  3274. <TimeStamp>2011-11-29 16:03:53</TimeStamp>
  3275. </Description>
  3276. </Information>';
  3277. type MGY
  3278. ports
  3279. power in p1;
  3280. power out p2;
  3281. signal in r;
  3282. restrictions
  3283. causality constraint equal p1 p2;
  3284. end;
  3285. icon bg bottom
  3286. figures
  3287. text 'MGY' 656 160 color 0 18 bold;
  3288. end;
  3289. implementation eq
  3290. equations
  3291. p1.e = r * p2.f;
  3292. p2.e = r * p1.f;
  3293. implementation_end;
  3294. MGY_b 656 272
  3295. description '<Information>
  3296. <Description>
  3297. <Version>4.2</Version>
  3298. <IsMainModel>1</IsMainModel>
  3299. <KeepParameterValues>False</KeepParameterValues>
  3300. <LibraryPath>Bond Graph\MGY.emx</LibraryPath>
  3301. <TimeStamp>2011-11-29 16:03:53</TimeStamp>
  3302. </Description>
  3303. </Information>';
  3304. type MGY
  3305. ports
  3306. power in p1;
  3307. power out p2;
  3308. signal in r;
  3309. restrictions
  3310. causality constraint equal p1 p2;
  3311. end;
  3312. icon bg bottom
  3313. figures
  3314. text 'MGY' 656 272 color 0 18 bold;
  3315. end;
  3316. implementation eq
  3317. equations
  3318. p1.e = r * p2.f;
  3319. p2.e = r * p1.f;
  3320. implementation_end;
  3321. MSe_a 512 160
  3322. description '<Information>
  3323. <Description>
  3324. <Version>4.2</Version>
  3325. <IsMainModel>1</IsMainModel>
  3326. <KeepParameterValues>False</KeepParameterValues>
  3327. <LibraryPath>Bond Graph\MSe.emx</LibraryPath>
  3328. <TimeStamp>2011-11-29 16:12:33</TimeStamp>
  3329. </Description>
  3330. </Information>';
  3331. type MSe
  3332. ports
  3333. electric out p;
  3334. signal in effort;
  3335. restrictions
  3336. causality fixed out p;
  3337. end;
  3338. icon bg bottom
  3339. figures
  3340. text 'MSe' 512 160 color 0 18 bold;
  3341. end;
  3342. implementation eq
  3343. variables
  3344. real flow;
  3345. equations
  3346. p.e = effort;
  3347. flow = p.f;
  3348. implementation_end;
  3349. MSe_b 512 272
  3350. description '<Information>
  3351. <Description>
  3352. <Version>4.2</Version>
  3353. <IsMainModel>1</IsMainModel>
  3354. <KeepParameterValues>False</KeepParameterValues>
  3355. <LibraryPath>Bond Graph\MSe.emx</LibraryPath>
  3356. <TimeStamp>2011-11-29 16:12:33</TimeStamp>
  3357. </Description>
  3358. </Information>';
  3359. type MSe
  3360. ports
  3361. electric out p;
  3362. signal in effort;
  3363. restrictions
  3364. causality fixed out p;
  3365. end;
  3366. icon bg bottom
  3367. figures
  3368. text 'MSe' 512 272 color 0 18 bold;
  3369. end;
  3370. implementation eq
  3371. variables
  3372. real flow;
  3373. equations
  3374. p.e = effort;
  3375. flow = p.f;
  3376. implementation_end;
  3377. plug angle 200 216;
  3378. plug p 1472 216;
  3379. OneJunction1 840 216
  3380. description '<Information>
  3381. <Description>
  3382. <Version>4.2</Version>
  3383. <IsMainModel>1</IsMainModel>
  3384. <KeepParameterValues>False</KeepParameterValues>
  3385. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  3386. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  3387. </Description>
  3388. </Information>';
  3389. knot OneJunction
  3390. ports
  3391. rotation knot duplicatable none p [1];
  3392. signal knot out flow [1];
  3393. restrictions
  3394. causality constraint one_out p;
  3395. end;
  3396. icon bg
  3397. figures
  3398. text '1' 840 216 color 0 18 bold;
  3399. end;
  3400. implementation eq
  3401. equations
  3402. sum (direct (p.e)) = 0;
  3403. equal (collect (p.f));
  3404. flow = first (p.f);
  3405. implementation_end;
  3406. OneJunction2 584 160
  3407. description '<Information>
  3408. <Description>
  3409. <Version>4.2</Version>
  3410. <IsMainModel>1</IsMainModel>
  3411. <KeepParameterValues>False</KeepParameterValues>
  3412. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  3413. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  3414. </Description>
  3415. </Information>';
  3416. knot OneJunction
  3417. ports
  3418. electric knot duplicatable none p [1];
  3419. signal knot out flow [1];
  3420. restrictions
  3421. causality constraint one_out p;
  3422. end;
  3423. icon bg
  3424. figures
  3425. text '1' 584 160 color 0 18 bold;
  3426. end;
  3427. implementation eq
  3428. equations
  3429. sum (direct (p.e)) = 0;
  3430. equal (collect (p.f));
  3431. flow = first (p.f);
  3432. implementation_end;
  3433. OneJunction3 584 272
  3434. description '<Information>
  3435. <Description>
  3436. <Version>4.2</Version>
  3437. <IsMainModel>1</IsMainModel>
  3438. <KeepParameterValues>False</KeepParameterValues>
  3439. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  3440. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  3441. </Description>
  3442. </Information>';
  3443. knot OneJunction
  3444. ports
  3445. electric knot duplicatable none p [1];
  3446. signal knot out flow [1];
  3447. restrictions
  3448. causality constraint one_out p;
  3449. end;
  3450. icon bg
  3451. figures
  3452. text '1' 584 272 color 0 18 bold;
  3453. end;
  3454. implementation eq
  3455. equations
  3456. sum (direct (p.e)) = 0;
  3457. equal (collect (p.f));
  3458. flow = first (p.f);
  3459. implementation_end;
  3460. OneJunction4 752 216
  3461. description '<Information>
  3462. <Description>
  3463. <Version>4.2</Version>
  3464. <IsMainModel>1</IsMainModel>
  3465. <KeepParameterValues>False</KeepParameterValues>
  3466. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  3467. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  3468. </Description>
  3469. </Information>';
  3470. knot OneJunction
  3471. ports
  3472. rotation knot duplicatable none p [1];
  3473. signal knot out flow [1];
  3474. restrictions
  3475. causality constraint one_out p;
  3476. end;
  3477. icon bg
  3478. figures
  3479. text '1' 752 216 color 0 18 bold;
  3480. end;
  3481. implementation eq
  3482. equations
  3483. sum (direct (p.e)) = 0;
  3484. equal (collect (p.f));
  3485. flow = first (p.f);
  3486. implementation_end;
  3487. phase_control 512 216
  3488. description '<Description><Version>4.0</Version>
  3489. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  3490. <IsMainModel>1</IsMainModel>
  3491. <KeepParameterValues>False</KeepParameterValues>
  3492. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  3493. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  3494. </Description>';
  3495. type Submodel
  3496. ports
  3497. signal in angle;
  3498. signal out a;
  3499. signal out b;
  3500. end;
  3501. icon bg
  3502. figures
  3503. rectangle 472 200 552 232 color 0 fill 15132390;
  3504. text 'name' 512 216 color 0 'Clear Sans' 16;
  3505. end;
  3506. implementation eq
  3507. parameters
  3508. real global u_max {V};
  3509. variables
  3510. real global p;
  3511. boolean hidden eventa, eventb;
  3512. equations
  3513. a = u_max * (cos (p*angle));
  3514. eventa = event(a);
  3515. b = u_max * -(sin (p*angle));
  3516. eventb = event(b);
  3517. implementation_end;
  3518. R 608 104
  3519. description '<Information>
  3520. <Description>
  3521. <Version>4.2</Version>
  3522. <IsMainModel>1</IsMainModel>
  3523. <KeepParameterValues>False</KeepParameterValues>
  3524. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  3525. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  3526. </Description>
  3527. </Information>';
  3528. type R
  3529. ports
  3530. power in p;
  3531. end;
  3532. icon bg bottom
  3533. figures
  3534. text 'R' 608 104 color 0 18 bold;
  3535. end;
  3536. implementation eq
  3537. parameters
  3538. real global R_phase;
  3539. equations
  3540. p.e = R_phase * p.f;
  3541. implementation_end;
  3542. R1 560 328
  3543. description '<Information>
  3544. <Description>
  3545. <Version>4.2</Version>
  3546. <IsMainModel>1</IsMainModel>
  3547. <KeepParameterValues>False</KeepParameterValues>
  3548. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  3549. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  3550. </Description>
  3551. </Information>';
  3552. type R
  3553. ports
  3554. power in p;
  3555. end;
  3556. icon bg bottom
  3557. figures
  3558. text 'R' 560 328 color 0 18 bold;
  3559. end;
  3560. implementation eq
  3561. parameters
  3562. real global R_phase;
  3563. equations
  3564. p.e = R_phase * p.f;
  3565. implementation_end;
  3566. R2 824 264
  3567. description '<Information>
  3568. <Description>
  3569. <Version>4.2</Version>
  3570. <IsMainModel>1</IsMainModel>
  3571. <KeepParameterValues>False</KeepParameterValues>
  3572. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  3573. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  3574. </Description>
  3575. </Information>';
  3576. type R
  3577. ports
  3578. power in p;
  3579. end;
  3580. icon bg bottom
  3581. figures
  3582. text 'R' 824 264 color 0 18 bold;
  3583. end;
  3584. implementation eq
  3585. parameters
  3586. real r = 1.0e-3;
  3587. equations
  3588. p.e = r * p.f;
  3589. implementation_end;
  3590. RotorAngle 656 216
  3591. description '<Description><Version>4.0</Version>
  3592. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  3593. <IsMainModel>1</IsMainModel>
  3594. <KeepParameterValues>False</KeepParameterValues>
  3595. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  3596. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  3597. </Description>';
  3598. type Submodel
  3599. ports
  3600. signal out output_b;
  3601. signal out output_a;
  3602. signal in omega {rad/s} ;
  3603. signal out output_d;
  3604. end;
  3605. icon bg
  3606. figures
  3607. rectangle 616 200 696 232 color 0 fill 15132390;
  3608. text 'name' 656 216 color 0 'Clear Sans' 16;
  3609. end;
  3610. implementation eq
  3611. parameters
  3612. real global fluxLinkage;
  3613. real global detentTorque;
  3614. variables
  3615. real global p;
  3616. real angle {rad};
  3617. equations
  3618. angle = int(omega,-1.65);
  3619. output_a = -p * fluxLinkage * sin(p * angle);
  3620. output_b = p * fluxLinkage * sin(p * angle - pi / 2);
  3621. output_d = detentTorque * sin(2 * p * angle);
  3622. implementation_end;
  3623. Se 752 272
  3624. description '<Information>
  3625. <Description>
  3626. <Version>4.2</Version>
  3627. <IsMainModel>1</IsMainModel>
  3628. <KeepParameterValues>False</KeepParameterValues>
  3629. <LibraryPath>Bond Graph\MSe.emx</LibraryPath>
  3630. <TimeStamp>2011-11-29 16:12:33</TimeStamp>
  3631. </Description>
  3632. </Information>';
  3633. type MSe
  3634. ports
  3635. power out p;
  3636. signal in effort;
  3637. restrictions
  3638. causality fixed out p;
  3639. end;
  3640. icon bg bottom
  3641. figures
  3642. text 'MSe' 752 272 color 0 18 bold;
  3643. end;
  3644. implementation eq
  3645. variables
  3646. real flow;
  3647. equations
  3648. p.e = effort;
  3649. flow = p.f;
  3650. implementation_end;
  3651. end;
  3652. connections
  3653. angle -> phase_control\angle;
  3654. I2\p <= OneJunction4\p;
  3655. MGY_a\p2 => OneJunction4\p;
  3656. MGY_b\p2 => OneJunction4\p;
  3657. MSe_b\p => OneJunction3\p;
  3658. OneJunction1\p => p;
  3659. OneJunction2\p <= MSe_a\p;
  3660. OneJunction2\p => I\p;
  3661. OneJunction2\p => MGY_a\p1;
  3662. OneJunction2\p => R\p;
  3663. OneJunction3\p => I1\p;
  3664. OneJunction3\p => MGY_b\p1;
  3665. OneJunction3\p => R1\p;
  3666. OneJunction4\flow -> RotorAngle\omega;
  3667. OneJunction4\p => OneJunction1\p;
  3668. OneJunction4\p => R2\p;
  3669. phase_control\a -> MSe_a\effort;
  3670. phase_control\b -> MSe_b\effort;
  3671. RotorAngle\output_a -> MGY_a\r;
  3672. RotorAngle\output_b -> MGY_b\r;
  3673. RotorAngle\output_d -> Se\effort;
  3674. Se\p => OneJunction4\p;
  3675. end;
  3676. implementation_end;
  3677. ZeroJunction1 360 200
  3678. description '<Information>
  3679. <Description>
  3680. <Version>4.2</Version>
  3681. <IsMainModel>1</IsMainModel>
  3682. <KeepParameterValues>False</KeepParameterValues>
  3683. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  3684. <TimeStamp>2011-11-29 16:45:16</TimeStamp>
  3685. </Description>
  3686. </Information>';
  3687. knot ZeroJunction
  3688. ports
  3689. rotation knot duplicatable none p [1];
  3690. signal knot out effort [1];
  3691. restrictions
  3692. causality constraint one_in p;
  3693. end;
  3694. icon bg
  3695. figures
  3696. text '0' 360 200 color 0 18 bold;
  3697. end;
  3698. implementation eq
  3699. equations
  3700. sum (direct (p.f)) = 0;
  3701. equal (collect (p.e));
  3702. effort = first (p.e);
  3703. implementation_end;
  3704. end;
  3705. connections
  3706. angle -> stepper_model\angle;
  3707. C\p <= OneJunction8\p;
  3708. C1\p <= OneJunction7\p;
  3709. OneJunction5\p => C4\p;
  3710. OneJunction5\p => PowerMux\input_rot2;
  3711. OneJunction5\p => R4\p;
  3712. OneJunction7\p => PowerMux\input_pos3;
  3713. OneJunction7\p => R5\p;
  3714. OneJunction8\p => R\p;
  3715. PowerMux\input <= ZeroJunction1\p;
  3716. PowerMux\output => output;
  3717. ZeroJunction1\p <= OneJunction8\p;
  3718. ZeroJunction1\p <= stepper_model\p;
  3719. end;
  3720. implementation_end;
  3721. Joint_dynB 336 216
  3722. description '<Description>
  3723. <Version>4.8</Version>
  3724. <IsMainModel>1</IsMainModel>
  3725. </Description>';
  3726. type Submodel
  3727. ports
  3728. power out output [6,1];
  3729. end;
  3730. implementation bg
  3731. submodels
  3732. C1 191.8 216.2
  3733. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  3734. <LibraryPath>Bond Graph\3D\C-3.emx</LibraryPath>
  3735. <TimeStamp>2007-9-25 12:12:8</TimeStamp>
  3736. </Description>';
  3737. type 'C-3'
  3738. ports
  3739. power in p [3,1];
  3740. signal out state [3,1];
  3741. restrictions
  3742. causality preferred out p;
  3743. end;
  3744. icon bg top
  3745. figures
  3746. text 'C' 191.8 216.2 color 0 18 bold;
  3747. end;
  3748. implementation eq
  3749. parameters
  3750. real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
  3751. equations
  3752. state = int(p.f);
  3753. p.e = inverse(c) *state;
  3754. implementation_end;
  3755. C4 191.8 232.2
  3756. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  3757. <LibraryPath>Bond Graph\2D\C-2.emx</LibraryPath>
  3758. <TimeStamp>2007-9-25 12:7:27</TimeStamp>
  3759. </Description>';
  3760. type 'C-2'
  3761. ports
  3762. power in p [2,1];
  3763. signal out state [2,1];
  3764. restrictions
  3765. causality preferred out p;
  3766. end;
  3767. icon bg bottom
  3768. figures
  3769. text 'C' 191.8 232.2 color 0 18 bold;
  3770. end;
  3771. implementation eq
  3772. parameters
  3773. real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
  3774. equations
  3775. state = int(p.f);
  3776. p.e = inverse(c) *state;
  3777. implementation_end;
  3778. plug output 396 216;
  3779. OneJunction5 239.8 232.2
  3780. description '<Information>
  3781. <Description>
  3782. <Version>4.2</Version>
  3783. <IsMainModel>1</IsMainModel>
  3784. <KeepParameterValues>False</KeepParameterValues>
  3785. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  3786. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  3787. </Description>
  3788. </Information>';
  3789. knot OneJunction
  3790. ports
  3791. power knot duplicatable none p [2,1];
  3792. signal knot out flow [2,1];
  3793. restrictions
  3794. causality constraint one_out p;
  3795. end;
  3796. icon bg
  3797. figures
  3798. text '1' 239.8 232.2 color 0 18 bold;
  3799. end;
  3800. implementation eq
  3801. equations
  3802. sum (direct (p.e)) = 0;
  3803. equal (collect (p.f));
  3804. flow = first (p.f);
  3805. implementation_end;
  3806. OneJunction7 239.8 216.2
  3807. description '<Information>
  3808. <Description>
  3809. <Version>4.2</Version>
  3810. <IsMainModel>1</IsMainModel>
  3811. <KeepParameterValues>False</KeepParameterValues>
  3812. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  3813. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  3814. </Description>
  3815. </Information>';
  3816. knot OneJunction
  3817. ports
  3818. power knot duplicatable none p [3,1];
  3819. signal knot out flow [3,1];
  3820. restrictions
  3821. causality constraint one_out p;
  3822. end;
  3823. icon bg
  3824. figures
  3825. text '1' 239.8 216.2 color 0 18 bold;
  3826. end;
  3827. implementation eq
  3828. equations
  3829. sum (direct (p.e)) = 0;
  3830. equal (collect (p.f));
  3831. flow = first (p.f);
  3832. implementation_end;
  3833. OneJunction8 288 200
  3834. description '<Information>
  3835. <Description>
  3836. <Version>4.2</Version>
  3837. <IsMainModel>1</IsMainModel>
  3838. <KeepParameterValues>False</KeepParameterValues>
  3839. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  3840. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  3841. </Description>
  3842. </Information>';
  3843. knot OneJunction
  3844. ports
  3845. power knot duplicatable none p [1];
  3846. signal knot out flow [1];
  3847. restrictions
  3848. causality constraint one_out p;
  3849. end;
  3850. icon bg
  3851. figures
  3852. text '1' 288 200 color 0 18 bold;
  3853. end;
  3854. implementation eq
  3855. equations
  3856. sum (direct (p.e)) = 0;
  3857. equal (collect (p.f));
  3858. flow = first (p.f);
  3859. implementation_end;
  3860. PowerMux 330 216
  3861. specifications active 'rot_x'
  3862. specification 'rot_x'
  3863. description '<Information>
  3864. <Description>
  3865. <Version>4.8</Version>
  3866. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  3867. <TimeStamp>2020-7-20 14:35:23</TimeStamp>
  3868. <IsMainModel>1</IsMainModel>
  3869. <KeepParameterValues>False</KeepParameterValues>
  3870. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  3871. </Description>
  3872. </Information>';
  3873. type 'PowerMux-Rotation'
  3874. ports
  3875. power in input;
  3876. power out output [6,1];
  3877. power in input_rot2 [2,1];
  3878. power in input_pos3 [3,1];
  3879. restrictions
  3880. causality constraint not_equal input output;
  3881. causality constraint not_equal input_rot2 output;
  3882. causality constraint not_equal input_pos3 output;
  3883. end;
  3884. icon bg bottom
  3885. figures
  3886. line 328 192 328 240 color 0 width 2;
  3887. rectangle 324 192 336 240 color -1;
  3888. text '1' 333 210 color 8421504 8;
  3889. terminals
  3890. input 328 200 fixed;
  3891. output 328 216 fixed;
  3892. input_rot2 328 232 fixed;
  3893. input_pos3 328 216 fixed;
  3894. end;
  3895. implementation eq
  3896. equations
  3897. output.e[1] = input.e;
  3898. output.e[2:3] = input_rot2.e;
  3899. output.e[4:6] = input_pos3.e;
  3900. output.f[1] = input.f;
  3901. output.f[2:3] = input_rot2.f;
  3902. output.f[4:6] = input_pos3.f;implementation_end;
  3903. specification_end;
  3904. specification 'rot_y'
  3905. description '<Description>
  3906. <Version>4.1</Version>
  3907. <LibraryPath>Bond Graph\PowerMux.emx</LibraryPath>
  3908. <TimeStamp>2011-3-4 15:12:50</TimeStamp>
  3909. <IsMainModel>1</IsMainModel>
  3910. <KeepParameterValues>False</KeepParameterValues>
  3911. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  3912. </Description>';
  3913. type PowerMux
  3914. ports
  3915. power in input;
  3916. power out output [6,1];
  3917. power in input_rot2 [2,1];
  3918. power in input_pos3 [3,1];
  3919. restrictions
  3920. causality constraint not_equal input output;
  3921. causality constraint not_equal input_rot2 output;
  3922. causality constraint not_equal input_pos3 output;
  3923. end;
  3924. icon bg bottom
  3925. figures
  3926. line 242 274 290 274 color 0 width 2;
  3927. rectangle 242 266 290 278 color -1;
  3928. text '1' 260 269 color 8421504 8;
  3929. terminals
  3930. input 250 274 fixed;
  3931. output 266 274 fixed;
  3932. input_rot2 282 274 fixed;
  3933. input_pos3 266 274 fixed;
  3934. end;
  3935. implementation eq
  3936. equations
  3937. output.e[1] = input_rot2.e[1];
  3938. output.e[2] = input.e;
  3939. output.e[3] = input_rot2.e[2];
  3940. output.e[4:6] = input_pos3.e;
  3941. output.f[1] = input_rot2.f[1];
  3942. output.f[2] = input.f;
  3943. output.f[3] = input_rot2.f[2];
  3944. output.f[4:6] = input_pos3.f;implementation_end;
  3945. specification_end;
  3946. specification 'rot_z'
  3947. description '<Information>
  3948. <Description>
  3949. <Version>4.8</Version>
  3950. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  3951. <TimeStamp>2020-7-21 12:05:13</TimeStamp>
  3952. <IsMainModel>1</IsMainModel>
  3953. <KeepParameterValues>False</KeepParameterValues>
  3954. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  3955. </Description>
  3956. </Information>';
  3957. type PowerMux
  3958. ports
  3959. power in input;
  3960. power out output [6,1];
  3961. power in input_rot2 [2,1];
  3962. power in input_pos3 [3,1];
  3963. restrictions
  3964. causality constraint not_equal input output;
  3965. causality constraint not_equal input_rot2 output;
  3966. causality constraint not_equal input_pos3 output;
  3967. end;
  3968. icon bg bottom
  3969. figures
  3970. line 242 274 290 274 color 0 width 2;
  3971. rectangle 242 266 290 278 color -1;
  3972. text '1' 260 269 color 8421504 8;
  3973. terminals
  3974. input 250 274 fixed;
  3975. output 266 274 fixed;
  3976. input_rot2 282 274 fixed;
  3977. input_pos3 266 274 fixed;
  3978. end;
  3979. implementation eq
  3980. equations
  3981. output.e[3] = input.e;
  3982. output.e[1:2] = input_rot2.e;
  3983. output.e[4:6] = input_pos3.e;
  3984. output.f[3] = input.f;
  3985. output.f[1:2] = input_rot2.f;
  3986. output.f[4:6] = input_pos3.f;implementation_end;
  3987. specification_end;
  3988. end;
  3989. R 288 152
  3990. description '<Information>
  3991. <Description>
  3992. <Version>4.2</Version>
  3993. <IsMainModel>1</IsMainModel>
  3994. <KeepParameterValues>False</KeepParameterValues>
  3995. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  3996. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  3997. </Description>
  3998. </Information>';
  3999. type R
  4000. ports
  4001. power in p;
  4002. end;
  4003. icon bg top
  4004. figures
  4005. text 'R' 288 152 color 0 18 bold;
  4006. end;
  4007. implementation eq
  4008. parameters
  4009. real r = 0.01;
  4010. equations
  4011. p.e = r * p.f;
  4012. implementation_end;
  4013. R4 239.8 288.2
  4014. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4015. <LibraryPath>Bond Graph\2D\R-2.emx</LibraryPath>
  4016. <TimeStamp>2007-9-25 12:6:54</TimeStamp>
  4017. </Description>';
  4018. type 'R-2'
  4019. ports
  4020. power in p [2,1];
  4021. end;
  4022. icon bg bottom
  4023. figures
  4024. text 'R' 239.8 288.2 color 0 18 bold;
  4025. end;
  4026. implementation eq
  4027. parameters
  4028. real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
  4029. equations
  4030. p.e = r * p.f;
  4031. implementation_end;
  4032. R5 239.8 168.2
  4033. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4034. <LibraryPath>Bond Graph\3D\R-3.emx</LibraryPath>
  4035. <TimeStamp>2007-9-25 12:11:54</TimeStamp>
  4036. </Description>';
  4037. type 'R-3'
  4038. ports
  4039. power in p [3,1];
  4040. end;
  4041. icon bg top
  4042. figures
  4043. text 'R' 239.8 168.2 color 0 18 bold;
  4044. end;
  4045. implementation eq
  4046. parameters
  4047. real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
  4048. equations
  4049. p.e = r * p.f;
  4050. implementation_end;
  4051. end;
  4052. connections
  4053. C1\p <= OneJunction7\p;
  4054. OneJunction5\p => C4\p;
  4055. OneJunction5\p => PowerMux\input_rot2;
  4056. OneJunction5\p => R4\p;
  4057. OneJunction7\p => PowerMux\input_pos3;
  4058. OneJunction7\p => R5\p;
  4059. OneJunction8\p => PowerMux\input;
  4060. PowerMux\output => output;
  4061. R\p <= OneJunction8\p;
  4062. end;
  4063. implementation_end;
  4064. Joint_dynC 944 696
  4065. description '<Description>
  4066. <Version>4.8</Version>
  4067. <IsMainModel>1</IsMainModel>
  4068. </Description>';
  4069. type Submodel
  4070. ports
  4071. power out output [6,1];
  4072. end;
  4073. implementation bg
  4074. submodels
  4075. C1 191.8 216.2
  4076. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4077. <LibraryPath>Bond Graph\3D\C-3.emx</LibraryPath>
  4078. <TimeStamp>2007-9-25 12:12:8</TimeStamp>
  4079. </Description>';
  4080. type 'C-3'
  4081. ports
  4082. power in p [3,1];
  4083. signal out state [3,1];
  4084. restrictions
  4085. causality preferred out p;
  4086. end;
  4087. icon bg top
  4088. figures
  4089. text 'C' 191.8 216.2 color 0 18 bold;
  4090. end;
  4091. implementation eq
  4092. parameters
  4093. real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
  4094. equations
  4095. state = int(p.f);
  4096. p.e = inverse(c) *state;
  4097. implementation_end;
  4098. C4 191.8 232.2
  4099. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4100. <LibraryPath>Bond Graph\2D\C-2.emx</LibraryPath>
  4101. <TimeStamp>2007-9-25 12:7:27</TimeStamp>
  4102. </Description>';
  4103. type 'C-2'
  4104. ports
  4105. power in p [2,1];
  4106. signal out state [2,1];
  4107. restrictions
  4108. causality preferred out p;
  4109. end;
  4110. icon bg bottom
  4111. figures
  4112. text 'C' 191.8 232.2 color 0 18 bold;
  4113. end;
  4114. implementation eq
  4115. parameters
  4116. real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
  4117. equations
  4118. state = int(p.f);
  4119. p.e = inverse(c) *state;
  4120. implementation_end;
  4121. plug output 396 216;
  4122. OneJunction5 239.8 232.2
  4123. description '<Information>
  4124. <Description>
  4125. <Version>4.2</Version>
  4126. <IsMainModel>1</IsMainModel>
  4127. <KeepParameterValues>False</KeepParameterValues>
  4128. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  4129. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  4130. </Description>
  4131. </Information>';
  4132. knot OneJunction
  4133. ports
  4134. power knot duplicatable none p [2,1];
  4135. signal knot out flow [2,1];
  4136. restrictions
  4137. causality constraint one_out p;
  4138. end;
  4139. icon bg
  4140. figures
  4141. text '1' 239.8 232.2 color 0 18 bold;
  4142. end;
  4143. implementation eq
  4144. equations
  4145. sum (direct (p.e)) = 0;
  4146. equal (collect (p.f));
  4147. flow = first (p.f);
  4148. implementation_end;
  4149. OneJunction7 239.8 216.2
  4150. description '<Information>
  4151. <Description>
  4152. <Version>4.2</Version>
  4153. <IsMainModel>1</IsMainModel>
  4154. <KeepParameterValues>False</KeepParameterValues>
  4155. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  4156. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  4157. </Description>
  4158. </Information>';
  4159. knot OneJunction
  4160. ports
  4161. power knot duplicatable none p [3,1];
  4162. signal knot out flow [3,1];
  4163. restrictions
  4164. causality constraint one_out p;
  4165. end;
  4166. icon bg
  4167. figures
  4168. text '1' 239.8 216.2 color 0 18 bold;
  4169. end;
  4170. implementation eq
  4171. equations
  4172. sum (direct (p.e)) = 0;
  4173. equal (collect (p.f));
  4174. flow = first (p.f);
  4175. implementation_end;
  4176. OneJunction8 288 200
  4177. description '<Information>
  4178. <Description>
  4179. <Version>4.2</Version>
  4180. <IsMainModel>1</IsMainModel>
  4181. <KeepParameterValues>False</KeepParameterValues>
  4182. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  4183. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  4184. </Description>
  4185. </Information>';
  4186. knot OneJunction
  4187. ports
  4188. power knot duplicatable none p [1];
  4189. signal knot out flow [1];
  4190. restrictions
  4191. causality constraint one_out p;
  4192. end;
  4193. icon bg
  4194. figures
  4195. text '1' 288 200 color 0 18 bold;
  4196. end;
  4197. implementation eq
  4198. equations
  4199. sum (direct (p.e)) = 0;
  4200. equal (collect (p.f));
  4201. flow = first (p.f);
  4202. implementation_end;
  4203. PowerMux 330 216
  4204. specifications active 'rot_x'
  4205. specification 'rot_x'
  4206. description '<Information>
  4207. <Description>
  4208. <Version>4.8</Version>
  4209. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  4210. <TimeStamp>2020-7-20 14:35:23</TimeStamp>
  4211. <IsMainModel>1</IsMainModel>
  4212. <KeepParameterValues>False</KeepParameterValues>
  4213. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  4214. </Description>
  4215. </Information>';
  4216. type 'PowerMux-Rotation'
  4217. ports
  4218. power in input;
  4219. power out output [6,1];
  4220. power in input_rot2 [2,1];
  4221. power in input_pos3 [3,1];
  4222. restrictions
  4223. causality constraint not_equal input output;
  4224. causality constraint not_equal input_rot2 output;
  4225. causality constraint not_equal input_pos3 output;
  4226. end;
  4227. icon bg bottom
  4228. figures
  4229. line 328 192 328 240 color 0 width 2;
  4230. rectangle 324 192 336 240 color -1;
  4231. text '1' 333 210 color 8421504 8;
  4232. terminals
  4233. input 328 200 fixed;
  4234. output 328 216 fixed;
  4235. input_rot2 328 232 fixed;
  4236. input_pos3 328 216 fixed;
  4237. end;
  4238. implementation eq
  4239. equations
  4240. output.e[1] = input.e;
  4241. output.e[2:3] = input_rot2.e;
  4242. output.e[4:6] = input_pos3.e;
  4243. output.f[1] = input.f;
  4244. output.f[2:3] = input_rot2.f;
  4245. output.f[4:6] = input_pos3.f;implementation_end;
  4246. specification_end;
  4247. specification 'rot_y'
  4248. description '<Description>
  4249. <Version>4.1</Version>
  4250. <LibraryPath>Bond Graph\PowerMux.emx</LibraryPath>
  4251. <TimeStamp>2011-3-4 15:12:50</TimeStamp>
  4252. <IsMainModel>1</IsMainModel>
  4253. <KeepParameterValues>False</KeepParameterValues>
  4254. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  4255. </Description>';
  4256. type PowerMux
  4257. ports
  4258. power in input;
  4259. power out output [6,1];
  4260. power in input_rot2 [2,1];
  4261. power in input_pos3 [3,1];
  4262. restrictions
  4263. causality constraint not_equal input output;
  4264. causality constraint not_equal input_rot2 output;
  4265. causality constraint not_equal input_pos3 output;
  4266. end;
  4267. icon bg bottom
  4268. figures
  4269. line 242 274 290 274 color 0 width 2;
  4270. rectangle 242 266 290 278 color -1;
  4271. text '1' 260 269 color 8421504 8;
  4272. terminals
  4273. input 250 274 fixed;
  4274. output 266 274 fixed;
  4275. input_rot2 282 274 fixed;
  4276. input_pos3 266 274 fixed;
  4277. end;
  4278. implementation eq
  4279. equations
  4280. output.e[1] = input_rot2.e[1];
  4281. output.e[2] = input.e;
  4282. output.e[3] = input_rot2.e[2];
  4283. output.e[4:6] = input_pos3.e;
  4284. output.f[1] = input_rot2.f[1];
  4285. output.f[2] = input.f;
  4286. output.f[3] = input_rot2.f[2];
  4287. output.f[4:6] = input_pos3.f;implementation_end;
  4288. specification_end;
  4289. specification 'rot_z'
  4290. description '<Information>
  4291. <Description>
  4292. <Version>4.8</Version>
  4293. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  4294. <TimeStamp>2020-7-21 12:05:13</TimeStamp>
  4295. <IsMainModel>1</IsMainModel>
  4296. <KeepParameterValues>False</KeepParameterValues>
  4297. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  4298. </Description>
  4299. </Information>';
  4300. type PowerMux
  4301. ports
  4302. power in input;
  4303. power out output [6,1];
  4304. power in input_rot2 [2,1];
  4305. power in input_pos3 [3,1];
  4306. restrictions
  4307. causality constraint not_equal input output;
  4308. causality constraint not_equal input_rot2 output;
  4309. causality constraint not_equal input_pos3 output;
  4310. end;
  4311. icon bg bottom
  4312. figures
  4313. line 242 274 290 274 color 0 width 2;
  4314. rectangle 242 266 290 278 color -1;
  4315. text '1' 260 269 color 8421504 8;
  4316. terminals
  4317. input 250 274 fixed;
  4318. output 266 274 fixed;
  4319. input_rot2 282 274 fixed;
  4320. input_pos3 266 274 fixed;
  4321. end;
  4322. implementation eq
  4323. equations
  4324. output.e[3] = input.e;
  4325. output.e[1:2] = input_rot2.e;
  4326. output.e[4:6] = input_pos3.e;
  4327. output.f[3] = input.f;
  4328. output.f[1:2] = input_rot2.f;
  4329. output.f[4:6] = input_pos3.f;implementation_end;
  4330. specification_end;
  4331. end;
  4332. R 288 152
  4333. description '<Information>
  4334. <Description>
  4335. <Version>4.2</Version>
  4336. <IsMainModel>1</IsMainModel>
  4337. <KeepParameterValues>False</KeepParameterValues>
  4338. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  4339. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  4340. </Description>
  4341. </Information>';
  4342. type R
  4343. ports
  4344. power in p;
  4345. end;
  4346. icon bg top
  4347. figures
  4348. text 'R' 288 152 color 0 18 bold;
  4349. end;
  4350. implementation eq
  4351. parameters
  4352. real r = 0.01;
  4353. equations
  4354. p.e = r * p.f;
  4355. implementation_end;
  4356. R4 239.8 288.2
  4357. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4358. <LibraryPath>Bond Graph\2D\R-2.emx</LibraryPath>
  4359. <TimeStamp>2007-9-25 12:6:54</TimeStamp>
  4360. </Description>';
  4361. type 'R-2'
  4362. ports
  4363. power in p [2,1];
  4364. end;
  4365. icon bg bottom
  4366. figures
  4367. text 'R' 239.8 288.2 color 0 18 bold;
  4368. end;
  4369. implementation eq
  4370. parameters
  4371. real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
  4372. equations
  4373. p.e = r * p.f;
  4374. implementation_end;
  4375. R5 239.8 168.2
  4376. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4377. <LibraryPath>Bond Graph\3D\R-3.emx</LibraryPath>
  4378. <TimeStamp>2007-9-25 12:11:54</TimeStamp>
  4379. </Description>';
  4380. type 'R-3'
  4381. ports
  4382. power in p [3,1];
  4383. end;
  4384. icon bg top
  4385. figures
  4386. text 'R' 239.8 168.2 color 0 18 bold;
  4387. end;
  4388. implementation eq
  4389. parameters
  4390. real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
  4391. equations
  4392. p.e = r * p.f;
  4393. implementation_end;
  4394. end;
  4395. connections
  4396. C1\p <= OneJunction7\p;
  4397. OneJunction5\p => C4\p;
  4398. OneJunction5\p => PowerMux\input_rot2;
  4399. OneJunction5\p => R4\p;
  4400. OneJunction7\p => PowerMux\input_pos3;
  4401. OneJunction7\p => R5\p;
  4402. OneJunction8\p => PowerMux\input;
  4403. PowerMux\output => output;
  4404. R\p <= OneJunction8\p;
  4405. end;
  4406. implementation_end;
  4407. Joint_dynD 528 536
  4408. description '<Description>
  4409. <Version>4.8</Version>
  4410. <IsMainModel>1</IsMainModel>
  4411. </Description>';
  4412. type Submodel
  4413. ports
  4414. power out output [6,1];
  4415. signal in angle {rad} ;
  4416. end;
  4417. icon bg
  4418. figures
  4419. rectangle 488 520 568 552 color 0 fill 15132390;
  4420. text 'name' 528 536 color 0 'Clear Sans' 16;
  4421. end;
  4422. implementation bg
  4423. submodels
  4424. C 264 200
  4425. description '<Information>
  4426. <Description>
  4427. <Version>4.2</Version>
  4428. <IsMainModel>1</IsMainModel>
  4429. <KeepParameterValues>False</KeepParameterValues>
  4430. <LibraryPath>Bond Graph\C.emx</LibraryPath>
  4431. <TimeStamp>2011-11-29 15:58:35</TimeStamp>
  4432. </Description>
  4433. </Information>';
  4434. type C
  4435. ports
  4436. power in p;
  4437. signal out state;
  4438. restrictions
  4439. causality preferred out p;
  4440. end;
  4441. icon bg bottom
  4442. figures
  4443. text 'C' 264 200 color 0 18 bold;
  4444. end;
  4445. implementation eq
  4446. parameters
  4447. real c = 0.001;
  4448. equations
  4449. state = int(p.f);
  4450. p.e = state / c;
  4451. implementation_end;
  4452. C1 191.8 216.2
  4453. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4454. <LibraryPath>Bond Graph\3D\C-3.emx</LibraryPath>
  4455. <TimeStamp>2007-9-25 12:12:8</TimeStamp>
  4456. </Description>';
  4457. type 'C-3'
  4458. ports
  4459. power in p [3,1];
  4460. signal out state [3,1];
  4461. restrictions
  4462. causality preferred out p;
  4463. end;
  4464. icon bg top
  4465. figures
  4466. text 'C' 191.8 216.2 color 0 18 bold;
  4467. end;
  4468. implementation eq
  4469. parameters
  4470. real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
  4471. equations
  4472. state = int(p.f);
  4473. p.e = inverse(c) *state;
  4474. implementation_end;
  4475. C4 191.8 232.2
  4476. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4477. <LibraryPath>Bond Graph\2D\C-2.emx</LibraryPath>
  4478. <TimeStamp>2007-9-25 12:7:27</TimeStamp>
  4479. </Description>';
  4480. type 'C-2'
  4481. ports
  4482. power in p [2,1];
  4483. signal out state [2,1];
  4484. restrictions
  4485. causality preferred out p;
  4486. end;
  4487. icon bg bottom
  4488. figures
  4489. text 'C' 191.8 232.2 color 0 18 bold;
  4490. end;
  4491. implementation eq
  4492. parameters
  4493. real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
  4494. equations
  4495. state = int(p.f);
  4496. p.e = inverse(c) *state;
  4497. implementation_end;
  4498. plug output 468 216;
  4499. plug angle 224 80;
  4500. OneJunction5 239.8 232.2
  4501. description '<Information>
  4502. <Description>
  4503. <Version>4.2</Version>
  4504. <IsMainModel>1</IsMainModel>
  4505. <KeepParameterValues>False</KeepParameterValues>
  4506. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  4507. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  4508. </Description>
  4509. </Information>';
  4510. knot OneJunction
  4511. ports
  4512. power knot duplicatable none p [2,1];
  4513. signal knot out flow [2,1];
  4514. restrictions
  4515. causality constraint one_out p;
  4516. end;
  4517. icon bg
  4518. figures
  4519. text '1' 239.8 232.2 color 0 18 bold;
  4520. end;
  4521. implementation eq
  4522. equations
  4523. sum (direct (p.e)) = 0;
  4524. equal (collect (p.f));
  4525. flow = first (p.f);
  4526. implementation_end;
  4527. OneJunction7 239.8 216.2
  4528. description '<Information>
  4529. <Description>
  4530. <Version>4.2</Version>
  4531. <IsMainModel>1</IsMainModel>
  4532. <KeepParameterValues>False</KeepParameterValues>
  4533. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  4534. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  4535. </Description>
  4536. </Information>';
  4537. knot OneJunction
  4538. ports
  4539. power knot duplicatable none p [3,1];
  4540. signal knot out flow [3,1];
  4541. restrictions
  4542. causality constraint one_out p;
  4543. end;
  4544. icon bg
  4545. figures
  4546. text '1' 239.8 216.2 color 0 18 bold;
  4547. end;
  4548. implementation eq
  4549. equations
  4550. sum (direct (p.e)) = 0;
  4551. equal (collect (p.f));
  4552. flow = first (p.f);
  4553. implementation_end;
  4554. OneJunction8 312 200
  4555. description '<Information>
  4556. <Description>
  4557. <Version>4.2</Version>
  4558. <IsMainModel>1</IsMainModel>
  4559. <KeepParameterValues>False</KeepParameterValues>
  4560. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  4561. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  4562. </Description>
  4563. </Information>';
  4564. knot OneJunction
  4565. ports
  4566. rotation knot duplicatable none p [1];
  4567. signal knot out flow [1];
  4568. restrictions
  4569. causality constraint one_out p;
  4570. end;
  4571. icon bg
  4572. figures
  4573. text '1' 312 200 color 0 18 bold;
  4574. end;
  4575. implementation eq
  4576. equations
  4577. sum (direct (p.e)) = 0;
  4578. equal (collect (p.f));
  4579. flow = first (p.f);
  4580. implementation_end;
  4581. PowerMux 402 216
  4582. specifications active 'rot_x'
  4583. specification 'rot_x'
  4584. description '<Information>
  4585. <Description>
  4586. <Version>4.8</Version>
  4587. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  4588. <TimeStamp>2020-7-20 14:35:23</TimeStamp>
  4589. <IsMainModel>1</IsMainModel>
  4590. <KeepParameterValues>False</KeepParameterValues>
  4591. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  4592. </Description>
  4593. </Information>';
  4594. type 'PowerMux-Rotation'
  4595. ports
  4596. power in input;
  4597. power out output [6,1];
  4598. power in input_rot2 [2,1];
  4599. power in input_pos3 [3,1];
  4600. restrictions
  4601. causality constraint not_equal input output;
  4602. causality constraint not_equal input_rot2 output;
  4603. causality constraint not_equal input_pos3 output;
  4604. end;
  4605. icon bg bottom
  4606. figures
  4607. line 400 192 400 240 color 0 width 2;
  4608. rectangle 396 192 408 240 color -1;
  4609. text '1' 405 210 color 8421504 8;
  4610. terminals
  4611. input 400 200 fixed;
  4612. output 400 216 fixed;
  4613. input_rot2 400 232 fixed;
  4614. input_pos3 400 216 fixed;
  4615. end;
  4616. implementation eq
  4617. equations
  4618. output.e[1] = input.e;
  4619. output.e[2:3] = input_rot2.e;
  4620. output.e[4:6] = input_pos3.e;
  4621. output.f[1] = input.f;
  4622. output.f[2:3] = input_rot2.f;
  4623. output.f[4:6] = input_pos3.f;implementation_end;
  4624. specification_end;
  4625. specification 'rot_y'
  4626. description '<Description>
  4627. <Version>4.1</Version>
  4628. <LibraryPath>Bond Graph\PowerMux.emx</LibraryPath>
  4629. <TimeStamp>2011-3-4 15:12:50</TimeStamp>
  4630. <IsMainModel>1</IsMainModel>
  4631. <KeepParameterValues>False</KeepParameterValues>
  4632. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  4633. </Description>';
  4634. type PowerMux
  4635. ports
  4636. power in input;
  4637. power out output [6,1];
  4638. power in input_rot2 [2,1];
  4639. power in input_pos3 [3,1];
  4640. restrictions
  4641. causality constraint not_equal input output;
  4642. causality constraint not_equal input_rot2 output;
  4643. causality constraint not_equal input_pos3 output;
  4644. end;
  4645. icon bg bottom
  4646. figures
  4647. line 242 274 290 274 color 0 width 2;
  4648. rectangle 242 266 290 278 color -1;
  4649. text '1' 260 269 color 8421504 8;
  4650. terminals
  4651. input 250 274 fixed;
  4652. output 266 274 fixed;
  4653. input_rot2 282 274 fixed;
  4654. input_pos3 266 274 fixed;
  4655. end;
  4656. implementation eq
  4657. equations
  4658. output.e[1] = input_rot2.e[1];
  4659. output.e[2] = input.e;
  4660. output.e[3] = input_rot2.e[2];
  4661. output.e[4:6] = input_pos3.e;
  4662. output.f[1] = input_rot2.f[1];
  4663. output.f[2] = input.f;
  4664. output.f[3] = input_rot2.f[2];
  4665. output.f[4:6] = input_pos3.f;implementation_end;
  4666. specification_end;
  4667. specification 'rot_z'
  4668. description '<Information>
  4669. <Description>
  4670. <Version>4.8</Version>
  4671. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  4672. <TimeStamp>2020-7-21 12:05:13</TimeStamp>
  4673. <IsMainModel>1</IsMainModel>
  4674. <KeepParameterValues>False</KeepParameterValues>
  4675. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  4676. </Description>
  4677. </Information>';
  4678. type PowerMux
  4679. ports
  4680. power in input;
  4681. power out output [6,1];
  4682. power in input_rot2 [2,1];
  4683. power in input_pos3 [3,1];
  4684. restrictions
  4685. causality constraint not_equal input output;
  4686. causality constraint not_equal input_rot2 output;
  4687. causality constraint not_equal input_pos3 output;
  4688. end;
  4689. icon bg bottom
  4690. figures
  4691. line 242 274 290 274 color 0 width 2;
  4692. rectangle 242 266 290 278 color -1;
  4693. text '1' 260 269 color 8421504 8;
  4694. terminals
  4695. input 250 274 fixed;
  4696. output 266 274 fixed;
  4697. input_rot2 282 274 fixed;
  4698. input_pos3 266 274 fixed;
  4699. end;
  4700. implementation eq
  4701. equations
  4702. output.e[3] = input.e;
  4703. output.e[1:2] = input_rot2.e;
  4704. output.e[4:6] = input_pos3.e;
  4705. output.f[3] = input.f;
  4706. output.f[1:2] = input_rot2.f;
  4707. output.f[4:6] = input_pos3.f;implementation_end;
  4708. specification_end;
  4709. end;
  4710. R 312 152
  4711. description '<Information>
  4712. <Description>
  4713. <Version>4.2</Version>
  4714. <IsMainModel>1</IsMainModel>
  4715. <KeepParameterValues>False</KeepParameterValues>
  4716. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  4717. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  4718. </Description>
  4719. </Information>';
  4720. type R
  4721. ports
  4722. power in p;
  4723. end;
  4724. icon bg bottom
  4725. figures
  4726. text 'R' 312 152 color 0 18 bold;
  4727. end;
  4728. implementation eq
  4729. parameters
  4730. real r = 0.001;
  4731. equations
  4732. p.e = r * p.f;
  4733. implementation_end;
  4734. R4 239.8 288.2
  4735. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4736. <LibraryPath>Bond Graph\2D\R-2.emx</LibraryPath>
  4737. <TimeStamp>2007-9-25 12:6:54</TimeStamp>
  4738. </Description>';
  4739. type 'R-2'
  4740. ports
  4741. power in p [2,1];
  4742. end;
  4743. icon bg bottom
  4744. figures
  4745. text 'R' 239.8 288.2 color 0 18 bold;
  4746. end;
  4747. implementation eq
  4748. parameters
  4749. real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
  4750. equations
  4751. p.e = r * p.f;
  4752. implementation_end;
  4753. R5 239.8 168.2
  4754. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  4755. <LibraryPath>Bond Graph\3D\R-3.emx</LibraryPath>
  4756. <TimeStamp>2007-9-25 12:11:54</TimeStamp>
  4757. </Description>';
  4758. type 'R-3'
  4759. ports
  4760. power in p [3,1];
  4761. end;
  4762. icon bg top
  4763. figures
  4764. text 'R' 239.8 168.2 color 0 18 bold;
  4765. end;
  4766. implementation eq
  4767. parameters
  4768. real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
  4769. equations
  4770. p.e = r * p.f;
  4771. implementation_end;
  4772. stepper_model 360 80
  4773. description '<Information><Description><Version>4.8</Version><IsMainModel>1</IsMainModel><LibraryPath>Motor\stepper_model.emx</LibraryPath><TimeStamp>2020-7-23 10:54:47</TimeStamp></Description><Attributes><GlobalRelations>parameters
  4774. real I_phase = 3.4 {mH};
  4775. real R_phase = 2.9 {ohm};
  4776. real u_max = 6 {V};
  4777. real RotorInertia = 5.6e-6 {kg.m2};
  4778. real StepperMass = 0.29 {kg};
  4779. real angle_step = 1.8 {deg};
  4780. real n_phase = 2 {none};
  4781. real fluxLinkage = 0.0022 {Wb};
  4782. real detentTorque = 0.01 {N.m};
  4783. variables
  4784. real omega;
  4785. real p; // rotor division
  4786. initialequations
  4787. p = 2 * pi / (2 * n_phase * angle_step);
  4788. omega = 200;</GlobalRelations></Attributes></Information>';
  4789. type Submodel
  4790. ports
  4791. signal in angle;
  4792. rotation out p;
  4793. end;
  4794. implementation bg
  4795. submodels
  4796. I 560 104
  4797. description '<Information>
  4798. <Description>
  4799. <Version>4.2</Version>
  4800. <IsMainModel>1</IsMainModel>
  4801. <KeepParameterValues>False</KeepParameterValues>
  4802. <LibraryPath>Bond Graph\I.emx</LibraryPath>
  4803. <TimeStamp>2011-11-29 15:55:55</TimeStamp>
  4804. </Description>
  4805. </Information>';
  4806. type I
  4807. ports
  4808. power in p;
  4809. signal out state;
  4810. restrictions
  4811. causality preferred in p;
  4812. end;
  4813. icon bg bottom
  4814. figures
  4815. text 'I' 560 104 color 0 18 bold;
  4816. end;
  4817. implementation eq
  4818. parameters
  4819. real global I_phase;
  4820. equations
  4821. state = int(p.e);
  4822. p.f = state / I_phase;
  4823. implementation_end;
  4824. I1 608 328
  4825. description '<Information>
  4826. <Description>
  4827. <Version>4.2</Version>
  4828. <IsMainModel>1</IsMainModel>
  4829. <KeepParameterValues>False</KeepParameterValues>
  4830. <LibraryPath>Bond Graph\I.emx</LibraryPath>
  4831. <TimeStamp>2011-11-29 15:55:55</TimeStamp>
  4832. </Description>
  4833. </Information>';
  4834. type I
  4835. ports
  4836. power in p;
  4837. signal out state;
  4838. restrictions
  4839. causality preferred in p;
  4840. end;
  4841. icon bg bottom
  4842. figures
  4843. text 'I' 608 328 color 0 18 bold;
  4844. end;
  4845. implementation eq
  4846. parameters
  4847. real global I_phase;
  4848. equations
  4849. state = int(p.e);
  4850. p.f = state / I_phase;
  4851. implementation_end;
  4852. I2 752 160
  4853. description '<Information>
  4854. <Description>
  4855. <Version>4.2</Version>
  4856. <IsMainModel>1</IsMainModel>
  4857. <KeepParameterValues>False</KeepParameterValues>
  4858. <LibraryPath>Bond Graph\I.emx</LibraryPath>
  4859. <TimeStamp>2011-11-29 15:55:55</TimeStamp>
  4860. </Description>
  4861. </Information>';
  4862. type I
  4863. ports
  4864. power in p;
  4865. signal out state;
  4866. restrictions
  4867. causality preferred in p;
  4868. end;
  4869. icon bg bottom
  4870. figures
  4871. text 'I' 752 160 color 0 18 bold;
  4872. end;
  4873. implementation eq
  4874. parameters
  4875. real i = 8e-5 {kg.m2};
  4876. real global RotorInertia;
  4877. equations
  4878. state = int(p.e);
  4879. p.f = state / (RotorInertia);
  4880. implementation_end;
  4881. MGY_a 656 160
  4882. description '<Information>
  4883. <Description>
  4884. <Version>4.2</Version>
  4885. <IsMainModel>1</IsMainModel>
  4886. <KeepParameterValues>False</KeepParameterValues>
  4887. <LibraryPath>Bond Graph\MGY.emx</LibraryPath>
  4888. <TimeStamp>2011-11-29 16:03:53</TimeStamp>
  4889. </Description>
  4890. </Information>';
  4891. type MGY
  4892. ports
  4893. power in p1;
  4894. power out p2;
  4895. signal in r;
  4896. restrictions
  4897. causality constraint equal p1 p2;
  4898. end;
  4899. icon bg bottom
  4900. figures
  4901. text 'MGY' 656 160 color 0 18 bold;
  4902. end;
  4903. implementation eq
  4904. equations
  4905. p1.e = r * p2.f;
  4906. p2.e = r * p1.f;
  4907. implementation_end;
  4908. MGY_b 656 272
  4909. description '<Information>
  4910. <Description>
  4911. <Version>4.2</Version>
  4912. <IsMainModel>1</IsMainModel>
  4913. <KeepParameterValues>False</KeepParameterValues>
  4914. <LibraryPath>Bond Graph\MGY.emx</LibraryPath>
  4915. <TimeStamp>2011-11-29 16:03:53</TimeStamp>
  4916. </Description>
  4917. </Information>';
  4918. type MGY
  4919. ports
  4920. power in p1;
  4921. power out p2;
  4922. signal in r;
  4923. restrictions
  4924. causality constraint equal p1 p2;
  4925. end;
  4926. icon bg bottom
  4927. figures
  4928. text 'MGY' 656 272 color 0 18 bold;
  4929. end;
  4930. implementation eq
  4931. equations
  4932. p1.e = r * p2.f;
  4933. p2.e = r * p1.f;
  4934. implementation_end;
  4935. MSe_a 512 160
  4936. description '<Information>
  4937. <Description>
  4938. <Version>4.2</Version>
  4939. <IsMainModel>1</IsMainModel>
  4940. <KeepParameterValues>False</KeepParameterValues>
  4941. <LibraryPath>Bond Graph\MSe.emx</LibraryPath>
  4942. <TimeStamp>2011-11-29 16:12:33</TimeStamp>
  4943. </Description>
  4944. </Information>';
  4945. type MSe
  4946. ports
  4947. electric out p;
  4948. signal in effort;
  4949. restrictions
  4950. causality fixed out p;
  4951. end;
  4952. icon bg bottom
  4953. figures
  4954. text 'MSe' 512 160 color 0 18 bold;
  4955. end;
  4956. implementation eq
  4957. variables
  4958. real flow;
  4959. equations
  4960. p.e = effort;
  4961. flow = p.f;
  4962. implementation_end;
  4963. MSe_b 512 272
  4964. description '<Information>
  4965. <Description>
  4966. <Version>4.2</Version>
  4967. <IsMainModel>1</IsMainModel>
  4968. <KeepParameterValues>False</KeepParameterValues>
  4969. <LibraryPath>Bond Graph\MSe.emx</LibraryPath>
  4970. <TimeStamp>2011-11-29 16:12:33</TimeStamp>
  4971. </Description>
  4972. </Information>';
  4973. type MSe
  4974. ports
  4975. electric out p;
  4976. signal in effort;
  4977. restrictions
  4978. causality fixed out p;
  4979. end;
  4980. icon bg bottom
  4981. figures
  4982. text 'MSe' 512 272 color 0 18 bold;
  4983. end;
  4984. implementation eq
  4985. variables
  4986. real flow;
  4987. equations
  4988. p.e = effort;
  4989. flow = p.f;
  4990. implementation_end;
  4991. plug angle 200 216;
  4992. plug p 1472 216;
  4993. OneJunction1 840 216
  4994. description '<Information>
  4995. <Description>
  4996. <Version>4.2</Version>
  4997. <IsMainModel>1</IsMainModel>
  4998. <KeepParameterValues>False</KeepParameterValues>
  4999. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5000. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5001. </Description>
  5002. </Information>';
  5003. knot OneJunction
  5004. ports
  5005. rotation knot duplicatable none p [1];
  5006. signal knot out flow [1];
  5007. restrictions
  5008. causality constraint one_out p;
  5009. end;
  5010. icon bg
  5011. figures
  5012. text '1' 840 216 color 0 18 bold;
  5013. end;
  5014. implementation eq
  5015. equations
  5016. sum (direct (p.e)) = 0;
  5017. equal (collect (p.f));
  5018. flow = first (p.f);
  5019. implementation_end;
  5020. OneJunction2 584 160
  5021. description '<Information>
  5022. <Description>
  5023. <Version>4.2</Version>
  5024. <IsMainModel>1</IsMainModel>
  5025. <KeepParameterValues>False</KeepParameterValues>
  5026. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5027. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5028. </Description>
  5029. </Information>';
  5030. knot OneJunction
  5031. ports
  5032. electric knot duplicatable none p [1];
  5033. signal knot out flow [1];
  5034. restrictions
  5035. causality constraint one_out p;
  5036. end;
  5037. icon bg
  5038. figures
  5039. text '1' 584 160 color 0 18 bold;
  5040. end;
  5041. implementation eq
  5042. equations
  5043. sum (direct (p.e)) = 0;
  5044. equal (collect (p.f));
  5045. flow = first (p.f);
  5046. implementation_end;
  5047. OneJunction3 584 272
  5048. description '<Information>
  5049. <Description>
  5050. <Version>4.2</Version>
  5051. <IsMainModel>1</IsMainModel>
  5052. <KeepParameterValues>False</KeepParameterValues>
  5053. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5054. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5055. </Description>
  5056. </Information>';
  5057. knot OneJunction
  5058. ports
  5059. electric knot duplicatable none p [1];
  5060. signal knot out flow [1];
  5061. restrictions
  5062. causality constraint one_out p;
  5063. end;
  5064. icon bg
  5065. figures
  5066. text '1' 584 272 color 0 18 bold;
  5067. end;
  5068. implementation eq
  5069. equations
  5070. sum (direct (p.e)) = 0;
  5071. equal (collect (p.f));
  5072. flow = first (p.f);
  5073. implementation_end;
  5074. OneJunction4 752 216
  5075. description '<Information>
  5076. <Description>
  5077. <Version>4.2</Version>
  5078. <IsMainModel>1</IsMainModel>
  5079. <KeepParameterValues>False</KeepParameterValues>
  5080. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5081. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5082. </Description>
  5083. </Information>';
  5084. knot OneJunction
  5085. ports
  5086. rotation knot duplicatable none p [1];
  5087. signal knot out flow [1];
  5088. restrictions
  5089. causality constraint one_out p;
  5090. end;
  5091. icon bg
  5092. figures
  5093. text '1' 752 216 color 0 18 bold;
  5094. end;
  5095. implementation eq
  5096. equations
  5097. sum (direct (p.e)) = 0;
  5098. equal (collect (p.f));
  5099. flow = first (p.f);
  5100. implementation_end;
  5101. phase_control 512 216
  5102. description '<Description><Version>4.0</Version>
  5103. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  5104. <IsMainModel>1</IsMainModel>
  5105. <KeepParameterValues>False</KeepParameterValues>
  5106. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  5107. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  5108. </Description>';
  5109. type Submodel
  5110. ports
  5111. signal in angle;
  5112. signal out a;
  5113. signal out b;
  5114. end;
  5115. icon bg
  5116. figures
  5117. rectangle 472 200 552 232 color 0 fill 15132390;
  5118. text 'name' 512 216 color 0 'Clear Sans' 16;
  5119. end;
  5120. implementation eq
  5121. parameters
  5122. real global u_max {V};
  5123. variables
  5124. real global p;
  5125. boolean hidden eventa, eventb;
  5126. equations
  5127. a = u_max * (cos (p*angle));
  5128. eventa = event(a);
  5129. b = u_max * -(sin (p*angle));
  5130. eventb = event(b);
  5131. implementation_end;
  5132. R 608 104
  5133. description '<Information>
  5134. <Description>
  5135. <Version>4.2</Version>
  5136. <IsMainModel>1</IsMainModel>
  5137. <KeepParameterValues>False</KeepParameterValues>
  5138. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  5139. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  5140. </Description>
  5141. </Information>';
  5142. type R
  5143. ports
  5144. power in p;
  5145. end;
  5146. icon bg bottom
  5147. figures
  5148. text 'R' 608 104 color 0 18 bold;
  5149. end;
  5150. implementation eq
  5151. parameters
  5152. real global R_phase;
  5153. equations
  5154. p.e = R_phase * p.f;
  5155. implementation_end;
  5156. R1 560 328
  5157. description '<Information>
  5158. <Description>
  5159. <Version>4.2</Version>
  5160. <IsMainModel>1</IsMainModel>
  5161. <KeepParameterValues>False</KeepParameterValues>
  5162. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  5163. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  5164. </Description>
  5165. </Information>';
  5166. type R
  5167. ports
  5168. power in p;
  5169. end;
  5170. icon bg bottom
  5171. figures
  5172. text 'R' 560 328 color 0 18 bold;
  5173. end;
  5174. implementation eq
  5175. parameters
  5176. real global R_phase;
  5177. equations
  5178. p.e = R_phase * p.f;
  5179. implementation_end;
  5180. R2 824 264
  5181. description '<Information>
  5182. <Description>
  5183. <Version>4.2</Version>
  5184. <IsMainModel>1</IsMainModel>
  5185. <KeepParameterValues>False</KeepParameterValues>
  5186. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  5187. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  5188. </Description>
  5189. </Information>';
  5190. type R
  5191. ports
  5192. power in p;
  5193. end;
  5194. icon bg bottom
  5195. figures
  5196. text 'R' 824 264 color 0 18 bold;
  5197. end;
  5198. implementation eq
  5199. parameters
  5200. real r = 1.0e-3;
  5201. equations
  5202. p.e = r * p.f;
  5203. implementation_end;
  5204. RotorAngle 656 216
  5205. description '<Description><Version>4.0</Version>
  5206. <LibraryPath>Template\Submodel-Equation.emx</LibraryPath>
  5207. <IsMainModel>1</IsMainModel>
  5208. <KeepParameterValues>False</KeepParameterValues>
  5209. <TimeStamp>2007-11-1 22:32:1</TimeStamp>
  5210. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  5211. </Description>';
  5212. type Submodel
  5213. ports
  5214. signal out output_b;
  5215. signal out output_a;
  5216. signal in omega {rad/s} ;
  5217. signal out output_d;
  5218. end;
  5219. icon bg
  5220. figures
  5221. rectangle 616 200 696 232 color 0 fill 15132390;
  5222. text 'name' 656 216 color 0 'Clear Sans' 16;
  5223. end;
  5224. implementation eq
  5225. parameters
  5226. real global fluxLinkage;
  5227. real global detentTorque;
  5228. variables
  5229. real global p;
  5230. real angle {rad};
  5231. equations
  5232. angle = int(omega);
  5233. output_a = -p * fluxLinkage * sin(p * angle);
  5234. output_b = p * fluxLinkage * sin(p * angle - pi / 2);
  5235. output_d = detentTorque * sin(2 * p * angle);
  5236. implementation_end;
  5237. Se 752 272
  5238. description '<Information>
  5239. <Description>
  5240. <Version>4.2</Version>
  5241. <IsMainModel>1</IsMainModel>
  5242. <KeepParameterValues>False</KeepParameterValues>
  5243. <LibraryPath>Bond Graph\MSe.emx</LibraryPath>
  5244. <TimeStamp>2011-11-29 16:12:33</TimeStamp>
  5245. </Description>
  5246. </Information>';
  5247. type MSe
  5248. ports
  5249. power out p;
  5250. signal in effort;
  5251. restrictions
  5252. causality fixed out p;
  5253. end;
  5254. icon bg bottom
  5255. figures
  5256. text 'MSe' 752 272 color 0 18 bold;
  5257. end;
  5258. implementation eq
  5259. variables
  5260. real flow;
  5261. equations
  5262. p.e = effort;
  5263. flow = p.f;
  5264. implementation_end;
  5265. end;
  5266. connections
  5267. angle -> phase_control\angle;
  5268. I2\p <= OneJunction4\p;
  5269. MGY_a\p2 => OneJunction4\p;
  5270. MGY_b\p2 => OneJunction4\p;
  5271. MSe_b\p => OneJunction3\p;
  5272. OneJunction1\p => p;
  5273. OneJunction2\p <= MSe_a\p;
  5274. OneJunction2\p => I\p;
  5275. OneJunction2\p => MGY_a\p1;
  5276. OneJunction2\p => R\p;
  5277. OneJunction3\p => I1\p;
  5278. OneJunction3\p => MGY_b\p1;
  5279. OneJunction3\p => R1\p;
  5280. OneJunction4\flow -> RotorAngle\omega;
  5281. OneJunction4\p => OneJunction1\p;
  5282. OneJunction4\p => R2\p;
  5283. phase_control\a -> MSe_a\effort;
  5284. phase_control\b -> MSe_b\effort;
  5285. RotorAngle\output_a -> MGY_a\r;
  5286. RotorAngle\output_b -> MGY_b\r;
  5287. RotorAngle\output_d -> Se\effort;
  5288. Se\p => OneJunction4\p;
  5289. end;
  5290. implementation_end;
  5291. ZeroJunction1 360 200
  5292. description '<Information>
  5293. <Description>
  5294. <Version>4.2</Version>
  5295. <IsMainModel>1</IsMainModel>
  5296. <KeepParameterValues>False</KeepParameterValues>
  5297. <LibraryPath>Bond Graph\ZeroJunction.emx</LibraryPath>
  5298. <TimeStamp>2011-11-29 16:45:16</TimeStamp>
  5299. </Description>
  5300. </Information>';
  5301. knot ZeroJunction
  5302. ports
  5303. rotation knot duplicatable none p [1];
  5304. signal knot out effort [1];
  5305. restrictions
  5306. causality constraint one_in p;
  5307. end;
  5308. icon bg
  5309. figures
  5310. text '0' 360 200 color 0 18 bold;
  5311. end;
  5312. implementation eq
  5313. equations
  5314. sum (direct (p.f)) = 0;
  5315. equal (collect (p.e));
  5316. effort = first (p.e);
  5317. implementation_end;
  5318. end;
  5319. connections
  5320. angle -> stepper_model\angle;
  5321. C\p <= OneJunction8\p;
  5322. C1\p <= OneJunction7\p;
  5323. OneJunction5\p => C4\p;
  5324. OneJunction5\p => PowerMux\input_rot2;
  5325. OneJunction5\p => R4\p;
  5326. OneJunction7\p => PowerMux\input_pos3;
  5327. OneJunction7\p => R5\p;
  5328. OneJunction8\p => R\p;
  5329. PowerMux\input <= ZeroJunction1\p;
  5330. PowerMux\output => output;
  5331. ZeroJunction1\p <= OneJunction8\p;
  5332. ZeroJunction1\p <= stepper_model\p;
  5333. end;
  5334. implementation_end;
  5335. Joint_dynE 536 216
  5336. description '<Description>
  5337. <Version>4.8</Version>
  5338. <IsMainModel>1</IsMainModel>
  5339. </Description>';
  5340. type Submodel
  5341. ports
  5342. power out output [6,1];
  5343. end;
  5344. implementation bg
  5345. submodels
  5346. C1 191.8 216.2
  5347. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  5348. <LibraryPath>Bond Graph\3D\C-3.emx</LibraryPath>
  5349. <TimeStamp>2007-9-25 12:12:8</TimeStamp>
  5350. </Description>';
  5351. type 'C-3'
  5352. ports
  5353. power in p [3,1];
  5354. signal out state [3,1];
  5355. restrictions
  5356. causality preferred out p;
  5357. end;
  5358. icon bg top
  5359. figures
  5360. text 'C' 191.8 216.2 color 0 18 bold;
  5361. end;
  5362. implementation eq
  5363. parameters
  5364. real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
  5365. equations
  5366. state = int(p.f);
  5367. p.e = inverse(c) *state;
  5368. implementation_end;
  5369. C4 191.8 232.2
  5370. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  5371. <LibraryPath>Bond Graph\2D\C-2.emx</LibraryPath>
  5372. <TimeStamp>2007-9-25 12:7:27</TimeStamp>
  5373. </Description>';
  5374. type 'C-2'
  5375. ports
  5376. power in p [2,1];
  5377. signal out state [2,1];
  5378. restrictions
  5379. causality preferred out p;
  5380. end;
  5381. icon bg bottom
  5382. figures
  5383. text 'C' 191.8 232.2 color 0 18 bold;
  5384. end;
  5385. implementation eq
  5386. parameters
  5387. real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
  5388. equations
  5389. state = int(p.f);
  5390. p.e = inverse(c) *state;
  5391. implementation_end;
  5392. plug output 396 216;
  5393. OneJunction5 239.8 232.2
  5394. description '<Information>
  5395. <Description>
  5396. <Version>4.2</Version>
  5397. <IsMainModel>1</IsMainModel>
  5398. <KeepParameterValues>False</KeepParameterValues>
  5399. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5400. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5401. </Description>
  5402. </Information>';
  5403. knot OneJunction
  5404. ports
  5405. power knot duplicatable none p [2,1];
  5406. signal knot out flow [2,1];
  5407. restrictions
  5408. causality constraint one_out p;
  5409. end;
  5410. icon bg
  5411. figures
  5412. text '1' 239.8 232.2 color 0 18 bold;
  5413. end;
  5414. implementation eq
  5415. equations
  5416. sum (direct (p.e)) = 0;
  5417. equal (collect (p.f));
  5418. flow = first (p.f);
  5419. implementation_end;
  5420. OneJunction7 239.8 216.2
  5421. description '<Information>
  5422. <Description>
  5423. <Version>4.2</Version>
  5424. <IsMainModel>1</IsMainModel>
  5425. <KeepParameterValues>False</KeepParameterValues>
  5426. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5427. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5428. </Description>
  5429. </Information>';
  5430. knot OneJunction
  5431. ports
  5432. power knot duplicatable none p [3,1];
  5433. signal knot out flow [3,1];
  5434. restrictions
  5435. causality constraint one_out p;
  5436. end;
  5437. icon bg
  5438. figures
  5439. text '1' 239.8 216.2 color 0 18 bold;
  5440. end;
  5441. implementation eq
  5442. equations
  5443. sum (direct (p.e)) = 0;
  5444. equal (collect (p.f));
  5445. flow = first (p.f);
  5446. implementation_end;
  5447. OneJunction8 288 200
  5448. description '<Information>
  5449. <Description>
  5450. <Version>4.2</Version>
  5451. <IsMainModel>1</IsMainModel>
  5452. <KeepParameterValues>False</KeepParameterValues>
  5453. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5454. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5455. </Description>
  5456. </Information>';
  5457. knot OneJunction
  5458. ports
  5459. power knot duplicatable none p [1];
  5460. signal knot out flow [1];
  5461. restrictions
  5462. causality constraint one_out p;
  5463. end;
  5464. icon bg
  5465. figures
  5466. text '1' 288 200 color 0 18 bold;
  5467. end;
  5468. implementation eq
  5469. equations
  5470. sum (direct (p.e)) = 0;
  5471. equal (collect (p.f));
  5472. flow = first (p.f);
  5473. implementation_end;
  5474. PowerMux 330 216
  5475. specifications active 'rot_x'
  5476. specification 'rot_x'
  5477. description '<Information>
  5478. <Description>
  5479. <Version>4.8</Version>
  5480. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  5481. <TimeStamp>2020-7-20 14:35:23</TimeStamp>
  5482. <IsMainModel>1</IsMainModel>
  5483. <KeepParameterValues>False</KeepParameterValues>
  5484. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  5485. </Description>
  5486. </Information>';
  5487. type 'PowerMux-Rotation'
  5488. ports
  5489. power in input;
  5490. power out output [6,1];
  5491. power in input_rot2 [2,1];
  5492. power in input_pos3 [3,1];
  5493. restrictions
  5494. causality constraint not_equal input output;
  5495. causality constraint not_equal input_rot2 output;
  5496. causality constraint not_equal input_pos3 output;
  5497. end;
  5498. icon bg bottom
  5499. figures
  5500. line 328 192 328 240 color 0 width 2;
  5501. rectangle 324 192 336 240 color -1;
  5502. text '1' 333 210 color 8421504 8;
  5503. terminals
  5504. input 328 200 fixed;
  5505. output 328 216 fixed;
  5506. input_rot2 328 232 fixed;
  5507. input_pos3 328 216 fixed;
  5508. end;
  5509. implementation eq
  5510. equations
  5511. output.e[1] = input.e;
  5512. output.e[2:3] = input_rot2.e;
  5513. output.e[4:6] = input_pos3.e;
  5514. output.f[1] = input.f;
  5515. output.f[2:3] = input_rot2.f;
  5516. output.f[4:6] = input_pos3.f;implementation_end;
  5517. specification_end;
  5518. specification 'rot_y'
  5519. description '<Description>
  5520. <Version>4.1</Version>
  5521. <LibraryPath>Bond Graph\PowerMux.emx</LibraryPath>
  5522. <TimeStamp>2011-3-4 15:12:50</TimeStamp>
  5523. <IsMainModel>1</IsMainModel>
  5524. <KeepParameterValues>False</KeepParameterValues>
  5525. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  5526. </Description>';
  5527. type PowerMux
  5528. ports
  5529. power in input;
  5530. power out output [6,1];
  5531. power in input_rot2 [2,1];
  5532. power in input_pos3 [3,1];
  5533. restrictions
  5534. causality constraint not_equal input output;
  5535. causality constraint not_equal input_rot2 output;
  5536. causality constraint not_equal input_pos3 output;
  5537. end;
  5538. icon bg bottom
  5539. figures
  5540. line 242 274 290 274 color 0 width 2;
  5541. rectangle 242 266 290 278 color -1;
  5542. text '1' 260 269 color 8421504 8;
  5543. terminals
  5544. input 250 274 fixed;
  5545. output 266 274 fixed;
  5546. input_rot2 282 274 fixed;
  5547. input_pos3 266 274 fixed;
  5548. end;
  5549. implementation eq
  5550. equations
  5551. output.e[1] = input_rot2.e[1];
  5552. output.e[2] = input.e;
  5553. output.e[3] = input_rot2.e[2];
  5554. output.e[4:6] = input_pos3.e;
  5555. output.f[1] = input_rot2.f[1];
  5556. output.f[2] = input.f;
  5557. output.f[3] = input_rot2.f[2];
  5558. output.f[4:6] = input_pos3.f;implementation_end;
  5559. specification_end;
  5560. specification 'rot_z'
  5561. description '<Information>
  5562. <Description>
  5563. <Version>4.8</Version>
  5564. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  5565. <TimeStamp>2020-7-21 12:05:13</TimeStamp>
  5566. <IsMainModel>1</IsMainModel>
  5567. <KeepParameterValues>False</KeepParameterValues>
  5568. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  5569. </Description>
  5570. </Information>';
  5571. type PowerMux
  5572. ports
  5573. power in input;
  5574. power out output [6,1];
  5575. power in input_rot2 [2,1];
  5576. power in input_pos3 [3,1];
  5577. restrictions
  5578. causality constraint not_equal input output;
  5579. causality constraint not_equal input_rot2 output;
  5580. causality constraint not_equal input_pos3 output;
  5581. end;
  5582. icon bg bottom
  5583. figures
  5584. line 242 274 290 274 color 0 width 2;
  5585. rectangle 242 266 290 278 color -1;
  5586. text '1' 260 269 color 8421504 8;
  5587. terminals
  5588. input 250 274 fixed;
  5589. output 266 274 fixed;
  5590. input_rot2 282 274 fixed;
  5591. input_pos3 266 274 fixed;
  5592. end;
  5593. implementation eq
  5594. equations
  5595. output.e[3] = input.e;
  5596. output.e[1:2] = input_rot2.e;
  5597. output.e[4:6] = input_pos3.e;
  5598. output.f[3] = input.f;
  5599. output.f[1:2] = input_rot2.f;
  5600. output.f[4:6] = input_pos3.f;implementation_end;
  5601. specification_end;
  5602. end;
  5603. R 288 152
  5604. description '<Information>
  5605. <Description>
  5606. <Version>4.2</Version>
  5607. <IsMainModel>1</IsMainModel>
  5608. <KeepParameterValues>False</KeepParameterValues>
  5609. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  5610. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  5611. </Description>
  5612. </Information>';
  5613. type R
  5614. ports
  5615. power in p;
  5616. end;
  5617. icon bg top
  5618. figures
  5619. text 'R' 288 152 color 0 18 bold;
  5620. end;
  5621. implementation eq
  5622. parameters
  5623. real r = 0.01;
  5624. equations
  5625. p.e = r * p.f;
  5626. implementation_end;
  5627. R4 239.8 288.2
  5628. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  5629. <LibraryPath>Bond Graph\2D\R-2.emx</LibraryPath>
  5630. <TimeStamp>2007-9-25 12:6:54</TimeStamp>
  5631. </Description>';
  5632. type 'R-2'
  5633. ports
  5634. power in p [2,1];
  5635. end;
  5636. icon bg bottom
  5637. figures
  5638. text 'R' 239.8 288.2 color 0 18 bold;
  5639. end;
  5640. implementation eq
  5641. parameters
  5642. real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
  5643. equations
  5644. p.e = r * p.f;
  5645. implementation_end;
  5646. R5 239.8 168.2
  5647. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  5648. <LibraryPath>Bond Graph\3D\R-3.emx</LibraryPath>
  5649. <TimeStamp>2007-9-25 12:11:54</TimeStamp>
  5650. </Description>';
  5651. type 'R-3'
  5652. ports
  5653. power in p [3,1];
  5654. end;
  5655. icon bg top
  5656. figures
  5657. text 'R' 239.8 168.2 color 0 18 bold;
  5658. end;
  5659. implementation eq
  5660. parameters
  5661. real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
  5662. equations
  5663. p.e = r * p.f;
  5664. implementation_end;
  5665. end;
  5666. connections
  5667. C1\p <= OneJunction7\p;
  5668. OneJunction5\p => C4\p;
  5669. OneJunction5\p => PowerMux\input_rot2;
  5670. OneJunction5\p => R4\p;
  5671. OneJunction7\p => PowerMux\input_pos3;
  5672. OneJunction7\p => R5\p;
  5673. OneJunction8\p => PowerMux\input;
  5674. PowerMux\output => output;
  5675. R\p <= OneJunction8\p;
  5676. end;
  5677. implementation_end;
  5678. Joint_dynF 792 56
  5679. description '<Description>
  5680. <Version>4.8</Version>
  5681. <IsMainModel>1</IsMainModel>
  5682. </Description>';
  5683. type Submodel
  5684. ports
  5685. power out output [6,1];
  5686. end;
  5687. implementation bg
  5688. submodels
  5689. C 264 200
  5690. description '<Information>
  5691. <Description>
  5692. <Version>4.2</Version>
  5693. <IsMainModel>1</IsMainModel>
  5694. <KeepParameterValues>False</KeepParameterValues>
  5695. <LibraryPath>Bond Graph\C.emx</LibraryPath>
  5696. <TimeStamp>2011-11-29 15:58:35</TimeStamp>
  5697. </Description>
  5698. </Information>';
  5699. type C
  5700. ports
  5701. power in p;
  5702. signal out state;
  5703. restrictions
  5704. causality preferred out p;
  5705. end;
  5706. icon bg bottom
  5707. figures
  5708. text 'C' 264 200 color 0 18 bold;
  5709. end;
  5710. implementation eq
  5711. parameters
  5712. real c = 0.001;
  5713. equations
  5714. state = int(p.f);
  5715. p.e = state / c;
  5716. implementation_end;
  5717. C1 191.8 216.2
  5718. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  5719. <LibraryPath>Bond Graph\3D\C-3.emx</LibraryPath>
  5720. <TimeStamp>2007-9-25 12:12:8</TimeStamp>
  5721. </Description>';
  5722. type 'C-3'
  5723. ports
  5724. power in p [3,1];
  5725. signal out state [3,1];
  5726. restrictions
  5727. causality preferred out p;
  5728. end;
  5729. icon bg top
  5730. figures
  5731. text 'C' 191.8 216.2 color 0 18 bold;
  5732. end;
  5733. implementation eq
  5734. parameters
  5735. real c[3,3] = [0.1, 0.0, 0.0; 0.0, 0.1, 0.0; 0.0, 0.0, 0.1] {mN/m};
  5736. equations
  5737. state = int(p.f);
  5738. p.e = inverse(c) *state;
  5739. implementation_end;
  5740. C4 191.8 232.2
  5741. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  5742. <LibraryPath>Bond Graph\2D\C-2.emx</LibraryPath>
  5743. <TimeStamp>2007-9-25 12:7:27</TimeStamp>
  5744. </Description>';
  5745. type 'C-2'
  5746. ports
  5747. power in p [2,1];
  5748. signal out state [2,1];
  5749. restrictions
  5750. causality preferred out p;
  5751. end;
  5752. icon bg bottom
  5753. figures
  5754. text 'C' 191.8 232.2 color 0 18 bold;
  5755. end;
  5756. implementation eq
  5757. parameters
  5758. real c[2,2] = [0.1, 0.0; 0.0, 0.1] {mN.m/rad};
  5759. equations
  5760. state = int(p.f);
  5761. p.e = inverse(c) *state;
  5762. implementation_end;
  5763. plug output 396 216;
  5764. OneJunction5 239.8 232.2
  5765. description '<Information>
  5766. <Description>
  5767. <Version>4.2</Version>
  5768. <IsMainModel>1</IsMainModel>
  5769. <KeepParameterValues>False</KeepParameterValues>
  5770. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5771. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5772. </Description>
  5773. </Information>';
  5774. knot OneJunction
  5775. ports
  5776. power knot duplicatable none p [2,1];
  5777. signal knot out flow [2,1];
  5778. restrictions
  5779. causality constraint one_out p;
  5780. end;
  5781. icon bg
  5782. figures
  5783. text '1' 239.8 232.2 color 0 18 bold;
  5784. end;
  5785. implementation eq
  5786. equations
  5787. sum (direct (p.e)) = 0;
  5788. equal (collect (p.f));
  5789. flow = first (p.f);
  5790. implementation_end;
  5791. OneJunction7 239.8 216.2
  5792. description '<Information>
  5793. <Description>
  5794. <Version>4.2</Version>
  5795. <IsMainModel>1</IsMainModel>
  5796. <KeepParameterValues>False</KeepParameterValues>
  5797. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5798. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5799. </Description>
  5800. </Information>';
  5801. knot OneJunction
  5802. ports
  5803. power knot duplicatable none p [3,1];
  5804. signal knot out flow [3,1];
  5805. restrictions
  5806. causality constraint one_out p;
  5807. end;
  5808. icon bg
  5809. figures
  5810. text '1' 239.8 216.2 color 0 18 bold;
  5811. end;
  5812. implementation eq
  5813. equations
  5814. sum (direct (p.e)) = 0;
  5815. equal (collect (p.f));
  5816. flow = first (p.f);
  5817. implementation_end;
  5818. OneJunction8 296 200
  5819. description '<Information>
  5820. <Description>
  5821. <Version>4.2</Version>
  5822. <IsMainModel>1</IsMainModel>
  5823. <KeepParameterValues>False</KeepParameterValues>
  5824. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  5825. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  5826. </Description>
  5827. </Information>';
  5828. knot OneJunction
  5829. ports
  5830. power knot duplicatable none p [1];
  5831. signal knot out flow [1];
  5832. restrictions
  5833. causality constraint one_out p;
  5834. end;
  5835. icon bg
  5836. figures
  5837. text '1' 296 200 color 0 18 bold;
  5838. end;
  5839. implementation eq
  5840. equations
  5841. sum (direct (p.e)) = 0;
  5842. equal (collect (p.f));
  5843. flow = first (p.f);
  5844. implementation_end;
  5845. PowerMux 330 216
  5846. specifications active 'rot_z'
  5847. specification 'rot_x'
  5848. description '<Information>
  5849. <Description>
  5850. <Version>4.8</Version>
  5851. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  5852. <TimeStamp>2020-7-20 14:35:23</TimeStamp>
  5853. <IsMainModel>1</IsMainModel>
  5854. <KeepParameterValues>False</KeepParameterValues>
  5855. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  5856. </Description>
  5857. </Information>';
  5858. type 'PowerMux-Rotation'
  5859. ports
  5860. power in input;
  5861. power out output [6,1];
  5862. power in input_rot2 [2,1];
  5863. power in input_pos3 [3,1];
  5864. restrictions
  5865. causality constraint not_equal input output;
  5866. causality constraint not_equal input_rot2 output;
  5867. causality constraint not_equal input_pos3 output;
  5868. end;
  5869. icon bg bottom
  5870. figures
  5871. line 328 192 328 240 color 0 width 2;
  5872. rectangle 324 192 336 240 color -1;
  5873. text '1' 333 210 color 8421504 8;
  5874. terminals
  5875. input 328 200 fixed;
  5876. output 328 216 fixed;
  5877. input_rot2 328 232 fixed;
  5878. input_pos3 328 216 fixed;
  5879. end;
  5880. implementation eq
  5881. equations
  5882. output.e[1] = input.e;
  5883. output.e[2:3] = input_rot2.e;
  5884. output.e[4:6] = input_pos3.e;
  5885. output.f[1] = input.f;
  5886. output.f[2:3] = input_rot2.f;
  5887. output.f[4:6] = input_pos3.f;implementation_end;
  5888. specification_end;
  5889. specification 'rot_y'
  5890. description '<Description>
  5891. <Version>4.1</Version>
  5892. <LibraryPath>Bond Graph\PowerMux.emx</LibraryPath>
  5893. <TimeStamp>2011-3-4 15:12:50</TimeStamp>
  5894. <IsMainModel>1</IsMainModel>
  5895. <KeepParameterValues>False</KeepParameterValues>
  5896. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  5897. </Description>';
  5898. type PowerMux
  5899. ports
  5900. power in input;
  5901. power out output [6,1];
  5902. power in input_rot2 [2,1];
  5903. power in input_pos3 [3,1];
  5904. restrictions
  5905. causality constraint not_equal input output;
  5906. causality constraint not_equal input_rot2 output;
  5907. causality constraint not_equal input_pos3 output;
  5908. end;
  5909. icon bg bottom
  5910. figures
  5911. line 242 274 290 274 color 0 width 2;
  5912. rectangle 242 266 290 278 color -1;
  5913. text '1' 260 269 color 8421504 8;
  5914. terminals
  5915. input 250 274 fixed;
  5916. output 266 274 fixed;
  5917. input_rot2 282 274 fixed;
  5918. input_pos3 266 274 fixed;
  5919. end;
  5920. implementation eq
  5921. equations
  5922. output.e[1] = input_rot2.e[1];
  5923. output.e[2] = input.e;
  5924. output.e[3] = input_rot2.e[2];
  5925. output.e[4:6] = input_pos3.e;
  5926. output.f[1] = input_rot2.f[1];
  5927. output.f[2] = input.f;
  5928. output.f[3] = input_rot2.f[2];
  5929. output.f[4:6] = input_pos3.f;implementation_end;
  5930. specification_end;
  5931. specification 'rot_z'
  5932. description '<Information>
  5933. <Description>
  5934. <Version>4.8</Version>
  5935. <LibraryPath>Bond Graph\MR\PowerMux-Rotation.emx</LibraryPath>
  5936. <TimeStamp>2020-7-21 12:05:13</TimeStamp>
  5937. <IsMainModel>1</IsMainModel>
  5938. <KeepParameterValues>False</KeepParameterValues>
  5939. <AllowLibraryUpdate>True</AllowLibraryUpdate>
  5940. </Description>
  5941. </Information>';
  5942. type PowerMux
  5943. ports
  5944. power in input;
  5945. power out output [6,1];
  5946. power in input_rot2 [2,1];
  5947. power in input_pos3 [3,1];
  5948. restrictions
  5949. causality constraint not_equal input output;
  5950. causality constraint not_equal input_rot2 output;
  5951. causality constraint not_equal input_pos3 output;
  5952. end;
  5953. icon bg bottom
  5954. figures
  5955. line 328 192 328 240 color 0 width 2;
  5956. rectangle 324 192 336 240 color -1;
  5957. text '1' 333 210 color 8421504 8;
  5958. terminals
  5959. input 328 200 fixed;
  5960. output 328 216 fixed;
  5961. input_rot2 328 232 fixed;
  5962. input_pos3 328 216 fixed;
  5963. end;
  5964. implementation eq
  5965. equations
  5966. output.e[3] = input.e;
  5967. output.e[1:2] = input_rot2.e;
  5968. output.e[4:6] = input_pos3.e;
  5969. output.f[3] = input.f;
  5970. output.f[1:2] = input_rot2.f;
  5971. output.f[4:6] = input_pos3.f;implementation_end;
  5972. specification_end;
  5973. end;
  5974. R 296 152
  5975. description '<Information>
  5976. <Description>
  5977. <Version>4.2</Version>
  5978. <IsMainModel>1</IsMainModel>
  5979. <KeepParameterValues>False</KeepParameterValues>
  5980. <LibraryPath>Bond Graph\R.emx</LibraryPath>
  5981. <TimeStamp>2011-11-29 16:35:37</TimeStamp>
  5982. </Description>
  5983. </Information>';
  5984. type R
  5985. ports
  5986. power in p;
  5987. end;
  5988. icon bg top
  5989. figures
  5990. text 'R' 296 152 color 0 18 bold;
  5991. end;
  5992. implementation eq
  5993. parameters
  5994. real r = 1000;
  5995. equations
  5996. p.e = r * p.f;
  5997. implementation_end;
  5998. R4 239.8 288.2
  5999. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  6000. <LibraryPath>Bond Graph\2D\R-2.emx</LibraryPath>
  6001. <TimeStamp>2007-9-25 12:6:54</TimeStamp>
  6002. </Description>';
  6003. type 'R-2'
  6004. ports
  6005. power in p [2,1];
  6006. end;
  6007. icon bg bottom
  6008. figures
  6009. text 'R' 239.8 288.2 color 0 18 bold;
  6010. end;
  6011. implementation eq
  6012. parameters
  6013. real r[2,2] = [1.0, 0.0; 0.0, 1.0] {kN.m.s/rad};
  6014. equations
  6015. p.e = r * p.f;
  6016. implementation_end;
  6017. R5 239.8 168.2
  6018. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  6019. <LibraryPath>Bond Graph\3D\R-3.emx</LibraryPath>
  6020. <TimeStamp>2007-9-25 12:11:54</TimeStamp>
  6021. </Description>';
  6022. type 'R-3'
  6023. ports
  6024. power in p [3,1];
  6025. end;
  6026. icon bg top
  6027. figures
  6028. text 'R' 239.8 168.2 color 0 18 bold;
  6029. end;
  6030. implementation eq
  6031. parameters
  6032. real r[3,3] = [1.0, 0.0, 0.0; 0.0, 1.0, 0.0; 0.0, 0.0, 1.0] {kN.s/m};
  6033. equations
  6034. p.e = r * p.f;
  6035. implementation_end;
  6036. end;
  6037. connections
  6038. C\p <= OneJunction8\p;
  6039. C1\p <= OneJunction7\p;
  6040. OneJunction5\p => C4\p;
  6041. OneJunction5\p => PowerMux\input_rot2;
  6042. OneJunction5\p => R4\p;
  6043. OneJunction7\p => PowerMux\input_pos3;
  6044. OneJunction7\p => R5\p;
  6045. OneJunction8\p => PowerMux\input;
  6046. PowerMux\output => output;
  6047. R\p <= OneJunction8\p;
  6048. end;
  6049. implementation_end;
  6050. Link1 704 136
  6051. description '<Information>
  6052. <Description>
  6053. <Version>4.8</Version>
  6054. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6055. <IsMainModel>1</IsMainModel>
  6056. <KeepParameterValues>False</KeepParameterValues>
  6057. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6058. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6059. </Description>
  6060. </Information>';
  6061. type 'Submodel-Equation'
  6062. ports
  6063. signal in Hin [4,4];
  6064. signal out Hout [4,4];
  6065. power in Pin [6,1];
  6066. power out Pout [6,1];
  6067. restrictions
  6068. causality constraint not_equal Pin Pout;
  6069. end;
  6070. icon bg bottom
  6071. figures
  6072. rectangle 672 112 736 160 color 0 fill 8454041;
  6073. text 'Link' 704 136 color 0 'Clear Sans' 16;
  6074. terminals
  6075. Hin 672 152 fixed;
  6076. Hout 736 152 fixed;
  6077. Pin 736 120 fixed;
  6078. Pout 672 120 fixed;
  6079. end;
  6080. implementation eq
  6081. parameters
  6082. real offset[6]= [0;0;0;0;0.025;0]; //coordinates of joint_1
  6083. variables
  6084. real Hab[4,4];
  6085. real AdHab[6,6];
  6086. real R[3,3];
  6087. real omega[3];
  6088. initialequations
  6089. omega = offset[1:3];
  6090. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6091. Hab = homogeneous(R,offset[4:6]);
  6092. AdHab = Adjoint(Hab);
  6093. equations
  6094. Hout = Hin * Hab;
  6095. Pout.e = transpose(AdHab) * Pin.e;
  6096. Pin.f = AdHab * Pout.f;
  6097. implementation_end;
  6098. Link10 872 136
  6099. description '<Information>
  6100. <Description>
  6101. <Version>4.8</Version>
  6102. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6103. <IsMainModel>1</IsMainModel>
  6104. <KeepParameterValues>False</KeepParameterValues>
  6105. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6106. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6107. </Description>
  6108. </Information>';
  6109. type 'Submodel-Equation'
  6110. ports
  6111. signal in Hin [4,4];
  6112. signal out Hout [4,4];
  6113. power in Pin [6,1];
  6114. power out Pout [6,1];
  6115. restrictions
  6116. causality constraint not_equal Pin Pout;
  6117. end;
  6118. icon bg bottom
  6119. figures
  6120. rectangle 840 112 904 160 color 0 fill 8454041;
  6121. text 'Link' 872 136 color 0 'Clear Sans' 16;
  6122. terminals
  6123. Hin 840 152 fixed;
  6124. Hout 904 152 fixed;
  6125. Pin 904 120 fixed;
  6126. Pout 840 120 fixed;
  6127. end;
  6128. implementation eq
  6129. parameters
  6130. real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
  6131. variables
  6132. real Hab[4,4];
  6133. real AdHab[6,6];
  6134. real R[3,3];
  6135. real omega[3];
  6136. initialequations
  6137. omega = offset[1:3];
  6138. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6139. Hab = homogeneous(R,offset[4:6]);
  6140. AdHab = Adjoint(Hab);
  6141. equations
  6142. Hout = Hin * Hab;
  6143. Pout.e = transpose(AdHab) * Pin.e;
  6144. Pin.f = AdHab * Pout.f;
  6145. implementation_end;
  6146. Link2 544 136
  6147. description '<Information>
  6148. <Description>
  6149. <Version>4.8</Version>
  6150. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6151. <IsMainModel>1</IsMainModel>
  6152. <KeepParameterValues>False</KeepParameterValues>
  6153. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6154. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6155. </Description>
  6156. </Information>';
  6157. type 'Submodel-Equation'
  6158. ports
  6159. signal in Hin [4,4];
  6160. signal out Hout [4,4];
  6161. power in Pin [6,1];
  6162. power out Pout [6,1];
  6163. restrictions
  6164. causality constraint not_equal Pin Pout;
  6165. end;
  6166. icon bg bottom
  6167. figures
  6168. rectangle 512 112 576 160 color 0 fill 8454041;
  6169. text 'Link' 544 136 color 0 'Clear Sans' 16;
  6170. terminals
  6171. Hin 576 152 fixed;
  6172. Hout 512 152 fixed;
  6173. Pin 512 120 fixed;
  6174. Pout 576 120 fixed;
  6175. end;
  6176. implementation eq
  6177. parameters
  6178. real offset[6]= [0;0;0;0;-0.025;0]; //coordinates of joint_1
  6179. variables
  6180. real Hab[4,4];
  6181. real AdHab[6,6];
  6182. real R[3,3];
  6183. real omega[3];
  6184. initialequations
  6185. omega = offset[1:3];
  6186. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6187. Hab = homogeneous(R,offset[4:6]);
  6188. AdHab = Adjoint(Hab);
  6189. equations
  6190. Hout = Hin * Hab;
  6191. Pout.e = transpose(AdHab) * Pin.e;
  6192. Pin.f = AdHab * Pout.f;
  6193. implementation_end;
  6194. Link3 432 448
  6195. description '<Information>
  6196. <Description>
  6197. <Version>4.8</Version>
  6198. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6199. <IsMainModel>1</IsMainModel>
  6200. <KeepParameterValues>False</KeepParameterValues>
  6201. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6202. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6203. </Description>
  6204. </Information>';
  6205. type 'Submodel-Equation'
  6206. ports
  6207. signal in Hin [4,4];
  6208. signal out Hout [4,4];
  6209. power in Pin [6,1];
  6210. power out Pout [6,1];
  6211. restrictions
  6212. causality constraint not_equal Pin Pout;
  6213. end;
  6214. icon bg bottom
  6215. figures
  6216. rectangle 408 416 456 480 color 0 fill 8454041;
  6217. text 'Link' 432 448 color 0 'Clear Sans' 16;
  6218. terminals
  6219. Hin 448 416 fixed;
  6220. Hout 448 480 fixed;
  6221. Pin 416 480 fixed;
  6222. Pout 416 416 fixed;
  6223. end;
  6224. implementation eq
  6225. parameters
  6226. real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1
  6227. variables
  6228. real Hab[4,4];
  6229. real AdHab[6,6];
  6230. real R[3,3];
  6231. real omega[3];
  6232. initialequations
  6233. omega = offset[1:3];
  6234. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6235. Hab = homogeneous(R,offset[4:6]);
  6236. AdHab = Adjoint(Hab);
  6237. equations
  6238. Hout = Hin * Hab;
  6239. Pout.e = transpose(AdHab) * Pin.e;
  6240. Pin.f = AdHab * Pout.f;
  6241. implementation_end;
  6242. Link4 632 304
  6243. description '<Information>
  6244. <Description>
  6245. <Version>4.8</Version>
  6246. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6247. <IsMainModel>1</IsMainModel>
  6248. <KeepParameterValues>False</KeepParameterValues>
  6249. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6250. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6251. </Description>
  6252. </Information>';
  6253. type 'Submodel-Equation'
  6254. ports
  6255. signal in Hin [4,4];
  6256. signal out Hout [4,4];
  6257. power in Pin [6,1];
  6258. power out Pout [6,1];
  6259. restrictions
  6260. causality constraint not_equal Pin Pout;
  6261. end;
  6262. icon bg bottom
  6263. figures
  6264. rectangle 608 272 656 336 color 0 fill 8454041;
  6265. text 'Link' 632 304 color 0 'Clear Sans' 16;
  6266. terminals
  6267. Hin 648 336 fixed;
  6268. Hout 648 272 fixed;
  6269. Pin 616 272 fixed;
  6270. Pout 616 336 fixed;
  6271. end;
  6272. implementation eq
  6273. parameters
  6274. real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1
  6275. variables
  6276. real Hab[4,4];
  6277. real AdHab[6,6];
  6278. real R[3,3];
  6279. real omega[3];
  6280. initialequations
  6281. omega = offset[1:3];
  6282. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6283. Hab = homogeneous(R,offset[4:6]);
  6284. AdHab = Adjoint(Hab);
  6285. equations
  6286. Hout = Hin * Hab;
  6287. Pout.e = transpose(AdHab) * Pin.e;
  6288. Pin.f = AdHab * Pout.f;
  6289. implementation_end;
  6290. Link5 840 616
  6291. description '<Information>
  6292. <Description>
  6293. <Version>4.8</Version>
  6294. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6295. <IsMainModel>1</IsMainModel>
  6296. <KeepParameterValues>False</KeepParameterValues>
  6297. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6298. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6299. </Description>
  6300. </Information>';
  6301. type 'Submodel-Equation'
  6302. ports
  6303. signal in Hin [4,4];
  6304. signal out Hout [4,4];
  6305. power in Pin [6,1];
  6306. power out Pout [6,1];
  6307. restrictions
  6308. causality constraint not_equal Pin Pout;
  6309. end;
  6310. icon bg bottom
  6311. figures
  6312. rectangle 808 592 872 640 color 0 fill 8454041;
  6313. text 'Link' 840 616 color 0 'Clear Sans' 16;
  6314. terminals
  6315. Hin 872 600 fixed;
  6316. Hout 808 600 fixed;
  6317. Pin 808 632 fixed;
  6318. Pout 872 632 fixed;
  6319. end;
  6320. implementation eq
  6321. parameters
  6322. real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1
  6323. variables
  6324. real Hab[4,4];
  6325. real AdHab[6,6];
  6326. real R[3,3];
  6327. real omega[3];
  6328. initialequations
  6329. omega = offset[1:3];
  6330. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6331. Hab = homogeneous(R,offset[4:6]);
  6332. AdHab = Adjoint(Hab);
  6333. equations
  6334. Hout = Hin * Hab;
  6335. Pout.e = transpose(AdHab) * Pin.e;
  6336. Pin.f = AdHab * Pout.f;
  6337. implementation_end;
  6338. Link6 432 304
  6339. description '<Information>
  6340. <Description>
  6341. <Version>4.8</Version>
  6342. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6343. <IsMainModel>1</IsMainModel>
  6344. <KeepParameterValues>False</KeepParameterValues>
  6345. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6346. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6347. </Description>
  6348. </Information>';
  6349. type 'Submodel-Equation'
  6350. ports
  6351. signal in Hin [4,4];
  6352. signal out Hout [4,4];
  6353. power in Pin [6,1];
  6354. power out Pout [6,1];
  6355. restrictions
  6356. causality constraint not_equal Pin Pout;
  6357. end;
  6358. icon bg bottom
  6359. figures
  6360. rectangle 408 272 456 336 color 0 fill 8454041;
  6361. text 'Link' 432 304 color 0 'Clear Sans' 16;
  6362. terminals
  6363. Hin 448 272 fixed;
  6364. Hout 448 336 fixed;
  6365. Pin 416 336 fixed;
  6366. Pout 416 272 fixed;
  6367. end;
  6368. implementation eq
  6369. parameters
  6370. real offset[6]= [0;0;0;0;0;-0.0325]; //coordinates of joint_1
  6371. variables
  6372. real Hab[4,4];
  6373. real AdHab[6,6];
  6374. real R[3,3];
  6375. real omega[3];
  6376. initialequations
  6377. omega = offset[1:3];
  6378. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6379. Hab = homogeneous(R,offset[4:6]);
  6380. AdHab = Adjoint(Hab);
  6381. equations
  6382. Hout = Hin * Hab;
  6383. Pout.e = transpose(AdHab) * Pin.e;
  6384. Pin.f = AdHab * Pout.f;
  6385. implementation_end;
  6386. Link7 704 616
  6387. description '<Information>
  6388. <Description>
  6389. <Version>4.8</Version>
  6390. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6391. <IsMainModel>1</IsMainModel>
  6392. <KeepParameterValues>False</KeepParameterValues>
  6393. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6394. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6395. </Description>
  6396. </Information>';
  6397. type 'Submodel-Equation'
  6398. ports
  6399. signal in Hin [4,4];
  6400. signal out Hout [4,4];
  6401. power in Pin [6,1];
  6402. power out Pout [6,1];
  6403. restrictions
  6404. causality constraint not_equal Pin Pout;
  6405. end;
  6406. icon bg bottom
  6407. figures
  6408. rectangle 672 592 736 640 color 0 fill 8454041;
  6409. text 'Link' 704 616 color 0 'Clear Sans' 16;
  6410. terminals
  6411. Hin 736 600 fixed;
  6412. Hout 672 600 fixed;
  6413. Pin 672 632 fixed;
  6414. Pout 736 632 fixed;
  6415. end;
  6416. implementation eq
  6417. parameters
  6418. real offset[6]= [0;0;0;0;-0.0125;0]; //coordinates of joint_1
  6419. variables
  6420. real Hab[4,4];
  6421. real AdHab[6,6];
  6422. real R[3,3];
  6423. real omega[3];
  6424. initialequations
  6425. omega = offset[1:3];
  6426. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6427. Hab = homogeneous(R,offset[4:6]);
  6428. AdHab = Adjoint(Hab);
  6429. equations
  6430. Hout = Hin * Hab;
  6431. Pout.e = transpose(AdHab) * Pin.e;
  6432. Pin.f = AdHab * Pout.f;
  6433. implementation_end;
  6434. Link8 976 136
  6435. description '<Information>
  6436. <Description>
  6437. <Version>4.8</Version>
  6438. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6439. <IsMainModel>1</IsMainModel>
  6440. <KeepParameterValues>False</KeepParameterValues>
  6441. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6442. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6443. </Description>
  6444. </Information>';
  6445. type 'Submodel-Equation'
  6446. ports
  6447. signal in Hin [4,4];
  6448. signal out Hout [4,4];
  6449. power in Pin [6,1];
  6450. power out Pout [6,1];
  6451. restrictions
  6452. causality constraint not_equal Pin Pout;
  6453. end;
  6454. icon bg bottom
  6455. figures
  6456. rectangle 944 112 1008 160 color 0 fill 8454041;
  6457. text 'Link' 976 136 color 0 'Clear Sans' 16;
  6458. terminals
  6459. Hin 944 152 fixed;
  6460. Hout 1008 152 fixed;
  6461. Pin 1008 120 fixed;
  6462. Pout 944 120 fixed;
  6463. end;
  6464. implementation eq
  6465. parameters
  6466. real offset[6]= [0;0;0;0;0.0125;0]; //coordinates of joint_1
  6467. variables
  6468. real Hab[4,4];
  6469. real AdHab[6,6];
  6470. real R[3,3];
  6471. real omega[3];
  6472. initialequations
  6473. omega = offset[1:3];
  6474. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6475. Hab = homogeneous(R,offset[4:6]);
  6476. AdHab = Adjoint(Hab);
  6477. equations
  6478. Hout = Hin * Hab;
  6479. Pout.e = transpose(AdHab) * Pin.e;
  6480. Pin.f = AdHab * Pout.f;
  6481. implementation_end;
  6482. Link9 632 448
  6483. description '<Information>
  6484. <Description>
  6485. <Version>4.8</Version>
  6486. <LibraryPath>Bond Graph\MR\link-v3.emx</LibraryPath>
  6487. <IsMainModel>1</IsMainModel>
  6488. <KeepParameterValues>False</KeepParameterValues>
  6489. <TimeStamp>2020-7-21 11:14:41</TimeStamp>
  6490. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6491. </Description>
  6492. </Information>';
  6493. type 'Submodel-Equation'
  6494. ports
  6495. signal in Hin [4,4];
  6496. signal out Hout [4,4];
  6497. power in Pin [6,1];
  6498. power out Pout [6,1];
  6499. restrictions
  6500. causality constraint not_equal Pin Pout;
  6501. end;
  6502. icon bg bottom
  6503. figures
  6504. rectangle 608 416 656 480 color 0 fill 8454041;
  6505. text 'Link' 632 448 color 0 'Clear Sans' 16;
  6506. terminals
  6507. Hin 648 480 fixed;
  6508. Hout 648 416 fixed;
  6509. Pin 616 416 fixed;
  6510. Pout 616 480 fixed;
  6511. end;
  6512. implementation eq
  6513. parameters
  6514. real offset[6]= [0;0;0;0;0;0.0325]; //coordinates of joint_1
  6515. variables
  6516. real Hab[4,4];
  6517. real AdHab[6,6];
  6518. real R[3,3];
  6519. real omega[3];
  6520. initialequations
  6521. omega = offset[1:3];
  6522. R = dll('EulerAngles.dll','RotationMatrixFromEulXYZs',omega);
  6523. Hab = homogeneous(R,offset[4:6]);
  6524. AdHab = Adjoint(Hab);
  6525. equations
  6526. Hout = Hin * Hab;
  6527. Pout.e = transpose(AdHab) * Pin.e;
  6528. Pin.f = AdHab * Pout.f;
  6529. implementation_end;
  6530. Negate1 320 672
  6531. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  6532. <LibraryPath>Signal\Block Diagram\Negate.emx</LibraryPath>
  6533. <TimeStamp>2007-9-26 12:14:11</TimeStamp>
  6534. </Description>';
  6535. type Negate
  6536. ports
  6537. signal in input;
  6538. signal out output;
  6539. end;
  6540. icon bg bottom
  6541. figures
  6542. rectangle 304 656 336 688 color 0 fill 15132390;
  6543. text '-1' 320 672 color 16711680 16 bold;
  6544. end;
  6545. implementation eq
  6546. equations
  6547. output = - input;
  6548. implementation_end;
  6549. OneJunction1 760 632
  6550. description '<Information>
  6551. <Description>
  6552. <Version>4.2</Version>
  6553. <IsMainModel>1</IsMainModel>
  6554. <KeepParameterValues>False</KeepParameterValues>
  6555. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  6556. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  6557. </Description>
  6558. </Information>';
  6559. knot OneJunction
  6560. ports
  6561. power knot duplicatable none p [6,1];
  6562. signal knot out flow [6,1];
  6563. restrictions
  6564. causality constraint one_out p;
  6565. end;
  6566. icon bg
  6567. figures
  6568. text '1' 760 632 color 0 18 bold;
  6569. end;
  6570. implementation eq
  6571. equations
  6572. sum (direct (p.e)) = 0;
  6573. equal (collect (p.f));
  6574. flow = first (p.f);
  6575. implementation_end;
  6576. OneJunction2 416 392
  6577. description '<Information>
  6578. <Description>
  6579. <Version>4.2</Version>
  6580. <IsMainModel>1</IsMainModel>
  6581. <KeepParameterValues>False</KeepParameterValues>
  6582. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  6583. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  6584. </Description>
  6585. </Information>';
  6586. knot OneJunction
  6587. ports
  6588. power knot duplicatable none p [6,1];
  6589. signal knot out flow [6,1];
  6590. restrictions
  6591. causality constraint one_out p;
  6592. end;
  6593. icon bg
  6594. figures
  6595. text '1' 416 392 color 0 18 bold;
  6596. end;
  6597. implementation eq
  6598. equations
  6599. sum (direct (p.e)) = 0;
  6600. equal (collect (p.f));
  6601. flow = first (p.f);
  6602. implementation_end;
  6603. OneJunction3 616 120
  6604. description '<Information>
  6605. <Description>
  6606. <Version>4.2</Version>
  6607. <IsMainModel>1</IsMainModel>
  6608. <KeepParameterValues>False</KeepParameterValues>
  6609. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  6610. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  6611. </Description>
  6612. </Information>';
  6613. knot OneJunction
  6614. ports
  6615. power knot duplicatable none p [6,1];
  6616. signal knot out flow [6,1];
  6617. restrictions
  6618. causality constraint one_out p;
  6619. end;
  6620. icon bg
  6621. figures
  6622. text '1' 616 120 color 0 18 bold;
  6623. end;
  6624. implementation eq
  6625. equations
  6626. sum (direct (p.e)) = 0;
  6627. equal (collect (p.f));
  6628. flow = first (p.f);
  6629. implementation_end;
  6630. OneJunction4 616 392
  6631. description '<Information>
  6632. <Description>
  6633. <Version>4.2</Version>
  6634. <IsMainModel>1</IsMainModel>
  6635. <KeepParameterValues>False</KeepParameterValues>
  6636. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  6637. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  6638. </Description>
  6639. </Information>';
  6640. knot OneJunction
  6641. ports
  6642. power knot duplicatable none p [6,1];
  6643. signal knot out flow [6,1];
  6644. restrictions
  6645. causality constraint one_out p;
  6646. end;
  6647. icon bg
  6648. figures
  6649. text '1' 616 392 color 0 18 bold;
  6650. end;
  6651. implementation eq
  6652. equations
  6653. sum (direct (p.e)) = 0;
  6654. equal (collect (p.f));
  6655. flow = first (p.f);
  6656. implementation_end;
  6657. OneJunction5 416 584
  6658. description '<Information>
  6659. <Description>
  6660. <Version>4.2</Version>
  6661. <IsMainModel>1</IsMainModel>
  6662. <KeepParameterValues>False</KeepParameterValues>
  6663. <LibraryPath>Bond Graph\OneJunction.emx</LibraryPath>
  6664. <TimeStamp>2011-11-29 16:17:51</TimeStamp>
  6665. </Description>
  6666. </Information>';
  6667. knot OneJunction
  6668. ports
  6669. power knot duplicatable none p [6,1];
  6670. signal knot out flow [6,1];
  6671. restrictions
  6672. causality constraint one_out p;
  6673. end;
  6674. icon bg
  6675. figures
  6676. text '1' 416 584 color 0 18 bold;
  6677. end;
  6678. implementation eq
  6679. equations
  6680. sum (direct (p.e)) = 0;
  6681. equal (collect (p.f));
  6682. flow = first (p.f);
  6683. implementation_end;
  6684. rectanglepath 152 744
  6685. description '<Information>
  6686. <Description>
  6687. <Version>4.8</Version>
  6688. <LibraryPath>setpoint\rectanglepath.emx</LibraryPath>
  6689. <IsMainModel>1</IsMainModel>
  6690. <KeepParameterValues>False</KeepParameterValues>
  6691. <TimeStamp>2020-7-10 12:30:38</TimeStamp>
  6692. <AllowLibraryUpdate>False</AllowLibraryUpdate>
  6693. </Description>
  6694. </Information>';
  6695. type 'Submodel-Equation'
  6696. ports
  6697. signal out output [2,1];
  6698. end;
  6699. implementation eq
  6700. /*
  6701. This will generate coordinates for the box that has to be drawn
  6702. */
  6703. parameters
  6704. real w = 0.07{m} ;
  6705. real h = 0.05 {m};
  6706. real t = 1 {s};
  6707. real origin[2] = [0.01,0.03]{m};
  6708. variables
  6709. real v {m/s};
  6710. real t_w {s};
  6711. real t_h {s};
  6712. real period {s};
  6713. initialequations
  6714. v = (2*w + 2*h)/t;
  6715. t_w = w / v;
  6716. t_h = h / v;
  6717. equations
  6718. period = floor(time / t) * t;
  6719. output[1] = v*(ramp(period+t_h) - ramp(period + t_w+t_h) - ramp(period + t_w + t_h + t_h)) + origin[1];
  6720. output[2] = v*(ramp(period) - ramp(period + t_h) - ramp(period + t_h + t_w) + ramp(period + 2 * t_h + t_w))+ origin[2];
  6721. implementation_end;
  6722. Splitter1 792 600
  6723. description '<Description><Version>4.0</Version>
  6724. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6725. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6726. <IsMainModel>1</IsMainModel>
  6727. <KeepParameterValues>False</KeepParameterValues>
  6728. </Description>';
  6729. knot Splitter
  6730. ports
  6731. signal knot duplicatable out output [4,4];
  6732. signal knot in input [4,4];
  6733. end;
  6734. icon bg ellipse
  6735. figures
  6736. ellipse 788.8 596.8 795.2 603.2 color -1 fill 0;
  6737. ellipse 787.7 595.7 796.3 604.3 color -1;
  6738. terminals
  6739. input 792 600 fixed;
  6740. end;
  6741. implementation eq
  6742. equations
  6743. collect (output) = input;
  6744. implementation_end;
  6745. Splitter2 448 360
  6746. description '<Description><Version>4.0</Version>
  6747. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6748. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6749. <IsMainModel>1</IsMainModel>
  6750. <KeepParameterValues>False</KeepParameterValues>
  6751. </Description>';
  6752. knot Splitter
  6753. ports
  6754. signal knot duplicatable out output [4,4];
  6755. signal knot in input [4,4];
  6756. end;
  6757. icon bg ellipse
  6758. figures
  6759. ellipse 444.8 356.8 451.2 363.2 color -1 fill 0;
  6760. ellipse 443.7 355.7 452.3 364.3 color -1;
  6761. terminals
  6762. input 448 360 fixed;
  6763. end;
  6764. implementation eq
  6765. equations
  6766. collect (output) = input;
  6767. implementation_end;
  6768. Splitter3 648 360
  6769. description '<Description><Version>4.0</Version>
  6770. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6771. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6772. <IsMainModel>1</IsMainModel>
  6773. <KeepParameterValues>False</KeepParameterValues>
  6774. </Description>';
  6775. knot Splitter
  6776. ports
  6777. signal knot duplicatable out output [4,4];
  6778. signal knot in input [4,4];
  6779. end;
  6780. icon bg ellipse
  6781. figures
  6782. ellipse 644.8 356.8 651.2 363.2 color -1 fill 0;
  6783. ellipse 643.7 355.7 652.3 364.3 color -1;
  6784. terminals
  6785. input 648 360 fixed;
  6786. end;
  6787. implementation eq
  6788. equations
  6789. collect (output) = input;
  6790. implementation_end;
  6791. Splitter4 648 152
  6792. description '<Description><Version>4.0</Version>
  6793. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6794. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6795. <IsMainModel>1</IsMainModel>
  6796. <KeepParameterValues>False</KeepParameterValues>
  6797. </Description>';
  6798. knot Splitter
  6799. ports
  6800. signal knot duplicatable out output [4,4];
  6801. signal knot in input [4,4];
  6802. end;
  6803. icon bg ellipse
  6804. figures
  6805. ellipse 644.8 148.8 651.2 155.2 color -1 fill 0;
  6806. ellipse 643.7 147.7 652.3 156.3 color -1;
  6807. terminals
  6808. input 648 152 fixed;
  6809. end;
  6810. implementation eq
  6811. equations
  6812. collect (output) = input;
  6813. implementation_end;
  6814. Splitter5 448 152
  6815. description '<Description><Version>4.0</Version>
  6816. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6817. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6818. <IsMainModel>1</IsMainModel>
  6819. <KeepParameterValues>False</KeepParameterValues>
  6820. </Description>';
  6821. knot Splitter
  6822. ports
  6823. signal knot duplicatable out output [4,4];
  6824. signal knot in input [4,4];
  6825. end;
  6826. icon bg ellipse
  6827. figures
  6828. ellipse 444.8 148.8 451.2 155.2 color -1 fill 0;
  6829. ellipse 443.7 147.7 452.3 156.3 color -1;
  6830. terminals
  6831. input 448 152 fixed;
  6832. end;
  6833. implementation eq
  6834. equations
  6835. collect (output) = input;
  6836. implementation_end;
  6837. Splitter6 896 600
  6838. description '<Description><Version>4.0</Version>
  6839. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6840. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6841. <IsMainModel>1</IsMainModel>
  6842. <KeepParameterValues>False</KeepParameterValues>
  6843. </Description>';
  6844. knot Splitter
  6845. ports
  6846. signal knot duplicatable out output [4,4];
  6847. signal knot in input [4,4];
  6848. end;
  6849. icon bg ellipse
  6850. figures
  6851. ellipse 892.8 596.8 899.2 603.2 color -1 fill 0;
  6852. ellipse 891.7 595.7 900.3 604.3 color -1;
  6853. terminals
  6854. input 896 600 fixed;
  6855. end;
  6856. implementation eq
  6857. equations
  6858. collect (output) = input;
  6859. implementation_end;
  6860. Splitter7 648 496
  6861. description '<Description><Version>4.0</Version>
  6862. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6863. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6864. <IsMainModel>1</IsMainModel>
  6865. <KeepParameterValues>False</KeepParameterValues>
  6866. </Description>';
  6867. knot Splitter
  6868. ports
  6869. signal knot duplicatable out output [4,4];
  6870. signal knot in input [4,4];
  6871. end;
  6872. icon bg ellipse
  6873. figures
  6874. ellipse 644.8 492.8 651.2 499.2 color -1 fill 0;
  6875. ellipse 643.7 491.7 652.3 500.3 color -1;
  6876. terminals
  6877. input 648 496 fixed;
  6878. end;
  6879. implementation eq
  6880. equations
  6881. collect (output) = input;
  6882. implementation_end;
  6883. Splitter8 448 496
  6884. description '<Description><Version>4.0</Version>
  6885. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6886. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6887. <IsMainModel>1</IsMainModel>
  6888. <KeepParameterValues>False</KeepParameterValues>
  6889. </Description>';
  6890. knot Splitter
  6891. ports
  6892. signal knot duplicatable out output [4,4];
  6893. signal knot in input [4,4];
  6894. end;
  6895. icon bg ellipse
  6896. figures
  6897. ellipse 444.8 492.8 451.2 499.2 color -1 fill 0;
  6898. ellipse 443.7 491.7 452.3 500.3 color -1;
  6899. terminals
  6900. input 448 496 fixed;
  6901. end;
  6902. implementation eq
  6903. equations
  6904. collect (output) = input;
  6905. implementation_end;
  6906. Splitter9 920 152
  6907. description '<Description><Version>4.0</Version>
  6908. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  6909. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  6910. <IsMainModel>1</IsMainModel>
  6911. <KeepParameterValues>False</KeepParameterValues>
  6912. </Description>';
  6913. knot Splitter
  6914. ports
  6915. signal knot duplicatable out output [4,4];
  6916. signal knot in input [4,4];
  6917. end;
  6918. icon bg ellipse
  6919. figures
  6920. ellipse 916.8 148.8 923.2 155.2 color -1 fill 0;
  6921. ellipse 915.7 147.7 924.3 156.3 color -1;
  6922. terminals
  6923. input 920 152 fixed;
  6924. end;
  6925. implementation eq
  6926. equations
  6927. collect (output) = input;
  6928. implementation_end;
  6929. stepper_control 320 608
  6930. description '<Information>
  6931. <Description>
  6932. <Version>4.8</Version>
  6933. <IsMainModel>1</IsMainModel>
  6934. <LibraryPath>Motor\stepper_control.emx</LibraryPath>
  6935. <TimeStamp>2020-7-23 10:55:26</TimeStamp>
  6936. </Description>
  6937. </Information>';
  6938. type Submodel
  6939. ports
  6940. signal in setpoint {rad} ;
  6941. signal out output {rad} ;
  6942. end;
  6943. icon bg bottom
  6944. figures
  6945. rectangle 264 592 376 624 color 0 fill 15132390;
  6946. text 'name' 320 608 color 0 'Clear Sans' 16;
  6947. end;
  6948. implementation bg
  6949. submodels
  6950. Acceleration_int 648 336
  6951. description '<Information>
  6952. <Description>
  6953. <Version>4.3</Version>
  6954. <IsMainModel>1</IsMainModel>
  6955. <KeepParameterValues>False</KeepParameterValues>
  6956. <LibraryPath>Signal\Block Diagram\Integrate.emx</LibraryPath>
  6957. <TimeStamp>2013-3-8 14:47:42</TimeStamp>
  6958. </Description>
  6959. </Information>';
  6960. type Integrate
  6961. ports
  6962. signal in input;
  6963. signal out output;
  6964. end;
  6965. icon bg bottom
  6966. figures
  6967. rectangle 632 320 664 352 color 0 fill 15132390;
  6968. text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
  6969. end;
  6970. implementation eq
  6971. parameters
  6972. real initial = 0; // initial value
  6973. equations
  6974. output = int (input, initial);
  6975. implementation_end;
  6976. Acceleration_limit 568 336
  6977. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  6978. <LibraryPath>Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx</LibraryPath>
  6979. <TimeStamp>2007-9-26 12:47:40</TimeStamp>
  6980. </Description>';
  6981. type 'SignalLimiter-Limit'
  6982. ports
  6983. signal in input;
  6984. signal out output;
  6985. end;
  6986. icon bg bottom
  6987. figures
  6988. group
  6989. rectangle 552 320 584 352 color 0 fill 15132390;
  6990. line 567.9 324.5 567.9 349 color 0 fill 15132390;
  6991. line 555 336.2 580.7 336.2 color 0 fill 15132390;
  6992. spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
  6993. spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
  6994. spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
  6995. end;
  6996. end;
  6997. implementation eq
  6998. parameters
  6999. real maximum = 20;
  7000. real minimum = -20;
  7001. equations
  7002. output = limit (input, minimum, maximum);
  7003. implementation_end;
  7004. plug setpoint 136 336;
  7005. plug output 791 336;
  7006. PlusMinus1 240 336
  7007. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  7008. <LibraryPath>Signal\Block Diagram\PlusMinus.emx</LibraryPath>
  7009. <TimeStamp>2007-9-27 10:15:13</TimeStamp>
  7010. </Description>';
  7011. knot PlusMinus
  7012. ports
  7013. signal knot duplicatable in plus [1];
  7014. signal knot duplicatable in minus [1];
  7015. signal knot out output [1];
  7016. end;
  7017. icon bg ellipse
  7018. figures
  7019. ellipse 232 328 248 344 color 0 fill 16777215;
  7020. end;
  7021. implementation eq
  7022. equations
  7023. output = sum (collect (plus)) - sum (collect (minus));
  7024. implementation_end;
  7025. PlusMinus2 432 336
  7026. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  7027. <LibraryPath>Signal\Block Diagram\PlusMinus.emx</LibraryPath>
  7028. <TimeStamp>2007-9-27 10:15:13</TimeStamp>
  7029. </Description>';
  7030. knot PlusMinus
  7031. ports
  7032. signal knot duplicatable in plus [1];
  7033. signal knot duplicatable in minus [1];
  7034. signal knot out output [1];
  7035. end;
  7036. icon bg ellipse
  7037. figures
  7038. ellipse 424 328 440 344 color 0 fill 16777215;
  7039. end;
  7040. implementation eq
  7041. equations
  7042. output = sum (collect (plus)) - sum (collect (minus));
  7043. implementation_end;
  7044. Position_control 296 336
  7045. description '<Description>
  7046. <Version>4.0</Version>
  7047. <IsMainModel>1</IsMainModel>
  7048. <KeepParameterValues>False</KeepParameterValues>
  7049. <LibraryPath>Signal\Control\PID Control\Continuous\PD.emx</LibraryPath>
  7050. <TimeStamp>2008-1-17 10:49:7</TimeStamp>
  7051. </Description>';
  7052. type PD
  7053. ports
  7054. signal in error;
  7055. signal out output;
  7056. end;
  7057. icon bg bottom
  7058. figures
  7059. rectangle 280 320 312 352 color 0 fill 15132390;
  7060. text 'PD' 296.5 336.1 color 16711680 18 bold;
  7061. end;
  7062. implementation eq
  7063. parameters
  7064. real kp = 4 {}; // Proportional gain
  7065. real tauD = 100 {s}; // Derivative time constant: tauD > 0
  7066. real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
  7067. variables
  7068. real state, rate;
  7069. equations
  7070. rate = (kp * error - output) / (beta * tauD);
  7071. state = int (rate);
  7072. output = state + kp * error / beta;
  7073. implementation_end;
  7074. Splitter3 688 336
  7075. description '<Description><Version>4.0</Version>
  7076. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  7077. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  7078. <IsMainModel>1</IsMainModel>
  7079. <KeepParameterValues>False</KeepParameterValues>
  7080. </Description>';
  7081. knot Splitter
  7082. ports
  7083. signal knot duplicatable out output [1];
  7084. signal knot in input [1];
  7085. end;
  7086. icon bg ellipse
  7087. figures
  7088. ellipse 684.8 332.8 691.2 339.2 color -1 fill 0;
  7089. ellipse 683.7 331.7 692.3 340.3 color -1;
  7090. terminals
  7091. input 688 336 fixed;
  7092. end;
  7093. implementation eq
  7094. equations
  7095. collect (output) = input;
  7096. implementation_end;
  7097. Splitter4 752 336
  7098. description '<Description><Version>4.0</Version>
  7099. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  7100. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  7101. <IsMainModel>1</IsMainModel>
  7102. <KeepParameterValues>False</KeepParameterValues>
  7103. </Description>';
  7104. knot Splitter
  7105. ports
  7106. signal knot duplicatable out output [1];
  7107. signal knot in input [1];
  7108. end;
  7109. icon bg ellipse
  7110. figures
  7111. ellipse 748.8 332.8 755.2 339.2 color -1 fill 0;
  7112. ellipse 747.7 331.7 756.3 340.3 color -1;
  7113. terminals
  7114. input 752 336 fixed;
  7115. end;
  7116. implementation eq
  7117. equations
  7118. collect (output) = input;
  7119. implementation_end;
  7120. Velocity_control 480 336
  7121. description '<Description>
  7122. <Version>4.0</Version>
  7123. <IsMainModel>1</IsMainModel>
  7124. <KeepParameterValues>False</KeepParameterValues>
  7125. <LibraryPath>Signal\Control\PID Control\Continuous\PD.emx</LibraryPath>
  7126. <TimeStamp>2008-1-17 10:49:7</TimeStamp>
  7127. </Description>';
  7128. type PD
  7129. ports
  7130. signal in error;
  7131. signal out output;
  7132. end;
  7133. icon bg bottom
  7134. figures
  7135. rectangle 464 320 496 352 color 0 fill 15132390;
  7136. text 'PD' 480.5 336.1 color 16711680 18 bold;
  7137. end;
  7138. implementation eq
  7139. parameters
  7140. real kp = 12 {}; // Proportional gain
  7141. real tauD = 10 {s}; // Derivative time constant: tauD > 0
  7142. real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
  7143. variables
  7144. real state, rate;
  7145. equations
  7146. rate = (kp * error - output) / (beta * tauD);
  7147. state = int (rate);
  7148. output = state + kp * error / beta;
  7149. implementation_end;
  7150. Velocity_int 720 336
  7151. description '<Information>
  7152. <Description>
  7153. <Version>4.3</Version>
  7154. <IsMainModel>1</IsMainModel>
  7155. <KeepParameterValues>False</KeepParameterValues>
  7156. <LibraryPath>Signal\Block Diagram\Integrate.emx</LibraryPath>
  7157. <TimeStamp>2013-3-8 14:47:42</TimeStamp>
  7158. </Description>
  7159. </Information>';
  7160. type Integrate
  7161. ports
  7162. signal in input;
  7163. signal out output;
  7164. end;
  7165. icon bg bottom
  7166. figures
  7167. rectangle 704 320 736 352 color 0 fill 15132390;
  7168. text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
  7169. end;
  7170. implementation eq
  7171. parameters
  7172. real initial = -1.65; // initial value
  7173. equations
  7174. output = int (input, initial);
  7175. implementation_end;
  7176. Velocity_limit 376 336
  7177. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  7178. <LibraryPath>Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx</LibraryPath>
  7179. <TimeStamp>2007-9-26 12:47:40</TimeStamp>
  7180. </Description>';
  7181. type 'SignalLimiter-Limit'
  7182. ports
  7183. signal in input;
  7184. signal out output;
  7185. end;
  7186. icon bg bottom
  7187. figures
  7188. group
  7189. rectangle 360 320 392 352 color 0 fill 15132390;
  7190. line 375.9 324.5 375.9 349 color 0 fill 15132390;
  7191. line 363 336.2 388.7 336.2 color 0 fill 15132390;
  7192. spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
  7193. spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
  7194. spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
  7195. end;
  7196. end;
  7197. implementation eq
  7198. parameters
  7199. real maximum = 25;
  7200. real minimum = -25;
  7201. equations
  7202. output = limit (input, minimum, maximum);
  7203. implementation_end;
  7204. end;
  7205. connections
  7206. Acceleration_int\output -> Splitter3\input;
  7207. Acceleration_limit\output -> Acceleration_int\input;
  7208. PlusMinus1\output -> Position_control\error;
  7209. PlusMinus2\output -> Velocity_control\error;
  7210. Position_control\output -> Velocity_limit\input;
  7211. setpoint -> PlusMinus1\plus;
  7212. Splitter3\output -> PlusMinus2\minus 688 288 432 288;
  7213. Splitter3\output -> Velocity_int\input;
  7214. Splitter4\output -> output;
  7215. Splitter4\output -> PlusMinus1\minus 752 400 240 400;
  7216. Velocity_control\output -> Acceleration_limit\input;
  7217. Velocity_int\output -> Splitter4\input;
  7218. Velocity_limit\output -> PlusMinus2\plus;
  7219. end;
  7220. implementation_end;
  7221. stepper_control1 528 744
  7222. description '<Information>
  7223. <Description>
  7224. <Version>4.8</Version>
  7225. <IsMainModel>1</IsMainModel>
  7226. <LibraryPath>Motor\stepper_control.emx</LibraryPath>
  7227. <TimeStamp>2020-7-22 15:25:26</TimeStamp>
  7228. </Description>
  7229. </Information>';
  7230. type Submodel
  7231. ports
  7232. signal in setpoint {rad} ;
  7233. signal out output {rad} ;
  7234. end;
  7235. implementation bg
  7236. submodels
  7237. Acceleration_int 648 336
  7238. description '<Information>
  7239. <Description>
  7240. <Version>4.3</Version>
  7241. <IsMainModel>1</IsMainModel>
  7242. <KeepParameterValues>False</KeepParameterValues>
  7243. <LibraryPath>Signal\Block Diagram\Integrate.emx</LibraryPath>
  7244. <TimeStamp>2013-3-8 14:47:42</TimeStamp>
  7245. </Description>
  7246. </Information>';
  7247. type Integrate
  7248. ports
  7249. signal in input;
  7250. signal out output;
  7251. end;
  7252. icon bg bottom
  7253. figures
  7254. rectangle 632 320 664 352 color 0 fill 15132390;
  7255. text '∫' 648 336.3 color 16711680 'Lucida Sans' 21 italic;
  7256. end;
  7257. implementation eq
  7258. parameters
  7259. real initial = 0; // initial value
  7260. equations
  7261. output = int (input, initial);
  7262. implementation_end;
  7263. Acceleration_limit 568 336
  7264. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  7265. <LibraryPath>Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx</LibraryPath>
  7266. <TimeStamp>2007-9-26 12:47:40</TimeStamp>
  7267. </Description>';
  7268. type 'SignalLimiter-Limit'
  7269. ports
  7270. signal in input;
  7271. signal out output;
  7272. end;
  7273. icon bg bottom
  7274. figures
  7275. group
  7276. rectangle 552 320 584 352 color 0 fill 15132390;
  7277. line 567.9 324.5 567.9 349 color 0 fill 15132390;
  7278. line 555 336.2 580.7 336.2 color 0 fill 15132390;
  7279. spline 561.9 343.1 573.9 329.4 color 16711680 fill 15132390 width 2;
  7280. spline 573.3 330.2 581.9 329.8 color 16711680 fill 15132390 width 2;
  7281. spline 555 343.6 561.9 343.1 color 16711680 fill 15132390 width 2;
  7282. end;
  7283. end;
  7284. implementation eq
  7285. parameters
  7286. real maximum = 80;
  7287. real minimum = -80;
  7288. equations
  7289. output = limit (input, minimum, maximum);
  7290. implementation_end;
  7291. plug setpoint 136 336;
  7292. plug output 791 336;
  7293. PlusMinus1 240 336
  7294. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  7295. <LibraryPath>Signal\Block Diagram\PlusMinus.emx</LibraryPath>
  7296. <TimeStamp>2007-9-27 10:15:13</TimeStamp>
  7297. </Description>';
  7298. knot PlusMinus
  7299. ports
  7300. signal knot duplicatable in plus [1];
  7301. signal knot duplicatable in minus [1];
  7302. signal knot out output [1];
  7303. end;
  7304. icon bg ellipse
  7305. figures
  7306. ellipse 232 328 248 344 color 0 fill 16777215;
  7307. end;
  7308. implementation eq
  7309. equations
  7310. output = sum (collect (plus)) - sum (collect (minus));
  7311. implementation_end;
  7312. PlusMinus2 432 336
  7313. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  7314. <LibraryPath>Signal\Block Diagram\PlusMinus.emx</LibraryPath>
  7315. <TimeStamp>2007-9-27 10:15:13</TimeStamp>
  7316. </Description>';
  7317. knot PlusMinus
  7318. ports
  7319. signal knot duplicatable in plus [1];
  7320. signal knot duplicatable in minus [1];
  7321. signal knot out output [1];
  7322. end;
  7323. icon bg ellipse
  7324. figures
  7325. ellipse 424 328 440 344 color 0 fill 16777215;
  7326. end;
  7327. implementation eq
  7328. equations
  7329. output = sum (collect (plus)) - sum (collect (minus));
  7330. implementation_end;
  7331. Position_control 296 336
  7332. description '<Description>
  7333. <Version>4.0</Version>
  7334. <IsMainModel>1</IsMainModel>
  7335. <KeepParameterValues>False</KeepParameterValues>
  7336. <LibraryPath>Signal\Control\PID Control\Continuous\PD.emx</LibraryPath>
  7337. <TimeStamp>2008-1-17 10:49:7</TimeStamp>
  7338. </Description>';
  7339. type PD
  7340. ports
  7341. signal in error;
  7342. signal out output;
  7343. end;
  7344. icon bg bottom
  7345. figures
  7346. rectangle 280 320 312 352 color 0 fill 15132390;
  7347. text 'PD' 296.5 336.1 color 16711680 18 bold;
  7348. end;
  7349. implementation eq
  7350. parameters
  7351. real kp = 4 {}; // Proportional gain
  7352. real tauD = 100 {s}; // Derivative time constant: tauD > 0
  7353. real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
  7354. variables
  7355. real state, rate;
  7356. equations
  7357. rate = (kp * error - output) / (beta * tauD);
  7358. state = int (rate);
  7359. output = state + kp * error / beta;
  7360. implementation_end;
  7361. Splitter3 688 336
  7362. description '<Description><Version>4.0</Version>
  7363. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  7364. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  7365. <IsMainModel>1</IsMainModel>
  7366. <KeepParameterValues>False</KeepParameterValues>
  7367. </Description>';
  7368. knot Splitter
  7369. ports
  7370. signal knot duplicatable out output [1];
  7371. signal knot in input [1];
  7372. end;
  7373. icon bg ellipse
  7374. figures
  7375. ellipse 684.8 332.8 691.2 339.2 color -1 fill 0;
  7376. ellipse 683.7 331.7 692.3 340.3 color -1;
  7377. terminals
  7378. input 688 336 fixed;
  7379. end;
  7380. implementation eq
  7381. equations
  7382. collect (output) = input;
  7383. implementation_end;
  7384. Splitter4 752 336
  7385. description '<Description><Version>4.0</Version>
  7386. <LibraryPath>Signal\Block Diagram\Splitter.emx</LibraryPath>
  7387. <TimeStamp>2008-01-17 11:28:29</TimeStamp>
  7388. <IsMainModel>1</IsMainModel>
  7389. <KeepParameterValues>False</KeepParameterValues>
  7390. </Description>';
  7391. knot Splitter
  7392. ports
  7393. signal knot duplicatable out output [1];
  7394. signal knot in input [1];
  7395. end;
  7396. icon bg ellipse
  7397. figures
  7398. ellipse 748.8 332.8 755.2 339.2 color -1 fill 0;
  7399. ellipse 747.7 331.7 756.3 340.3 color -1;
  7400. terminals
  7401. input 752 336 fixed;
  7402. end;
  7403. implementation eq
  7404. equations
  7405. collect (output) = input;
  7406. implementation_end;
  7407. Velocity_control 480 336
  7408. description '<Description>
  7409. <Version>4.0</Version>
  7410. <IsMainModel>1</IsMainModel>
  7411. <KeepParameterValues>False</KeepParameterValues>
  7412. <LibraryPath>Signal\Control\PID Control\Continuous\PD.emx</LibraryPath>
  7413. <TimeStamp>2008-1-17 10:49:7</TimeStamp>
  7414. </Description>';
  7415. type PD
  7416. ports
  7417. signal in error;
  7418. signal out output;
  7419. end;
  7420. icon bg bottom
  7421. figures
  7422. rectangle 464 320 496 352 color 0 fill 15132390;
  7423. text 'PD' 480.5 336.1 color 16711680 18 bold;
  7424. end;
  7425. implementation eq
  7426. parameters
  7427. real kp = 12 {}; // Proportional gain
  7428. real tauD = 10 {s}; // Derivative time constant: tauD > 0
  7429. real beta = 0.4 {}; // Tameness constant: 0 < beta << 1
  7430. variables
  7431. real state, rate;
  7432. equations
  7433. rate = (kp * error - output) / (beta * tauD);
  7434. state = int (rate);
  7435. output = state + kp * error / beta;
  7436. implementation_end;
  7437. Velocity_int 720 336
  7438. description '<Information>
  7439. <Description>
  7440. <Version>4.3</Version>
  7441. <IsMainModel>1</IsMainModel>
  7442. <KeepParameterValues>False</KeepParameterValues>
  7443. <LibraryPath>Signal\Block Diagram\Integrate.emx</LibraryPath>
  7444. <TimeStamp>2013-3-8 14:47:42</TimeStamp>
  7445. </Description>
  7446. </Information>';
  7447. type Integrate
  7448. ports
  7449. signal in input;
  7450. signal out output;
  7451. end;
  7452. icon bg bottom
  7453. figures
  7454. rectangle 704 320 736 352 color 0 fill 15132390;
  7455. text '∫' 720 336.3 color 16711680 'Lucida Sans' 21 italic;
  7456. end;
  7457. implementation eq
  7458. parameters
  7459. real initial = 0; // initial value
  7460. equations
  7461. output = int (input, initial);
  7462. implementation_end;
  7463. Velocity_limit 376 336
  7464. description '<Description><Version>4.0</Version><IsMainModel>1</IsMainModel><KeepParameterValues>False</KeepParameterValues>
  7465. <LibraryPath>Signal\Block Diagram Non-Linear\SignalLimiter-Limit.emx</LibraryPath>
  7466. <TimeStamp>2007-9-26 12:47:40</TimeStamp>
  7467. </Description>';
  7468. type 'SignalLimiter-Limit'
  7469. ports
  7470. signal in input;
  7471. signal out output;
  7472. end;
  7473. icon bg bottom
  7474. figures
  7475. group
  7476. rectangle 360 320 392 352 color 0 fill 15132390;
  7477. line 375.9 324.5 375.9 349 color 0 fill 15132390;
  7478. line 363 336.2 388.7 336.2 color 0 fill 15132390;
  7479. spline 369.9 343.1 381.9 329.4 color 16711680 fill 15132390 width 2;
  7480. spline 381.3 330.2 389.9 329.8 color 16711680 fill 15132390 width 2;
  7481. spline 363 343.6 369.9 343.1 color 16711680 fill 15132390 width 2;
  7482. end;
  7483. end;
  7484. implementation eq
  7485. parameters
  7486. real maximum = 25;
  7487. real minimum = -25;
  7488. equations
  7489. output = limit (input, minimum, maximum);
  7490. implementation_end;
  7491. end;
  7492. connections
  7493. Acceleration_int\output -> Splitter3\input;
  7494. Acceleration_limit\output -> Acceleration_int\input;
  7495. PlusMinus1\output -> Position_control\error;
  7496. PlusMinus2\output -> Velocity_control\error;
  7497. Position_control\output -> Velocity_limit\input;
  7498. setpoint -> PlusMinus1\plus;
  7499. Splitter3\output -> PlusMinus2\minus 688 288 432 288;
  7500. Splitter3\output -> Velocity_int\input;
  7501. Splitter4\output -> output;
  7502. Splitter4\output -> PlusMinus1\minus 752 400 240 400;
  7503. Velocity_control\output -> Acceleration_limit\input;
  7504. Velocity_int\output -> Splitter4\input;
  7505. Velocity_limit\output -> PlusMinus2\plus;
  7506. end;
  7507. implementation_end;
  7508. end;
  7509. connections
  7510. COM_body3\p => OneJunction4\p;
  7511. COM_body4\p => OneJunction3\p;
  7512. COM_body5\p => Link8\Pin;
  7513. Ground1\output -> JointC\Hin 1064 600;
  7514. Ground1\p <= JointC\Pout 1032 632;
  7515. inverse_kinematics\angle1 -> Negate1\input;
  7516. inverse_kinematics\angle2 -> stepper_control1\setpoint;
  7517. inverse_kinematics\input <- rectanglepath\output;
  7518. Joint_dynB\output => JointB\Pdiff;
  7519. Joint_dynC\output => JointC\Pdiff;
  7520. Joint_dynD\output => JointD\Pdiff;
  7521. Joint_dynE\output => JointE\Pdiff;
  7522. Joint_dynF\output => JointF\Pdiff;
  7523. JointA\Pdiff <= Joint_dynA\output;
  7524. JointA\Pin <= OneJunction5\p;
  7525. JointA\Pout => Link3\Pin;
  7526. JointB\Hin <- Splitter5\output;
  7527. JointB\Hout -> Link6\Hin;
  7528. JointB\Pin <= Link6\Pout;
  7529. JointB\Pout => Link2\Pin 416 120;
  7530. JointC\Hout -> Splitter6\input;
  7531. JointC\Pin <= Link5\Pout;
  7532. JointD\Hin <- Link7\Hout 648 600;
  7533. JointD\Hout -> Splitter7\input;
  7534. JointD\Pin <= Link9\Pout;
  7535. JointD\Pout => Link7\Pin 616 632;
  7536. JointE\Hout -> Splitter4\input;
  7537. JointE\Pout => Link4\Pin;
  7538. JointF\Hout -> Link10\Hin;
  7539. JointF\Pout => Link1\Pin;
  7540. Link1\Hout -> JointF\Hin;
  7541. Link10\Hout -> Splitter9\input;
  7542. Link10\Pout => JointF\Pin;
  7543. Link2\Pout => OneJunction3\p;
  7544. Link3\Hout -> Splitter8\input;
  7545. Link4\Hout -> JointE\Hin;
  7546. Link5\Hout -> Splitter1\input;
  7547. Link5\Pin <= OneJunction1\p;
  7548. Link6\Hout -> Splitter2\input;
  7549. Link6\Pin <= OneJunction2\p;
  7550. Link8\Hout -> COM_body5\Hin;
  7551. Link8\Pout => Link10\Pin;
  7552. Link9\Hout -> Splitter3\input;
  7553. Link9\Pin <= OneJunction4\p;
  7554. Negate1\output -> stepper_control\setpoint;
  7555. OneJunction1\p <= COM_body2\p;
  7556. OneJunction1\p <= Link7\Pout;
  7557. OneJunction2\p <= COM_body1\p;
  7558. OneJunction2\p <= Link3\Pout;
  7559. OneJunction3\p <= Link1\Pout;
  7560. OneJunction3\p => JointE\Pin;
  7561. OneJunction4\p <= Link4\Pout;
  7562. OneJunction5\p => Ground2\p;
  7563. Splitter1\output -> Body2\input;
  7564. Splitter1\output -> COM_body2\Hin;
  7565. Splitter1\output -> Link7\Hin;
  7566. Splitter2\output -> COM_body1\Hin;
  7567. Splitter2\output -> Link3\Hin;
  7568. Splitter3\output -> COM_body3\Hin;
  7569. Splitter3\output -> Link4\Hin;
  7570. Splitter4\output -> Body4\input;
  7571. Splitter4\output -> COM_body4\Hin;
  7572. Splitter4\output -> Link1\Hin;
  7573. Splitter4\output -> Link2\Hin;
  7574. Splitter5\input <- Link2\Hout;
  7575. Splitter6\output -> Link5\Hin;
  7576. Splitter7\output -> Body3\input;
  7577. Splitter7\output -> Link9\Hin;
  7578. Splitter8\output -> Body1\input;
  7579. Splitter8\output -> JointA\Hin;
  7580. Splitter9\output -> Body5\input;
  7581. Splitter9\output -> Link8\Hin;
  7582. stepper_control\output -> Joint_dynA\angle;
  7583. stepper_control1\output -> Joint_dynD\angle;
  7584. end;
  7585. implementation_end;
  7586. ]]>
  7587. </Sidops>
  7588. </Model>
  7589. <Experiments>
  7590. <DefaultExperiment><![CDATA[Experiment 1]]>
  7591. </DefaultExperiment>
  7592. <Experiment>
  7593. <Name>Experiment 1</Name>
  7594. <CreatedBy></CreatedBy>
  7595. <Info></Info>
  7596. <ExpData>
  7597. <VersionNumber>4.8</VersionNumber>
  7598. <ModelProperties>
  7599. </ModelProperties>
  7600. <Variables>
  7601. <Constants>
  7602. </Constants>
  7603. <Parameters>
  7604. </Parameters>
  7605. <Initials>
  7606. <Variable>
  7607. <Name>COM_body1\InertialTensor\state_initial</Name>
  7608. <Rows>6</Rows>
  7609. <Columns>1</Columns>
  7610. <Value>0 0 0 0 0 0</Value>
  7611. </Variable>
  7612. <Variable>
  7613. <Name>COM_body2\InertialTensor\state_initial</Name>
  7614. <Rows>6</Rows>
  7615. <Columns>1</Columns>
  7616. <Value>0 0 0 0 0 0</Value>
  7617. </Variable>
  7618. <Variable>
  7619. <Name>COM_body3\InertialTensor\state_initial</Name>
  7620. <Rows>6</Rows>
  7621. <Columns>1</Columns>
  7622. <Value>0 0 0 0 0 0</Value>
  7623. </Variable>
  7624. <Variable>
  7625. <Name>COM_body4\InertialTensor\state_initial</Name>
  7626. <Rows>6</Rows>
  7627. <Columns>1</Columns>
  7628. <Value>0 0 0 0 0 0</Value>
  7629. </Variable>
  7630. <Variable>
  7631. <Name>COM_body5\InertialTensor\state_initial</Name>
  7632. <Rows>6</Rows>
  7633. <Columns>1</Columns>
  7634. <Value>0 0 0 0 0 0</Value>
  7635. </Variable>
  7636. <Variable>
  7637. <Name>JointA\Hmatrix\p_initial</Name>
  7638. <Rows>3</Rows>
  7639. <Columns>1</Columns>
  7640. <Value>0 0 0</Value>
  7641. </Variable>
  7642. <Variable>
  7643. <Name>JointB\Hmatrix\p_initial</Name>
  7644. <Rows>3</Rows>
  7645. <Columns>1</Columns>
  7646. <Value>0 0 0</Value>
  7647. </Variable>
  7648. <Variable>
  7649. <Name>JointC\Hmatrix\p_initial</Name>
  7650. <Rows>3</Rows>
  7651. <Columns>1</Columns>
  7652. <Value>0 0 0</Value>
  7653. </Variable>
  7654. <Variable>
  7655. <Name>JointD\Hmatrix\p_initial</Name>
  7656. <Rows>3</Rows>
  7657. <Columns>1</Columns>
  7658. <Value>0 0 0</Value>
  7659. </Variable>
  7660. <Variable>
  7661. <Name>JointE\Hmatrix\p_initial</Name>
  7662. <Rows>3</Rows>
  7663. <Columns>1</Columns>
  7664. <Value>0 0 0</Value>
  7665. </Variable>
  7666. <Variable>
  7667. <Name>JointF\Hmatrix\p_initial</Name>
  7668. <Rows>3</Rows>
  7669. <Columns>1</Columns>
  7670. <Value>0 0 0</Value>
  7671. </Variable>
  7672. <Variable>
  7673. <Name>Joint_dynA\C1\state_initial</Name>
  7674. <Rows>3</Rows>
  7675. <Columns>1</Columns>
  7676. <Value>0 0 0</Value>
  7677. </Variable>
  7678. <Variable>
  7679. <Name>Joint_dynA\C4\state_initial</Name>
  7680. <Rows>2</Rows>
  7681. <Columns>1</Columns>
  7682. <Value>0 0</Value>
  7683. </Variable>
  7684. <Variable>
  7685. <Name>Joint_dynA\C\state_initial</Name>
  7686. <Value>0</Value>
  7687. </Variable>
  7688. <Variable>
  7689. <Name>Joint_dynA\stepper_model\I1\state_initial</Name>
  7690. <Value>0</Value>
  7691. </Variable>
  7692. <Variable>
  7693. <Name>Joint_dynA\stepper_model\I2\state_initial</Name>
  7694. <Value>0</Value>
  7695. </Variable>
  7696. <Variable>
  7697. <Name>Joint_dynA\stepper_model\I\state_initial</Name>
  7698. <Value>0</Value>
  7699. </Variable>
  7700. <Variable>
  7701. <Name>Joint_dynB\C1\state_initial</Name>
  7702. <Rows>3</Rows>
  7703. <Columns>1</Columns>
  7704. <Value>0 0 0</Value>
  7705. </Variable>
  7706. <Variable>
  7707. <Name>Joint_dynB\C4\state_initial</Name>
  7708. <Rows>2</Rows>
  7709. <Columns>1</Columns>
  7710. <Value>0 0</Value>
  7711. </Variable>
  7712. <Variable>
  7713. <Name>Joint_dynC\C1\state_initial</Name>
  7714. <Rows>3</Rows>
  7715. <Columns>1</Columns>
  7716. <Value>0 0 0</Value>
  7717. </Variable>
  7718. <Variable>
  7719. <Name>Joint_dynC\C4\state_initial</Name>
  7720. <Rows>2</Rows>
  7721. <Columns>1</Columns>
  7722. <Value>0 0</Value>
  7723. </Variable>
  7724. <Variable>
  7725. <Name>Joint_dynD\C1\state_initial</Name>
  7726. <Rows>3</Rows>
  7727. <Columns>1</Columns>
  7728. <Value>0 0 0</Value>
  7729. </Variable>
  7730. <Variable>
  7731. <Name>Joint_dynD\C4\state_initial</Name>
  7732. <Rows>2</Rows>
  7733. <Columns>1</Columns>
  7734. <Value>0 0</Value>
  7735. </Variable>
  7736. <Variable>
  7737. <Name>Joint_dynD\C\state_initial</Name>
  7738. <Value>0</Value>
  7739. </Variable>
  7740. <Variable>
  7741. <Name>Joint_dynD\stepper_model\I1\state_initial</Name>
  7742. <Value>0</Value>
  7743. </Variable>
  7744. <Variable>
  7745. <Name>Joint_dynD\stepper_model\I2\state_initial</Name>
  7746. <Value>0</Value>
  7747. </Variable>
  7748. <Variable>
  7749. <Name>Joint_dynD\stepper_model\I\state_initial</Name>
  7750. <Value>0</Value>
  7751. </Variable>
  7752. <Variable>
  7753. <Name>Joint_dynD\stepper_model\RotorAngle\angle_initial</Name>
  7754. <Unit>rad</Unit>
  7755. <Value>0</Value>
  7756. </Variable>
  7757. <Variable>
  7758. <Name>Joint_dynE\C1\state_initial</Name>
  7759. <Rows>3</Rows>
  7760. <Columns>1</Columns>
  7761. <Value>0 0 0</Value>
  7762. </Variable>
  7763. <Variable>
  7764. <Name>Joint_dynE\C4\state_initial</Name>
  7765. <Rows>2</Rows>
  7766. <Columns>1</Columns>
  7767. <Value>0 0</Value>
  7768. </Variable>
  7769. <Variable>
  7770. <Name>Joint_dynF\C1\state_initial</Name>
  7771. <Rows>3</Rows>
  7772. <Columns>1</Columns>
  7773. <Value>0 0 0</Value>
  7774. </Variable>
  7775. <Variable>
  7776. <Name>Joint_dynF\C4\state_initial</Name>
  7777. <Rows>2</Rows>
  7778. <Columns>1</Columns>
  7779. <Value>0 0</Value>
  7780. </Variable>
  7781. <Variable>
  7782. <Name>Joint_dynF\C\state_initial</Name>
  7783. <Value>0</Value>
  7784. </Variable>
  7785. <Variable>
  7786. <Name>stepper_control1\Position_control\state_initial</Name>
  7787. <Value>0</Value>
  7788. </Variable>
  7789. <Variable>
  7790. <Name>stepper_control1\Velocity_control\state_initial</Name>
  7791. <Value>0</Value>
  7792. </Variable>
  7793. <Variable>
  7794. <Name>stepper_control\Position_control\state_initial</Name>
  7795. <Value>0</Value>
  7796. </Variable>
  7797. <Variable>
  7798. <Name>stepper_control\Velocity_control\state_initial</Name>
  7799. <Value>0</Value>
  7800. </Variable>
  7801. </Initials>
  7802. </Variables>
  7803. <PlotSpecs>
  7804. <VarNames>
  7805. <VarName>time</VarName>
  7806. <VarName>Body1\position[1]</VarName>
  7807. <VarName>Body1\position[2]</VarName>
  7808. <VarName>Body1\position[3]</VarName>
  7809. <VarName>Body1\R[1,3]</VarName>
  7810. <VarName>Body1\R[2,3]</VarName>
  7811. <VarName>Body1\R[3,3]</VarName>
  7812. <VarName>Body1\R[1,2]</VarName>
  7813. <VarName>Body1\R[2,2]</VarName>
  7814. <VarName>Body1\R[3,2]</VarName>
  7815. <VarName>Body1\dimension[1]</VarName>
  7816. <VarName>Body1\dimension[2]</VarName>
  7817. <VarName>Body1\dimension[3]</VarName>
  7818. <VarName>Body2\dimension[1]</VarName>
  7819. <VarName>Body2\dimension[2]</VarName>
  7820. <VarName>Body2\dimension[3]</VarName>
  7821. <VarName>Body2\position[1]</VarName>
  7822. <VarName>Body2\position[2]</VarName>
  7823. <VarName>Body2\position[3]</VarName>
  7824. <VarName>Body2\R[1,3]</VarName>
  7825. <VarName>Body2\R[2,3]</VarName>
  7826. <VarName>Body2\R[3,3]</VarName>
  7827. <VarName>Body2\R[1,2]</VarName>
  7828. <VarName>Body2\R[2,2]</VarName>
  7829. <VarName>Body2\R[3,2]</VarName>
  7830. <VarName>Body3\dimension[1]</VarName>
  7831. <VarName>Body3\dimension[2]</VarName>
  7832. <VarName>Body3\dimension[3]</VarName>
  7833. <VarName>Body3\position[1]</VarName>
  7834. <VarName>Body3\position[2]</VarName>
  7835. <VarName>Body3\position[3]</VarName>
  7836. <VarName>Body3\R[1,3]</VarName>
  7837. <VarName>Body3\R[2,3]</VarName>
  7838. <VarName>Body3\R[3,3]</VarName>
  7839. <VarName>Body3\R[1,2]</VarName>
  7840. <VarName>Body3\R[2,2]</VarName>
  7841. <VarName>Body3\R[3,2]</VarName>
  7842. <VarName>Body4\dimension[1]</VarName>
  7843. <VarName>Body4\dimension[2]</VarName>
  7844. <VarName>Body4\dimension[3]</VarName>
  7845. <VarName>Body4\R[1,3]</VarName>
  7846. <VarName>Body4\R[2,3]</VarName>
  7847. <VarName>Body4\R[3,3]</VarName>
  7848. <VarName>Body4\R[1,2]</VarName>
  7849. <VarName>Body4\R[2,2]</VarName>
  7850. <VarName>Body4\R[3,2]</VarName>
  7851. <VarName>Body4\position[1]</VarName>
  7852. <VarName>Body4\position[2]</VarName>
  7853. <VarName>Body4\position[3]</VarName>
  7854. <VarName>Body5\dimension[1]</VarName>
  7855. <VarName>Body5\dimension[2]</VarName>
  7856. <VarName>Body5\dimension[3]</VarName>
  7857. <VarName>Body5\position[1]</VarName>
  7858. <VarName>Body5\position[2]</VarName>
  7859. <VarName>Body5\position[3]</VarName>
  7860. <VarName>Body5\R[1,3]</VarName>
  7861. <VarName>Body5\R[2,3]</VarName>
  7862. <VarName>Body5\R[3,3]</VarName>
  7863. <VarName>Body5\R[1,2]</VarName>
  7864. <VarName>Body5\R[2,2]</VarName>
  7865. <VarName>Body5\R[3,2]</VarName>
  7866. <VarName>stepper_control\setpoint</VarName>
  7867. <VarName>Joint_dynA\stepper_model\angle</VarName>
  7868. <VarName>Joint_dynA\stepper_model\RotorAngle\angle</VarName>
  7869. <VarName>stepper_control1\setpoint</VarName>
  7870. <VarName>Joint_dynD\angle</VarName>
  7871. <VarName>Joint_dynD\stepper_model\RotorAngle\angle</VarName>
  7872. </VarNames>
  7873. <Plots>
  7874. <Plot>
  7875. <PlotType>GraphPlot</PlotType>
  7876. <BasePlot>
  7877. <PlotId>1</PlotId>
  7878. <UseWindowsBGColor>false</UseWindowsBGColor>
  7879. <BGColor>16777215</BGColor>
  7880. <PlotIsVisible>true</PlotIsVisible>
  7881. </BasePlot>
  7882. <Grid>
  7883. <DrawGrid>true</DrawGrid>
  7884. <GridColor>15780518</GridColor>
  7885. <GridBorderLineColor>12624260</GridBorderLineColor>
  7886. <GridZeroLineColor>0</GridZeroLineColor>
  7887. <XTicks>10</XTicks>
  7888. <YTicks>10</YTicks>
  7889. <ZTicks>10</ZTicks>
  7890. <Use3DLook>false</Use3DLook>
  7891. </Grid>
  7892. <PlotBGColor>16777215</PlotBGColor>
  7893. <ShowPlotTitle>true</ShowPlotTitle>
  7894. <TitlePosition>1</TitlePosition>
  7895. <PlotTitle>StepperA</PlotTitle>
  7896. <ShowXValues>true</ShowXValues>
  7897. <Fonts>
  7898. <TitleFont>
  7899. <Name>Arial</Name>
  7900. <Height>12</Height>
  7901. <PitchFamily>34</PitchFamily>
  7902. <Weight>400</Weight>
  7903. <Italic>0</Italic>
  7904. <UnderLine>0</UnderLine>
  7905. <StrikeOut>0</StrikeOut>
  7906. <Color>0</Color>
  7907. </TitleFont>
  7908. <LabelFont>
  7909. <Name>Arial</Name>
  7910. <Height>12</Height>
  7911. <PitchFamily>34</PitchFamily>
  7912. <Weight>400</Weight>
  7913. <Italic>0</Italic>
  7914. <UnderLine>0</UnderLine>
  7915. <StrikeOut>0</StrikeOut>
  7916. <Color>0</Color>
  7917. </LabelFont>
  7918. <ValuesFont>
  7919. <Name>Arial</Name>
  7920. <Height>10</Height>
  7921. <PitchFamily>34</PitchFamily>
  7922. <Weight>400</Weight>
  7923. <Italic>0</Italic>
  7924. <UnderLine>0</UnderLine>
  7925. <StrikeOut>0</StrikeOut>
  7926. <Color>0</Color>
  7927. </ValuesFont>
  7928. <LegendFont>
  7929. <Name>Arial</Name>
  7930. <Height>12</Height>
  7931. <PitchFamily>34</PitchFamily>
  7932. <Weight>400</Weight>
  7933. <Italic>0</Italic>
  7934. <UnderLine>0</UnderLine>
  7935. <StrikeOut>0</StrikeOut>
  7936. <Color>0</Color>
  7937. </LegendFont>
  7938. </Fonts>
  7939. <SharedXAxis>true</SharedXAxis>
  7940. <SharedYAxis>true</SharedYAxis>
  7941. <SharedZAxis>false</SharedZAxis>
  7942. <XAxes>
  7943. <Axis>
  7944. <Minimum>0.0</Minimum>
  7945. <Maximum>5.823613498640715</Maximum>
  7946. <Linear>true</Linear>
  7947. <Scaling>3</Scaling>
  7948. <Label>time</Label>
  7949. </Axis>
  7950. </XAxes>
  7951. <YAxes>
  7952. <Axis>
  7953. <Minimum>-2.8</Minimum>
  7954. <Maximum>-0.8</Maximum>
  7955. <Linear>true</Linear>
  7956. <Scaling>2</Scaling>
  7957. <Label>setpoint</Label>
  7958. </Axis>
  7959. <Axis>
  7960. <Minimum>-4.08637499341765</Minimum>
  7961. <Maximum>0.0</Maximum>
  7962. <Linear>true</Linear>
  7963. <Scaling>2</Scaling>
  7964. <Label>angle</Label>
  7965. </Axis>
  7966. <Axis>
  7967. <Minimum>-4.08637499341765</Minimum>
  7968. <Maximum>0.0</Maximum>
  7969. <Linear>true</Linear>
  7970. <Scaling>2</Scaling>
  7971. <Label>angle</Label>
  7972. </Axis>
  7973. </YAxes>
  7974. <ZAxes>
  7975. </ZAxes>
  7976. <Curves>
  7977. <Curve>
  7978. <LineColor>3355111</LineColor>
  7979. <LineStyle>1</LineStyle>
  7980. <TickColor>3355111</TickColor>
  7981. <TickStyle>0</TickStyle>
  7982. <CurveVisible>true</CurveVisible>
  7983. <PixelThresshold>1</PixelThresshold>
  7984. <LineThickness>1</LineThickness>
  7985. <LineOrder>1</LineOrder>
  7986. <ShowYValues>true</ShowYValues>
  7987. <XCurveData>
  7988. <ShowUnit>true</ShowUnit>
  7989. <VarName>time</VarName>
  7990. </XCurveData>
  7991. <YCurveData>
  7992. <ShowUnit>true</ShowUnit>
  7993. <VarName>stepper_control\setpoint</VarName>
  7994. </YCurveData>
  7995. </Curve>
  7996. <Curve>
  7997. <LineColor>6076255</LineColor>
  7998. <LineStyle>1</LineStyle>
  7999. <TickColor>6076255</TickColor>
  8000. <TickStyle>0</TickStyle>
  8001. <CurveVisible>true</CurveVisible>
  8002. <PixelThresshold>1</PixelThresshold>
  8003. <LineThickness>1</LineThickness>
  8004. <LineOrder>1</LineOrder>
  8005. <ShowYValues>true</ShowYValues>
  8006. <XCurveData>
  8007. <ShowUnit>true</ShowUnit>
  8008. <VarName>time</VarName>
  8009. </XCurveData>
  8010. <YCurveData>
  8011. <ShowUnit>true</ShowUnit>
  8012. <VarName>Joint_dynA\stepper_model\angle</VarName>
  8013. </YCurveData>
  8014. </Curve>
  8015. <Curve>
  8016. <LineColor>12553035</LineColor>
  8017. <LineStyle>1</LineStyle>
  8018. <TickColor>12553035</TickColor>
  8019. <TickStyle>0</TickStyle>
  8020. <CurveVisible>true</CurveVisible>
  8021. <PixelThresshold>1</PixelThresshold>
  8022. <LineThickness>1</LineThickness>
  8023. <LineOrder>1</LineOrder>
  8024. <ShowYValues>true</ShowYValues>
  8025. <XCurveData>
  8026. <ShowUnit>true</ShowUnit>
  8027. <VarName>time</VarName>
  8028. </XCurveData>
  8029. <YCurveData>
  8030. <ShowUnit>true</ShowUnit>
  8031. <VarName>Joint_dynA\stepper_model\RotorAngle\angle</VarName>
  8032. </YCurveData>
  8033. </Curve>
  8034. </Curves>
  8035. <Legenda>
  8036. <ShowLegenda>true</ShowLegenda>
  8037. <BorderPenColor>0</BorderPenColor>
  8038. <BackgroundColor>16777215</BackgroundColor>
  8039. </Legenda>
  8040. </Plot>
  8041. <Plot>
  8042. <PlotType>D3DPlot</PlotType>
  8043. <BasePlot>
  8044. <PlotId>2</PlotId>
  8045. <UseWindowsBGColor>false</UseWindowsBGColor>
  8046. <BGColor>16777215</BGColor>
  8047. <PlotIsVisible>true</PlotIsVisible>
  8048. </BasePlot>
  8049. <PlotTitle>3D Animation</PlotTitle>
  8050. <RenderQuality>137</RenderQuality>
  8051. <ShowGrid>true</ShowGrid>
  8052. <ShowFPS>false</ShowFPS>
  8053. <BackgroundColor>4294967295</BackgroundColor>
  8054. <SceneBackgroundImage>Gradients\BlueWhite.png</SceneBackgroundImage>
  8055. <ApplyTextureBackground>true</ApplyTextureBackground>
  8056. <FrameScale>1.0</FrameScale>
  8057. <FrameThickness>1.0</FrameThickness>
  8058. <MainFrame>
  8059. <Frame>
  8060. <ScaleValue>
  8061. <X>
  8062. <Value>1</Value>
  8063. </X>
  8064. <Y>
  8065. <Value>1</Value>
  8066. </Y>
  8067. <Z>
  8068. <Value>1</Value>
  8069. </Z>
  8070. </ScaleValue>
  8071. <ShowReferenceFrame>true</ShowReferenceFrame>
  8072. <Name>Reference Frame</Name>
  8073. <Position>
  8074. </Position>
  8075. <Orientation>
  8076. <Angles>
  8077. </Angles>
  8078. <OrientationType>Bryant</OrientationType>
  8079. </Orientation>
  8080. <LockX>false</LockX>
  8081. <LockY>false</LockY>
  8082. <LockZ>false</LockZ>
  8083. <LockXPitch>false</LockXPitch>
  8084. <LockYYaw>false</LockYYaw>
  8085. <LockZRoll>false</LockZRoll>
  8086. <Childs>
  8087. <Frame>
  8088. <ScaleValue>
  8089. <X>
  8090. <Value>1</Value>
  8091. </X>
  8092. <Y>
  8093. <Value>1</Value>
  8094. </Y>
  8095. <Z>
  8096. <Value>1</Value>
  8097. </Z>
  8098. </ScaleValue>
  8099. <ShowReferenceFrame>false</ShowReferenceFrame>
  8100. <Name>Default Lights and Cameras</Name>
  8101. <Position>
  8102. </Position>
  8103. <Orientation>
  8104. <Angles>
  8105. </Angles>
  8106. <OrientationType>Bryant</OrientationType>
  8107. </Orientation>
  8108. <LockX>false</LockX>
  8109. <LockY>false</LockY>
  8110. <LockZ>false</LockZ>
  8111. <LockXPitch>false</LockXPitch>
  8112. <LockYYaw>false</LockYYaw>
  8113. <LockZRoll>false</LockZRoll>
  8114. <Childs>
  8115. <Light>
  8116. <ShowReferenceFrame>false</ShowReferenceFrame>
  8117. <Name>Ambient</Name>
  8118. <Position>
  8119. </Position>
  8120. <Orientation>
  8121. <ZAxis>
  8122. <Z>
  8123. <Value>1</Value>
  8124. </Z>
  8125. </ZAxis>
  8126. <YAxis>
  8127. <Y>
  8128. <Value>1</Value>
  8129. </Y>
  8130. </YAxis>
  8131. <OrientationType>Direct3D</OrientationType>
  8132. </Orientation>
  8133. <LockX>false</LockX>
  8134. <LockY>false</LockY>
  8135. <LockZ>false</LockZ>
  8136. <LockXPitch>false</LockXPitch>
  8137. <LockYYaw>false</LockYYaw>
  8138. <LockZRoll>false</LockZRoll>
  8139. <Childs>
  8140. </Childs>
  8141. <LightType>0</LightType>
  8142. <LightColor>
  8143. <Color>
  8144. <X>
  8145. <Value>0.3</Value>
  8146. </X>
  8147. <Y>
  8148. <Value>0.3</Value>
  8149. </Y>
  8150. <Z>
  8151. <Value>0.3</Value>
  8152. </Z>
  8153. </Color>
  8154. <Offset>
  8155. </Offset>
  8156. <Multipliers>
  8157. <X>
  8158. <Value>1</Value>
  8159. </X>
  8160. <Y>
  8161. <Value>1</Value>
  8162. </Y>
  8163. <Z>
  8164. <Value>1</Value>
  8165. </Z>
  8166. </Multipliers>
  8167. <Direct3DColorRange>true</Direct3DColorRange>
  8168. </LightColor>
  8169. <AmbientLight>
  8170. <Color>
  8171. <X>
  8172. <Value>0.3</Value>
  8173. </X>
  8174. <Y>
  8175. <Value>0.3</Value>
  8176. </Y>
  8177. <Z>
  8178. <Value>0.3</Value>
  8179. </Z>
  8180. </Color>
  8181. <Offset>
  8182. </Offset>
  8183. <Multipliers>
  8184. <X>
  8185. <Value>1</Value>
  8186. </X>
  8187. <Y>
  8188. <Value>1</Value>
  8189. </Y>
  8190. <Z>
  8191. <Value>1</Value>
  8192. </Z>
  8193. </Multipliers>
  8194. <Direct3DColorRange>true</Direct3DColorRange>
  8195. </AmbientLight>
  8196. <AmbientOn>true</AmbientOn>
  8197. <DiffuseOn>false</DiffuseOn>
  8198. <SpecularOn>false</SpecularOn>
  8199. </Light>
  8200. <Light>
  8201. <ShowReferenceFrame>false</ShowReferenceFrame>
  8202. <Name>Parallel</Name>
  8203. <Position>
  8204. <X>
  8205. <Value>-3</Value>
  8206. </X>
  8207. <Y>
  8208. <Value>5</Value>
  8209. </Y>
  8210. <Z>
  8211. <Value>3</Value>
  8212. </Z>
  8213. </Position>
  8214. <Orientation>
  8215. <ZAxis>
  8216. <X>
  8217. <Value>0.457495710997814</Value>
  8218. </X>
  8219. <Y>
  8220. <Value>-0.762492851663023</Value>
  8221. </Y>
  8222. <Z>
  8223. <Value>-0.457495710997814</Value>
  8224. </Z>
  8225. </ZAxis>
  8226. <YAxis>
  8227. <X>
  8228. <Value>0.235379601434674</Value>
  8229. </X>
  8230. <Y>
  8231. <Value>-0.392299335724456</Value>
  8232. </Y>
  8233. <Z>
  8234. <Value>0.889211827642101</Value>
  8235. </Z>
  8236. </YAxis>
  8237. <OrientationType>Direct3D</OrientationType>
  8238. </Orientation>
  8239. <LockX>false</LockX>
  8240. <LockY>false</LockY>
  8241. <LockZ>false</LockZ>
  8242. <LockXPitch>false</LockXPitch>
  8243. <LockYYaw>false</LockYYaw>
  8244. <LockZRoll>false</LockZRoll>
  8245. <Childs>
  8246. </Childs>
  8247. <LightType>3</LightType>
  8248. <LightColor>
  8249. <Color>
  8250. <X>
  8251. <Value>0.5</Value>
  8252. </X>
  8253. <Y>
  8254. <Value>0.5</Value>
  8255. </Y>
  8256. <Z>
  8257. <Value>0.5</Value>
  8258. </Z>
  8259. </Color>
  8260. <Offset>
  8261. </Offset>
  8262. <Multipliers>
  8263. <X>
  8264. <Value>1</Value>
  8265. </X>
  8266. <Y>
  8267. <Value>1</Value>
  8268. </Y>
  8269. <Z>
  8270. <Value>1</Value>
  8271. </Z>
  8272. </Multipliers>
  8273. <Direct3DColorRange>true</Direct3DColorRange>
  8274. </LightColor>
  8275. <Attenuation>
  8276. <Constant>
  8277. <Value>1.0</Value>
  8278. </Constant>
  8279. <Linear>
  8280. <Value>0.0</Value>
  8281. </Linear>
  8282. <Quadratic>
  8283. <Value>0.0</Value>
  8284. </Quadratic>
  8285. </Attenuation>
  8286. <DiffuseLight>
  8287. <Color>
  8288. <X>
  8289. <Value>0.5</Value>
  8290. </X>
  8291. <Y>
  8292. <Value>0.5</Value>
  8293. </Y>
  8294. <Z>
  8295. <Value>0.5</Value>
  8296. </Z>
  8297. </Color>
  8298. <Offset>
  8299. </Offset>
  8300. <Multipliers>
  8301. <X>
  8302. <Value>1</Value>
  8303. </X>
  8304. <Y>
  8305. <Value>1</Value>
  8306. </Y>
  8307. <Z>
  8308. <Value>1</Value>
  8309. </Z>
  8310. </Multipliers>
  8311. <Direct3DColorRange>true</Direct3DColorRange>
  8312. </DiffuseLight>
  8313. <SpecularLight>
  8314. <Color>
  8315. <X>
  8316. <Value>0.5</Value>
  8317. </X>
  8318. <Y>
  8319. <Value>0.5</Value>
  8320. </Y>
  8321. <Z>
  8322. <Value>0.5</Value>
  8323. </Z>
  8324. </Color>
  8325. <Offset>
  8326. </Offset>
  8327. <Multipliers>
  8328. <X>
  8329. <Value>1</Value>
  8330. </X>
  8331. <Y>
  8332. <Value>1</Value>
  8333. </Y>
  8334. <Z>
  8335. <Value>1</Value>
  8336. </Z>
  8337. </Multipliers>
  8338. <Direct3DColorRange>true</Direct3DColorRange>
  8339. </SpecularLight>
  8340. <AmbientOn>false</AmbientOn>
  8341. <DiffuseOn>true</DiffuseOn>
  8342. <SpecularOn>true</SpecularOn>
  8343. </Light>
  8344. <Light>
  8345. <ShowReferenceFrame>false</ShowReferenceFrame>
  8346. <Name>Spot Light 1</Name>
  8347. <Position>
  8348. <X>
  8349. <Value>-3</Value>
  8350. </X>
  8351. <Y>
  8352. <Value>-5</Value>
  8353. </Y>
  8354. <Z>
  8355. <Value>1</Value>
  8356. </Z>
  8357. </Position>
  8358. <Orientation>
  8359. <ZAxis>
  8360. <X>
  8361. <Value>0.50709255283711</Value>
  8362. </X>
  8363. <Y>
  8364. <Value>0.845154254728517</Value>
  8365. </Y>
  8366. <Z>
  8367. <Value>-0.169030850945703</Value>
  8368. </Z>
  8369. </ZAxis>
  8370. <YAxis>
  8371. <X>
  8372. <Value>0.0869656553478673</Value>
  8373. </X>
  8374. <Y>
  8375. <Value>0.144942758913112</Value>
  8376. </Y>
  8377. <Z>
  8378. <Value>0.985610760609162</Value>
  8379. </Z>
  8380. </YAxis>
  8381. <OrientationType>Direct3D</OrientationType>
  8382. </Orientation>
  8383. <LockX>false</LockX>
  8384. <LockY>false</LockY>
  8385. <LockZ>false</LockZ>
  8386. <LockXPitch>false</LockXPitch>
  8387. <LockYYaw>false</LockYYaw>
  8388. <LockZRoll>false</LockZRoll>
  8389. <Childs>
  8390. </Childs>
  8391. <LightType>2</LightType>
  8392. <LightColor>
  8393. <Color>
  8394. <X>
  8395. <Value>0.5</Value>
  8396. </X>
  8397. <Y>
  8398. <Value>0.5</Value>
  8399. </Y>
  8400. <Z>
  8401. <Value>0.5</Value>
  8402. </Z>
  8403. </Color>
  8404. <Offset>
  8405. </Offset>
  8406. <Multipliers>
  8407. <X>
  8408. <Value>1</Value>
  8409. </X>
  8410. <Y>
  8411. <Value>1</Value>
  8412. </Y>
  8413. <Z>
  8414. <Value>1</Value>
  8415. </Z>
  8416. </Multipliers>
  8417. <Direct3DColorRange>true</Direct3DColorRange>
  8418. </LightColor>
  8419. <Attenuation>
  8420. <Constant>
  8421. <Value>1.0</Value>
  8422. </Constant>
  8423. <Linear>
  8424. <Value>0.05</Value>
  8425. </Linear>
  8426. <Quadratic>
  8427. <Value>0.05</Value>
  8428. </Quadratic>
  8429. </Attenuation>
  8430. <Umbra>
  8431. <Value>1.0471975511965976</Value>
  8432. </Umbra>
  8433. <Penumbra>
  8434. <Value>1.0471975511965976</Value>
  8435. </Penumbra>
  8436. <SpotExponent>0.0</SpotExponent>
  8437. <DiffuseLight>
  8438. <Color>
  8439. <X>
  8440. <Value>0.5</Value>
  8441. </X>
  8442. <Y>
  8443. <Value>0.5</Value>
  8444. </Y>
  8445. <Z>
  8446. <Value>0.5</Value>
  8447. </Z>
  8448. </Color>
  8449. <Offset>
  8450. </Offset>
  8451. <Multipliers>
  8452. <X>
  8453. <Value>1</Value>
  8454. </X>
  8455. <Y>
  8456. <Value>1</Value>
  8457. </Y>
  8458. <Z>
  8459. <Value>1</Value>
  8460. </Z>
  8461. </Multipliers>
  8462. <Direct3DColorRange>true</Direct3DColorRange>
  8463. </DiffuseLight>
  8464. <SpecularLight>
  8465. <Color>
  8466. <X>
  8467. <Value>0.5</Value>
  8468. </X>
  8469. <Y>
  8470. <Value>0.5</Value>
  8471. </Y>
  8472. <Z>
  8473. <Value>0.5</Value>
  8474. </Z>
  8475. </Color>
  8476. <Offset>
  8477. </Offset>
  8478. <Multipliers>
  8479. <X>
  8480. <Value>1</Value>
  8481. </X>
  8482. <Y>
  8483. <Value>1</Value>
  8484. </Y>
  8485. <Z>
  8486. <Value>1</Value>
  8487. </Z>
  8488. </Multipliers>
  8489. <Direct3DColorRange>true</Direct3DColorRange>
  8490. </SpecularLight>
  8491. <AmbientOn>false</AmbientOn>
  8492. <DiffuseOn>true</DiffuseOn>
  8493. <SpecularOn>true</SpecularOn>
  8494. </Light>
  8495. <Light>
  8496. <ShowReferenceFrame>false</ShowReferenceFrame>
  8497. <Name>Spot Light 2</Name>
  8498. <Position>
  8499. <X>
  8500. <Value>2</Value>
  8501. </X>
  8502. <Y>
  8503. <Value>-3</Value>
  8504. </Y>
  8505. <Z>
  8506. <Value>-1</Value>
  8507. </Z>
  8508. </Position>
  8509. <Orientation>
  8510. <ZAxis>
  8511. <X>
  8512. <Value>-0.534522483824849</Value>
  8513. </X>
  8514. <Y>
  8515. <Value>0.801783725737273</Value>
  8516. </Y>
  8517. <Z>
  8518. <Value>0.267261241912424</Value>
  8519. </Z>
  8520. </ZAxis>
  8521. <YAxis>
  8522. <X>
  8523. <Value>0.14824986333222</Value>
  8524. </X>
  8525. <Y>
  8526. <Value>-0.22237479499833</Value>
  8527. </Y>
  8528. <Z>
  8529. <Value>0.963624111659432</Value>
  8530. </Z>
  8531. </YAxis>
  8532. <OrientationType>Direct3D</OrientationType>
  8533. </Orientation>
  8534. <LockX>false</LockX>
  8535. <LockY>false</LockY>
  8536. <LockZ>false</LockZ>
  8537. <LockXPitch>false</LockXPitch>
  8538. <LockYYaw>false</LockYYaw>
  8539. <LockZRoll>false</LockZRoll>
  8540. <Childs>
  8541. </Childs>
  8542. <LightType>2</LightType>
  8543. <LightColor>
  8544. <Color>
  8545. <X>
  8546. <Value>1</Value>
  8547. </X>
  8548. <Y>
  8549. <Value>1</Value>
  8550. </Y>
  8551. <Z>
  8552. <Value>1</Value>
  8553. </Z>
  8554. </Color>
  8555. <Offset>
  8556. </Offset>
  8557. <Multipliers>
  8558. <X>
  8559. <Value>1</Value>
  8560. </X>
  8561. <Y>
  8562. <Value>1</Value>
  8563. </Y>
  8564. <Z>
  8565. <Value>1</Value>
  8566. </Z>
  8567. </Multipliers>
  8568. <Direct3DColorRange>true</Direct3DColorRange>
  8569. </LightColor>
  8570. <Attenuation>
  8571. <Constant>
  8572. <Value>1.0</Value>
  8573. </Constant>
  8574. <Linear>
  8575. <Value>0.05</Value>
  8576. </Linear>
  8577. <Quadratic>
  8578. <Value>0.05</Value>
  8579. </Quadratic>
  8580. </Attenuation>
  8581. <Umbra>
  8582. <Value>1.5707963267948966</Value>
  8583. </Umbra>
  8584. <Penumbra>
  8585. <Value>1.5707963267948966</Value>
  8586. </Penumbra>
  8587. <SpotExponent>0.0</SpotExponent>
  8588. <DiffuseLight>
  8589. <Color>
  8590. <X>
  8591. <Value>1</Value>
  8592. </X>
  8593. <Y>
  8594. <Value>1</Value>
  8595. </Y>
  8596. <Z>
  8597. <Value>1</Value>
  8598. </Z>
  8599. </Color>
  8600. <Offset>
  8601. </Offset>
  8602. <Multipliers>
  8603. <X>
  8604. <Value>1</Value>
  8605. </X>
  8606. <Y>
  8607. <Value>1</Value>
  8608. </Y>
  8609. <Z>
  8610. <Value>1</Value>
  8611. </Z>
  8612. </Multipliers>
  8613. <Direct3DColorRange>true</Direct3DColorRange>
  8614. </DiffuseLight>
  8615. <SpecularLight>
  8616. <Color>
  8617. <X>
  8618. <Value>0.5</Value>
  8619. </X>
  8620. <Y>
  8621. <Value>0.5</Value>
  8622. </Y>
  8623. <Z>
  8624. <Value>0.5</Value>
  8625. </Z>
  8626. </Color>
  8627. <Offset>
  8628. </Offset>
  8629. <Multipliers>
  8630. <X>
  8631. <Value>1</Value>
  8632. </X>
  8633. <Y>
  8634. <Value>1</Value>
  8635. </Y>
  8636. <Z>
  8637. <Value>1</Value>
  8638. </Z>
  8639. </Multipliers>
  8640. <Direct3DColorRange>true</Direct3DColorRange>
  8641. </SpecularLight>
  8642. <AmbientOn>false</AmbientOn>
  8643. <DiffuseOn>true</DiffuseOn>
  8644. <SpecularOn>true</SpecularOn>
  8645. </Light>
  8646. <Camera>
  8647. <ShowReferenceFrame>false</ShowReferenceFrame>
  8648. <Name>Camera Looking at Origin</Name>
  8649. <Position>
  8650. <X>
  8651. <Value>0.159539928254181</Value>
  8652. </X>
  8653. <Y>
  8654. <Value>0.0210195694587388</Value>
  8655. </Y>
  8656. <Z>
  8657. <Value>0.0764390770931449</Value>
  8658. </Z>
  8659. </Position>
  8660. <Orientation>
  8661. <ZAxis>
  8662. <X>
  8663. <Value>-0.966527083347675</Value>
  8664. </X>
  8665. <Y>
  8666. <Value>-0.12682364469163</Value>
  8667. </Y>
  8668. <Z>
  8669. <Value>-0.223027263585795</Value>
  8670. </Z>
  8671. </ZAxis>
  8672. <YAxis>
  8673. <X>
  8674. <Value>-0.221131710235122</Value>
  8675. </X>
  8676. <Y>
  8677. <Value>-0.0290159788919472</Value>
  8678. </Y>
  8679. <Z>
  8680. <Value>0.974812207400704</Value>
  8681. </Z>
  8682. </YAxis>
  8683. <OrientationType>Direct3D</OrientationType>
  8684. </Orientation>
  8685. <LockX>false</LockX>
  8686. <LockY>false</LockY>
  8687. <LockZ>false</LockZ>
  8688. <LockXPitch>false</LockXPitch>
  8689. <LockYYaw>false</LockYYaw>
  8690. <LockZRoll>false</LockZRoll>
  8691. <Childs>
  8692. </Childs>
  8693. <FrontPlane>0.01</FrontPlane>
  8694. <BackPlane>100.0</BackPlane>
  8695. <AutoFrontBack>true</AutoFrontBack>
  8696. <Field>0.003926990816987242</Field>
  8697. <Fieldy>45.0</Fieldy>
  8698. <PlaneLeft>-10.0</PlaneLeft>
  8699. <PlaneRight>10.0</PlaneRight>
  8700. <PlaneTop>10.0</PlaneTop>
  8701. <PlaneBottom>-10.0</PlaneBottom>
  8702. <UseLookatPosition>true</UseLookatPosition>
  8703. <LookatPosition>
  8704. <X>
  8705. <Value>-0.000627364166602552</Value>
  8706. </X>
  8707. <Y>
  8708. <Value>3.08669776184333e-006</Value>
  8709. </Y>
  8710. <Z>
  8711. <Value>0.0394802856014185</Value>
  8712. </Z>
  8713. </LookatPosition>
  8714. <UseAlwaysLookUp>true</UseAlwaysLookUp>
  8715. <LookUpVector>
  8716. <Z>
  8717. <Value>1</Value>
  8718. </Z>
  8719. </LookUpVector>
  8720. <RightHand>true</RightHand>
  8721. <Perspective>true</Perspective>
  8722. <IsSelectedCamera>true</IsSelectedCamera>
  8723. </Camera>
  8724. <Camera>
  8725. <ShowReferenceFrame>false</ShowReferenceFrame>
  8726. <Name>Front(XY)-Camera</Name>
  8727. <Position>
  8728. <Z>
  8729. <Value>10</Value>
  8730. </Z>
  8731. </Position>
  8732. <Orientation>
  8733. <ZAxis>
  8734. <Z>
  8735. <Value>-1</Value>
  8736. </Z>
  8737. </ZAxis>
  8738. <YAxis>
  8739. <Y>
  8740. <Value>1</Value>
  8741. </Y>
  8742. </YAxis>
  8743. <OrientationType>Direct3D</OrientationType>
  8744. </Orientation>
  8745. <LockX>false</LockX>
  8746. <LockY>false</LockY>
  8747. <LockZ>false</LockZ>
  8748. <LockXPitch>false</LockXPitch>
  8749. <LockYYaw>false</LockYYaw>
  8750. <LockZRoll>false</LockZRoll>
  8751. <Childs>
  8752. </Childs>
  8753. <FrontPlane>0.01</FrontPlane>
  8754. <BackPlane>100.0</BackPlane>
  8755. <AutoFrontBack>true</AutoFrontBack>
  8756. <Field>9.999999999999998</Field>
  8757. <Fieldy>45.0</Fieldy>
  8758. <PlaneLeft>-9.999999999999998</PlaneLeft>
  8759. <PlaneRight>9.999999999999998</PlaneRight>
  8760. <PlaneTop>9.999999999999998</PlaneTop>
  8761. <PlaneBottom>-9.999999999999998</PlaneBottom>
  8762. <UseLookatPosition>true</UseLookatPosition>
  8763. <LookatPosition>
  8764. </LookatPosition>
  8765. <UseAlwaysLookUp>true</UseAlwaysLookUp>
  8766. <LookUpVector>
  8767. <Y>
  8768. <Value>1</Value>
  8769. </Y>
  8770. </LookUpVector>
  8771. <RightHand>true</RightHand>
  8772. <Perspective>false</Perspective>
  8773. <IsSelectedCamera>false</IsSelectedCamera>
  8774. </Camera>
  8775. <Camera>
  8776. <ShowReferenceFrame>false</ShowReferenceFrame>
  8777. <Name>Side(YZ)-Camera</Name>
  8778. <Position>
  8779. <X>
  8780. <Value>10</Value>
  8781. </X>
  8782. </Position>
  8783. <Orientation>
  8784. <ZAxis>
  8785. <X>
  8786. <Value>-1</Value>
  8787. </X>
  8788. </ZAxis>
  8789. <YAxis>
  8790. <Z>
  8791. <Value>1</Value>
  8792. </Z>
  8793. </YAxis>
  8794. <OrientationType>Direct3D</OrientationType>
  8795. </Orientation>
  8796. <LockX>false</LockX>
  8797. <LockY>false</LockY>
  8798. <LockZ>false</LockZ>
  8799. <LockXPitch>false</LockXPitch>
  8800. <LockYYaw>false</LockYYaw>
  8801. <LockZRoll>false</LockZRoll>
  8802. <Childs>
  8803. </Childs>
  8804. <FrontPlane>0.01</FrontPlane>
  8805. <BackPlane>100.0</BackPlane>
  8806. <AutoFrontBack>true</AutoFrontBack>
  8807. <Field>9.999999999999998</Field>
  8808. <Fieldy>45.0</Fieldy>
  8809. <PlaneLeft>-9.999999999999998</PlaneLeft>
  8810. <PlaneRight>9.999999999999998</PlaneRight>
  8811. <PlaneTop>9.999999999999998</PlaneTop>
  8812. <PlaneBottom>-9.999999999999998</PlaneBottom>
  8813. <UseLookatPosition>true</UseLookatPosition>
  8814. <LookatPosition>
  8815. </LookatPosition>
  8816. <UseAlwaysLookUp>true</UseAlwaysLookUp>
  8817. <LookUpVector>
  8818. <Z>
  8819. <Value>1</Value>
  8820. </Z>
  8821. </LookUpVector>
  8822. <RightHand>true</RightHand>
  8823. <Perspective>false</Perspective>
  8824. <IsSelectedCamera>false</IsSelectedCamera>
  8825. </Camera>
  8826. <Camera>
  8827. <ShowReferenceFrame>false</ShowReferenceFrame>
  8828. <Name>Top(XZ)-Camera</Name>
  8829. <Position>
  8830. <Y>
  8831. <Value>10</Value>
  8832. </Y>
  8833. </Position>
  8834. <Orientation>
  8835. <ZAxis>
  8836. <Y>
  8837. <Value>-1</Value>
  8838. </Y>
  8839. </ZAxis>
  8840. <YAxis>
  8841. <X>
  8842. <Value>1</Value>
  8843. </X>
  8844. </YAxis>
  8845. <OrientationType>Direct3D</OrientationType>
  8846. </Orientation>
  8847. <LockX>false</LockX>
  8848. <LockY>false</LockY>
  8849. <LockZ>false</LockZ>
  8850. <LockXPitch>false</LockXPitch>
  8851. <LockYYaw>false</LockYYaw>
  8852. <LockZRoll>false</LockZRoll>
  8853. <Childs>
  8854. </Childs>
  8855. <FrontPlane>0.01</FrontPlane>
  8856. <BackPlane>100.0</BackPlane>
  8857. <AutoFrontBack>true</AutoFrontBack>
  8858. <Field>9.999999999999998</Field>
  8859. <Fieldy>45.0</Fieldy>
  8860. <PlaneLeft>-9.999999999999998</PlaneLeft>
  8861. <PlaneRight>9.999999999999998</PlaneRight>
  8862. <PlaneTop>9.999999999999998</PlaneTop>
  8863. <PlaneBottom>-9.999999999999998</PlaneBottom>
  8864. <UseLookatPosition>true</UseLookatPosition>
  8865. <LookatPosition>
  8866. </LookatPosition>
  8867. <UseAlwaysLookUp>true</UseAlwaysLookUp>
  8868. <LookUpVector>
  8869. <X>
  8870. <Value>1</Value>
  8871. </X>
  8872. </LookUpVector>
  8873. <RightHand>true</RightHand>
  8874. <Perspective>false</Perspective>
  8875. <IsSelectedCamera>false</IsSelectedCamera>
  8876. </Camera>
  8877. </Childs>
  8878. </Frame>
  8879. <Frame>
  8880. <ScaleValue>
  8881. <X>
  8882. <Value>1</Value>
  8883. </X>
  8884. <Y>
  8885. <Value>1</Value>
  8886. </Y>
  8887. <Z>
  8888. <Value>1</Value>
  8889. </Z>
  8890. </ScaleValue>
  8891. <ShowReferenceFrame>false</ShowReferenceFrame>
  8892. <Name>Scenery</Name>
  8893. <Position>
  8894. </Position>
  8895. <Orientation>
  8896. <Angles>
  8897. </Angles>
  8898. <OrientationType>Bryant</OrientationType>
  8899. </Orientation>
  8900. <LockX>false</LockX>
  8901. <LockY>false</LockY>
  8902. <LockZ>false</LockZ>
  8903. <LockXPitch>false</LockXPitch>
  8904. <LockYYaw>false</LockYYaw>
  8905. <LockZRoll>false</LockZRoll>
  8906. <Childs>
  8907. <Cube>
  8908. <Center>Bottom</Center>
  8909. <RibLength>1.0</RibLength>
  8910. <ShowInnerSide>true</ShowInnerSide>
  8911. <Accuracy>4</Accuracy>
  8912. <ScaleValue>
  8913. <X>
  8914. <VariableName>Body1\dimension[1]</VariableName>
  8915. <Value>0.005</Value>
  8916. </X>
  8917. <Y>
  8918. <VariableName>Body1\dimension[2]</VariableName>
  8919. <Value>0.01</Value>
  8920. </Y>
  8921. <Z>
  8922. <VariableName>Body1\dimension[3]</VariableName>
  8923. <Value>0.065</Value>
  8924. </Z>
  8925. </ScaleValue>
  8926. <OverrideColor>true</OverrideColor>
  8927. <MeshColor>
  8928. <X>
  8929. <Value>0</Value>
  8930. </X>
  8931. <Y>
  8932. <Value>0.501960784313725</Value>
  8933. </Y>
  8934. <Z>
  8935. <Value>0.501960784313725</Value>
  8936. </Z>
  8937. </MeshColor>
  8938. <Alpha>1.0</Alpha>
  8939. <MeshColorMultipliers>
  8940. <X>
  8941. <Value>1</Value>
  8942. </X>
  8943. <Y>
  8944. <Value>1</Value>
  8945. </Y>
  8946. <Z>
  8947. <Value>1</Value>
  8948. </Z>
  8949. </MeshColorMultipliers>
  8950. <MeshColorOffsets>
  8951. </MeshColorOffsets>
  8952. <Direct3DColorRange>true</Direct3DColorRange>
  8953. <SpecularColor>
  8954. <X>
  8955. <Value>0.5</Value>
  8956. </X>
  8957. <Y>
  8958. <Value>0.5</Value>
  8959. </Y>
  8960. <Z>
  8961. <Value>0.5</Value>
  8962. </Z>
  8963. </SpecularColor>
  8964. <EmissiveColor>
  8965. </EmissiveColor>
  8966. <ShininessPower>
  8967. <Value>15</Value>
  8968. </ShininessPower>
  8969. <OverrideQuality>false</OverrideQuality>
  8970. <ShowReferenceFrame>false</ShowReferenceFrame>
  8971. <Name>Block</Name>
  8972. <Position>
  8973. <X>
  8974. <VariableName>Body1\position[1]</VariableName>
  8975. <Value>0.0</Value>
  8976. </X>
  8977. <Y>
  8978. <VariableName>Body1\position[2]</VariableName>
  8979. <Value>-0.05</Value>
  8980. </Y>
  8981. <Z>
  8982. <VariableName>Body1\position[3]</VariableName>
  8983. <Value>0.0</Value>
  8984. </Z>
  8985. </Position>
  8986. <Orientation>
  8987. <ZAxis>
  8988. <X>
  8989. <VariableName>Body1\R[1,3]</VariableName>
  8990. <Value>0.0</Value>
  8991. </X>
  8992. <Y>
  8993. <VariableName>Body1\R[2,3]</VariableName>
  8994. <Value>0.0</Value>
  8995. </Y>
  8996. <Z>
  8997. <VariableName>Body1\R[3,3]</VariableName>
  8998. <Value>1.0</Value>
  8999. </Z>
  9000. </ZAxis>
  9001. <YAxis>
  9002. <X>
  9003. <VariableName>Body1\R[1,2]</VariableName>
  9004. <Value>0.0</Value>
  9005. </X>
  9006. <Y>
  9007. <VariableName>Body1\R[2,2]</VariableName>
  9008. <Value>1.0</Value>
  9009. </Y>
  9010. <Z>
  9011. <VariableName>Body1\R[3,2]</VariableName>
  9012. <Value>0.0</Value>
  9013. </Z>
  9014. </YAxis>
  9015. <OrientationType>Matrix</OrientationType>
  9016. </Orientation>
  9017. <LockX>false</LockX>
  9018. <LockY>false</LockY>
  9019. <LockZ>false</LockZ>
  9020. <LockXPitch>false</LockXPitch>
  9021. <LockYYaw>false</LockYYaw>
  9022. <LockZRoll>false</LockZRoll>
  9023. <Childs>
  9024. </Childs>
  9025. </Cube>
  9026. <Cube>
  9027. <Center>Bottom</Center>
  9028. <RibLength>1.0</RibLength>
  9029. <ShowInnerSide>true</ShowInnerSide>
  9030. <Accuracy>4</Accuracy>
  9031. <ScaleValue>
  9032. <X>
  9033. <VariableName>Body2\dimension[1]</VariableName>
  9034. <Value>0.005</Value>
  9035. </X>
  9036. <Y>
  9037. <VariableName>Body2\dimension[2]</VariableName>
  9038. <Value>0.025</Value>
  9039. </Y>
  9040. <Z>
  9041. <VariableName>Body2\dimension[3]</VariableName>
  9042. <Value>0.01</Value>
  9043. </Z>
  9044. </ScaleValue>
  9045. <OverrideColor>true</OverrideColor>
  9046. <MeshColor>
  9047. <X>
  9048. <Value>1</Value>
  9049. </X>
  9050. <Y>
  9051. <Value>0.501960784313725</Value>
  9052. </Y>
  9053. <Z>
  9054. <Value>0</Value>
  9055. </Z>
  9056. </MeshColor>
  9057. <Alpha>1.0</Alpha>
  9058. <MeshColorMultipliers>
  9059. <X>
  9060. <Value>1</Value>
  9061. </X>
  9062. <Y>
  9063. <Value>1</Value>
  9064. </Y>
  9065. <Z>
  9066. <Value>1</Value>
  9067. </Z>
  9068. </MeshColorMultipliers>
  9069. <MeshColorOffsets>
  9070. </MeshColorOffsets>
  9071. <Direct3DColorRange>true</Direct3DColorRange>
  9072. <SpecularColor>
  9073. <X>
  9074. <Value>0.5</Value>
  9075. </X>
  9076. <Y>
  9077. <Value>0.5</Value>
  9078. </Y>
  9079. <Z>
  9080. <Value>0.5</Value>
  9081. </Z>
  9082. </SpecularColor>
  9083. <EmissiveColor>
  9084. </EmissiveColor>
  9085. <ShininessPower>
  9086. <Value>15</Value>
  9087. </ShininessPower>
  9088. <OverrideQuality>false</OverrideQuality>
  9089. <ShowReferenceFrame>false</ShowReferenceFrame>
  9090. <Name>Block</Name>
  9091. <Position>
  9092. <X>
  9093. <VariableName>Body2\position[1]</VariableName>
  9094. <Value>0.0</Value>
  9095. </X>
  9096. <Y>
  9097. <VariableName>Body2\position[2]</VariableName>
  9098. <Value>-0.0125</Value>
  9099. </Y>
  9100. <Z>
  9101. <VariableName>Body2\position[3]</VariableName>
  9102. <Value>0.0</Value>
  9103. </Z>
  9104. </Position>
  9105. <Orientation>
  9106. <ZAxis>
  9107. <X>
  9108. <VariableName>Body2\R[1,3]</VariableName>
  9109. <Value>0.0</Value>
  9110. </X>
  9111. <Y>
  9112. <VariableName>Body2\R[2,3]</VariableName>
  9113. <Value>0.0</Value>
  9114. </Y>
  9115. <Z>
  9116. <VariableName>Body2\R[3,3]</VariableName>
  9117. <Value>1.0</Value>
  9118. </Z>
  9119. </ZAxis>
  9120. <YAxis>
  9121. <X>
  9122. <VariableName>Body2\R[1,2]</VariableName>
  9123. <Value>0.0</Value>
  9124. </X>
  9125. <Y>
  9126. <VariableName>Body2\R[2,2]</VariableName>
  9127. <Value>1.0</Value>
  9128. </Y>
  9129. <Z>
  9130. <VariableName>Body2\R[3,2]</VariableName>
  9131. <Value>0.0</Value>
  9132. </Z>
  9133. </YAxis>
  9134. <OrientationType>Matrix</OrientationType>
  9135. </Orientation>
  9136. <LockX>false</LockX>
  9137. <LockY>false</LockY>
  9138. <LockZ>false</LockZ>
  9139. <LockXPitch>false</LockXPitch>
  9140. <LockYYaw>false</LockYYaw>
  9141. <LockZRoll>false</LockZRoll>
  9142. <Childs>
  9143. </Childs>
  9144. </Cube>
  9145. <Cube>
  9146. <Center>Bottom</Center>
  9147. <RibLength>1.0</RibLength>
  9148. <ShowInnerSide>true</ShowInnerSide>
  9149. <Accuracy>4</Accuracy>
  9150. <ScaleValue>
  9151. <X>
  9152. <VariableName>Body3\dimension[1]</VariableName>
  9153. <Value>0.005</Value>
  9154. </X>
  9155. <Y>
  9156. <VariableName>Body3\dimension[2]</VariableName>
  9157. <Value>0.01</Value>
  9158. </Y>
  9159. <Z>
  9160. <VariableName>Body3\dimension[3]</VariableName>
  9161. <Value>0.065</Value>
  9162. </Z>
  9163. </ScaleValue>
  9164. <OverrideColor>true</OverrideColor>
  9165. <MeshColor>
  9166. <X>
  9167. <Value>0.501960784313725</Value>
  9168. </X>
  9169. <Y>
  9170. <Value>0.501960784313725</Value>
  9171. </Y>
  9172. <Z>
  9173. <Value>1</Value>
  9174. </Z>
  9175. </MeshColor>
  9176. <Alpha>1.0</Alpha>
  9177. <MeshColorMultipliers>
  9178. <X>
  9179. <Value>1</Value>
  9180. </X>
  9181. <Y>
  9182. <Value>1</Value>
  9183. </Y>
  9184. <Z>
  9185. <Value>1</Value>
  9186. </Z>
  9187. </MeshColorMultipliers>
  9188. <MeshColorOffsets>
  9189. </MeshColorOffsets>
  9190. <Direct3DColorRange>true</Direct3DColorRange>
  9191. <SpecularColor>
  9192. <X>
  9193. <Value>0.5</Value>
  9194. </X>
  9195. <Y>
  9196. <Value>0.5</Value>
  9197. </Y>
  9198. <Z>
  9199. <Value>0.5</Value>
  9200. </Z>
  9201. </SpecularColor>
  9202. <EmissiveColor>
  9203. </EmissiveColor>
  9204. <ShininessPower>
  9205. <Value>15</Value>
  9206. </ShininessPower>
  9207. <OverrideQuality>false</OverrideQuality>
  9208. <ShowReferenceFrame>false</ShowReferenceFrame>
  9209. <Name>Block</Name>
  9210. <Position>
  9211. <X>
  9212. <VariableName>Body3\position[1]</VariableName>
  9213. <Value>0.0</Value>
  9214. </X>
  9215. <Y>
  9216. <VariableName>Body3\position[2]</VariableName>
  9217. <Value>-0.025</Value>
  9218. </Y>
  9219. <Z>
  9220. <VariableName>Body3\position[3]</VariableName>
  9221. <Value>0.0</Value>
  9222. </Z>
  9223. </Position>
  9224. <Orientation>
  9225. <ZAxis>
  9226. <X>
  9227. <VariableName>Body3\R[1,3]</VariableName>
  9228. <Value>0.0</Value>
  9229. </X>
  9230. <Y>
  9231. <VariableName>Body3\R[2,3]</VariableName>
  9232. <Value>0.0</Value>
  9233. </Y>
  9234. <Z>
  9235. <VariableName>Body3\R[3,3]</VariableName>
  9236. <Value>1.0</Value>
  9237. </Z>
  9238. </ZAxis>
  9239. <YAxis>
  9240. <X>
  9241. <VariableName>Body3\R[1,2]</VariableName>
  9242. <Value>0.0</Value>
  9243. </X>
  9244. <Y>
  9245. <VariableName>Body3\R[2,2]</VariableName>
  9246. <Value>1.0</Value>
  9247. </Y>
  9248. <Z>
  9249. <VariableName>Body3\R[3,2]</VariableName>
  9250. <Value>0.0</Value>
  9251. </Z>
  9252. </YAxis>
  9253. <OrientationType>Matrix</OrientationType>
  9254. </Orientation>
  9255. <LockX>false</LockX>
  9256. <LockY>false</LockY>
  9257. <LockZ>false</LockZ>
  9258. <LockXPitch>false</LockXPitch>
  9259. <LockYYaw>false</LockYYaw>
  9260. <LockZRoll>false</LockZRoll>
  9261. <Childs>
  9262. </Childs>
  9263. </Cube>
  9264. <Cube>
  9265. <Center>Center</Center>
  9266. <RibLength>1.0</RibLength>
  9267. <ShowInnerSide>true</ShowInnerSide>
  9268. <Accuracy>4</Accuracy>
  9269. <ScaleValue>
  9270. <X>
  9271. <VariableName>Body4\dimension[1]</VariableName>
  9272. <Value>0.005</Value>
  9273. </X>
  9274. <Y>
  9275. <VariableName>Body4\dimension[2]</VariableName>
  9276. <Value>0.05</Value>
  9277. </Y>
  9278. <Z>
  9279. <VariableName>Body4\dimension[3]</VariableName>
  9280. <Value>0.01</Value>
  9281. </Z>
  9282. </ScaleValue>
  9283. <OverrideColor>true</OverrideColor>
  9284. <MeshColor>
  9285. <X>
  9286. <Value>0.501960784313725</Value>
  9287. </X>
  9288. <Y>
  9289. <Value>0</Value>
  9290. </Y>
  9291. <Z>
  9292. <Value>0</Value>
  9293. </Z>
  9294. </MeshColor>
  9295. <Alpha>1.0</Alpha>
  9296. <MeshColorMultipliers>
  9297. <X>
  9298. <Value>1</Value>
  9299. </X>
  9300. <Y>
  9301. <Value>1</Value>
  9302. </Y>
  9303. <Z>
  9304. <Value>1</Value>
  9305. </Z>
  9306. </MeshColorMultipliers>
  9307. <MeshColorOffsets>
  9308. </MeshColorOffsets>
  9309. <Direct3DColorRange>true</Direct3DColorRange>
  9310. <SpecularColor>
  9311. <X>
  9312. <Value>0.5</Value>
  9313. </X>
  9314. <Y>
  9315. <Value>0.5</Value>
  9316. </Y>
  9317. <Z>
  9318. <Value>0.5</Value>
  9319. </Z>
  9320. </SpecularColor>
  9321. <EmissiveColor>
  9322. </EmissiveColor>
  9323. <ShininessPower>
  9324. <Value>15</Value>
  9325. </ShininessPower>
  9326. <OverrideQuality>false</OverrideQuality>
  9327. <ShowReferenceFrame>false</ShowReferenceFrame>
  9328. <Name>Block</Name>
  9329. <Position>
  9330. <X>
  9331. <VariableName>Body4\position[1]</VariableName>
  9332. <Value>0.0</Value>
  9333. </X>
  9334. <Y>
  9335. <VariableName>Body4\position[2]</VariableName>
  9336. <Value>-0.025</Value>
  9337. </Y>
  9338. <Z>
  9339. <VariableName>Body4\position[3]</VariableName>
  9340. <Value>0.065</Value>
  9341. </Z>
  9342. </Position>
  9343. <Orientation>
  9344. <ZAxis>
  9345. <X>
  9346. <VariableName>Body4\R[1,3]</VariableName>
  9347. <Value>0.0</Value>
  9348. </X>
  9349. <Y>
  9350. <VariableName>Body4\R[2,3]</VariableName>
  9351. <Value>0.0</Value>
  9352. </Y>
  9353. <Z>
  9354. <VariableName>Body4\R[3,3]</VariableName>
  9355. <Value>1.0</Value>
  9356. </Z>
  9357. </ZAxis>
  9358. <YAxis>
  9359. <X>
  9360. <VariableName>Body4\R[1,2]</VariableName>
  9361. <Value>0.0</Value>
  9362. </X>
  9363. <Y>
  9364. <VariableName>Body4\R[2,2]</VariableName>
  9365. <Value>1.0</Value>
  9366. </Y>
  9367. <Z>
  9368. <VariableName>Body4\R[3,2]</VariableName>
  9369. <Value>0.0</Value>
  9370. </Z>
  9371. </YAxis>
  9372. <OrientationType>Matrix</OrientationType>
  9373. </Orientation>
  9374. <LockX>false</LockX>
  9375. <LockY>false</LockY>
  9376. <LockZ>false</LockZ>
  9377. <LockXPitch>false</LockXPitch>
  9378. <LockYYaw>false</LockYYaw>
  9379. <LockZRoll>false</LockZRoll>
  9380. <Childs>
  9381. </Childs>
  9382. </Cube>
  9383. <Cube>
  9384. <Center>Center</Center>
  9385. <RibLength>1.0</RibLength>
  9386. <ShowInnerSide>true</ShowInnerSide>
  9387. <Accuracy>4</Accuracy>
  9388. <ScaleValue>
  9389. <X>
  9390. <VariableName>Body5\dimension[1]</VariableName>
  9391. <Value>0.005</Value>
  9392. </X>
  9393. <Y>
  9394. <VariableName>Body5\dimension[2]</VariableName>
  9395. <Value>0.025</Value>
  9396. </Y>
  9397. <Z>
  9398. <VariableName>Body5\dimension[3]</VariableName>
  9399. <Value>0.01</Value>
  9400. </Z>
  9401. </ScaleValue>
  9402. <OverrideColor>true</OverrideColor>
  9403. <MeshColor>
  9404. <X>
  9405. <Value>0.501960784313725</Value>
  9406. </X>
  9407. <Y>
  9408. <Value>0</Value>
  9409. </Y>
  9410. <Z>
  9411. <Value>0</Value>
  9412. </Z>
  9413. </MeshColor>
  9414. <Alpha>1.0</Alpha>
  9415. <MeshColorMultipliers>
  9416. <X>
  9417. <Value>1</Value>
  9418. </X>
  9419. <Y>
  9420. <Value>1</Value>
  9421. </Y>
  9422. <Z>
  9423. <Value>1</Value>
  9424. </Z>
  9425. </MeshColorMultipliers>
  9426. <MeshColorOffsets>
  9427. </MeshColorOffsets>
  9428. <Direct3DColorRange>true</Direct3DColorRange>
  9429. <SpecularColor>
  9430. <X>
  9431. <Value>0.5</Value>
  9432. </X>
  9433. <Y>
  9434. <Value>0.5</Value>
  9435. </Y>
  9436. <Z>
  9437. <Value>0.5</Value>
  9438. </Z>
  9439. </SpecularColor>
  9440. <EmissiveColor>
  9441. </EmissiveColor>
  9442. <ShininessPower>
  9443. <Value>15</Value>
  9444. </ShininessPower>
  9445. <OverrideQuality>false</OverrideQuality>
  9446. <ShowReferenceFrame>false</ShowReferenceFrame>
  9447. <Name>Block</Name>
  9448. <Position>
  9449. <X>
  9450. <VariableName>Body5\position[1]</VariableName>
  9451. <Value>0.0</Value>
  9452. </X>
  9453. <Y>
  9454. <VariableName>Body5\position[2]</VariableName>
  9455. <Value>0.0125</Value>
  9456. </Y>
  9457. <Z>
  9458. <VariableName>Body5\position[3]</VariableName>
  9459. <Value>0.065</Value>
  9460. </Z>
  9461. </Position>
  9462. <Orientation>
  9463. <ZAxis>
  9464. <X>
  9465. <VariableName>Body5\R[1,3]</VariableName>
  9466. <Value>0.0</Value>
  9467. </X>
  9468. <Y>
  9469. <VariableName>Body5\R[2,3]</VariableName>
  9470. <Value>0.0</Value>
  9471. </Y>
  9472. <Z>
  9473. <VariableName>Body5\R[3,3]</VariableName>
  9474. <Value>1.0</Value>
  9475. </Z>
  9476. </ZAxis>
  9477. <YAxis>
  9478. <X>
  9479. <VariableName>Body5\R[1,2]</VariableName>
  9480. <Value>0.0</Value>
  9481. </X>
  9482. <Y>
  9483. <VariableName>Body5\R[2,2]</VariableName>
  9484. <Value>1.0</Value>
  9485. </Y>
  9486. <Z>
  9487. <VariableName>Body5\R[3,2]</VariableName>
  9488. <Value>0.0</Value>
  9489. </Z>
  9490. </YAxis>
  9491. <OrientationType>Matrix</OrientationType>
  9492. </Orientation>
  9493. <LockX>false</LockX>
  9494. <LockY>false</LockY>
  9495. <LockZ>false</LockZ>
  9496. <LockXPitch>false</LockXPitch>
  9497. <LockYYaw>false</LockYYaw>
  9498. <LockZRoll>false</LockZRoll>
  9499. <Childs>
  9500. </Childs>
  9501. </Cube>
  9502. </Childs>
  9503. </Frame>
  9504. </Childs>
  9505. </Frame>
  9506. </MainFrame>
  9507. </Plot>
  9508. <Plot>
  9509. <PlotType>GraphPlot</PlotType>
  9510. <BasePlot>
  9511. <PlotId>3</PlotId>
  9512. <UseWindowsBGColor>false</UseWindowsBGColor>
  9513. <BGColor>16777215</BGColor>
  9514. <PlotIsVisible>true</PlotIsVisible>
  9515. </BasePlot>
  9516. <Grid>
  9517. <DrawGrid>true</DrawGrid>
  9518. <GridColor>15780518</GridColor>
  9519. <GridBorderLineColor>12624260</GridBorderLineColor>
  9520. <GridZeroLineColor>0</GridZeroLineColor>
  9521. <XTicks>10</XTicks>
  9522. <YTicks>10</YTicks>
  9523. <ZTicks>10</ZTicks>
  9524. <Use3DLook>false</Use3DLook>
  9525. </Grid>
  9526. <PlotBGColor>16777215</PlotBGColor>
  9527. <ShowPlotTitle>true</ShowPlotTitle>
  9528. <TitlePosition>1</TitlePosition>
  9529. <PlotTitle>StepperD</PlotTitle>
  9530. <ShowXValues>true</ShowXValues>
  9531. <Fonts>
  9532. <TitleFont>
  9533. <Name>Arial</Name>
  9534. <Height>12</Height>
  9535. <PitchFamily>34</PitchFamily>
  9536. <Weight>400</Weight>
  9537. <Italic>0</Italic>
  9538. <UnderLine>0</UnderLine>
  9539. <StrikeOut>0</StrikeOut>
  9540. <Color>0</Color>
  9541. </TitleFont>
  9542. <LabelFont>
  9543. <Name>Arial</Name>
  9544. <Height>12</Height>
  9545. <PitchFamily>34</PitchFamily>
  9546. <Weight>400</Weight>
  9547. <Italic>0</Italic>
  9548. <UnderLine>0</UnderLine>
  9549. <StrikeOut>0</StrikeOut>
  9550. <Color>0</Color>
  9551. </LabelFont>
  9552. <ValuesFont>
  9553. <Name>Arial</Name>
  9554. <Height>10</Height>
  9555. <PitchFamily>34</PitchFamily>
  9556. <Weight>400</Weight>
  9557. <Italic>0</Italic>
  9558. <UnderLine>0</UnderLine>
  9559. <StrikeOut>0</StrikeOut>
  9560. <Color>0</Color>
  9561. </ValuesFont>
  9562. <LegendFont>
  9563. <Name>Arial</Name>
  9564. <Height>12</Height>
  9565. <PitchFamily>34</PitchFamily>
  9566. <Weight>400</Weight>
  9567. <Italic>0</Italic>
  9568. <UnderLine>0</UnderLine>
  9569. <StrikeOut>0</StrikeOut>
  9570. <Color>0</Color>
  9571. </LegendFont>
  9572. </Fonts>
  9573. <SharedXAxis>true</SharedXAxis>
  9574. <SharedYAxis>true</SharedYAxis>
  9575. <SharedZAxis>false</SharedZAxis>
  9576. <XAxes>
  9577. <Axis>
  9578. <Minimum>0.0</Minimum>
  9579. <Maximum>5.823613498640715</Maximum>
  9580. <Linear>true</Linear>
  9581. <Scaling>3</Scaling>
  9582. <Label>time</Label>
  9583. </Axis>
  9584. </XAxes>
  9585. <YAxes>
  9586. <Axis>
  9587. <Minimum>-2.0</Minimum>
  9588. <Maximum>3.0</Maximum>
  9589. <Linear>true</Linear>
  9590. <Scaling>2</Scaling>
  9591. <Label>setpoint</Label>
  9592. </Axis>
  9593. <Axis>
  9594. <Minimum>-0.944547877949926</Minimum>
  9595. <Maximum>0.0</Maximum>
  9596. <Linear>true</Linear>
  9597. <Scaling>2</Scaling>
  9598. <Label>angle</Label>
  9599. </Axis>
  9600. <Axis>
  9601. <Minimum>-0.944547877949926</Minimum>
  9602. <Maximum>0.0</Maximum>
  9603. <Linear>true</Linear>
  9604. <Scaling>2</Scaling>
  9605. <Label>angle</Label>
  9606. </Axis>
  9607. </YAxes>
  9608. <ZAxes>
  9609. </ZAxes>
  9610. <Curves>
  9611. <Curve>
  9612. <LineColor>3355111</LineColor>
  9613. <LineStyle>1</LineStyle>
  9614. <TickColor>3355111</TickColor>
  9615. <TickStyle>0</TickStyle>
  9616. <CurveVisible>true</CurveVisible>
  9617. <PixelThresshold>1</PixelThresshold>
  9618. <LineThickness>1</LineThickness>
  9619. <LineOrder>1</LineOrder>
  9620. <ShowYValues>true</ShowYValues>
  9621. <XCurveData>
  9622. <ShowUnit>true</ShowUnit>
  9623. <VarName>time</VarName>
  9624. </XCurveData>
  9625. <YCurveData>
  9626. <ShowUnit>true</ShowUnit>
  9627. <VarName>stepper_control1\setpoint</VarName>
  9628. </YCurveData>
  9629. </Curve>
  9630. <Curve>
  9631. <LineColor>6076255</LineColor>
  9632. <LineStyle>1</LineStyle>
  9633. <TickColor>6076255</TickColor>
  9634. <TickStyle>0</TickStyle>
  9635. <CurveVisible>true</CurveVisible>
  9636. <PixelThresshold>1</PixelThresshold>
  9637. <LineThickness>1</LineThickness>
  9638. <LineOrder>1</LineOrder>
  9639. <ShowYValues>true</ShowYValues>
  9640. <XCurveData>
  9641. <ShowUnit>true</ShowUnit>
  9642. <VarName>time</VarName>
  9643. </XCurveData>
  9644. <YCurveData>
  9645. <ShowUnit>true</ShowUnit>
  9646. <VarName>Joint_dynD\angle</VarName>
  9647. </YCurveData>
  9648. </Curve>
  9649. <Curve>
  9650. <LineColor>12553035</LineColor>
  9651. <LineStyle>1</LineStyle>
  9652. <TickColor>12553035</TickColor>
  9653. <TickStyle>0</TickStyle>
  9654. <CurveVisible>true</CurveVisible>
  9655. <PixelThresshold>1</PixelThresshold>
  9656. <LineThickness>1</LineThickness>
  9657. <LineOrder>1</LineOrder>
  9658. <ShowYValues>true</ShowYValues>
  9659. <XCurveData>
  9660. <ShowUnit>true</ShowUnit>
  9661. <VarName>time</VarName>
  9662. </XCurveData>
  9663. <YCurveData>
  9664. <ShowUnit>true</ShowUnit>
  9665. <VarName>Joint_dynD\stepper_model\RotorAngle\angle</VarName>
  9666. </YCurveData>
  9667. </Curve>
  9668. </Curves>
  9669. <Legenda>
  9670. <ShowLegenda>true</ShowLegenda>
  9671. <BorderPenColor>0</BorderPenColor>
  9672. <BackgroundColor>16777215</BackgroundColor>
  9673. </Legenda>
  9674. </Plot>
  9675. </Plots>
  9676. <PlotPanels>
  9677. <PlotPanel>
  9678. <PlotPanelId>1</PlotPanelId>
  9679. <PlotPanelVisible>true</PlotPanelVisible>
  9680. <Name>Window 1</Name>
  9681. <Tiling>0</Tiling>
  9682. <PlotIds>
  9683. <PlotId>1</PlotId>
  9684. <PlotId>3</PlotId>
  9685. </PlotIds>
  9686. <ToggleState>Base</ToggleState>
  9687. </PlotPanel>
  9688. <PlotPanel>
  9689. <PlotPanelId>2</PlotPanelId>
  9690. <PlotPanelVisible>true</PlotPanelVisible>
  9691. <Name>Window 2</Name>
  9692. <Tiling>0</Tiling>
  9693. <PlotIds>
  9694. <PlotId>2</PlotId>
  9695. </PlotIds>
  9696. <ToggleState>Base</ToggleState>
  9697. </PlotPanel>
  9698. </PlotPanels>
  9699. <WindowRectangles virtualDesktopWidth="5760" virtualDesktopHeight="1080">
  9700. <WindowRectangle monitor="0" left="0" top="0" right="1920" bottom="1080" plotpanelid="2">
  9701. 0 0.0259259 1 0.968519
  9702. </WindowRectangle>
  9703. <WindowRectangle monitor="1" left="-1920" top="0" right="0" bottom="1080" plotpanelid="1">
  9704. 0.09375 0.134259 0.892708 0.89537
  9705. </WindowRectangle>
  9706. </WindowRectangles>
  9707. </PlotSpecs>
  9708. <RunSpecs>
  9709. <SimulatorSettings>
  9710. <StartTime>0.0</StartTime>
  9711. <FinishTime>10.0</FinishTime>
  9712. <AllowPassFinishTime>false</AllowPassFinishTime>
  9713. <Warp>false</Warp>
  9714. <FPGonio>false</FPGonio>
  9715. <UseOutputAfterEach>false</UseOutputAfterEach>
  9716. <OutputAfterEach>0.1</OutputAfterEach>
  9717. <EventEpsilon>1.0e-6</EventEpsilon>
  9718. <AlgebraicTolerance>1.0e-7</AlgebraicTolerance>
  9719. <SteadyStateAnalysis>false</SteadyStateAnalysis>
  9720. <UpdateHoldInstructions>true</UpdateHoldInstructions>
  9721. </SimulatorSettings>
  9722. <IntegrationMethods>
  9723. <IntegrationMethod>
  9724. <Name>Euler</Name>
  9725. <StepSize>0.01</StepSize>
  9726. <AutoStepSize>false</AutoStepSize>
  9727. </IntegrationMethod>
  9728. <IntegrationMethod>
  9729. <Name>BackwardEuler</Name>
  9730. <AbsoluteTolerance>1.0e-5</AbsoluteTolerance>
  9731. <RelativeTolerance>1.0e-5</RelativeTolerance>
  9732. <AlgebraicAbsoluteTolerance>1.0e-5</AlgebraicAbsoluteTolerance>
  9733. <AlgebraicRelativeTolerance>1.0e-5</AlgebraicRelativeTolerance>
  9734. <StepSize>0.01</StepSize>
  9735. <Alpha>1.0</Alpha>
  9736. </IntegrationMethod>
  9737. <IntegrationMethod>
  9738. <Name>AdamsBashforth</Name>
  9739. <StepSize>0.01</StepSize>
  9740. <AutoStepSize>false</AutoStepSize>
  9741. </IntegrationMethod>
  9742. <IntegrationMethod>
  9743. <Name>RungeKutta2</Name>
  9744. <StepSize>0.01</StepSize>
  9745. <AutoStepSize>false</AutoStepSize>
  9746. </IntegrationMethod>
  9747. <IntegrationMethod>
  9748. <Name>RungeKutta4</Name>
  9749. <StepSize>0.01</StepSize>
  9750. <AutoStepSize>false</AutoStepSize>
  9751. </IntegrationMethod>
  9752. <IntegrationMethod>
  9753. <Name>RungeKutta8</Name>
  9754. <UseInitialStepSize>false</UseInitialStepSize>
  9755. <InitialStepSize>0.001</InitialStepSize>
  9756. <UseMaximumStepSize>false</UseMaximumStepSize>
  9757. <MaximumStepSize>1.0</MaximumStepSize>
  9758. <AbsoluteTolerance>1.0e-6</AbsoluteTolerance>
  9759. <RelativeTolerance>1.0e-6</RelativeTolerance>
  9760. <SafetyFactor>0.9</SafetyFactor>
  9761. <Factor1>0.33</Factor1>
  9762. <Factor2>6.0</Factor2>
  9763. <Beta>0.0</Beta>
  9764. <UseMaxNrSteps>false</UseMaxNrSteps>
  9765. <MaxNrSteps>100000</MaxNrSteps>
  9766. <UseStiffDetection>false</UseStiffDetection>
  9767. <MaxNrStiffnessSteps>1000</MaxNrStiffnessSteps>
  9768. </IntegrationMethod>
  9769. <IntegrationMethod>
  9770. <Name>RungeKuttaFehlberg</Name>
  9771. <UseInitialStepSize>false</UseInitialStepSize>
  9772. <InitialStepSize>0.001</InitialStepSize>
  9773. <UseMaximumStepSize>false</UseMaximumStepSize>
  9774. <MaximumStepSize>1.0</MaximumStepSize>
  9775. <AbsoluteTolerance>1.0e-6</AbsoluteTolerance>
  9776. <RelativeTolerance>1.0e-6</RelativeTolerance>
  9777. </IntegrationMethod>
  9778. <IntegrationMethod>
  9779. <Name>VodeAdams</Name>
  9780. <UseInitialStepSize>false</UseInitialStepSize>
  9781. <InitialStepSize>0.001</InitialStepSize>
  9782. <UseMaximumStepSize>false</UseMaximumStepSize>
  9783. <MaximumStepSize>1.0</MaximumStepSize>
  9784. <AbsoluteTolerance>1.0e-6</AbsoluteTolerance>
  9785. <RelativeTolerance>1.0e-6</RelativeTolerance>
  9786. <VodeUseBDF>true</VodeUseBDF>
  9787. <VodeUseNewton>true</VodeUseNewton>
  9788. </IntegrationMethod>
  9789. <IntegrationMethod>
  9790. <Name>BDFMethod</Name>
  9791. <AbsoluteTolerance>1.0e-5</AbsoluteTolerance>
  9792. <RelativeTolerance>1.0e-5</RelativeTolerance>
  9793. <AlgebraicAbsoluteTolerance>1.0e-5</AlgebraicAbsoluteTolerance>
  9794. <AlgebraicRelativeTolerance>1.0e-5</AlgebraicRelativeTolerance>
  9795. <UseInitialStepSize>false</UseInitialStepSize>
  9796. <InitialStepSize>0.001</InitialStepSize>
  9797. <UseMaximumStepSize>false</UseMaximumStepSize>
  9798. <MaximumStepSize>1.0</MaximumStepSize>
  9799. </IntegrationMethod>
  9800. <IntegrationMethod>
  9801. <Name>MeBDFiMethod</Name>
  9802. <AbsoluteTolerance>1.0e-5</AbsoluteTolerance>
  9803. <RelativeTolerance>1.0e-5</RelativeTolerance>
  9804. <AlgebraicAbsoluteTolerance>1.0e-5</AlgebraicAbsoluteTolerance>
  9805. <AlgebraicRelativeTolerance>1.0e-5</AlgebraicRelativeTolerance>
  9806. <UseInitialStepSize>false</UseInitialStepSize>
  9807. <InitialStepSize>0.001</InitialStepSize>
  9808. <UseMaximumStepSize>false</UseMaximumStepSize>
  9809. <MaximumStepSize>1.0</MaximumStepSize>
  9810. </IntegrationMethod>
  9811. <SelectedIntegrationMethod>8</SelectedIntegrationMethod>
  9812. </IntegrationMethods>
  9813. </RunSpecs>
  9814. <MultipleRun>
  9815. <NrSteps>10</NrSteps>
  9816. <CopyFromStates>false</CopyFromStates>
  9817. <JoinParameterVariation>true</JoinParameterVariation>
  9818. <ClearAfterRun>true</ClearAfterRun>
  9819. <RedrawAfterRun>false</RedrawAfterRun>
  9820. <DrawDuringSimulation>true</DrawDuringSimulation>
  9821. <ActionBeforeOptimization>0</ActionBeforeOptimization>
  9822. <CompareValue>0.0</CompareValue>
  9823. <UseCompareValue>true</UseCompareValue>
  9824. <MultipleRunType>MultipleRun</MultipleRunType>
  9825. <Minimize>true</Minimize>
  9826. <OptimizationVariable></OptimizationVariable>
  9827. <ResulVarUsage>UseEndValue</ResulVarUsage>
  9828. <Tolerance>0.001</Tolerance>
  9829. <OptimizationMethod>BroydonFletcherGoldfarbShanno</OptimizationMethod>
  9830. <MultipleRunVariables>
  9831. </MultipleRunVariables>
  9832. </MultipleRun>
  9833. <ExportData>
  9834. <WriteAsText>true</WriteAsText>
  9835. <ReadAsText>true</ReadAsText>
  9836. <WriteHeader>true</WriteHeader>
  9837. <ReadHeader>true</ReadHeader>
  9838. <ReadFilename></ReadFilename>
  9839. <WriteFilename></WriteFilename>
  9840. <DoWrite>false</DoWrite>
  9841. <ExportVariables>
  9842. <ExportVariable>
  9843. <VariableName>time</VariableName>
  9844. </ExportVariable>
  9845. </ExportVariables>
  9846. <ImportVariables>
  9847. </ImportVariables>
  9848. </ExportData>
  9849. <BreakPoints>
  9850. </BreakPoints>
  9851. <AnimationPlayback>
  9852. <PlaybackSpeed>1.0</PlaybackSpeed>
  9853. </AnimationPlayback>
  9854. </ExpData>
  9855. </Experiment>
  9856. </Experiments>
  9857. </Document>