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