Matlab - ayuda para hacer un programa que analize circuitos

 
Vista:

ayuda para hacer un programa que analize circuitos

Publicado por Gianni (1 intervención) el 18/04/2005 19:11:51
necesito ayuda para hacer un proyecto en donde necesito hacer un programa que analize circuitos D.C. compuestos de resistencias y fuentes de voltajes y/o corriente utilizando matrices y un modelo tipo netlist(usando celdas) para entrar los datos.
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

Programa para análisis de circuitos DC con matrices y netlist

Publicado por Alejandro (145 intervenciones) el 09/10/2023 16:18:07
¡Claro, Gianni, puedo ayudarte con eso! Para crear un programa que analice circuitos DC compuestos de resistencias y fuentes de voltaje/corriente utilizando matrices y un modelo tipo netlist, puedes seguir estos pasos:

1. Estructura del netlist:



Define una estructura de netlist que represente los elementos del circuito. Por ejemplo:

1
2
3
4
5
netlist = [
    {'R1', 'Nodo1', 'Nodo2', 1000}; % Resistencia de 1000 ohm entre Nodo1 y Nodo2
    {'V1', 'Nodo2', 'GND', 5}; % Fuente de voltaje de 5V entre Nodo2 y GND
    % Agrega más elementos según sea necesario
];

2. Creación de la matriz de admitancia (Y):



Utiliza el netlist para construir una matriz de admitancia (Y) que represente el circuito.

1
Y = construirMatrizAdmitancia(netlist);

3. Resolución del sistema de ecuaciones:



Resuelve el sistema de ecuaciones para encontrar los voltajes en los nodos del circuito.

1
voltajes = resolverSistema(Y);

4. Resultados:



Analiza y muestra los resultados según sea necesario. Por ejemplo, puedes imprimir los voltajes en los nodos.

1
2
3
for i = 1:length(voltajes)
    fprintf('Voltaje en Nodo%d: %.2f V\n', i, voltajes(i));
end

5. Funciones auxiliares:



Implementa funciones auxiliares como `construirMatrizAdmitancia` y `resolverSistema` para facilitar la construcción y resolución del circuito.

6. Iteración y mejoras:



Itera sobre el diseño del programa según sea necesario y agrega funcionalidades adicionales como fuentes de corriente, elementos no lineales, etc.

7. Documentación:



Documenta tu código para que sea fácil de entender y utilizar.

Aquí hay un ejemplo muy básico de cómo podrías comenzar con la función `construirMatrizAdmitancia`:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function Y = construirMatrizAdmitancia(netlist)
    numNodos = contarNodos(netlist);
    Y = zeros(numNodos, numNodos);
 
    for i = 1:size(netlist, 1)
        tipoElemento = netlist{i, 1};
        nodoPositivo = netlist{i, 2};
        nodoNegativo = netlist{i, 3};
        valor = netlist{i, 4};
 
        switch tipoElemento
            case 'R'
                Y(nodoPositivo, nodoPositivo) = Y(nodoPositivo, nodoPositivo) + 1 / valor;
                Y(nodoNegativo, nodoNegativo) = Y(nodoNegativo, nodoNegativo) + 1 / valor;
                Y(nodoPositivo, nodoNegativo) = Y(nodoPositivo, nodoNegativo) - 1 / valor;
                Y(nodoNegativo, nodoPositivo) = Y(nodoNegativo, nodoPositivo) - 1 / valor;
            % Agrega casos para otros elementos
        end
    end
end

Esto es solo un punto de partida y deberás personalizarlo según tus necesidades y requisitos específicos. ¡Espero que te sea de ayuda y buena suerte con tu proyecto!
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