Simulation d'un circuit rc

Soyez le premier à donner votre avis sur cette source.

Vue 22 830 fois - Téléchargée 500 fois

Description

Dans la serie simulation je voudrai le circuit RC.
Vous en reviez Nefraal l'a fait.
Pour la visualisation de resultats je vous conseille toujours et encore gnuplot ou xmgr.

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define RC 1.0
#define q0 0.0
#define U0 1.0

double w1=1;
double *vecteur (int n);
double f(double t,double q);
double f2(double t,double q,double epsilon);
void ecrire_vecteur(double *v,int n);
FILE *reponse_impultionnelle, *fopen();

main()
{
  double *t, *q;
  double h,b,epsilon;
  double A1,A2,A3,A4;
  int k,n;
  
  h=0.01;
  b=5*RC;
  n=(int)(b/h)+1;
  t=vecteur(n);
  epsilon=RC/100;
  
  q=calloc(n,sizeof(double));
  t=calloc(n,sizeof(double));
  
  t[0]=-1;
  q[0]=q0;
  
  reponse_impultionnelle=fopen("reponse_impultionnelle.dat","w");
  for(k=0;k<n-1;k++)
    {
      fprintf(reponse_impultionnelle,"%lg\t%lg\n",t[k],q[k]);
      t[k+1]=(double)(k+1)*h;
      A1=f2(t[k],q[k],epsilon);
      A2=f2(t[k]+h/2,q[k]+h/2*A1,epsilon);
      A3=f2(t[k]+h/2,q[k]+h/2*A2,epsilon);
      A4=f2(t[k]+h,q[k]+h*A3,epsilon);
      q[k+1]=q[k]+h*(A1+2*A2+2*A3+A4)/6.0;
      //printf("%lg \t %lg \n",t[k],q[k]-exp(-t[k]/RC));
    }
  fclose(reponse_impultionnelle);
}

double *vecteur(int n) 
{
  double *v;
  v=(double*)calloc(n,sizeof(double));
  return (v); 
}

void ecrire_vecteur(double *v,int n)
{
  int i;
  for(i=0;i<n;i++)
    printf("%lg \n",v[i]);
}

double f(double t,double q)
{
  return (-q/RC);
}

double f2(double t, double q,double epsilon)
{
  return ((-q/RC)+1/(sqrt(2*3.1415*epsilon*epsilon))*exp(-(t*t)/(2*epsilon*epsilon)));
}

Conclusion :


Code pas tres complique que je vous laisse decouvrir par vous meme.
Un indice tout de meme chez vous: Runge-Kutta a l'ordre 4 pour la methode d'integration (comme une methode d'Euler mais en un peu plus raffinee).

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
11
Ne t'inquiètes pas Nefraal, je sais ce qu'est un nombre complexe, mais pour le coup, j'ai raisonné comme un électronicien.

Il est vrai que chez nous, les nombres complexes ne servent qu'à étudier les filtres (comme par exemple des bandes passantes d'ADSL) donc dans ces cas pas de calculs de courants et pas de calcul de tension.

En fait nos équations complexes sont du type : Tcomplexe = Zcondo/(Zresistance+Zcondo)

Il n' y'a pas d'intervention de courant et de tension
Un courant constant est un courant qui ne varie pas au cours du temps.
Ce qui signifie qu'effectivement si on met un courant constant dans tout élément autre que le condo ou la bobine, on aura une tesion constante...

Maintenant tu peux charger un condo avec une tension sinusoidale (grâce à un Générateur Basse Fréquence) par exemple suivi d'un courant constant délivré par un générateur à courant continu, à la sortie du condo, tu mets en concordance de temps ta tension d'entrée et celle de sortie et tu verras qu'en fait que grâce au courant, ta tension de sortie sera déphasé...

J'espère t'avoir éclairci, allez @+ tout le monde...
Messages postés
11
Date d'inscription
samedi 15 janvier 2005
Statut
Membre
Dernière intervention
8 février 2005

Sur le fait que le courant est negligeable dans certain types de montages (par exemple lors de la presence d'une resistance tres importante) je suis tout a fait d'accord avec toi, mais c'est pas une raison pour en nier l'existance. Pour ce qui est des calculs complexes t'inquiet j'ai deja donné...

Il me semble que tu as mal compris ce que j'appelais impedance complexe. Ce que j'appelle impedance complexe c'est une impedance qui s'ecrit sous la forme partie reelle plus partie impginaire, si tu veux plus de detail sur les nombres complexes jette un oeil dans n importe quel bouquin d'analyse de premiere annee tu auras un petit appercu sur les "nombres complexes" (qui le sont pas tant que ca en fait).

qu'est que tu entends par courant constant?

En general j'ai tendance a penser que si j'ai un courant constant j'ai une tension constante donc U=cste et donc pas de dephasage.
Maintenant il est vrai que si j'ai une tension variable du type sin(wt) le condensateur va induire un dephasage de la tension comme tu l'as indiquer.
Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
11
Pas de courant, pas de tension...

C'est une bétise (du moins en électronique) car suivant les montages que vous avez (par exemple un filtre passe-haut, campé en aval d'un amplificateur de 23) le courant est tellement faible ( on va dire de l'ordre du nA) on peut se permettre de ne pas en tenir compte car cela joue sur du millième de volts, sinon les calculs sont largement plus complexes et sont de l'ordre de la fac.
(Je tiens ceci de mon prof d'élec, j'en ai parler longuement avec lui hier).
Effectivement et bien que Nefraal ne soit pas électronicien, il a raision. Comme vous ne parliez que de bobine, nous étions donc dans un montage complexe et je n'ai pas jugé utile de spécifier que ce que je vous ai dit hier n'est valable effectivement en complexe.
D'ailleurs, une astuce, dès que vous avez un montage complexe, cherchez pas à savoir s'il y'a du courant d' X Ampères, ca sert à rien du tout mis à part de vous faire chier.
Par contre pas de complexes, cherchez le courant.

Ensuite, j'ai oublié de spécifier que le condo chargé en courant constant ne fait que de déphaser la tension ( en gros U 2sin wt -> courant constant -> I 2sin wt + phi où phi représente l'angle en radian du déphasage); l'annulation de la composante continue ne se fait qu'avec le montage spécifié (AIL suivi d'un comparateur)

Enfin en conclusion tout ca pour dire que vos profs se plantent sur les bases d'un condo

1 - Attention au sens du condo, s'il est chimique (reconnaissable grâce à la flèche grise qui aprente le point de masse)

2 - Branchez le en courrant alternatif pour déphaser la tension par rapport au courrant.

Je tenterais de vous faire un cours d'éléctronique sur le condo en générale pour la rentrée mais retenez les 2 points énumérés ci dessus

Ah et j'oubliais en ce qui concerne le transfo vous pouvez considérer que la mise en oeuvre est bien plus complexe qu'un simple circuit RLC mais que la facon dont ca se gère dès que l'on met le jus, l'image est excellente.

Allez @+
Messages postés
11
Date d'inscription
samedi 15 janvier 2005
Statut
Membre
Dernière intervention
8 février 2005

Réponse du berger ...

La loi d'ohm sous sa forme simplifiée (U=RI) n'est en effet valable que pour les conducteur ohmiques (resistances et autres composants resistifs) mais lorsqu'elle est etandu aux impedances complexes elle est valable pour tout les composants passifs, par exemple pour une capa Z=1/(jcw) ou j*j=-1, c=capacite en farad et w est la pulsation (2*PI*f) en sec^-1.

Pour en revenir a nos moutons si pas de courant pas de tension... et donc y a une testicule dans ton raisonnement.
Messages postés
194
Date d'inscription
jeudi 1 janvier 2004
Statut
Membre
Dernière intervention
16 juillet 2007
1
la loi d'ohm c'est valable dans un conducteur ohmique seulement...dans un condensateur c'est pas valable
Afficher les 26 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.