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:
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 ).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
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.
-----