Add flexor FEM model
This commit is contained in:
Executable
+2177
File diff suppressed because it is too large
Load Diff
Executable
BIN
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Executable
+20
@@ -0,0 +1,20 @@
|
||||
|
||||
MAT_K:
|
||||
[ 1, 1]: 1.122e+07 [ 1, 2]: 1.950e+02 [ 1, 3]: 2.215e+03 [ 1, 4]:-7.188e-01 [ 1, 5]:-2.652e+02 [ 1, 6]: 1.594e+00 [ 1, 7]:-1.122e+07 [ 1, 8]:-2.132e+02 [ 1, 9]:-2.217e+03 [ 1,10]: 1.471e-01 [ 1,11]: 2.656e+02 [ 1,12]:-1.333e+00 [ 1,13]: 0.000e+00 [ 1,14]: 0.000e+00 [ 1,15]: 0.000e+00 [ 1,16]: 0.000e+00 [ 1,17]: 0.000e+00 [ 1,18]: 0.000e+00
|
||||
[ 2, 1]: 1.950e+02 [ 2, 2]: 1.143e+07 [ 2, 3]: 1.286e+03 [ 2, 4]:-1.484e+02 [ 2, 5]:-1.875e-01 [ 2, 6]: 2.414e+00 [ 2, 7]:-2.122e+02 [ 2, 8]:-1.143e+07 [ 2, 9]:-1.286e+03 [ 2,10]: 1.484e+02 [ 2,11]: 1.357e-01 [ 2,12]:-2.542e+00 [ 2,13]: 0.000e+00 [ 2,14]: 0.000e+00 [ 2,15]: 0.000e+00 [ 2,16]: 0.000e+00 [ 2,17]: 0.000e+00 [ 2,18]: 0.000e+00
|
||||
[ 3, 1]: 2.215e+03 [ 3, 2]: 1.286e+03 [ 3, 3]: 1.194e+08 [ 3, 4]: 1.309e+00 [ 3, 5]: 1.488e+00 [ 3, 6]: 1.789e+00 [ 3, 7]:-2.221e+03 [ 3, 8]:-1.286e+03 [ 3, 9]:-1.194e+08 [ 3,10]:-1.310e+00 [ 3,11]:-1.329e+00 [ 3,12]:-1.784e+00 [ 3,13]: 0.000e+00 [ 3,14]: 0.000e+00 [ 3,15]: 0.000e+00 [ 3,16]: 0.000e+00 [ 3,17]: 0.000e+00 [ 3,18]: 0.000e+00
|
||||
[ 4, 1]:-7.188e-01 [ 4, 2]:-1.484e+02 [ 4, 3]: 1.309e+00 [ 4, 4]: 3.296e+01 [ 4, 5]: 4.883e-04 [ 4, 6]:-9.766e-04 [ 4, 7]: 1.410e-01 [ 4, 8]: 1.483e+02 [ 4, 9]:-1.309e+00 [ 4,10]:-3.297e+01 [ 4,11]: 2.641e-04 [ 4,12]: 3.780e-04 [ 4,13]: 0.000e+00 [ 4,14]: 0.000e+00 [ 4,15]: 0.000e+00 [ 4,16]: 0.000e+00 [ 4,17]: 0.000e+00 [ 4,18]: 0.000e+00
|
||||
[ 5, 1]:-2.652e+02 [ 5, 2]:-1.875e-01 [ 5, 3]: 1.488e+00 [ 5, 4]: 4.883e-04 [ 5, 5]: 3.298e+01 [ 5, 6]: 2.930e-03 [ 5, 7]: 2.658e+02 [ 5, 8]: 1.537e-01 [ 5, 9]:-1.488e+00 [ 5,10]: 2.599e-04 [ 5,11]:-3.294e+01 [ 5,12]:-2.446e-03 [ 5,13]: 0.000e+00 [ 5,14]: 0.000e+00 [ 5,15]: 0.000e+00 [ 5,16]: 0.000e+00 [ 5,17]: 0.000e+00 [ 5,18]: 0.000e+00
|
||||
[ 6, 1]: 1.594e+00 [ 6, 2]: 2.414e+00 [ 6, 3]: 1.789e+00 [ 6, 4]:-9.766e-04 [ 6, 5]: 2.930e-03 [ 6, 6]: 2.358e+02 [ 6, 7]:-1.323e+00 [ 6, 8]:-2.547e+00 [ 6, 9]:-1.792e+00 [ 6,10]: 3.789e-04 [ 6,11]:-2.516e-03 [ 6,12]:-2.358e+02 [ 6,13]: 0.000e+00 [ 6,14]: 0.000e+00 [ 6,15]: 0.000e+00 [ 6,16]: 0.000e+00 [ 6,17]: 0.000e+00 [ 6,18]: 0.000e+00
|
||||
[ 7, 1]:-1.122e+07 [ 7, 2]:-2.122e+02 [ 7, 3]:-2.221e+03 [ 7, 4]: 1.410e-01 [ 7, 5]: 2.658e+02 [ 7, 6]:-1.323e+00 [ 7, 7]: 1.145e+07 [ 7, 8]: 2.458e+04 [ 7, 9]: 1.637e+03 [ 7,10]: 1.200e+02 [ 7,11]:-4.800e+03 [ 7,12]:-4.800e+01 [ 7,13]: 0.000e+00 [ 7,14]: 0.000e+00 [ 7,15]: 0.000e+00 [ 7,16]: 0.000e+00 [ 7,17]: 0.000e+00 [ 7,18]: 0.000e+00
|
||||
[ 8, 1]:-2.132e+02 [ 8, 2]:-1.143e+07 [ 8, 3]:-1.286e+03 [ 8, 4]: 1.483e+02 [ 8, 5]: 1.537e-01 [ 8, 6]:-2.547e+00 [ 8, 7]: 2.458e+04 [ 8, 8]: 1.143e+07 [ 8, 9]: 1.287e+03 [ 8,10]:-7.200e+01 [ 8,11]:-6.400e+01 [ 8,12]:-8.000e+00 [ 8,13]: 0.000e+00 [ 8,14]: 0.000e+00 [ 8,15]: 0.000e+00 [ 8,16]: 0.000e+00 [ 8,17]: 0.000e+00 [ 8,18]: 0.000e+00
|
||||
[ 9, 1]:-2.217e+03 [ 9, 2]:-1.286e+03 [ 9, 3]:-1.194e+08 [ 9, 4]:-1.309e+00 [ 9, 5]:-1.488e+00 [ 9, 6]:-1.792e+00 [ 9, 7]: 1.637e+03 [ 9, 8]: 1.287e+03 [ 9, 9]: 1.194e+08 [ 9,10]: 1.320e+00 [ 9,11]: 1.188e+01 [ 9,12]: 2.216e+00 [ 9,13]: 0.000e+00 [ 9,14]: 0.000e+00 [ 9,15]: 0.000e+00 [ 9,16]: 0.000e+00 [ 9,17]: 0.000e+00 [ 9,18]: 0.000e+00
|
||||
[10, 1]: 1.471e-01 [10, 2]: 1.484e+02 [10, 3]:-1.310e+00 [10, 4]:-3.297e+01 [10, 5]: 2.599e-04 [10, 6]: 3.789e-04 [10, 7]: 1.200e+02 [10, 8]:-7.200e+01 [10, 9]: 1.320e+00 [10,10]: 3.469e+01 [10,11]:-7.750e+00 [10,12]:-5.000e-01 [10,13]: 0.000e+00 [10,14]: 0.000e+00 [10,15]: 0.000e+00 [10,16]: 0.000e+00 [10,17]: 0.000e+00 [10,18]: 0.000e+00
|
||||
[11, 1]: 2.656e+02 [11, 2]: 1.357e-01 [11, 3]:-1.329e+00 [11, 4]: 2.641e-04 [11, 5]:-3.294e+01 [11, 6]:-2.516e-03 [11, 7]:-4.800e+03 [11, 8]:-6.400e+01 [11, 9]: 1.188e+01 [11,10]:-7.750e+00 [11,11]: 1.300e+02 [11,12]:-5.000e-01 [11,13]: 0.000e+00 [11,14]: 0.000e+00 [11,15]: 0.000e+00 [11,16]: 0.000e+00 [11,17]: 0.000e+00 [11,18]: 0.000e+00
|
||||
[12, 1]:-1.333e+00 [12, 2]:-2.542e+00 [12, 3]:-1.784e+00 [12, 4]: 3.780e-04 [12, 5]:-2.446e-03 [12, 6]:-2.358e+02 [12, 7]:-4.800e+01 [12, 8]:-8.000e+00 [12, 9]: 2.216e+00 [12,10]:-5.000e-01 [12,11]:-5.000e-01 [12,12]: 2.385e+02 [12,13]: 0.000e+00 [12,14]: 0.000e+00 [12,15]: 0.000e+00 [12,16]: 0.000e+00 [12,17]: 0.000e+00 [12,18]: 0.000e+00
|
||||
[13, 1]: 0.000e+00 [13, 2]: 0.000e+00 [13, 3]: 0.000e+00 [13, 4]: 0.000e+00 [13, 5]: 0.000e+00 [13, 6]: 0.000e+00 [13, 7]: 0.000e+00 [13, 8]: 0.000e+00 [13, 9]: 0.000e+00 [13,10]: 0.000e+00 [13,11]: 0.000e+00 [13,12]: 0.000e+00 [13,13]: 4.356e+09 [13,14]: 0.000e+00 [13,15]: 0.000e+00 [13,16]: 0.000e+00 [13,17]: 0.000e+00 [13,18]: 0.000e+00
|
||||
[14, 1]: 0.000e+00 [14, 2]: 0.000e+00 [14, 3]: 0.000e+00 [14, 4]: 0.000e+00 [14, 5]: 0.000e+00 [14, 6]: 0.000e+00 [14, 7]: 0.000e+00 [14, 8]: 0.000e+00 [14, 9]: 0.000e+00 [14,10]: 0.000e+00 [14,11]: 0.000e+00 [14,12]: 0.000e+00 [14,13]: 0.000e+00 [14,14]: 4.593e+09 [14,15]: 0.000e+00 [14,16]: 0.000e+00 [14,17]: 0.000e+00 [14,18]: 0.000e+00
|
||||
[15, 1]: 0.000e+00 [15, 2]: 0.000e+00 [15, 3]: 0.000e+00 [15, 4]: 0.000e+00 [15, 5]: 0.000e+00 [15, 6]: 0.000e+00 [15, 7]: 0.000e+00 [15, 8]: 0.000e+00 [15, 9]: 0.000e+00 [15,10]: 0.000e+00 [15,11]: 0.000e+00 [15,12]: 0.000e+00 [15,13]: 0.000e+00 [15,14]: 0.000e+00 [15,15]: 4.948e+09 [15,16]: 0.000e+00 [15,17]: 0.000e+00 [15,18]: 0.000e+00
|
||||
[16, 1]: 0.000e+00 [16, 2]: 0.000e+00 [16, 3]: 0.000e+00 [16, 4]: 0.000e+00 [16, 5]: 0.000e+00 [16, 6]: 0.000e+00 [16, 7]: 0.000e+00 [16, 8]: 0.000e+00 [16, 9]: 0.000e+00 [16,10]: 0.000e+00 [16,11]: 0.000e+00 [16,12]: 0.000e+00 [16,13]: 0.000e+00 [16,14]: 0.000e+00 [16,15]: 0.000e+00 [16,16]: 1.919e+10 [16,17]: 0.000e+00 [16,18]: 0.000e+00
|
||||
[17, 1]: 0.000e+00 [17, 2]: 0.000e+00 [17, 3]: 0.000e+00 [17, 4]: 0.000e+00 [17, 5]: 0.000e+00 [17, 6]: 0.000e+00 [17, 7]: 0.000e+00 [17, 8]: 0.000e+00 [17, 9]: 0.000e+00 [17,10]: 0.000e+00 [17,11]: 0.000e+00 [17,12]: 0.000e+00 [17,13]: 0.000e+00 [17,14]: 0.000e+00 [17,15]: 0.000e+00 [17,16]: 0.000e+00 [17,17]: 2.147e+10 [17,18]: 0.000e+00
|
||||
[18, 1]: 0.000e+00 [18, 2]: 0.000e+00 [18, 3]: 0.000e+00 [18, 4]: 0.000e+00 [18, 5]: 0.000e+00 [18, 6]: 0.000e+00 [18, 7]: 0.000e+00 [18, 8]: 0.000e+00 [18, 9]: 0.000e+00 [18,10]: 0.000e+00 [18,11]: 0.000e+00 [18,12]: 0.000e+00 [18,13]: 0.000e+00 [18,14]: 0.000e+00 [18,15]: 0.000e+00 [18,16]: 0.000e+00 [18,17]: 0.000e+00 [18,18]: 3.336e+10
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
|
||||
MAT_M:
|
||||
[ 1, 1]: 1.624e-02 [ 1, 2]: 9.999e-10 [ 1, 3]:-3.692e-08 [ 1, 4]:-1.155e-10 [ 1, 5]: 2.049e-04 [ 1, 6]:-2.881e-11 [ 1, 7]: 4.064e-03 [ 1, 8]: 4.955e-08 [ 1, 9]: 7.368e-08 [ 1,10]: 1.379e-10 [ 1,11]:-7.160e-06 [ 1,12]: 6.897e-11 [ 1,13]:-2.028e-05 [ 1,14]: 5.554e-02 [ 1,15]: 3.599e-06 [ 1,16]: 2.900e-06 [ 1,17]: 8.272e-02 [ 1,18]:-2.468e-06
|
||||
[ 2, 1]: 9.999e-10 [ 2, 2]: 1.848e-02 [ 2, 3]:-3.219e-07 [ 2, 4]:-2.074e-04 [ 2, 5]:-1.119e-10 [ 2, 6]:-2.255e-09 [ 2, 7]: 2.195e-08 [ 2, 8]: 4.013e-03 [ 2, 9]: 2.886e-07 [ 2,10]: 9.997e-06 [ 2,11]:-3.644e-10 [ 2,12]:-3.744e-12 [ 2,13]:-1.437e-05 [ 2,14]:-5.095e-06 [ 2,15]: 8.806e-02 [ 2,16]:-1.237e-02 [ 2,17]: 1.500e-07 [ 2,18]: 3.313e-02
|
||||
[ 3, 1]:-3.692e-08 [ 3, 2]:-3.219e-07 [ 3, 3]: 1.804e-02 [ 3, 4]: 7.130e-10 [ 3, 5]:-1.637e-09 [ 3, 6]: 1.340e-09 [ 3, 7]: 3.136e-07 [ 3, 8]: 7.272e-08 [ 3, 9]: 2.993e-03 [ 3,10]: 1.259e-09 [ 3,11]:-5.922e-10 [ 3,12]: 1.317e-09 [ 3,13]: 5.819e-06 [ 3,14]: 3.227e-06 [ 3,15]:-3.103e-06 [ 3,16]: 4.241e-06 [ 3,17]:-9.604e-07 [ 3,18]:-2.639e-06
|
||||
[ 4, 1]:-1.155e-10 [ 4, 2]:-2.074e-04 [ 4, 3]: 7.130e-10 [ 4, 4]: 3.510e-06 [ 4, 5]:-1.359e-12 [ 4, 6]:-5.567e-13 [ 4, 7]: 1.778e-10 [ 4, 8]:-6.847e-06 [ 4, 9]:-7.847e-10 [ 4,10]:-1.254e-09 [ 4,11]: 9.463e-13 [ 4,12]: 1.958e-12 [ 4,13]: 4.641e-08 [ 4,14]: 1.613e-08 [ 4,15]:-2.170e-04 [ 4,16]: 6.874e-05 [ 4,17]:-1.637e-08 [ 4,18]:-5.990e-04
|
||||
[ 5, 1]: 2.049e-04 [ 5, 2]:-1.119e-10 [ 5, 3]:-1.637e-09 [ 5, 4]:-1.359e-12 [ 5, 5]: 3.311e-06 [ 5, 6]: 1.683e-13 [ 5, 7]: 9.441e-06 [ 5, 8]: 3.860e-11 [ 5, 9]: 1.766e-09 [ 5,10]:-2.762e-13 [ 5,11]:-1.297e-09 [ 5,12]: 1.810e-12 [ 5,13]:-6.036e-08 [ 5,14]: 1.813e-04 [ 5,15]: 9.642e-09 [ 5,16]: 2.704e-08 [ 5,17]: 8.113e-04 [ 5,18]:-2.302e-08
|
||||
[ 6, 1]:-2.881e-11 [ 6, 2]:-2.255e-09 [ 6, 3]: 1.340e-09 [ 6, 4]:-5.567e-13 [ 6, 5]: 1.683e-13 [ 6, 6]: 3.708e-07 [ 6, 7]: 8.410e-11 [ 6, 8]: 9.292e-10 [ 6, 9]:-1.086e-09 [ 6,10]: 2.396e-12 [ 6,11]:-5.002e-13 [ 6,12]: 6.502e-08 [ 6,13]: 2.552e-04 [ 6,14]: 9.650e-08 [ 6,15]: 6.459e-09 [ 6,16]:-9.240e-10 [ 6,17]:-5.548e-09 [ 6,18]: 3.141e-08
|
||||
[ 7, 1]: 4.064e-03 [ 7, 2]: 2.195e-08 [ 7, 3]: 3.136e-07 [ 7, 4]: 1.778e-10 [ 7, 5]: 9.441e-06 [ 7, 6]: 8.410e-11 [ 7, 7]: 1.674e-02 [ 7, 8]:-7.211e-08 [ 7, 9]:-3.482e-07 [ 7,10]:-2.155e-10 [ 7,11]:-1.699e-04 [ 7,12]:-6.684e-11 [ 7,13]:-3.188e-05 [ 7,14]: 8.552e-02 [ 7,15]: 4.929e-06 [ 7,16]:-4.308e-06 [ 7,17]:-9.224e-03 [ 7,18]: 1.941e-06
|
||||
[ 8, 1]: 4.955e-08 [ 8, 2]: 4.013e-03 [ 8, 3]: 7.272e-08 [ 8, 4]:-6.847e-06 [ 8, 5]: 3.860e-11 [ 8, 6]: 9.292e-10 [ 8, 7]:-7.211e-08 [ 8, 8]: 1.459e-02 [ 8, 9]:-3.946e-08 [ 8,10]: 1.670e-04 [ 8,11]: 4.772e-10 [ 8,12]: 1.298e-09 [ 8,13]: 2.789e-06 [ 8,14]:-2.877e-06 [ 8,15]: 5.546e-02 [ 8,16]: 7.601e-02 [ 8,17]:-2.596e-06 [ 8,18]:-6.673e-03
|
||||
[ 9, 1]: 7.368e-08 [ 9, 2]: 2.886e-07 [ 9, 3]: 2.993e-03 [ 9, 4]:-7.847e-10 [ 9, 5]: 1.766e-09 [ 9, 6]:-1.086e-09 [ 9, 7]:-3.482e-07 [ 9, 8]:-3.946e-08 [ 9, 9]: 1.708e-02 [ 9,10]:-1.230e-09 [ 9,11]: 4.937e-10 [ 9,12]:-1.568e-09 [ 9,13]:-5.366e-06 [ 9,14]:-4.779e-06 [ 9,15]: 2.951e-06 [ 9,16]:-1.252e-06 [ 9,17]: 5.979e-06 [ 9,18]:-2.257e-06
|
||||
[10, 1]: 1.379e-10 [10, 2]: 9.997e-06 [10, 3]: 1.259e-09 [10, 4]:-1.254e-09 [10, 5]:-2.762e-13 [10, 6]: 2.396e-12 [10, 7]:-2.155e-10 [10, 8]: 1.670e-04 [10, 9]:-1.230e-09 [10,10]: 2.413e-06 [10,11]:-1.085e-13 [10,12]:-1.860e-12 [10,13]: 9.566e-09 [10,14]:-1.039e-08 [10,15]: 1.953e-04 [10,16]: 6.785e-04 [10,17]:-2.458e-08 [10,18]:-7.855e-05
|
||||
[11, 1]:-7.160e-06 [11, 2]:-3.644e-10 [11, 3]:-5.922e-10 [11, 4]: 9.463e-13 [11, 5]:-1.297e-09 [11, 6]:-5.002e-13 [11, 7]:-1.699e-04 [11, 8]: 4.772e-10 [11, 9]: 4.937e-10 [11,10]:-1.085e-13 [11,11]: 2.569e-06 [11,12]:-1.144e-12 [11,13]: 7.355e-08 [11,14]:-2.049e-04 [11,15]:-1.424e-08 [11,16]: 5.036e-08 [11,17]: 4.737e-05 [11,18]:-1.820e-08
|
||||
[12, 1]: 6.897e-11 [12, 2]:-3.744e-12 [12, 3]: 1.317e-09 [12, 4]: 1.958e-12 [12, 5]: 1.810e-12 [12, 6]: 6.502e-08 [12, 7]:-6.684e-11 [12, 8]: 1.298e-09 [12, 9]:-1.568e-09 [12,10]:-1.860e-12 [12,11]:-1.144e-12 [12,12]: 4.129e-07 [12,13]: 2.609e-04 [12,14]: 9.485e-08 [12,15]: 4.034e-08 [12,16]:-2.487e-08 [12,17]: 4.305e-09 [12,18]: 7.568e-09
|
||||
[13, 1]:-2.028e-05 [13, 2]:-1.437e-05 [13, 3]: 5.819e-06 [13, 4]: 4.641e-08 [13, 5]:-6.036e-08 [13, 6]: 2.552e-04 [13, 7]:-3.188e-05 [13, 8]: 2.789e-06 [13, 9]:-5.366e-06 [13,10]: 9.566e-09 [13,11]: 7.355e-08 [13,12]: 2.609e-04 [13,13]: 1.000e+00 [13,14]: 0.000e+00 [13,15]: 0.000e+00 [13,16]: 0.000e+00 [13,17]: 0.000e+00 [13,18]: 0.000e+00
|
||||
[14, 1]: 5.554e-02 [14, 2]:-5.095e-06 [14, 3]: 3.227e-06 [14, 4]: 1.613e-08 [14, 5]: 1.813e-04 [14, 6]: 9.650e-08 [14, 7]: 8.552e-02 [14, 8]:-2.877e-06 [14, 9]:-4.779e-06 [14,10]:-1.039e-08 [14,11]:-2.049e-04 [14,12]: 9.485e-08 [14,13]: 0.000e+00 [14,14]: 1.000e+00 [14,15]: 0.000e+00 [14,16]: 0.000e+00 [14,17]: 0.000e+00 [14,18]: 0.000e+00
|
||||
[15, 1]: 3.599e-06 [15, 2]: 8.806e-02 [15, 3]:-3.103e-06 [15, 4]:-2.170e-04 [15, 5]: 9.642e-09 [15, 6]: 6.459e-09 [15, 7]: 4.929e-06 [15, 8]: 5.546e-02 [15, 9]: 2.951e-06 [15,10]: 1.953e-04 [15,11]:-1.424e-08 [15,12]: 4.034e-08 [15,13]: 0.000e+00 [15,14]: 0.000e+00 [15,15]: 1.000e+00 [15,16]: 0.000e+00 [15,17]: 0.000e+00 [15,18]: 0.000e+00
|
||||
[16, 1]: 2.900e-06 [16, 2]:-1.237e-02 [16, 3]: 4.241e-06 [16, 4]: 6.874e-05 [16, 5]: 2.704e-08 [16, 6]:-9.240e-10 [16, 7]:-4.308e-06 [16, 8]: 7.601e-02 [16, 9]:-1.252e-06 [16,10]: 6.785e-04 [16,11]: 5.036e-08 [16,12]:-2.487e-08 [16,13]: 0.000e+00 [16,14]: 0.000e+00 [16,15]: 0.000e+00 [16,16]: 1.000e+00 [16,17]: 0.000e+00 [16,18]: 0.000e+00
|
||||
[17, 1]: 8.272e-02 [17, 2]: 1.500e-07 [17, 3]:-9.604e-07 [17, 4]:-1.637e-08 [17, 5]: 8.113e-04 [17, 6]:-5.548e-09 [17, 7]:-9.224e-03 [17, 8]:-2.596e-06 [17, 9]: 5.979e-06 [17,10]:-2.458e-08 [17,11]: 4.737e-05 [17,12]: 4.305e-09 [17,13]: 0.000e+00 [17,14]: 0.000e+00 [17,15]: 0.000e+00 [17,16]: 0.000e+00 [17,17]: 1.000e+00 [17,18]: 0.000e+00
|
||||
[18, 1]:-2.468e-06 [18, 2]: 3.313e-02 [18, 3]:-2.639e-06 [18, 4]:-5.990e-04 [18, 5]:-2.302e-08 [18, 6]: 3.141e-08 [18, 7]: 1.941e-06 [18, 8]:-6.673e-03 [18, 9]:-2.257e-06 [18,10]:-7.855e-05 [18,11]:-1.820e-08 [18,12]: 7.568e-09 [18,13]: 0.000e+00 [18,14]: 0.000e+00 [18,15]: 0.000e+00 [18,16]: 0.000e+00 [18,17]: 0.000e+00 [18,18]: 1.000e+00
|
||||
Executable
+40
@@ -0,0 +1,40 @@
|
||||
|
||||
LIST ALL SELECTED NODES. DSYS= 0
|
||||
|
||||
*** ANSYS - ENGINEERING ANALYSIS SYSTEM RELEASE 2020 R2 20.2 ***
|
||||
DISTRIBUTED ANSYS Academic Research
|
||||
|
||||
00208316 VERSION=WINDOWS x64 16:37:53 JUL 30, 2020 CP= 3.062
|
||||
|
||||
Flex-FV--Modal (B5)
|
||||
|
||||
|
||||
|
||||
NODE X Y Z THXY THYZ THZX
|
||||
181278 0.0000 0.0000 0.10000E-008 0.00 0.00 0.00
|
||||
181279 0.0000 0.0000 -0.10000E-008 0.00 0.00 0.00
|
||||
|
||||
LIST MASTERS ON ALL SELECTED NODES.
|
||||
CURRENT DOF SET= UX UY UZ ROTX ROTY ROTZ
|
||||
|
||||
*** ANSYS - ENGINEERING ANALYSIS SYSTEM RELEASE 2020 R2 20.2 ***
|
||||
DISTRIBUTED ANSYS Academic Research
|
||||
|
||||
00208316 VERSION=WINDOWS x64 16:37:53 JUL 30, 2020 CP= 3.062
|
||||
|
||||
Flex-FV--Modal (B5)
|
||||
|
||||
|
||||
NODE LABEL SUPPORT
|
||||
181278 UX
|
||||
181278 UY
|
||||
181278 UZ
|
||||
181278 ROTX
|
||||
181278 ROTY
|
||||
181278 ROTZ
|
||||
181279 UX
|
||||
181279 UY
|
||||
181279 UZ
|
||||
181279 ROTX
|
||||
181279 ROTY
|
||||
181279 ROTZ
|
||||
@@ -166,15 +166,15 @@ Parameters for the APA95ML:
|
||||
#+begin_src matlab
|
||||
d33 = 3e-10; % Strain constant [m/V]
|
||||
n = 80; % Number of layers per stack
|
||||
eT = 1.6e-8; % Permittivity under constant stress [F/m]
|
||||
eT = 1.6e-7; % Permittivity under constant stress [F/m]
|
||||
sD = 2e-11; % Elastic compliance under constant electric displacement [m2/N]
|
||||
ka = 235e6; % Stack stiffness [N/m]
|
||||
C = 5e-6; % Stack capactiance [F]
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
na = 3; % Number of stacks used as actuator
|
||||
ns = 0; % Number of stacks used as force sensor
|
||||
na = 2; % Number of stacks used as actuator
|
||||
ns = 1; % Number of stacks used as force sensor
|
||||
#+end_src
|
||||
|
||||
The ratio of the developed force to applied voltage is $d_{33} n k_a$ in [N/V].
|
||||
@@ -185,7 +185,7 @@ We denote this constant by $g_a$ and:
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: 1.88
|
||||
: 3.76
|
||||
|
||||
From cite:fleming14_desig_model_contr_nanop_system (page 123), the relation between relative displacement and generated voltage is:
|
||||
\[ V_s = \frac{d_{33}}{\epsilon^T s^D n} \Delta h \]
|
||||
@@ -201,7 +201,7 @@ where:
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: 5.8594
|
||||
: 1.1719
|
||||
|
||||
** Identification of the Dynamics
|
||||
The flexible element is imported using the =Reduced Order Flexible Solid= simscape block.
|
||||
@@ -622,6 +622,47 @@ The two identified dynamics are compared in Figure [[fig:dynamics_act_disp_comp_
|
||||
save('../test-bench-apa/mat/fem_model_5kg.mat', 'G')
|
||||
#+end_src
|
||||
|
||||
** Dynamics from input voltage to output voltage
|
||||
#+begin_src matlab
|
||||
m = 5;
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
%% Name of the Simulink File
|
||||
mdl = 'piezo_amplified_3d';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/Va'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/Vs'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
G = -linearize(mdl, io);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(1, 4, 5000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(freqresp(G, freqs, 'Hz'))));
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude'); set(gca, 'XTickLabel',[]);
|
||||
hold off;
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(G, freqs, 'Hz')))));
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
yticks(-360:90:360);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
hold off;
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([10, 5e3]);
|
||||
#+end_src
|
||||
|
||||
* APA300ML
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@@ -643,6 +684,11 @@ The two identified dynamics are compared in Figure [[fig:dynamics_act_disp_comp_
|
||||
|
||||
** Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates
|
||||
We first extract the stiffness and mass matrices.
|
||||
#+begin_src matlab
|
||||
K = extractMatrix('mat_K-48modes-7MDoF.matrix');
|
||||
M = extractMatrix('mat_M-48modes-7MDoF.matrix');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
K = extractMatrix('mat_K-80modes-7MDoF.matrix');
|
||||
M = extractMatrix('mat_M-80modes-7MDoF.matrix');
|
||||
@@ -768,9 +814,6 @@ where:
|
||||
#+RESULTS:
|
||||
: 5.8594
|
||||
|
||||
|
||||
|
||||
|
||||
** Identification of the Dynamics
|
||||
The flexible element is imported using the =Reduced Order Flexible Solid= simscape block.
|
||||
|
||||
@@ -976,6 +1019,386 @@ The two identified dynamics are compared in Figure [[fig:dynamics_act_disp_comp_
|
||||
xlabel('Real Part'); ylabel('Imaginary Part');
|
||||
#+end_src
|
||||
|
||||
** Sensor Fusion
|
||||
- [ ] What is the goal of that? Special control properties, lower the sensor noise?
|
||||
|
||||
Use the relative motion sensor at low frequency and the force sensor at high frequency.
|
||||
#+begin_src matlab
|
||||
m = 10;
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
%% Name of the Simulink File
|
||||
mdl = 'APA300ML_test_bench';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/Va'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/Vs'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/y'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
G = linearize(mdl, io);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(1, 5, 1000);
|
||||
|
||||
Gresp = squeeze(freqresp(G, freqs, 'Hz'));
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(Gresp(1, :)), '-');
|
||||
plot(freqs, abs(Gresp(2, :)), '-');
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude'); set(gca, 'XTickLabel',[]);
|
||||
hold off;
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*unwrap(angle(Gresp(1, :))), '-', ...
|
||||
'DisplayName', 'Force');
|
||||
plot(freqs, 180/pi*unwrap(angle(Gresp(2, :))), '-', ...
|
||||
'DisplayName', 'Displacement');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
yticks(-360:90:360);
|
||||
ylim([-390 30]);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
hold off;
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
Merge around 1kHz
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(1, 5, 1000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(Gresp(1, :).*squeeze(freqresp(0.0065/s^2, freqs, 'Hz'))'), '-');
|
||||
plot(freqs, abs(Gresp(2, :)), '-');
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude'); set(gca, 'XTickLabel',[]);
|
||||
hold off;
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*unwrap(angle(Gresp(1, :).*squeeze(freqresp(1/s^2, freqs, 'Hz'))')), '-', ...
|
||||
'DisplayName', 'Force');
|
||||
plot(freqs, 180/pi*unwrap(angle(Gresp(2, :))), '-', ...
|
||||
'DisplayName', 'Displacement');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
yticks(-360:90:360);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
hold off;
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
LPF and HPF
|
||||
#+begin_src matlab
|
||||
n = 3; w0 = 2*pi*1e3; G0 = 1/10; G1 = 1e5; Gc = 1/2;
|
||||
W1 = (((1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (G0/Gc)^(1/n))/((1/G1)^(1/n)*(1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (1/Gc)^(1/n)))^n;
|
||||
|
||||
n = 3; w0 = 2*pi*1e3; G0 = 1e5; G1 = 0.1; Gc = 1/2;
|
||||
W2 = (((1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (G0/Gc)^(1/n))/((1/G1)^(1/n)*(1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (1/Gc)^(1/n)))^n;
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
P = [W1 -W1;
|
||||
0 W2;
|
||||
1 0];
|
||||
|
||||
[H2, ~, gamma, ~] = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
|
||||
H1 = 1 - H2;
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(1, 5, 1000);
|
||||
|
||||
Gresp = squeeze(freqresp(G, freqs, 'Hz'));
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(Gresp(1, :).*squeeze(freqresp(0.0065/s^2*H2, freqs, 'Hz'))'), '-');
|
||||
plot(freqs, abs(Gresp(2, :).*squeeze(freqresp(H1, freqs, 'Hz'))'), '-');
|
||||
plot(freqs, abs(Gresp(2, :).*squeeze(freqresp(H1, freqs, 'Hz'))' + Gresp(1, :).*squeeze(freqresp(0.0065/s^2*H2, freqs, 'Hz'))'), 'k--');
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude'); set(gca, 'XTickLabel',[]);
|
||||
hold off;
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*unwrap(angle(Gresp(1, :).*squeeze(freqresp(0.0065/s^2*H2, freqs, 'Hz'))')), '-', ...
|
||||
'DisplayName', 'Force');
|
||||
plot(freqs, 180/pi*unwrap(angle(Gresp(2, :).*squeeze(freqresp(H1, freqs, 'Hz'))')), '-', ...
|
||||
'DisplayName', 'Displacement');
|
||||
plot(freqs, 180/pi*unwrap(angle(Gresp(2, :).*squeeze(freqresp(H1, freqs, 'Hz'))' + Gresp(1, :).*squeeze(freqresp(0.0065/s^2*H2, freqs, 'Hz'))')), 'k--', ...
|
||||
'DisplayName', 'Super Sensor');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
yticks(-360:90:360);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
hold off;
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
Gss = -zpk(G(1)*0.0065/s^2*H2 + G(2)*H1);
|
||||
|
||||
freqs = logspace(1, 5, 1000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(freqresp(Gss, freqs, 'Hz'))'), '-');
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude'); set(gca, 'XTickLabel',[]);
|
||||
hold off;
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on;
|
||||
plot(freqs, 180/pi*(angle(squeeze(freqresp(Gss, freqs, 'Hz'))')), '-', ...
|
||||
'DisplayName', 'Force');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
yticks(-360:90:360);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
hold off;
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
legend('location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
Root locus
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
|
||||
gains = logspace(4, 7, 100);
|
||||
|
||||
hold on;
|
||||
plot(real(pole(Gss)), imag(pole(Gss)), 'kx');
|
||||
plot(real(tzero(Gss)), imag(tzero(Gss)), 'ko');
|
||||
for k = 1:length(gains)
|
||||
cl_poles = pole(feedback(Gss, gains(k)*s));
|
||||
plot(real(cl_poles), imag(cl_poles), 'k.');
|
||||
end
|
||||
hold off;
|
||||
axis square;
|
||||
xlim([-500, 10]); ylim([0, 510]);
|
||||
|
||||
xlabel('Real Part'); ylabel('Imaginary Part');
|
||||
#+end_src
|
||||
|
||||
* Flexible Joint
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
<<matlab-init>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
addpath('./src/');
|
||||
addpath('./data/flexor_ID16/');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
open('flexor_ID16.slx');
|
||||
#+end_src
|
||||
|
||||
** Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates
|
||||
We first extract the stiffness and mass matrices.
|
||||
#+begin_src matlab
|
||||
K = extractMatrix('mat_K_6modes_2MDoF.matrix');
|
||||
M = extractMatrix('mat_M_6modes_2MDoF.matrix');
|
||||
#+end_src
|
||||
|
||||
Then, we extract the coordinates of the interface nodes.
|
||||
#+begin_src matlab
|
||||
[int_xyz, int_i, n_xyz, n_i, nodes] = extractNodes('out_nodes_3D.txt');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
save('./mat/flexor_ID16.mat', 'int_xyz', 'int_i', 'n_xyz', 'n_i', 'nodes', 'M', 'K');
|
||||
#+end_src
|
||||
|
||||
** Output parameters
|
||||
#+begin_src matlab
|
||||
load('./mat/flexor_ID16.mat', 'int_xyz', 'int_i', 'n_xyz', 'n_i', 'nodes', 'M', 'K');
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no
|
||||
data2orgtable([length(n_i); length(int_i); size(M,1) - 6*length(int_i); size(M,1)], {'Total number of Nodes', 'Number of interface Nodes', 'Number of Modes', 'Size of M and K matrices'}, {}, ' %.0f ');
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
| Total number of Nodes | 2 |
|
||||
| Number of interface Nodes | 2 |
|
||||
| Number of Modes | 6 |
|
||||
| Size of M and K matrices | 18 |
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
||||
data2orgtable([[1:length(int_i)]', int_i, int_xyz], {}, {'Node i', 'Node Number', 'x [m]', 'y [m]', 'z [m]'}, ' %f ');
|
||||
#+end_src
|
||||
|
||||
#+caption: Coordinates of the interface nodes
|
||||
#+RESULTS:
|
||||
| Node i | Node Number | x [m] | y [m] | z [m] |
|
||||
|--------+-------------+-------+-------+-------|
|
||||
| 1.0 | 181278.0 | 0.0 | 0.0 | 0.0 |
|
||||
| 2.0 | 181279.0 | 0.0 | 0.0 | -0.0 |
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no
|
||||
data2orgtable(K(1:10, 1:10), {}, {}, ' %.2e ');
|
||||
#+end_src
|
||||
|
||||
#+caption: First 10x10 elements of the Stiffness matrix
|
||||
#+RESULTS:
|
||||
| 11200000.0 | 195.0 | 2220.0 | -0.719 | -265.0 | 1.59 | -11200000.0 | -213.0 | -2220.0 | 0.147 |
|
||||
| 195.0 | 11400000.0 | 1290.0 | -148.0 | -0.188 | 2.41 | -212.0 | -11400000.0 | -1290.0 | 148.0 |
|
||||
| 2220.0 | 1290.0 | 119000000.0 | 1.31 | 1.49 | 1.79 | -2220.0 | -1290.0 | -119000000.0 | -1.31 |
|
||||
| -0.719 | -148.0 | 1.31 | 33.0 | 0.000488 | -0.000977 | 0.141 | 148.0 | -1.31 | -33.0 |
|
||||
| -265.0 | -0.188 | 1.49 | 0.000488 | 33.0 | 0.00293 | 266.0 | 0.154 | -1.49 | 0.00026 |
|
||||
| 1.59 | 2.41 | 1.79 | -0.000977 | 0.00293 | 236.0 | -1.32 | -2.55 | -1.79 | 0.000379 |
|
||||
| -11200000.0 | -212.0 | -2220.0 | 0.141 | 266.0 | -1.32 | 11400000.0 | 24600.0 | 1640.0 | 120.0 |
|
||||
| -213.0 | -11400000.0 | -1290.0 | 148.0 | 0.154 | -2.55 | 24600.0 | 11400000.0 | 1290.0 | -72.0 |
|
||||
| -2220.0 | -1290.0 | -119000000.0 | -1.31 | -1.49 | -1.79 | 1640.0 | 1290.0 | 119000000.0 | 1.32 |
|
||||
| 0.147 | 148.0 | -1.31 | -33.0 | 0.00026 | 0.000379 | 120.0 | -72.0 | 1.32 | 34.7 |
|
||||
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no
|
||||
data2orgtable(M(1:10, 1:10), {}, {}, ' %.1g ');
|
||||
#+end_src
|
||||
|
||||
#+caption: First 10x10 elements of the Mass matrix
|
||||
#+RESULTS:
|
||||
| 0.02 | 1e-09 | -4e-08 | -1e-10 | 0.0002 | -3e-11 | 0.004 | 5e-08 | 7e-08 | 1e-10 |
|
||||
| 1e-09 | 0.02 | -3e-07 | -0.0002 | -1e-10 | -2e-09 | 2e-08 | 0.004 | 3e-07 | 1e-05 |
|
||||
| -4e-08 | -3e-07 | 0.02 | 7e-10 | -2e-09 | 1e-09 | 3e-07 | 7e-08 | 0.003 | 1e-09 |
|
||||
| -1e-10 | -0.0002 | 7e-10 | 4e-06 | -1e-12 | -6e-13 | 2e-10 | -7e-06 | -8e-10 | -1e-09 |
|
||||
| 0.0002 | -1e-10 | -2e-09 | -1e-12 | 3e-06 | 2e-13 | 9e-06 | 4e-11 | 2e-09 | -3e-13 |
|
||||
| -3e-11 | -2e-09 | 1e-09 | -6e-13 | 2e-13 | 4e-07 | 8e-11 | 9e-10 | -1e-09 | 2e-12 |
|
||||
| 0.004 | 2e-08 | 3e-07 | 2e-10 | 9e-06 | 8e-11 | 0.02 | -7e-08 | -3e-07 | -2e-10 |
|
||||
| 5e-08 | 0.004 | 7e-08 | -7e-06 | 4e-11 | 9e-10 | -7e-08 | 0.01 | -4e-08 | 0.0002 |
|
||||
| 7e-08 | 3e-07 | 0.003 | -8e-10 | 2e-09 | -1e-09 | -3e-07 | -4e-08 | 0.02 | -1e-09 |
|
||||
| 1e-10 | 1e-05 | 1e-09 | -1e-09 | -3e-13 | 2e-12 | -2e-10 | 0.0002 | -1e-09 | 2e-06 |
|
||||
|
||||
Using =K=, =M= and =int_xyz=, we can use the =Reduced Order Flexible Solid= simscape block.
|
||||
|
||||
** Flexible Joint Characteristics
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
||||
data2orgtable([1e-6*K(3,3), K(4,4), K(5,5), K(6,6)]', {'Axial Stiffness [N/um]', 'Bending Stiffness [Nm/rad]', 'Bending Stiffness [Nm/rad]', 'Torsion Stiffness [Nm/rad]'}, {'*Caracteristic*', '*Value*'}, ' %0.f ');
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
| *Caracteristic* | *Value* |
|
||||
|----------------------------+---------|
|
||||
| Axial Stiffness [N/um] | 119 |
|
||||
| Bending Stiffness [Nm/rad] | 33 |
|
||||
| Bending Stiffness [Nm/rad] | 33 |
|
||||
| Torsion Stiffness [Nm/rad] | 236 |
|
||||
|
||||
** Identification
|
||||
#+begin_src matlab
|
||||
m = 10;
|
||||
#+end_src
|
||||
|
||||
The dynamics is identified from the applied force to the measured relative displacement.
|
||||
#+begin_src matlab
|
||||
%% Name of the Simulink File
|
||||
mdl = 'flexor_ID16';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/T'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/D'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
G = linearize(mdl, io);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
||||
data2orgtable([1e-6*K(3,3), K(4,4), K(5,5), K(6,6) ; 1e-6./dcgain(G(3,3)), 1./dcgain(G(4,4)), 1./dcgain(G(5,5)), 1./dcgain(G(6,6))]', {'Axial Stiffness Dz [N/um]', 'Bending Stiffness Rx [Nm/rad]', 'Bending Stiffness Ry [Nm/rad]', 'Torsion Stiffness Rz [Nm/rad]'}, {'*Caracteristic*', '*Value*', '*Identification*'}, ' %0.f ');
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
| *Caracteristic* | *Value* | *Identification* |
|
||||
|-------------------------------+---------+------------------|
|
||||
| Axial Stiffness Dz [N/um] | 119 | 119 |
|
||||
| Bending Stiffness Rx [Nm/rad] | 33 | 34 |
|
||||
| Bending Stiffness Ry [Nm/rad] | 33 | 126 |
|
||||
| Torsion Stiffness Rz [Nm/rad] | 236 | 238 |
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 5, 1000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(freqresp(G(1,1), freqs, 'Hz'))), '-');
|
||||
plot(freqs, abs(squeeze(freqresp(G(2,2), freqs, 'Hz'))), '-');
|
||||
plot(freqs, abs(squeeze(freqresp(G(3,3), freqs, 'Hz'))), '-');
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude'); set(gca, 'XTickLabel',[]);
|
||||
hold off;
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on
|
||||
plot(freqs, 180/pi*(angle(squeeze(freqresp(G(1,1), freqs, 'Hz')))), '-');
|
||||
plot(freqs, 180/pi*(angle(squeeze(freqresp(G(2,2), freqs, 'Hz')))), '-');
|
||||
plot(freqs, 180/pi*(angle(squeeze(freqresp(G(3,3), freqs, 'Hz')))), '-');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
yticks(-360:90:360);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
hold off;
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 5, 1000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(2,1,1);
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(freqresp(G(4,4), freqs, 'Hz'))), '-');
|
||||
plot(freqs, abs(squeeze(freqresp(G(5,5), freqs, 'Hz'))), '-');
|
||||
plot(freqs, abs(squeeze(freqresp(G(6,6), freqs, 'Hz'))), '-');
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude'); set(gca, 'XTickLabel',[]);
|
||||
hold off;
|
||||
|
||||
ax2 = subplot(2,1,2);
|
||||
hold on
|
||||
plot(freqs, 180/pi*(angle(squeeze(freqresp(G(4,4), freqs, 'Hz')))), '-');
|
||||
plot(freqs, 180/pi*(angle(squeeze(freqresp(G(5,5), freqs, 'Hz')))), '-');
|
||||
plot(freqs, 180/pi*(angle(squeeze(freqresp(G(6,6), freqs, 'Hz')))), '-');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||
yticks(-360:90:360);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
hold off;
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
#+end_src
|
||||
|
||||
* Integral Force Feedback with Amplified Piezo
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
|
||||
Reference in New Issue
Block a user