Add flexor FEM model
This commit is contained in:
parent
e7f47b2840
commit
3a1ab301d9
2177
data/flexor_ID16/22921061.STEP
Executable file
2177
data/flexor_ID16/22921061.STEP
Executable file
File diff suppressed because it is too large
Load Diff
BIN
data/flexor_ID16/cp91_2MDoF_6modes.sub
Executable file
BIN
data/flexor_ID16/cp91_2MDoF_6modes.sub
Executable file
Binary file not shown.
2147
data/flexor_ID16/flexor_ID16.STEP
Normal file
2147
data/flexor_ID16/flexor_ID16.STEP
Normal file
File diff suppressed because it is too large
Load Diff
BIN
data/flexor_ID16/flexor_ID16.slx
Normal file
BIN
data/flexor_ID16/flexor_ID16.slx
Normal file
Binary file not shown.
20
data/flexor_ID16/mat_K_6modes_2MDoF.matrix
Executable file
20
data/flexor_ID16/mat_K_6modes_2MDoF.matrix
Executable file
@ -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
|
20
data/flexor_ID16/mat_M_6modes_2MDoF.matrix
Executable file
20
data/flexor_ID16/mat_M_6modes_2MDoF.matrix
Executable file
@ -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
|
40
data/flexor_ID16/out_nodes_3D.txt
Executable file
40
data/flexor_ID16/out_nodes_3D.txt
Executable file
@ -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
|
439
index.org
439
index.org
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user