25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

878 satır
32KB

  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\submodel\endeffector\endeffector.emx</LibraryPath>
  11. <TimeStamp>2020-7-6 14:39:32</TimeStamp>
  12. </Description>
  13. </Information>';
  14. type Mainmodel
  15. end;
  16. implementation bg
  17. submodels
  18. endeffector 592 296
  19. description '<Description>
  20. <IsMainModel>1</IsMainModel>
  21. <KeepParameterValues>True</KeepParameterValues>
  22. <Version>4.8</Version>
  23. <Description>Model generated by 3D-Mechanics Toolbox
  24. Original Filename: C:\users\wouter\My Documents\studie\ma\mahd\implementation\submodel\endeffector\endeffector.3dm</Description>
  25. <LibraryPath>C:\users\wouter\My Documents\studie\ma\mahd\implementation\submodel\endeffector\endeffector.emx</LibraryPath>
  26. <TimeStamp>2020-7-6 14:12:40</TimeStamp>
  27. </Description>';
  28. type MechanicsModel
  29. ports
  30. signal out H_marker [4,4];
  31. mechanical psi in marker2 [6,1];
  32. signal out H_grippertop [4,4];
  33. mechanical psi in grippertop2 [6,1];
  34. signal out H_gripperbottom [4,4];
  35. mechanical psi in gripperbottom [6,1];
  36. restrictions
  37. causality fixed in marker2;
  38. causality fixed in grippertop2;
  39. causality fixed in gripperbottom;
  40. end;
  41. icon bg bottom
  42. figures
  43. image 'C:\users\wouter\My Documents\studie\ma\mahd\implementation\submodel\endeffector\endeffectorIcon.png' 528 232 128 128;
  44. terminals
  45. marker2 592.5 296.5;
  46. grippertop2 592.5 296.5;
  47. gripperbottom 592.5 296.5;
  48. end;
  49. implementation eq
  50. // 20-sim 3D Mechanics Editor
  51. // C:\users\wouter\My Documents\studie\ma\mahd\implementation\submodel\endeffector\endeffector.3dm
  52. variables
  53. real hidden World\AbsH[4,4];
  54. real hidden World\mass_x_I[6,6];
  55. real hidden holderWeld\ConnectionPoint1\AbsH[4,4];
  56. real hidden holderWeld\AbsH[4,4];
  57. real hidden holderWeld\ConnectionPoint2\AbsH[4,4];
  58. real hidden holder\AbsH[4,4];
  59. real hidden holder\mass_x_I[6,6];
  60. real hidden markerFree\ConnectionPoint1\AbsH[4,4];
  61. real hidden markerFree\AbsH[4,4];
  62. real hidden markerFree\RelH[4,4];
  63. real hidden markerFree\rotationInitial[4,4];
  64. real markerFree\quat[4];
  65. real markerFree\quatDot[4];
  66. real hidden markerFree\quatInitial[4];
  67. real markerFree\QOmega[4,4];
  68. real markerFree\vgen[6];
  69. real markerFree\x[3];
  70. real markerFree\v[3];
  71. real markerFree\vel[3];
  72. real markerFree_Rot[4,4];
  73. real hidden markerFree\ConnectionPoint2\AbsH[4,4];
  74. real hidden marker\AbsH[4,4];
  75. real hidden marker\mass_x_I[6,6];
  76. real hidden H_marker\ConnectionPoint1\AbsH[4,4];
  77. real hidden marker2\ConnectionPoint1\AbsH[4,4];
  78. real hidden grippertopFree\ConnectionPoint1\AbsH[4,4];
  79. real hidden grippertopFree\AbsH[4,4];
  80. real hidden grippertopFree\RelH[4,4];
  81. real hidden grippertopFree\rotationInitial[4,4];
  82. real grippertopFree\quat[4];
  83. real grippertopFree\quatDot[4];
  84. real hidden grippertopFree\quatInitial[4];
  85. real grippertopFree\QOmega[4,4];
  86. real grippertopFree\vgen[6];
  87. real grippertopFree\x[3];
  88. real grippertopFree\v[3];
  89. real grippertopFree\vel[3];
  90. real grippertopFree_Rot[4,4];
  91. real hidden grippertopFree\ConnectionPoint2\AbsH[4,4];
  92. real hidden grippertop\AbsH[4,4];
  93. real hidden grippertop\mass_x_I[6,6];
  94. real hidden FreeJoint1\ConnectionPoint1\AbsH[4,4];
  95. real hidden H_grippertop\ConnectionPoint1\AbsH[4,4];
  96. real hidden grippertop2\ConnectionPoint1\AbsH[4,4];
  97. real hidden gripperbaseFree\ConnectionPoint1\AbsH[4,4];
  98. real hidden gripperbaseFree\AbsH[4,4];
  99. real hidden gripperbaseFree\RelH[4,4];
  100. real hidden gripperbaseFree\rotationInitial[4,4];
  101. real gripperbaseFree\quat[4];
  102. real gripperbaseFree\quatDot[4];
  103. real hidden gripperbaseFree\quatInitial[4];
  104. real gripperbaseFree\QOmega[4,4];
  105. real gripperbaseFree\vgen[6];
  106. real gripperbaseFree\x[3];
  107. real gripperbaseFree\v[3];
  108. real gripperbaseFree\vel[3];
  109. real gripperbaseFree_Rot[4,4];
  110. real hidden gripperbaseFree\ConnectionPoint2\AbsH[4,4];
  111. real hidden gripperbase\AbsH[4,4];
  112. real hidden gripperbase\mass_x_I[6,6];
  113. real hidden FreeJoint1\ConnectionPoint2\AbsH[4,4];
  114. real hidden H_gripperbottom\ConnectionPoint1\AbsH[4,4];
  115. real hidden gripperbottom\ConnectionPoint1\AbsH[4,4];
  116. real v[18];
  117. real P[18];
  118. real PDot[18];
  119. real PDotBodies[18];
  120. real hidden AdjX2[6,6];
  121. real hidden AdjX2_T[6,6];
  122. real hidden adjAdjX2_1[6,6];
  123. real hidden adjAdjX2_2[6,6];
  124. real hidden adjAdjX2_3[6,6];
  125. real hidden adjAdjX2_4[6,6];
  126. real hidden adjAdjX2_5[6,6];
  127. real hidden adjAdjX2_6[6,6];
  128. real hidden AdjX3[6,6];
  129. real hidden AdjX3_T[6,6];
  130. real hidden adjAdjX3_1[6,6];
  131. real hidden adjAdjX3_2[6,6];
  132. real hidden adjAdjX3_3[6,6];
  133. real hidden adjAdjX3_4[6,6];
  134. real hidden adjAdjX3_5[6,6];
  135. real hidden adjAdjX3_6[6,6];
  136. real hidden AdjX4[6,6];
  137. real hidden AdjX4_T[6,6];
  138. real hidden adjAdjX4_1[6,6];
  139. real hidden adjAdjX4_2[6,6];
  140. real hidden adjAdjX4_3[6,6];
  141. real hidden adjAdjX4_4[6,6];
  142. real hidden adjAdjX4_5[6,6];
  143. real hidden adjAdjX4_6[6,6];
  144. real hidden J1[6,18];
  145. real hidden J2[6,18];
  146. real hidden J3[6,18];
  147. real hidden J4[6,18];
  148. real hidden T1_00[6];
  149. real hidden T1_00T[1,6];
  150. real hidden T2_00[6];
  151. real hidden T2_00T[1,6];
  152. real hidden T3_00[6];
  153. real hidden T3_00T[1,6];
  154. real hidden T4_00[6];
  155. real hidden T4_00T[1,6];
  156. real hidden M1[6,6];
  157. real hidden AdjInv1[6,6];
  158. real hidden TM1[1,6];
  159. real hidden M2[6,6];
  160. real hidden AdjInv2[6,6];
  161. real hidden TM2[1,6];
  162. real hidden M3[6,6];
  163. real hidden AdjInv3[6,6];
  164. real hidden TM3[1,6];
  165. real hidden M4[6,6];
  166. real hidden AdjInv4[6,6];
  167. real hidden TM4[1,6];
  168. real MassMatrix[18,18];
  169. real hidden M2_2[6,6];
  170. real hidden M3_3[6,6];
  171. real hidden M4_4[6,6];
  172. real hidden wrenchGrav2[1,6];
  173. real hidden wrenchGrav3[1,6];
  174. real hidden wrenchGrav4[1,6];
  175. real FreeJoint1\ConnectionPoint1\invAdjointH[6,6];
  176. real FreeJoint1\ConnectionPoint1\AbsHinverse[4,4];
  177. real FreeJoint1\ConnectionPoint2\invAdjointH[6,6];
  178. real FreeJoint1\ConnectionPoint2\AbsHinverse[4,4];
  179. real FreeJoint1\ConnectionPoint1_effort[1,6];
  180. real FreeJoint1\ConnectionPoint1_flow[6];
  181. real FreeJoint1\ConnectionPoint2_effort[1,6];
  182. real FreeJoint1\ConnectionPoint2_flow[6];
  183. real FreeJoint1_relH[4,4];
  184. real FreeJoint1_relT[6];
  185. real FreeJoint1_relW[1,6];
  186. real FreeJoint1_f1;
  187. real FreeJoint1_e1;
  188. real FreeJoint1_f2;
  189. real FreeJoint1_e2;
  190. real FreeJoint1_f3;
  191. real FreeJoint1_e3;
  192. real FreeJoint1_f4;
  193. real FreeJoint1_e4;
  194. real FreeJoint1_f5;
  195. real FreeJoint1_e5;
  196. real FreeJoint1_f6;
  197. real FreeJoint1_e6;
  198. real FreeJoint1_EulerXZY[3];
  199. real FreeJoint1_EulerYXZ[3];
  200. real FreeJoint1\SpringForce;
  201. real FreeJoint1\DampingForce;
  202. real markerFree\Bk[6,6];
  203. real hidden markerFree\skewP4to6[3,3];
  204. real TMSum2[1,6];
  205. real grippertopFree\Bk[6,6];
  206. real hidden grippertopFree\skewP4to6[3,3];
  207. real TMSum3[1,6];
  208. real gripperbaseFree\Bk[6,6];
  209. real hidden gripperbaseFree\skewP4to6[3,3];
  210. real TMSum4[1,6];
  211. parameters
  212. real hidden World\H[4,4] = [
  213. 1, 0, 0, 0;
  214. 0, 1, 0, 0;
  215. 0, 0, 1, 0;
  216. 0, 0, 0, 1];
  217. real hidden World\I[6,6] = [
  218. 0.1, 0, 0, 0, 0, 0;
  219. 0, 0.1, 0, 0, 0, 0;
  220. 0, 0, 0.1, 0, 0, 0;
  221. 0, 0, 0, 1, 0, 0;
  222. 0, 0, 0, 0, 1, 0;
  223. 0, 0, 0, 0, 0, 1];
  224. real World\mass = 1;
  225. real hidden holderWeld\ConnectionPoint1\RelH[4,4] = [
  226. 1, 0, 0, 0;
  227. 0, 1, 0, 0.11;
  228. 0, 0, 1, -0.0088;
  229. 0, 0, 0, 1];
  230. real hidden holder\RelH[4,4] = [
  231. 1, 0, 0, 0;
  232. 0, 1, 0, 0;
  233. 0, 0, 1, 0;
  234. 0, 0, 0, 1];
  235. real hidden holder\I[6,6] = [
  236. 0.1, 0, 0, 0, 0, 0;
  237. 0, 0.1, 0, 0, 0, 0;
  238. 0, 0, 0.1, 0, 0, 0;
  239. 0, 0, 0, 1, 0, 0;
  240. 0, 0, 0, 0, 1, 0;
  241. 0, 0, 0, 0, 0, 1];
  242. real holder\mass = 1;
  243. real hidden markerFree\ConnectionPoint1\RelH[4,4] = [
  244. 1, 0, 0, 0;
  245. 0, 1, 0, 0;
  246. 0, 0, 1, 0;
  247. 0, 0, 0, 1];
  248. real markerFree\EulerXYZInitial[3] = [1.5707963267949; 0; -0];
  249. real hidden markerFree\xInitial[3] = [0; 0.1; 0];
  250. real hidden marker\RelH[4,4] = [
  251. 1, 0, 0, 0;
  252. 0, 1, 0, 0;
  253. 0, 0, 1, 0;
  254. 0, 0, 0, 1];
  255. real hidden marker\I[6,6] = [
  256. 0.00163636363636364, 0, 0, 0, 0, 0;
  257. 0, 2.6645e-005, 0, 0, 0, 0;
  258. 0, 0, 0.00163636363636364, 0, 0, 0;
  259. 0, 0, 0, 1, 0, 0;
  260. 0, 0, 0, 0, 1, 0;
  261. 0, 0, 0, 0, 0, 1];
  262. real marker\mass = 0.011;
  263. real hidden H_marker\ConnectionPoint1\RelH[4,4] = [
  264. 1, 0, 0, 0;
  265. 0, 1, 0, 0;
  266. 0, 0, 1, 0;
  267. 0, 0, 0, 1];
  268. real hidden marker2\ConnectionPoint1\RelH[4,4] = [
  269. 1, 0, 0, 0;
  270. 0, 1, 0, 0;
  271. 0, 0, 1, 0;
  272. 0, 0, 0, 1];
  273. real hidden grippertopFree\ConnectionPoint1\RelH[4,4] = [
  274. 1, 0, 0, 0;
  275. 0, 1, 0, 0;
  276. 0, 0, 1, 0;
  277. 0, 0, 0, 1];
  278. real grippertopFree\EulerXYZInitial[3] = [-0; 0; -0];
  279. real hidden grippertopFree\xInitial[3] = [0; 0.11; 0.015];
  280. real hidden grippertop\RelH[4,4] = [
  281. 1, 0, 0, 0;
  282. 0, 1, 0, 0;
  283. 0, 0, 1, 0;
  284. 0, 0, 0, 1];
  285. real hidden grippertop\I[6,6] = [
  286. 0.1, 0, 0, 0, 0, 0;
  287. 0, 0.1, 0, 0, 0, 0;
  288. 0, 0, 0.1, 0, 0, 0;
  289. 0, 0, 0, 1, 0, 0;
  290. 0, 0, 0, 0, 1, 0;
  291. 0, 0, 0, 0, 0, 1];
  292. real grippertop\mass = 1;
  293. real hidden FreeJoint1\ConnectionPoint1\RelH[4,4] = [
  294. 1, 0, 0, 0.05;
  295. 0, 1, 0, 0;
  296. 0, 0, 1, 0;
  297. 0, 0, 0, 1];
  298. real hidden H_grippertop\ConnectionPoint1\RelH[4,4] = [
  299. 1, 0, 0, 0;
  300. 0, 1, 0, 0;
  301. 0, 0, 1, 0;
  302. 0, 0, 0, 1];
  303. real hidden grippertop2\ConnectionPoint1\RelH[4,4] = [
  304. 1, 0, 0, 0;
  305. 0, 1, 0, 0;
  306. 0, 0, 1, 0;
  307. 0, 0, 0, 1];
  308. real hidden gripperbaseFree\ConnectionPoint1\RelH[4,4] = [
  309. 1, 0, 0, 0;
  310. 0, 1, 0, 0;
  311. 0, 0, 1, 0;
  312. 0, 0, 0, 1];
  313. real gripperbaseFree\EulerXYZInitial[3] = [-0; 0; -0];
  314. real hidden gripperbaseFree\xInitial[3] = [0; 0.11; 0];
  315. real hidden gripperbase\RelH[4,4] = [
  316. 1, 0, 0, 0;
  317. 0, 1, 0, 0;
  318. 0, 0, 1, 0;
  319. 0, 0, 0, 1];
  320. real hidden gripperbase\I[6,6] = [
  321. 0.02, 0, 0, 0, 0, 0;
  322. 0, 0.02, 0, 0, 0, 0;
  323. 0, 0, 0.08, 0, 0, 0;
  324. 0, 0, 0, 1, 0, 0;
  325. 0, 0, 0, 0, 1, 0;
  326. 0, 0, 0, 0, 0, 1];
  327. real gripperbase\mass = 0.005;
  328. real hidden FreeJoint1\ConnectionPoint2\RelH[4,4] = [
  329. 1, 0, 0, 0.05;
  330. 0, 1, 0, 0;
  331. 0, 0, 1, 0.015;
  332. 0, 0, 0, 1];
  333. real hidden H_gripperbottom\ConnectionPoint1\RelH[4,4] = [
  334. 1, 0, 0, 0;
  335. 0, 1, 0, 0;
  336. 0, 0, 1, 0;
  337. 0, 0, 0, 1];
  338. real hidden gripperbottom\ConnectionPoint1\RelH[4,4] = [
  339. 1, 0, 0, 0;
  340. 0, 1, 0, 0;
  341. 0, 0, 1, 0;
  342. 0, 0, 0, 1];
  343. real gravity[3] = [0; 0; -9.81];
  344. real constraintRotSpringK = 10000;
  345. real constraintRotDamperD = 100;
  346. real FreeJoint1\Spring = 1;
  347. real FreeJoint1\Damping = 1;
  348. real constraintTransSpringK = 100000;
  349. real constraintTransDamperD = 100;
  350. real hidden PDotInitial[18] = [0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0];
  351. initialequations
  352. markerFree\rotationInitial = dll ('EulerAngles.dll', 'HMatrixFromEulXYZr', markerFree\EulerXYZInitial);
  353. markerFree\quatInitial = dll ('EulerAngles.dll', 'QuaternionFromHMatrix', markerFree\rotationInitial);
  354. markerFree\RelH[4, 1:3] = 0;
  355. markerFree\RelH[4, 4] = 1;
  356. grippertopFree\rotationInitial = dll ('EulerAngles.dll', 'HMatrixFromEulXYZr', grippertopFree\EulerXYZInitial);
  357. grippertopFree\quatInitial = dll ('EulerAngles.dll', 'QuaternionFromHMatrix', grippertopFree\rotationInitial);
  358. grippertopFree\RelH[4, 1:3] = 0;
  359. grippertopFree\RelH[4, 4] = 1;
  360. gripperbaseFree\rotationInitial = dll ('EulerAngles.dll', 'HMatrixFromEulXYZr', gripperbaseFree\EulerXYZInitial);
  361. gripperbaseFree\quatInitial = dll ('EulerAngles.dll', 'QuaternionFromHMatrix', gripperbaseFree\rotationInitial);
  362. gripperbaseFree\RelH[4, 1:3] = 0;
  363. gripperbaseFree\RelH[4, 4] = 1;
  364. J1[1:6, 1:6] = 0;
  365. J1[1:6, 7:12] = 0;
  366. J1[1:6, 13:18] = 0;
  367. J2[1:6, 7:12] = 0;
  368. J2[1:6, 13:18] = 0;
  369. J3[1:6, 1:6] = 0;
  370. J3[1:6, 13:18] = 0;
  371. J4[1:6, 1:6] = 0;
  372. J4[1:6, 7:12] = 0;
  373. MassMatrix[1:6, 7:12] = 0;
  374. MassMatrix[1:6, 13:18] = 0;
  375. MassMatrix[7:12, 1:6] = 0;
  376. MassMatrix[7:12, 13:18] = 0;
  377. MassMatrix[13:18, 1:6] = 0;
  378. MassMatrix[13:18, 7:12] = 0;
  379. markerFree\Bk[4:6, 4:6] = 0;
  380. grippertopFree\Bk[4:6, 4:6] = 0;
  381. gripperbaseFree\Bk[4:6, 4:6] = 0;
  382. equations
  383. World\AbsH = World\H;
  384. World\mass_x_I = World\mass * World\I;
  385. holderWeld\ConnectionPoint1\AbsH = multiplyH (World\AbsH, holderWeld\ConnectionPoint1\RelH);
  386. holderWeld\AbsH = holderWeld\ConnectionPoint1\AbsH;
  387. holderWeld\ConnectionPoint2\AbsH = holderWeld\AbsH;
  388. holder\AbsH = multiplyH (holderWeld\ConnectionPoint2\AbsH, holder\RelH);
  389. holder\mass_x_I = holder\mass * holder\I;
  390. markerFree\ConnectionPoint1\AbsH = multiplyH (World\AbsH, markerFree\ConnectionPoint1\RelH);
  391. markerFree\QOmega = [0, -markerFree\vgen[3], markerFree\vgen[2], -markerFree\vgen[1];
  392. markerFree\vgen[3], 0, -markerFree\vgen[1], -markerFree\vgen[2];
  393. -markerFree\vgen[2], markerFree\vgen[1], 0, -markerFree\vgen[3];
  394. markerFree\vgen[1], markerFree\vgen[2], markerFree\vgen[3], 0];
  395. markerFree\quat = int (markerFree\quatDot) + markerFree\quatInitial;
  396. markerFree\quatDot = 0.5 * (markerFree\QOmega * markerFree\quat);
  397. markerFree\vel = markerFree\vgen[4:6];
  398. markerFree\v = skew (markerFree\vgen[1:3]) * markerFree\x + markerFree\vel;
  399. markerFree\x = int (markerFree\v) + markerFree\xInitial;
  400. markerFree_Rot = dll ('EulerAngles.dll', 'HMatrixFromQuaternion', markerFree\quat);
  401. markerFree\RelH[1:3, 1:3] = markerFree_Rot[1:3, 1:3];
  402. markerFree\RelH[1:3, 4] = markerFree\x;
  403. markerFree\AbsH = multiplyH (markerFree\ConnectionPoint1\AbsH, markerFree\RelH);
  404. markerFree\ConnectionPoint2\AbsH = markerFree\AbsH;
  405. marker\AbsH = multiplyH (markerFree\ConnectionPoint2\AbsH, marker\RelH);
  406. marker\mass_x_I = marker\mass * marker\I;
  407. H_marker\ConnectionPoint1\AbsH = multiplyH (marker\AbsH, H_marker\ConnectionPoint1\RelH);
  408. marker2\ConnectionPoint1\AbsH = multiplyH (marker\AbsH, marker2\ConnectionPoint1\RelH);
  409. grippertopFree\ConnectionPoint1\AbsH = multiplyH (World\AbsH, grippertopFree\ConnectionPoint1\RelH);
  410. grippertopFree\QOmega = [0, -grippertopFree\vgen[3], grippertopFree\vgen[2], -grippertopFree\vgen[1];
  411. grippertopFree\vgen[3], 0, -grippertopFree\vgen[1], -grippertopFree\vgen[2];
  412. -grippertopFree\vgen[2], grippertopFree\vgen[1], 0, -grippertopFree\vgen[3];
  413. grippertopFree\vgen[1], grippertopFree\vgen[2], grippertopFree\vgen[3], 0];
  414. grippertopFree\quat = int (grippertopFree\quatDot) + grippertopFree\quatInitial;
  415. grippertopFree\quatDot = 0.5 * (grippertopFree\QOmega * grippertopFree\quat);
  416. grippertopFree\vel = grippertopFree\vgen[4:6];
  417. grippertopFree\v = skew (grippertopFree\vgen[1:3]) * grippertopFree\x + grippertopFree\vel;
  418. grippertopFree\x = int (grippertopFree\v) + grippertopFree\xInitial;
  419. grippertopFree_Rot = dll ('EulerAngles.dll', 'HMatrixFromQuaternion', grippertopFree\quat);
  420. grippertopFree\RelH[1:3, 1:3] = grippertopFree_Rot[1:3, 1:3];
  421. grippertopFree\RelH[1:3, 4] = grippertopFree\x;
  422. grippertopFree\AbsH = multiplyH (grippertopFree\ConnectionPoint1\AbsH, grippertopFree\RelH);
  423. grippertopFree\ConnectionPoint2\AbsH = grippertopFree\AbsH;
  424. grippertop\AbsH = multiplyH (grippertopFree\ConnectionPoint2\AbsH, grippertop\RelH);
  425. grippertop\mass_x_I = grippertop\mass * grippertop\I;
  426. FreeJoint1\ConnectionPoint1\AbsH = multiplyH (grippertop\AbsH, FreeJoint1\ConnectionPoint1\RelH);
  427. H_grippertop\ConnectionPoint1\AbsH = multiplyH (grippertop\AbsH, H_grippertop\ConnectionPoint1\RelH);
  428. grippertop2\ConnectionPoint1\AbsH = multiplyH (grippertop\AbsH, grippertop2\ConnectionPoint1\RelH);
  429. gripperbaseFree\ConnectionPoint1\AbsH = multiplyH (World\AbsH, gripperbaseFree\ConnectionPoint1\RelH);
  430. gripperbaseFree\QOmega = [0, -gripperbaseFree\vgen[3], gripperbaseFree\vgen[2], -gripperbaseFree\vgen[1];
  431. gripperbaseFree\vgen[3], 0, -gripperbaseFree\vgen[1], -gripperbaseFree\vgen[2];
  432. -gripperbaseFree\vgen[2], gripperbaseFree\vgen[1], 0, -gripperbaseFree\vgen[3];
  433. gripperbaseFree\vgen[1], gripperbaseFree\vgen[2], gripperbaseFree\vgen[3], 0];
  434. gripperbaseFree\quat = int (gripperbaseFree\quatDot) + gripperbaseFree\quatInitial;
  435. gripperbaseFree\quatDot = 0.5 * (gripperbaseFree\QOmega * gripperbaseFree\quat);
  436. gripperbaseFree\vel = gripperbaseFree\vgen[4:6];
  437. gripperbaseFree\v = skew (gripperbaseFree\vgen[1:3]) * gripperbaseFree\x + gripperbaseFree\vel;
  438. gripperbaseFree\x = int (gripperbaseFree\v) + gripperbaseFree\xInitial;
  439. gripperbaseFree_Rot = dll ('EulerAngles.dll', 'HMatrixFromQuaternion', gripperbaseFree\quat);
  440. gripperbaseFree\RelH[1:3, 1:3] = gripperbaseFree_Rot[1:3, 1:3];
  441. gripperbaseFree\RelH[1:3, 4] = gripperbaseFree\x;
  442. gripperbaseFree\AbsH = multiplyH (gripperbaseFree\ConnectionPoint1\AbsH, gripperbaseFree\RelH);
  443. gripperbaseFree\ConnectionPoint2\AbsH = gripperbaseFree\AbsH;
  444. gripperbase\AbsH = multiplyH (gripperbaseFree\ConnectionPoint2\AbsH, gripperbase\RelH);
  445. gripperbase\mass_x_I = gripperbase\mass * gripperbase\I;
  446. FreeJoint1\ConnectionPoint2\AbsH = multiplyH (gripperbase\AbsH, FreeJoint1\ConnectionPoint2\RelH);
  447. H_gripperbottom\ConnectionPoint1\AbsH = multiplyH (gripperbase\AbsH, H_gripperbottom\ConnectionPoint1\RelH);
  448. gripperbottom\ConnectionPoint1\AbsH = multiplyH (gripperbase\AbsH, gripperbottom\ConnectionPoint1\RelH);
  449. AdjX2 = Adjoint (markerFree\ConnectionPoint1\AbsH);
  450. AdjX2_T = transpose (AdjX2);
  451. adjAdjX2_1 = adjoint (AdjX2[1:6, 1]);
  452. adjAdjX2_2 = adjoint (AdjX2[1:6, 2]);
  453. adjAdjX2_3 = adjoint (AdjX2[1:6, 3]);
  454. adjAdjX2_4 = adjoint (AdjX2[1:6, 4]);
  455. adjAdjX2_5 = adjoint (AdjX2[1:6, 5]);
  456. adjAdjX2_6 = adjoint (AdjX2[1:6, 6]);
  457. AdjX3 = Adjoint (grippertopFree\ConnectionPoint1\AbsH);
  458. AdjX3_T = transpose (AdjX3);
  459. adjAdjX3_1 = adjoint (AdjX3[1:6, 1]);
  460. adjAdjX3_2 = adjoint (AdjX3[1:6, 2]);
  461. adjAdjX3_3 = adjoint (AdjX3[1:6, 3]);
  462. adjAdjX3_4 = adjoint (AdjX3[1:6, 4]);
  463. adjAdjX3_5 = adjoint (AdjX3[1:6, 5]);
  464. adjAdjX3_6 = adjoint (AdjX3[1:6, 6]);
  465. AdjX4 = Adjoint (gripperbaseFree\ConnectionPoint1\AbsH);
  466. AdjX4_T = transpose (AdjX4);
  467. adjAdjX4_1 = adjoint (AdjX4[1:6, 1]);
  468. adjAdjX4_2 = adjoint (AdjX4[1:6, 2]);
  469. adjAdjX4_3 = adjoint (AdjX4[1:6, 3]);
  470. adjAdjX4_4 = adjoint (AdjX4[1:6, 4]);
  471. adjAdjX4_5 = adjoint (AdjX4[1:6, 5]);
  472. adjAdjX4_6 = adjoint (AdjX4[1:6, 6]);
  473. J2[1:6, 1:6] = AdjX2;
  474. J3[1:6, 7:12] = AdjX3;
  475. J4[1:6, 13:18] = AdjX4;
  476. T1_00 = J1 * v;
  477. T1_00T = transpose (T1_00);
  478. T2_00 = J2 * v;
  479. T2_00T = transpose (T2_00);
  480. T3_00 = J3 * v;
  481. T3_00T = transpose (T3_00);
  482. T4_00 = J4 * v;
  483. T4_00T = transpose (T4_00);
  484. AdjInv1 = Adjoint (inverseH (holder\AbsH));
  485. M1 = transpose (AdjInv1) * holder\mass_x_I * AdjInv1;
  486. TM1 = T1_00T * M1;
  487. AdjInv2 = Adjoint (inverseH (marker\AbsH));
  488. M2 = transpose (AdjInv2) * marker\mass_x_I * AdjInv2;
  489. TM2 = T2_00T * M2;
  490. AdjInv3 = Adjoint (inverseH (grippertop\AbsH));
  491. M3 = transpose (AdjInv3) * grippertop\mass_x_I * AdjInv3;
  492. TM3 = T3_00T * M3;
  493. AdjInv4 = Adjoint (inverseH (gripperbase\AbsH));
  494. M4 = transpose (AdjInv4) * gripperbase\mass_x_I * AdjInv4;
  495. TM4 = T4_00T * M4;
  496. M2_2 = AdjX2_T * (M2 * AdjX2);
  497. M3_3 = AdjX3_T * (M3 * AdjX3);
  498. M4_4 = AdjX4_T * (M4 * AdjX4);
  499. MassMatrix[1:6, 1:6] = M2_2;
  500. MassMatrix[7:12, 7:12] = M3_3;
  501. MassMatrix[13:18, 13:18] = M4_4;
  502. wrenchGrav2 = marker\mass * [gravity[3] * marker\AbsH[2, 4] - gravity[2] * marker\AbsH[3, 4], gravity[1] * marker\AbsH[3, 4] - gravity[3] * marker\AbsH[1, 4], gravity[2] * marker\AbsH[1, 4] - gravity[1] * marker\AbsH[2, 4], gravity[1], gravity[2], gravity[3]];
  503. wrenchGrav3 = grippertop\mass * [gravity[3] * grippertop\AbsH[2, 4] - gravity[2] * grippertop\AbsH[3, 4], gravity[1] * grippertop\AbsH[3, 4] - gravity[3] * grippertop\AbsH[1, 4], gravity[2] * grippertop\AbsH[1, 4] - gravity[1] * grippertop\AbsH[2, 4], gravity[1], gravity[2], gravity[3]];
  504. wrenchGrav4 = gripperbase\mass * [gravity[3] * gripperbase\AbsH[2, 4] - gravity[2] * gripperbase\AbsH[3, 4], gravity[1] * gripperbase\AbsH[3, 4] - gravity[3] * gripperbase\AbsH[1, 4], gravity[2] * gripperbase\AbsH[1, 4] - gravity[1] * gripperbase\AbsH[2, 4], gravity[1], gravity[2], gravity[3]];
  505. H_marker = H_marker\ConnectionPoint1\AbsH;
  506. marker2.f = T2_00;
  507. H_grippertop = H_grippertop\ConnectionPoint1\AbsH;
  508. grippertop2.f = T3_00;
  509. H_gripperbottom = H_gripperbottom\ConnectionPoint1\AbsH;
  510. gripperbottom.f = T4_00;
  511. FreeJoint1\ConnectionPoint1\AbsHinverse = inverseH (FreeJoint1\ConnectionPoint1\AbsH);
  512. FreeJoint1\ConnectionPoint1\invAdjointH = Adjoint (FreeJoint1\ConnectionPoint1\AbsHinverse);
  513. FreeJoint1\ConnectionPoint2\AbsHinverse = inverseH (FreeJoint1\ConnectionPoint2\AbsH);
  514. FreeJoint1\ConnectionPoint2\invAdjointH = Adjoint (FreeJoint1\ConnectionPoint2\AbsHinverse);
  515. FreeJoint1\ConnectionPoint1_flow = FreeJoint1\ConnectionPoint1\invAdjointH * T3_00;
  516. FreeJoint1\ConnectionPoint2_flow = FreeJoint1\ConnectionPoint2\invAdjointH * T4_00;
  517. FreeJoint1_relH = multiplyH (inverseH (FreeJoint1\ConnectionPoint1\AbsH), FreeJoint1\ConnectionPoint2\AbsH);
  518. FreeJoint1_relT = Adjoint (FreeJoint1_relH) * FreeJoint1\ConnectionPoint2_flow - FreeJoint1\ConnectionPoint1_flow;
  519. [FreeJoint1_f1;
  520. FreeJoint1_f2;
  521. FreeJoint1_f3;
  522. FreeJoint1_f4;
  523. FreeJoint1_f5;
  524. FreeJoint1_f6] = FreeJoint1_relT;
  525. FreeJoint1_EulerXZY = dll ('EulerAngles.dll', 'EulXZYrFromHMatrix', FreeJoint1_relH);
  526. FreeJoint1_e1 = -constraintRotSpringK * FreeJoint1_EulerXZY[1] - constraintRotDamperD * FreeJoint1_f1;
  527. FreeJoint1_EulerYXZ = dll ('EulerAngles.dll', 'EulYXZrFromHMatrix', FreeJoint1_relH);
  528. FreeJoint1\SpringForce = -(FreeJoint1_EulerYXZ[1] * FreeJoint1\Spring);
  529. FreeJoint1\DampingForce = -(FreeJoint1_f2 * FreeJoint1\Damping);
  530. FreeJoint1_e2 = FreeJoint1\SpringForce + FreeJoint1\DampingForce;
  531. FreeJoint1_e3 = -constraintRotSpringK * FreeJoint1_EulerXZY[2] - constraintRotDamperD * FreeJoint1_f3;
  532. FreeJoint1_e4 = -constraintTransSpringK * FreeJoint1_relH[1, 4] - constraintTransDamperD * FreeJoint1_f4;
  533. FreeJoint1_e5 = -constraintTransSpringK * FreeJoint1_relH[2, 4] - constraintTransDamperD * FreeJoint1_f5;
  534. FreeJoint1_e6 = -constraintTransSpringK * FreeJoint1_relH[3, 4] - constraintTransDamperD * FreeJoint1_f6;
  535. FreeJoint1_relW = [FreeJoint1_e1, FreeJoint1_e2, FreeJoint1_e3, FreeJoint1_e4, FreeJoint1_e5, FreeJoint1_e6];
  536. FreeJoint1\ConnectionPoint1_effort = -FreeJoint1_relW;
  537. FreeJoint1\ConnectionPoint2_effort = FreeJoint1_relW * Adjoint (FreeJoint1_relH);
  538. markerFree\skewP4to6 = skew (P[4:6]);
  539. markerFree\Bk[1:3, 1:3] = skew (P[1:3]);
  540. markerFree\Bk[4:6, 1:3] = markerFree\skewP4to6;
  541. markerFree\Bk[1:3, 4:6] = markerFree\skewP4to6;
  542. TMSum2 = TM2;
  543. PDotBodies[1:6] = -[TMSum2 * (adjAdjX2_1 * T2_00);
  544. TMSum2 * (adjAdjX2_2 * T2_00);
  545. TMSum2 * (adjAdjX2_3 * T2_00);
  546. TMSum2 * (adjAdjX2_4 * T2_00);
  547. TMSum2 * (adjAdjX2_5 * T2_00);
  548. TMSum2 * (adjAdjX2_6 * T2_00)] - markerFree\Bk * v[1:6];
  549. grippertopFree\skewP4to6 = skew (P[10:12]);
  550. grippertopFree\Bk[1:3, 1:3] = skew (P[7:9]);
  551. grippertopFree\Bk[4:6, 1:3] = grippertopFree\skewP4to6;
  552. grippertopFree\Bk[1:3, 4:6] = grippertopFree\skewP4to6;
  553. TMSum3 = TM3;
  554. PDotBodies[7:12] = -[TMSum3 * (adjAdjX3_1 * T3_00);
  555. TMSum3 * (adjAdjX3_2 * T3_00);
  556. TMSum3 * (adjAdjX3_3 * T3_00);
  557. TMSum3 * (adjAdjX3_4 * T3_00);
  558. TMSum3 * (adjAdjX3_5 * T3_00);
  559. TMSum3 * (adjAdjX3_6 * T3_00)] - grippertopFree\Bk * v[7:12];
  560. gripperbaseFree\skewP4to6 = skew (P[16:18]);
  561. gripperbaseFree\Bk[1:3, 1:3] = skew (P[13:15]);
  562. gripperbaseFree\Bk[4:6, 1:3] = gripperbaseFree\skewP4to6;
  563. gripperbaseFree\Bk[1:3, 4:6] = gripperbaseFree\skewP4to6;
  564. TMSum4 = TM4;
  565. PDotBodies[13:18] = -[TMSum4 * (adjAdjX4_1 * T4_00);
  566. TMSum4 * (adjAdjX4_2 * T4_00);
  567. TMSum4 * (adjAdjX4_3 * T4_00);
  568. TMSum4 * (adjAdjX4_4 * T4_00);
  569. TMSum4 * (adjAdjX4_5 * T4_00);
  570. TMSum4 * (adjAdjX4_6 * T4_00)] - gripperbaseFree\Bk * v[13:18];
  571. PDot = PDotBodies + transpose (wrenchGrav2 * J2 + wrenchGrav3 * J3 + wrenchGrav4 * J4 + transpose (marker2.e) * J2 + transpose (grippertop2.e) * J3 + transpose (gripperbottom.e) * J4 + FreeJoint1\ConnectionPoint1_effort * FreeJoint1\ConnectionPoint1\invAdjointH * J3 + FreeJoint1\ConnectionPoint2_effort * FreeJoint1\ConnectionPoint2\invAdjointH * J4);
  572. P = int (PDot) + PDotInitial;
  573. v = linsolve (MassMatrix, P, 'cholesky');
  574. markerFree\vgen = v[1:6];
  575. grippertopFree\vgen = v[7:12];
  576. gripperbaseFree\vgen = v[13:18];
  577. implementation_end;
  578. end;
  579. connections
  580. end;
  581. implementation_end;
  582. ]]>
  583. </Sidops>
  584. </Model>
  585. <Experiments>
  586. <DefaultExperiment><![CDATA[Experiment 1]]>
  587. </DefaultExperiment>
  588. <Experiment>
  589. <Name>Experiment 1</Name>
  590. <CreatedBy></CreatedBy>
  591. <Info></Info>
  592. <ExpData>
  593. <VersionNumber>4.8</VersionNumber>
  594. <ModelProperties>
  595. </ModelProperties>
  596. <Variables>
  597. <Parameters>
  598. </Parameters>
  599. </Variables>
  600. <PlotSpecs>
  601. <VarNames>
  602. <VarName>time</VarName>
  603. </VarNames>
  604. <Plots>
  605. <Plot>
  606. <PlotType>GraphPlot</PlotType>
  607. <BasePlot>
  608. <PlotId>1</PlotId>
  609. <UseWindowsBGColor>false</UseWindowsBGColor>
  610. <BGColor>16777215</BGColor>
  611. <PlotIsVisible>true</PlotIsVisible>
  612. </BasePlot>
  613. <Grid>
  614. <DrawGrid>true</DrawGrid>
  615. <GridColor>15780518</GridColor>
  616. <GridBorderLineColor>12624260</GridBorderLineColor>
  617. <GridZeroLineColor>0</GridZeroLineColor>
  618. <XTicks>10</XTicks>
  619. <YTicks>10</YTicks>
  620. <ZTicks>10</ZTicks>
  621. <Use3DLook>false</Use3DLook>
  622. </Grid>
  623. <PlotBGColor>16777215</PlotBGColor>
  624. <ShowPlotTitle>true</ShowPlotTitle>
  625. <TitlePosition>1</TitlePosition>
  626. <PlotTitle>endeffector</PlotTitle>
  627. <ShowXValues>true</ShowXValues>
  628. <Fonts>
  629. <TitleFont>
  630. <Name>Arial</Name>
  631. <Height>12</Height>
  632. <PitchFamily>34</PitchFamily>
  633. <Weight>400</Weight>
  634. <Italic>0</Italic>
  635. <UnderLine>0</UnderLine>
  636. <StrikeOut>0</StrikeOut>
  637. <Color>0</Color>
  638. </TitleFont>
  639. <LabelFont>
  640. <Name>Arial</Name>
  641. <Height>12</Height>
  642. <PitchFamily>34</PitchFamily>
  643. <Weight>400</Weight>
  644. <Italic>0</Italic>
  645. <UnderLine>0</UnderLine>
  646. <StrikeOut>0</StrikeOut>
  647. <Color>0</Color>
  648. </LabelFont>
  649. <ValuesFont>
  650. <Name>Arial</Name>
  651. <Height>10</Height>
  652. <PitchFamily>34</PitchFamily>
  653. <Weight>400</Weight>
  654. <Italic>0</Italic>
  655. <UnderLine>0</UnderLine>
  656. <StrikeOut>0</StrikeOut>
  657. <Color>0</Color>
  658. </ValuesFont>
  659. <LegendFont>
  660. <Name>Arial</Name>
  661. <Height>12</Height>
  662. <PitchFamily>34</PitchFamily>
  663. <Weight>400</Weight>
  664. <Italic>0</Italic>
  665. <UnderLine>0</UnderLine>
  666. <StrikeOut>0</StrikeOut>
  667. <Color>0</Color>
  668. </LegendFont>
  669. </Fonts>
  670. <SharedXAxis>true</SharedXAxis>
  671. <SharedYAxis>true</SharedYAxis>
  672. <SharedZAxis>false</SharedZAxis>
  673. <XAxes>
  674. <Axis>
  675. <Minimum>0.0</Minimum>
  676. <Maximum>10.0</Maximum>
  677. <Linear>true</Linear>
  678. <Scaling>3</Scaling>
  679. <Label>time</Label>
  680. </Axis>
  681. </XAxes>
  682. <YAxes>
  683. <Axis>
  684. <Minimum>0.0</Minimum>
  685. <Maximum>10.0</Maximum>
  686. <Linear>true</Linear>
  687. <Scaling>2</Scaling>
  688. <Label></Label>
  689. </Axis>
  690. </YAxes>
  691. <ZAxes>
  692. </ZAxes>
  693. <Curves>
  694. <Curve>
  695. <LineColor>3355111</LineColor>
  696. <LineStyle>1</LineStyle>
  697. <TickColor>3355111</TickColor>
  698. <TickStyle>0</TickStyle>
  699. <CurveVisible>true</CurveVisible>
  700. <PixelThresshold>1</PixelThresshold>
  701. <LineThickness>1</LineThickness>
  702. <LineOrder>1</LineOrder>
  703. <ShowYValues>true</ShowYValues>
  704. <XCurveData>
  705. <ShowUnit>true</ShowUnit>
  706. <VarName>time</VarName>
  707. </XCurveData>
  708. </Curve>
  709. </Curves>
  710. <Legenda>
  711. <ShowLegenda>true</ShowLegenda>
  712. <BorderPenColor>0</BorderPenColor>
  713. <BackgroundColor>16777215</BackgroundColor>
  714. </Legenda>
  715. </Plot>
  716. </Plots>
  717. <PlotPanels>
  718. <PlotPanel>
  719. <PlotPanelId>1</PlotPanelId>
  720. <PlotPanelVisible>true</PlotPanelVisible>
  721. <Name>Window 1</Name>
  722. <Tiling>0</Tiling>
  723. <PlotIds>
  724. <PlotId>1</PlotId>
  725. </PlotIds>
  726. <ToggleState>Base</ToggleState>
  727. </PlotPanel>
  728. </PlotPanels>
  729. </PlotSpecs>
  730. <RunSpecs>
  731. <SimulatorSettings>
  732. <StartTime>0.0</StartTime>
  733. <FinishTime>10.0</FinishTime>
  734. <AllowPassFinishTime>false</AllowPassFinishTime>
  735. <Warp>false</Warp>
  736. <FPGonio>false</FPGonio>
  737. <UseOutputAfterEach>false</UseOutputAfterEach>
  738. <OutputAfterEach>0.1</OutputAfterEach>
  739. <EventEpsilon>1.0e-6</EventEpsilon>
  740. <AlgebraicTolerance>1.0e-7</AlgebraicTolerance>
  741. <SteadyStateAnalysis>false</SteadyStateAnalysis>
  742. <UpdateHoldInstructions>true</UpdateHoldInstructions>
  743. </SimulatorSettings>
  744. <IntegrationMethods>
  745. <IntegrationMethod>
  746. <Name>Euler</Name>
  747. <StepSize>0.01</StepSize>
  748. <AutoStepSize>false</AutoStepSize>
  749. </IntegrationMethod>
  750. <IntegrationMethod>
  751. <Name>BackwardEuler</Name>
  752. <AbsoluteTolerance>1.0e-5</AbsoluteTolerance>
  753. <RelativeTolerance>1.0e-5</RelativeTolerance>
  754. <AlgebraicAbsoluteTolerance>1.0e-5</AlgebraicAbsoluteTolerance>
  755. <AlgebraicRelativeTolerance>1.0e-5</AlgebraicRelativeTolerance>
  756. <StepSize>0.01</StepSize>
  757. <Alpha>1.0</Alpha>
  758. </IntegrationMethod>
  759. <IntegrationMethod>
  760. <Name>AdamsBashforth</Name>
  761. <StepSize>0.01</StepSize>
  762. <AutoStepSize>false</AutoStepSize>
  763. </IntegrationMethod>
  764. <IntegrationMethod>
  765. <Name>RungeKutta2</Name>
  766. <StepSize>0.01</StepSize>
  767. <AutoStepSize>false</AutoStepSize>
  768. </IntegrationMethod>
  769. <IntegrationMethod>
  770. <Name>RungeKutta4</Name>
  771. <StepSize>0.01</StepSize>
  772. <AutoStepSize>false</AutoStepSize>
  773. </IntegrationMethod>
  774. <IntegrationMethod>
  775. <Name>RungeKutta8</Name>
  776. <UseInitialStepSize>false</UseInitialStepSize>
  777. <InitialStepSize>0.001</InitialStepSize>
  778. <UseMaximumStepSize>false</UseMaximumStepSize>
  779. <MaximumStepSize>1.0</MaximumStepSize>
  780. <AbsoluteTolerance>1.0e-6</AbsoluteTolerance>
  781. <RelativeTolerance>1.0e-6</RelativeTolerance>
  782. <SafetyFactor>0.9</SafetyFactor>
  783. <Factor1>0.33</Factor1>
  784. <Factor2>6.0</Factor2>
  785. <Beta>0.0</Beta>
  786. <UseMaxNrSteps>false</UseMaxNrSteps>
  787. <MaxNrSteps>100000</MaxNrSteps>
  788. <UseStiffDetection>false</UseStiffDetection>
  789. <MaxNrStiffnessSteps>1000</MaxNrStiffnessSteps>
  790. </IntegrationMethod>
  791. <IntegrationMethod>
  792. <Name>RungeKuttaFehlberg</Name>
  793. <UseInitialStepSize>false</UseInitialStepSize>
  794. <InitialStepSize>0.001</InitialStepSize>
  795. <UseMaximumStepSize>false</UseMaximumStepSize>
  796. <MaximumStepSize>1.0</MaximumStepSize>
  797. <AbsoluteTolerance>1.0e-6</AbsoluteTolerance>
  798. <RelativeTolerance>1.0e-6</RelativeTolerance>
  799. </IntegrationMethod>
  800. <IntegrationMethod>
  801. <Name>VodeAdams</Name>
  802. <UseInitialStepSize>false</UseInitialStepSize>
  803. <InitialStepSize>0.001</InitialStepSize>
  804. <UseMaximumStepSize>false</UseMaximumStepSize>
  805. <MaximumStepSize>1.0</MaximumStepSize>
  806. <AbsoluteTolerance>1.0e-6</AbsoluteTolerance>
  807. <RelativeTolerance>1.0e-6</RelativeTolerance>
  808. <VodeUseBDF>true</VodeUseBDF>
  809. <VodeUseNewton>true</VodeUseNewton>
  810. </IntegrationMethod>
  811. <IntegrationMethod>
  812. <Name>BDFMethod</Name>
  813. <AbsoluteTolerance>1.0e-5</AbsoluteTolerance>
  814. <RelativeTolerance>1.0e-5</RelativeTolerance>
  815. <AlgebraicAbsoluteTolerance>1.0e-5</AlgebraicAbsoluteTolerance>
  816. <AlgebraicRelativeTolerance>1.0e-5</AlgebraicRelativeTolerance>
  817. <UseInitialStepSize>false</UseInitialStepSize>
  818. <InitialStepSize>0.001</InitialStepSize>
  819. <UseMaximumStepSize>false</UseMaximumStepSize>
  820. <MaximumStepSize>1.0</MaximumStepSize>
  821. </IntegrationMethod>
  822. <IntegrationMethod>
  823. <Name>MeBDFiMethod</Name>
  824. <AbsoluteTolerance>1.0e-5</AbsoluteTolerance>
  825. <RelativeTolerance>1.0e-5</RelativeTolerance>
  826. <AlgebraicAbsoluteTolerance>1.0e-5</AlgebraicAbsoluteTolerance>
  827. <AlgebraicRelativeTolerance>1.0e-5</AlgebraicRelativeTolerance>
  828. <UseInitialStepSize>false</UseInitialStepSize>
  829. <InitialStepSize>0.001</InitialStepSize>
  830. <UseMaximumStepSize>false</UseMaximumStepSize>
  831. <MaximumStepSize>1.0</MaximumStepSize>
  832. </IntegrationMethod>
  833. <SelectedIntegrationMethod>8</SelectedIntegrationMethod>
  834. </IntegrationMethods>
  835. </RunSpecs>
  836. <MultipleRun>
  837. <NrSteps>10</NrSteps>
  838. <CopyFromStates>false</CopyFromStates>
  839. <JoinParameterVariation>true</JoinParameterVariation>
  840. <ClearAfterRun>true</ClearAfterRun>
  841. <RedrawAfterRun>false</RedrawAfterRun>
  842. <DrawDuringSimulation>true</DrawDuringSimulation>
  843. <ActionBeforeOptimization>0</ActionBeforeOptimization>
  844. <CompareValue>0.0</CompareValue>
  845. <UseCompareValue>true</UseCompareValue>
  846. <MultipleRunType>MultipleRun</MultipleRunType>
  847. <Minimize>true</Minimize>
  848. <OptimizationVariable></OptimizationVariable>
  849. <ResulVarUsage>UseEndValue</ResulVarUsage>
  850. <Tolerance>0.001</Tolerance>
  851. <OptimizationMethod>BroydonFletcherGoldfarbShanno</OptimizationMethod>
  852. <MultipleRunVariables>
  853. </MultipleRunVariables>
  854. </MultipleRun>
  855. <ExportData>
  856. <WriteAsText>true</WriteAsText>
  857. <ReadAsText>true</ReadAsText>
  858. <WriteHeader>true</WriteHeader>
  859. <ReadHeader>true</ReadHeader>
  860. <ReadFilename></ReadFilename>
  861. <WriteFilename></WriteFilename>
  862. <DoWrite>false</DoWrite>
  863. <ExportVariables>
  864. <ExportVariable>
  865. <VariableName>time</VariableName>
  866. </ExportVariable>
  867. </ExportVariables>
  868. <ImportVariables>
  869. </ImportVariables>
  870. </ExportData>
  871. <BreakPoints>
  872. </BreakPoints>
  873. </ExpData>
  874. </Experiment>
  875. </Experiments>
  876. </Document>