Algoritmia - Camino mas corto

 
Vista:

Camino mas corto

Publicado por Luis Montoya (1 intervención) el 30/05/2001 19:12:44
Estoy trabajando en un proyecto de prueba electrica en el cual tengo que leer la corriente a un instrumento a determinado voltaje.

El instrumento me pone la grafica de Corriente vs Voltaje pero pone un voltaje de 100%, pero yo quiero leer a otro voltaje, es decir por ejemplo:
El voltaje total es =100%, el 100% esta dividido en 256 puntos ( no lineales vs voltaje), lo que quiero es saber el punto donde corresponde a cierto voltaje (por ejemplo 5 V ), normalmente no se cual es voltaje a 100%.

Cual es la forma mas rapida de acercarme al punto (0~256) del voltaje que yo deseo?
Gracias, jovenes.

PD: tal vez no me explique bien.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Interpolación para encontrar punto de voltaje deseado

Publicado por Alejandro (307 intervenciones) el 27/02/2024 21:11:01
Luis, si entiendo correctamente tu pregunta, estás buscando una manera eficiente de encontrar el punto en una gráfica de Corriente vs. Voltaje correspondiente a un voltaje específico (por ejemplo, 5V) en una escala de 0 a 256, donde el 100% del voltaje está dividido en esos 256 puntos.

Aquí hay un enfoque de interpolación que podrías utilizar para encontrar el punto deseado:

1. Normalización del voltaje:
- Normaliza el voltaje deseado (por ejemplo, 5V) en la escala del 0 al 100%. Esto puede hacerse mediante una simple regla de tres: `voltaje_normalizado = (voltaje_deseado / voltaje_total) * 100`.

2. Interpolación lineal:
- Utiliza la normalización para encontrar la posición en la escala de 0 a 256. Si la normalización es, por ejemplo, 20%, entonces el punto en la escala de 0 a 256 sería `posicion = 0.2 * 256`.

3. Redondeo:
- Redondea la posición calculada al entero más cercano, ya que tu escala probablemente esté definida en números enteros.

Aquí hay un ejemplo en código C++ para realizar este cálculo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <cmath>
 
int encontrarPuntoVoltaje(float voltajeDeseado, float voltajeTotal, int puntosEscala) {
    // Paso 1: Normalizar el voltaje deseado
    float voltajeNormalizado = (voltajeDeseado / voltajeTotal) * 100;
 
    // Paso 2: Interpolación Lineal
    float posicion = (voltajeNormalizado / 100) * puntosEscala;
 
    // Paso 3: Redondeo al entero más cercano
    int posicionRedondeada = std::round(posicion);
 
    return posicionRedondeada;
}
 
int main() {
    float voltajeTotal = 100;  // Ejemplo, el voltaje total es 100%
    int puntosEscala = 256;    // Ejemplo, 256 puntos en la escala
 
    float voltajeDeseado = 5;  // Ejemplo, voltaje que deseas encontrar
    int posicionPunto = encontrarPuntoVoltaje(voltajeDeseado, voltajeTotal, puntosEscala);
 
    std::cout << "El punto en la escala para " << voltajeDeseado << "V es: " << posicionPunto << std::endl;
 
    return 0;
}

Este código proporcionará la posición aproximada del punto correspondiente al voltaje deseado en la escala de 0 a 256. Ten en cuenta que esta es una aproximación y que la interpolación lineal asume una relación lineal entre los puntos de la escala.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar