Add a function to output the state of the platform

This commit is contained in:
2020-03-13 10:06:18 +01:00
parent 86853e1646
commit 158fc1d065
6 changed files with 641 additions and 161 deletions

View File

@@ -151,7 +151,7 @@
| cite:taghavi19_desig_model_simul_novel_hexap | | | | 6-SCS | Conventional | - | - | Passive Damping | Matlab/Simscape | 6dof passive damper |
| cite:owoc19_mechat_desig_model_contr_stewar_gough_platf | | | | | | Rotary | | PID | | Low cost Stewart-Platform |
| cite:min19_high_precis_track_cubic_stewar | | | | Cubic | | Piezoelectric | Leg length | Tracking control, ADRC, State observer | Analytical | Use of ADRC for tracking control of cubic hexapod |
| cite:yang19_dynam_model_decoup_contr_flexib | | X | | 6-UPS (Cubic?) | Flexible | Piezoelectric | Force, Position | Vibration isolation, Model-Based, Modal control | Solid/Flexible | Stiffness of flexible joints is compensated using feedback, then the system is decoupled in the modal space |
| cite:yang19_dynam_model_decoup_contr_flexib | 1 | X | | 6-UPS (Cubic?) | Flexible | Piezoelectric | Force, Position | Vibration isolation, Model-Based, Modal control | Solid/Flexible | Stiffness of flexible joints is compensated using feedback, then the system is decoupled in the modal space |
| cite:stabile19_desig_analy_novel_hexap_platf | | | | | | | | | | |
| cite:tong20_dynam_decoup_analy_exper_based | | | | | | | | | | |

View File

@@ -290,6 +290,52 @@ Let's now move a little bit the top platform and re-display the configuration:
#+caption: Display of the Stewart platform architecture at some defined pose ([[./figs/stewart_architecture_example_pose.png][png]], [[./figs/stewart_architecture_example_pose.pdf][pdf]])
[[file:figs/stewart_architecture_example_pose.png]]
One can also use the =describeStewartPlatform= function to have a description of the current Stewart platform's state.
#+begin_src matlab :results output replace :exports results
describeStewartPlatform(stewart)
#+end_src
#+RESULTS:
#+begin_example
describeStewartPlatform(stewart)
GEOMETRY:
- The height between the fixed based and the top platform is 90 [mm].
- Frame {A} is located 45 [mm] above the top platform.
- The initial length of the struts are:
95.2, 95.2, 95.2, 95.2, 95.2, 95.2 [mm]
ACTUATORS:
- The actuators are mechanicaly amplified.
- The vertical stiffness and damping contribution of the piezoelectric stack is:
ka = 2e+07 [N/m] ca = 1e+01 [N/(m/s)]
- Vertical stiffness when the piezoelectric stack is removed is:
kr = 5e+06 [N/m] cr = 1e+01 [N/(m/s)]
JOINTS:
- The joints on the fixed based are universal joints
- The joints on the mobile based are spherical joints
- The position of the joints on the fixed based with respect to {F} are (in [mm]):
113 -20 15
113 20 15
-39.3 108 15
-73.9 88.1 15
-73.9 -88.1 15
-39.3 -108 15
- The position of the joints on the mobile based with respect to {M} are (in [mm]):
57.9 -68.9 -15
57.9 68.9 -15
30.8 84.6 -15
-88.6 15.6 -15
-88.6 -15.6 -15
30.8 -84.6 -15
KINEMATICS:
'org_babel_eoe'
ans =
'org_babel_eoe'
#+end_example
* Functions
<<sec:functions>>
@@ -1794,6 +1840,135 @@ Plot the legs connecting the joints of the fixed base to the joints of the mobil
#+end_src
** =describeStewartPlatform=: Display some text describing the current defined Stewart Platform
:PROPERTIES:
:header-args:matlab+: :tangle ../src/describeStewartPlatform.m
:header-args:matlab+: :comments none :mkdirp yes :eval no
:END:
<<sec:describeStewartPlatform>>
This Matlab function is accessible [[file:../src/describeStewartPlatform.m][here]].
*** Function description
:PROPERTIES:
:UNNUMBERED: t
:END:
#+begin_src matlab
function [] = describeStewartPlatform(stewart)
% describeStewartPlatform - Display some text describing the current defined Stewart Platform
%
% Syntax: [] = describeStewartPlatform(args)
%
% Inputs:
% - stewart
%
% Outputs:
#+end_src
*** Optional Parameters
:PROPERTIES:
:UNNUMBERED: t
:END:
#+begin_src matlab
arguments
stewart
end
#+end_src
*** Geometry
#+begin_src matlab
fprintf('GEOMETRY:\n')
fprintf('- The height between the fixed based and the top platform is %.3g [mm].\n', 1e3*stewart.geometry.H)
if stewart.platform_M.MO_B(3) > 0
fprintf('- Frame {A} is located %.3g [mm] above the top platform.\n', 1e3*stewart.platform_M.MO_B(3))
else
fprintf('- Frame {A} is located %.3g [mm] below the top platform.\n', - 1e3*stewart.platform_M.MO_B(3))
end
fprintf('- The initial length of the struts are:\n')
fprintf('\t %.3g, %.3g, %.3g, %.3g, %.3g, %.3g [mm]\n', 1e3*stewart.geometry.l)
fprintf('\n')
#+end_src
*** Actuators
#+begin_src matlab
fprintf('ACTUATORS:\n')
if stewart.actuators.type == 1
fprintf('- The actuators are classical.\n')
fprintf('- The Stiffness and Damping of each actuators is:\n')
fprintf('\t k = %.0e [N/m] \t c = %.0e [N/(m/s)]\n', stewart.actuators.K(1), stewart.actuators.C(1))
elseif stewart.actuators.type == 2
fprintf('- The actuators are mechanicaly amplified.\n')
fprintf('- The vertical stiffness and damping contribution of the piezoelectric stack is:\n')
fprintf('\t ka = %.0e [N/m] \t ca = %.0e [N/(m/s)]\n', stewart.actuators.Ka(1), stewart.actuators.Ca(1))
fprintf('- Vertical stiffness when the piezoelectric stack is removed is:\n')
fprintf('\t kr = %.0e [N/m] \t cr = %.0e [N/(m/s)]\n', stewart.actuators.Kr(1), stewart.actuators.Cr(1))
end
fprintf('\n')
#+end_src
*** Joints
#+begin_src matlab
fprintf('JOINTS:\n')
#+end_src
Type of the joints on the fixed base.
#+begin_src matlab
switch stewart.joints_F.type
case 1
fprintf('- The joints on the fixed based are universal joints\n')
case 2
fprintf('- The joints on the fixed based are spherical joints\n')
case 3
fprintf('- The joints on the fixed based are perfect universal joints\n')
case 4
fprintf('- The joints on the fixed based are perfect spherical joints\n')
end
#+end_src
Type of the joints on the mobile platform.
#+begin_src matlab
switch stewart.joints_M.type
case 1
fprintf('- The joints on the mobile based are universal joints\n')
case 2
fprintf('- The joints on the mobile based are spherical joints\n')
case 3
fprintf('- The joints on the mobile based are perfect universal joints\n')
case 4
fprintf('- The joints on the mobile based are perfect spherical joints\n')
end
#+end_src
Position of the fixed joints
#+begin_src matlab
fprintf('- The position of the joints on the fixed based with respect to {F} are (in [mm]):\n')
fprintf('\t % .3g \t % .3g \t % .3g\n', 1e3*stewart.platform_F.Fa)
#+end_src
Position of the mobile joints
#+begin_src matlab
fprintf('- The position of the joints on the mobile based with respect to {M} are (in [mm]):\n')
fprintf('\t % .3g \t % .3g \t % .3g\n', 1e3*stewart.platform_M.Mb)
fprintf('\n')
#+end_src
*** Kinematics
#+begin_src matlab
fprintf('KINEMATICS:\n')
if isfield(stewart.kinematics, 'K')
fprintf('- The Stiffness matrix K is (in [N/m]):\n')
fprintf('\t % .0e \t % .0e \t % .0e \t % .0e \t % .0e \t % .0e\n', stewart.kinematics.K)
end
if isfield(stewart.kinematics, 'C')
fprintf('- The Damping matrix C is (in [m/N]):\n')
fprintf('\t % .0e \t % .0e \t % .0e \t % .0e \t % .0e \t % .0e\n', stewart.kinematics.C)
end
#+end_src
* Bibliography :ignore:
bibliographystyle:unsrt
bibliography:ref.bib