Update flexible Stewart platform

This commit is contained in:
2020-09-01 13:19:26 +02:00
parent 1fd35e9449
commit 8173db25fb
14 changed files with 3095 additions and 1567 deletions

View File

@@ -5,39 +5,38 @@ function [stewart] = initializeAmplifiedStrutDynamics(stewart, args)
%
% Inputs:
% - args - Structure with the following fields:
% - Ka [6x1] - Vertical stiffness contribution of the piezoelectric stack [N/m]
% - Ca [6x1] - Vertical damping contribution of the piezoelectric stack [N/(m/s)]
% - Kr [6x1] - Vertical (residual) stiffness when the piezoelectric stack is removed [N/m]
% - Cr [6x1] - Vertical (residual) damping when the piezoelectric stack is removed [N/(m/s)]
% - Ka [6x1] - Stiffness of the actuator [N/m]
% - Ke [6x1] - Stiffness used to adjust the pole of the isolator [N/m]
% - K1 [6x1] - Stiffness of the metallic suspension when the stack is removed [N/m]
% - C1 [6x1] - Added viscous damping [N/(m/s)]
%
% Outputs:
% - stewart - updated Stewart structure with the added fields:
% - actuators.type = 2
% - actuators.K [6x1] - Total Stiffness of each strut [N/m]
% - actuators.C [6x1] - Total Damping of each strut [N/(m/s)]
% - actuators.Ka [6x1] - Vertical stiffness contribution of the piezoelectric stack [N/m]
% - actuators.Ca [6x1] - Vertical damping contribution of the piezoelectric stack [N/(m/s)]
% - actuators.Kr [6x1] - Vertical stiffness when the piezoelectric stack is removed [N/m]
% - actuators.Cr [6x1] - Vertical damping when the piezoelectric stack is removed [N/(m/s)]
% - actuators.Ka [6x1] - Stiffness of the actuator [N/m]
% - actuators.Ke [6x1] - Stiffness used to adjust the pole of the isolator [N/m]
% - actuators.K1 [6x1] - Stiffness of the metallic suspension when the stack is removed [N/m]
% - actuators.C1 [6x1] - Added viscous damping [N/(m/s)]
arguments
stewart
args.Kr (6,1) double {mustBeNumeric, mustBeNonnegative} = 5e6*ones(6,1)
args.Cr (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e1*ones(6,1)
args.Ka (6,1) double {mustBeNumeric, mustBeNonnegative} = 15e6*ones(6,1)
args.Ca (6,1) double {mustBeNumeric, mustBeNonnegative} = 1e1*ones(6,1)
args.Ke (6,1) double {mustBeNumeric, mustBeNonnegative} = 1.5e6*ones(6,1)
args.Ka (6,1) double {mustBeNumeric, mustBeNonnegative} = 43e6*ones(6,1)
args.K1 (6,1) double {mustBeNumeric, mustBeNonnegative} = 0.4e6*ones(6,1)
args.C1 (6,1) double {mustBeNumeric, mustBeNonnegative} = 10*ones(6,1)
end
K = args.Ka + args.Kr;
C = args.Ca + args.Cr;
K = args.K1 + args.Ka.*args.Ke./(args.Ka + args.Ke);
C = args.C1;
stewart.actuators.type = 2;
stewart.actuators.Ka = args.Ka;
stewart.actuators.Ca = args.Ca;
stewart.actuators.Kr = args.Kr;
stewart.actuators.Cr = args.Cr;
stewart.actuators.Ke = args.Ke;
stewart.actuators.K1 = args.K1;
stewart.actuators.C1 = args.C1;
stewart.actuators.K = K;
stewart.actuators.C = C;