Borrar filtros
Borrar filtros

Finding Multiple Solutions to a Single Equation by Varying a Set of Variables

1 visualización (últimos 30 días)
Hi,
I am trying to find different gear tooth counts based on an equation for a gear ratio. I want the number of teeth for each gear to be from 20 to 60 teeth. The equation for the gear ratio is:
N = (G1 * G4) / ((G1-G3) * (G2-G1))
How would I go about getting a 4 column matrix with all the possible tooth count combinations?
Here is what I have so far:
N = 200; % Gear Ratio
G1 = 20:1:60; % Gear 1 tooth count
G2 = 20:1:60; % Gear 2 tooth count
G3 = 20:1:60; % Gear 3 tooth count
G4 = 20:1:60; % Gear 4 tooth count
N = (G1.*G4)./((G1-G3).*(G2-G1)); % Gear Ratio calculation
Also, is there a way to go about getting a range of the gear ratio as well? For example, if I wanted anything within +/- 5% of the desired ratio.
Thanks!

Respuesta aceptada

Walter Roberson
Walter Roberson el 3 de Jul. de 2019
N = 200; % Gear Ratio
G1 = 20:1:60; % Gear 1 tooth count
G2 = 20:1:60; % Gear 2 tooth count
G3 = 20:1:60; % Gear 3 tooth count
G4 = 20:1:60; % Gear 4 tooth count
[G1g, G2g, G3g, G4g] = ndgrid(G1, G2, G3, G4);
N = (G1g.*G4g)./((G1g-G3g).*(G2g-G1g)); % Gear Ratio calculation
Gear1 = G1g(:); Gear2 = G2g(:); Gear3 = G3g(:); Gear4 = G4g(:); Ratio = N(:);
result = table(Gear1, Gear2, Gear3, Gear4, Ratio);
This will be a table with nearly 3 million results ranging from -3600 to +3540 and over 135000 Inf results. There are 304995 unique results.
  3 comentarios
Walter Roberson
Walter Roberson el 3 de Jul. de 2019
mask = result.Ratio < 100 | result.Ratio > 2000;
selected_result = result(mask,:);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Gears en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by