Implemented amplified actuators
This commit is contained in:
@@ -13,7 +13,13 @@ arguments
|
||||
args.MR (1,1) double {mustBeNumeric, mustBePositive} = 90e-3
|
||||
args.MTh (6,1) double {mustBeNumeric} = [-60+10, 60-10, 60+10, 180-10, 180+10, -60-10]*(pi/180)
|
||||
% initializeStrutDynamics
|
||||
args.actuator char {mustBeMember(args.actuator,{'piezo', 'lorentz'})} = 'piezo'
|
||||
args.actuator char {mustBeMember(args.actuator,{'piezo', 'lorentz', 'amplified'})} = 'piezo'
|
||||
args.k1 (1,1) double {mustBeNumeric} = 1e6
|
||||
args.ke (1,1) double {mustBeNumeric} = 5e6
|
||||
args.ka (1,1) double {mustBeNumeric} = 60e6
|
||||
args.c1 (1,1) double {mustBeNumeric} = 10
|
||||
args.ce (1,1) double {mustBeNumeric} = 10
|
||||
args.ca (1,1) double {mustBeNumeric} = 10
|
||||
args.k (1,1) double {mustBeNumeric} = -1
|
||||
args.c (1,1) double {mustBeNumeric} = -1
|
||||
% initializeJointDynamics
|
||||
@@ -63,15 +69,23 @@ stewart = generateGeneralConfiguration(stewart, 'FH', args.FH, 'FR', args.FR, 'F
|
||||
stewart = computeJointsPose(stewart);
|
||||
|
||||
if args.k > 0 && args.c > 0
|
||||
stewart = initializeStrutDynamics(stewart, 'K', args.k*ones(6,1), 'C', args.c*ones(6,1));
|
||||
stewart = initializeStrutDynamics(stewart, 'type', 'classical', 'K', args.k*ones(6,1), 'C', args.c*ones(6,1));
|
||||
elseif args.k > 0
|
||||
stewart = initializeStrutDynamics(stewart, 'K', args.k*ones(6,1), 'C', 1.5*sqrt(args.k)*ones(6,1));
|
||||
stewart = initializeStrutDynamics(stewart, 'type', 'classical', 'K', args.k*ones(6,1), 'C', 1.5*sqrt(args.k)*ones(6,1));
|
||||
elseif strcmp(args.actuator, 'piezo')
|
||||
stewart = initializeStrutDynamics(stewart, 'K', 1e7*ones(6,1), 'C', 1e2*ones(6,1));
|
||||
stewart = initializeStrutDynamics(stewart, 'type', 'classical', 'K', 1e7*ones(6,1), 'C', 1e2*ones(6,1));
|
||||
elseif strcmp(args.actuator, 'lorentz')
|
||||
stewart = initializeStrutDynamics(stewart, 'K', 1e4*ones(6,1), 'C', 1e2*ones(6,1));
|
||||
stewart = initializeStrutDynamics(stewart, 'type', 'classical', 'K', 1e4*ones(6,1), 'C', 1e2*ones(6,1));
|
||||
elseif strcmp(args.actuator, 'amplified')
|
||||
stewart = initializeStrutDynamics(stewart, 'type', 'amplified', ...
|
||||
'k1', args.k1*ones(6,1), ...
|
||||
'c1', args.c1*ones(6,1), ...
|
||||
'ka', args.ka*ones(6,1), ...
|
||||
'ca', args.ca*ones(6,1), ...
|
||||
'ke', args.ke*ones(6,1), ...
|
||||
'ce', args.ce*ones(6,1));
|
||||
else
|
||||
error('args.actuator should be piezo or lorentz');
|
||||
error('args.actuator should be piezo, lorentz or amplified');
|
||||
end
|
||||
|
||||
stewart = initializeJointDynamics(stewart, ...
|
||||
|
@@ -16,11 +16,36 @@ function [stewart] = initializeStrutDynamics(stewart, args)
|
||||
|
||||
arguments
|
||||
stewart
|
||||
args.type char {mustBeMember(args.type,{'classical', 'amplified'})} = 'classical'
|
||||
args.K (6,1) double {mustBeNumeric, mustBeNonnegative} = 20e6*ones(6,1)
|
||||
args.C (6,1) double {mustBeNumeric, mustBeNonnegative} = 2e1*ones(6,1)
|
||||
args.k1 (6,1) double {mustBeNumeric} = 1e6
|
||||
args.ke (6,1) double {mustBeNumeric} = 5e6
|
||||
args.ka (6,1) double {mustBeNumeric} = 60e6
|
||||
args.c1 (6,1) double {mustBeNumeric} = 10
|
||||
args.ce (6,1) double {mustBeNumeric} = 10
|
||||
args.ca (6,1) double {mustBeNumeric} = 10
|
||||
args.me (6,1) double {mustBeNumeric} = 0.05
|
||||
args.ma (6,1) double {mustBeNumeric} = 0.05
|
||||
end
|
||||
|
||||
stewart.actuators.type = 3;
|
||||
if strcmp(args.type, 'classical')
|
||||
stewart.actuators.type = 1;
|
||||
elseif strcmp(args.type, 'amplified')
|
||||
stewart.actuators.type = 2;
|
||||
end
|
||||
|
||||
stewart.actuators.K = args.K;
|
||||
stewart.actuators.C = args.C;
|
||||
|
||||
stewart.actuators.k1 = args.k1;
|
||||
stewart.actuators.c1 = args.c1;
|
||||
|
||||
stewart.actuators.ka = args.ka;
|
||||
stewart.actuators.ca = args.ca;
|
||||
|
||||
stewart.actuators.ke = args.ke;
|
||||
stewart.actuators.ce = args.ce;
|
||||
|
||||
stewart.actuators.ma = args.ma;
|
||||
stewart.actuators.me = args.me;
|
||||
|
Reference in New Issue
Block a user