[Python + SCPI] Balayage en fréquence générateur de signal RF via Pyvisa.
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

[Python + SCPI] Balayage en fréquence générateur de signal RF via Pyvisa.



  1. #1
    Floklo

    [Python + SCPI] Balayage en fréquence générateur de signal RF via Pyvisa.


    ------

    Bonjour à tous. Premier poste sur ce forum.

    Je vais essayer d'aller vite à mon problème de programmation, mais avant il faut que je résume un peu ce sur quoi je travaille.

    Je test des antennes qui émettent sur la bande 50-70 GHz, et je veux à un moment tracer leurs gains en fonction de la fréquence.
    Je récupère la puissance via des modules Labjack UE9, et je génére mon signal RF avec un Keysight E8663D que je contrôle en Ethernet via Pyvisa !

    Voici le bout de code qui fait le balayage en fréquence et qui récupère la puissance transmise:
    Code:
    freq_range = np.linspace(50, 70, 201)    #bande de fréquence à parcourir en GHz
    P_Co =[]                                              #liste des puissances qu'on va récupérer
    
    for freq in freq_range:
        
        sig_gen.write(':FREQ'+str(freq)+'GHZ')    #envoie la commande au générateur de signal pour se placer à la fréquence voulue   
        time.sleep(0.1)
        P_Co.append(acq.get_PowerCo())      #remplis la liste des puissances
    Ce code marche bien et me donne de bon résultat, mais vous remarquerez le time sleep de 0.1sec qui augmente significativement le temps de la boucle lorsque nous prenons beaucoup de points (pour 201 points, 20 secondes... etc ).
    Lorsque je ne met pas de time sleep, les mesures sont faussées car à chaque itération le générateur de signal n'a pas le temps de se mettre à la bonne fréquence.

    En effet je ne connais pas le temps que met le générateur de signal pour passer d'une fréquence à une autre, et la commande SCPI ":FREQ <value><unit>" ne peut pas etre utilisé avec les fonctions query() et read(), car elle ne renvoie rien. Je ne peux donc pas savoir si la bonne fréquence à été "mise" et passer à l'itération suivante.

    J'ai pensé utiliser la commande ":FREQ?" qui me renvoie la fréquence à laquelle se trouve le géné et tester cette fréquence dans une boucle while pour voir si elle est la même que celle souhaitée et passé à la mesure de puissance, mais ça me parait tordu bien que ça doit marcher.

    Quelqu'un as-t-il été confronté à un problème de ce type (je suis sur que la réponse est toute béte) et connais un moyen de vérifier "l'état" du générateur de signal facilement et rapidement.

    Je ne sais pas si se que je dis est clair, mais merci pour votre aide.
    Je suis la pour répondre à vos questions.
    Cordialement.

    -----

  2. #2
    Floklo

    Re : [Python + SCPI] Balayage en fréquence générateur de signal RF via Pyvisa.

    Bonjour,

    Je reviens à vous car j'ai quelques données supplémentaires depuis hier.

    Lorsque j'envoie cette commande:
    Code:
    flag = sig_gen.write(':FREQ 60GHZ')
    La machine me renvoie flag comme ceci:
    Code:
    (15L, <StatusCode.success: 0>)
    C'est un Tuple, je me suis donc dit "Cool ! Je peux me servir de ça".
    J'ai donc écris:
    Code:
    freq_range = np.linspace(50, 70, 201)    #Bande de fréquence à parcourir en GHz
    P_Co =[]                                 #Liste des puissances mesurer
    
    for freq in freq_range:
        
        flag = sig_gen.write(':FREQ '+str(freq)+'GHZ')   #commande SCPI pour régler la fréquence   
        
        while str(flag[1]) != 'StatusCode.success':
                     flag = sig_gen.write(':FREQ '+str(freq)+'GHZ')  #(Attention l'indentation n'est pas bonne)
        
        P_Co.append(acq.get_PowerCo())             #acquisition de la mesure de puissance et remplis la liste.
    Mais cela me donne encore une courbe complètement fausse. Et je ne comprend pas pourquoi...
    En effet si le géné me renvoie ce "flag", je suppose que c'est pour me dire que la fréquence a bien été placée.
    Voilà si quelqu'un à une idée, je suis preneur !
    Je vous met en pièce jointe la capture d'écran des courbes. En bleu c'est la bonne (avec le time sleep), le reste c'est ce qui ne marche pas...

    Cordialement.Nom : Capture.PNG
Affichages : 175
Taille : 44,8 Ko

  3. #3
    Antoane
    Responsable technique

    Re : [Python + SCPI] Balayage en fréquence générateur de signal RF via Pyvisa.

    Bonjour,

    J'ai eu un problème similaire avec un traceur de caractéristiques et la seule solution que j'avais trouvé était de mettre une pause (mais c'était un vieil instrument).

    As-tu essayé la commande 488.2 '*WAI' ?
    Ou via le registre de status de l'instrument ?
    Le puissance-mètre ne peut-il pas te renvoyer la fréquence du signal incident ?

    Je peux déplacer ce fil en électronique si tu veux, je pense qu'il y trouvera plus de gens pour te répondre.


    Le guide du programmeur : http://literature.cdn.keysight.com/l....pdf?id=511368
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  4. #4
    Floklo

    Re : [Python + SCPI] Balayage en fréquence générateur de signal RF via Pyvisa.

    Ah oui je n'avais pas vu la commande "*WAI" en effet.

    Mais je viens de la tester, ça me donne une courbe fausse...
    Je pense que la machine attend, mais par la boucle for.

    Et non, le puissance-mètre ne me renvoi qu'une tension, image de la puissance de l'onde reçu.

    Je pensais que c'était un problème avec le code, mais c'est vrai qu'en électronique une personne est tombé aussi sur ce problème.
    Cordialement

  5. A voir en vidéo sur Futura
  6. #5
    Floklo

    Re : [Python + SCPI] Balayage en fréquence générateur de signal RF via Pyvisa.

    Bon j'ai passer le time sleep à 0.01 seconde.

    Ça me réduit de beaucoup le temps d'acquisition, et me donne de bonne courbe, malgré que je ne fais que déplacer le problème finalement.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/02/2015, 12h25
  2. Générateur d'un signal sinuoidal de fréquence variable (300Hzà 500Hz)
    Par invitee5e48cea dans le forum Électronique
    Réponses: 9
    Dernier message: 30/10/2009, 10h09
  3. Réponses: 3
    Dernier message: 20/09/2009, 12h33
  4. [Brun] Réglage fréquence balayage TV CUC5310
    Par invite0dcfda20 dans le forum Dépannage
    Réponses: 1
    Dernier message: 02/04/2009, 19h17
  5. Vitesse de balayage et fréquence d'échantillonage-FFT
    Par invite08622d57 dans le forum Électronique
    Réponses: 4
    Dernier message: 29/01/2009, 17h53
Découvrez nos comparatifs produits sur l'informatique et les technologies.