le 02-13-2015 07:05 AM
Bonjour à tous,
Je viens vers vous, car j'ai détecté un problème dans mon programme auxquel je n'arrive à remédier. Je pense localiser le problème mais je ne comprends pas pourquoi celui-ci est présent.
Mon problème consiste à générer une consigne pour mettre en agitation un module vibratoire. Je génère une accélération variable en fonction d'une fréquence variable comme ci-dessous :
Comme vous pouvez le constater je peux définir mon accélération, ma fréquence mais aussi le nombre de sweeps. Pour moi un Sweep correspond à un allez-retour, je m'explique :
En tenant compte de cette excitation et en réalisant 1 Sweep voici le parcour souhaité :
Fréquence : 50 100 150 250 500 250 150 100 50
Accélération: 0.5 1 2 0.5 0.3 0.5 2 1 0.5
Jusqu'ici pas de problèmes, mais en faisant divers essais je me suis rendu compte que si je réalisais ce profil en mettant 2 sweeps ou 10 sweeps, le temps n'est pas du tout proportionnel. Voici les résultats mesurés (toujours pour la meme consigne) :
pour Number of sweeps= 1 -> temps total 4min18
pour Number of sweeps = 10 -> le premiere sweep prend 10min16, je n'ai pas chronométré le temps total des 10...
Comment se fait-ce ? Pour moi si je rentre nimporte quel nombre dans " Number of sweeps" le temps d'un Sweep ( 1 allez retour) devrait -etre le meme c'est juste la répération de ces sweep qui changera le temps total, tout en gardant des proportions identiques en therme de durée....
Voici le Sous-vi qui gère la génération d'un tableau pour l'accélération et la fréquence en fonction du nombre de cycle souhaité :
ci-joint mon vi :
Cordialement
le 02-16-2015 01:46 AM
UP
le 02-16-2015 04:09 PM
Hello Geoff54,
Quelques commentaires/questions à la "volée":
- je ne suis pas étonné que le temps d'exécution ne soit pas proportionnel au nombre de points de controles car il y a dans le vi de sweep un boucle while et donc rien ne me dit "quand" on va en sortir
- à quoi sert la tempo de 50ms par tour de boucle For?
- Est-ce qu'il y a une communication avec du matériel? ou bien est-ce seulement l'algorithme qui prend du temps?
Bonne soirée,
Flo
le 02-17-2015 09:37 AM
Bonjour Florent_A,
Merci déja de t'interesser à mon sujet, pour répondre à ta question la tempo de 50 ms dans la boucle for n'a pas d'intéret particulier je l'ai supprimé, cependant le problème est toujours le même.
certe partie consiste à générer un tableau d'amplitude et de fréquence à partir des points de cassures définis auparavant.
Je résume :
1°) définition du profilé ( points de cassures principaux)
2°) Bloc Sweep sine ( construit un tableau pour générer les amplitude et fréquences intermédiaires entre ces points de cassures, plus le paramètre "fréquency line" est important plus le nombre de points générés sont conséquents)
Mon système est assez simple voici ma boucle de régulation :
Je réalise un asservissement, j'ai une génération d'un signal sinusoidale de fréquence variable et une mesure d'amplitude à l'aide d'un accéléromètre.
cordialement
le 02-19-2015 05:30 AM
UP
le 02-20-2015 04:24 PM
Bonne soirée,
Flo
le 02-20-2015 04:26 PM
Oups, il en manque un bout ^^ :
Pourquoi ne pas combiner une rampe pour la modification d'amplitude et un chirp pour le shift en fréquence?
Flo
le 02-22-2015 01:22 PM
Hum.. peux tu détailler un peu plus stp ? si tu pouvais adapter un peu sa m'aiderai certainement plus .
cordialement
le 02-22-2015 02:02 PM
Hello,
je pensais à quelque chose dans ce gout là
Bonne soirée,
Flo
le 02-23-2015 01:49 AM
peux-tu me l'envoyer pour labview 11.0?
cordialement