77 lines
2.6 KiB
Matlab
77 lines
2.6 KiB
Matlab
function [stewart] = initializeStrutDynamics(stewart, args)
|
|
% initializeStrutDynamics - Add Stiffness and Damping properties of each strut
|
|
%
|
|
% Syntax: [stewart] = initializeStrutDynamics(args)
|
|
%
|
|
% Inputs:
|
|
% - args - Structure with the following fields:
|
|
% - K [6x1] - Stiffness of each strut [N/m]
|
|
% - C [6x1] - Damping of each strut [N/(m/s)]
|
|
%
|
|
% Outputs:
|
|
% - stewart - updated Stewart structure with the added fields:
|
|
% - actuators.type = 1
|
|
% - actuators.K [6x1] - Stiffness of each strut [N/m]
|
|
% - actuators.C [6x1] - Damping of each strut [N/(m/s)]
|
|
|
|
arguments
|
|
stewart
|
|
args.type char {mustBeMember(args.type,{'1dof', '2dof', 'flexible', 'apa300ml'})} = '1dof'
|
|
args.k (1,1) double {mustBeNumeric, mustBeNonnegative} = 20e6
|
|
args.kp (1,1) double {mustBeNumeric, mustBeNonnegative} = 0
|
|
args.ke (1,1) double {mustBeNumeric, mustBeNonnegative} = 5e6
|
|
args.ka (1,1) double {mustBeNumeric, mustBeNonnegative} = 60e6
|
|
args.c (1,1) double {mustBeNumeric, mustBeNonnegative} = 2e1
|
|
args.cp (1,1) double {mustBeNumeric, mustBeNonnegative} = 0
|
|
args.ce (1,1) double {mustBeNumeric, mustBeNonnegative} = 1e6
|
|
args.ca (1,1) double {mustBeNumeric, mustBeNonnegative} = 10
|
|
args.ga (1,1) double {mustBeNumeric} = 1
|
|
args.gs (1,1) double {mustBeNumeric} = 1
|
|
|
|
args.F_gain (1,1) double {mustBeNumeric} = 1
|
|
args.me (1,1) double {mustBeNumeric} = 0.01
|
|
args.ma (1,1) double {mustBeNumeric} = 0.01
|
|
end
|
|
|
|
if strcmp(args.type, '1dof')
|
|
stewart.actuators.type = 1;
|
|
elseif strcmp(args.type, '2dof')
|
|
stewart.actuators.type = 2;
|
|
elseif strcmp(args.type, 'flexible')
|
|
stewart.actuators.type = 3;
|
|
|
|
K = readmatrix('APA300ML_flex_mat_K.CSV');
|
|
M = readmatrix('APA300ML_flex_mat_M.CSV');
|
|
[int_xyz, int_i, n_xyz, n_i, nodes] = extractNodes('APA300ML_flex_out_nodes_3D.txt');
|
|
|
|
stewart.actuators.M = M;
|
|
stewart.actuators.K = K;
|
|
stewart.actuators.n_xyz = int_xyz;
|
|
stewart.actuators.xi = 0.05;
|
|
elseif strcmp(args.type, 'apa300ml')
|
|
stewart.actuators.type = 4;
|
|
end
|
|
|
|
stewart.actuators.k = args.k;
|
|
stewart.actuators.c = args.c;
|
|
|
|
% Parallel stiffness
|
|
stewart.actuators.kp = args.kp;
|
|
stewart.actuators.cp = args.cp;
|
|
|
|
stewart.actuators.ka = args.ka;
|
|
stewart.actuators.ca = args.ca;
|
|
|
|
stewart.actuators.ke = args.ke;
|
|
stewart.actuators.ce = args.ce;
|
|
|
|
stewart.actuators.ga = args.ga;
|
|
stewart.actuators.gs = args.gs;
|
|
|
|
stewart.actuators.F_gain = args.F_gain;
|
|
|
|
stewart.actuators.ma = args.ma;
|
|
stewart.actuators.me = args.me;
|
|
|
|
end
|