Modeling an eccentric shaft with Simscape

14 Ansichten (letzte 30 Tage)
Martin O'Connor
Martin O'Connor am 6 Mai 2019
Beantwortet: Olalowo Olaleye am 19 Sep. 2019
I am trying to model an eccentric shaft in the simscape mechanical domain, i.e. a linear displacement varying sinusoidally with a frequency proportional to the angular displacement of a shaft. I have written a component for this (see below) that seems to be working, however it is very slow to solve. Does anyone have any advice on how to make this model run more efficiently, or if there is a different method that would achieve the same thing? I have also tried using just a linear velocity source, however the displacement was drifting over time and causing the simulation to crash.
Thanks,
Martin
component EccentricShaft
nodes
A = foundation.mechanical.rotational.rotational; % A:left
P = foundation.mechanical.translational.translational; % P:right
end
parameters
offset = { 0, 'rad'}; % Initial angular position
initPos = {0, 'm'}; % Initial linear position
eccentricity = { 0.05, 'm'}; %Shaft Eccentricity
initV = {0, 'm/s'}; %Initial linear velocity
initomega = {0,'rad/s'}; %Initial angular velocity
end
variables(Access = private)
V = {value = initV, priority = priority.high}; % V:Left
X = {value = initPos, priority = priority.high}; % X:Left
F = { 0, 'N' }; % F:Left
theta = {value = offset, priority = priority.high} % theta:Right
omega = {value = initomega, priority = priority.high}; % omega:Right
tau = { 0, 'N*m'}; % tau:Right
end
branches
tau : A.t -> *;
F : P.f -> *;
end
equations
assert(eccentricity>0)
X - eccentricity/2*(1-cos(theta)) == 0;
V == P.v;
omega == A.w;
X.der == V;
theta.der == omega;
F*V - omega*tau == 0;
end
end

Antworten (1)

Olalowo Olaleye
Olalowo Olaleye am 19 Sep. 2019
A more diligent and concise approach must be used here.

Kategorien

Mehr zu Foundation and Custom Domains finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by