Absorbeur actif autonome

Discutions générales sur le DSPiy et tout ce qui s'y rattache
Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

PID

Messagepar thierryvalk » sam. 19 déc. 2015 12:29

J’ai réalisé un ampli tout simple U vers I.
Un préampli micro à tester.
J’ai commencé le squelette d’un soft tournant sur un µC.
L’avantage du µC est d’avoir ADC et DAC hyper rapide, mais faible résolution (12 bits).
L’inconvénient majeur est le manque de vitesse au niveau calculs et qu’il faut tout coder en dur.
Par contre faire une PID est plus simple que sur le DSP du DSPiy.

Je suis donc retourné dans SigmaStudio pour voir s’il était possible de faire une PID.
SigmaStudio c’est très simple, mais la doc est, je trouve, relativement incomplète.

Pour une PID :
P : c’est simple, c’est l’erreur.
I : I=I+erreur, il faut donc mémoriser I, j’ai trouvé un bloc s’appelant « Sample And Hold », cela devrait corresponde mais pas certain. Suffirait d’un feedback et d’un block +.
D : c’est l’erreur du sample précédent, donc suffit d’avoir un délai de 1.

Pour I, en général on rajoute des limites, on la fait saturer à un certain niveau défini. A voir, mais le Standard Clip devrait le faire.

Ensuite on passe ces 3 paramètres dans des volumes pour ajuster les K et l’on additionne.

Une autre solution pour cette intégrale serait d’utiliser un biquad, je me plante peut être complètement et donc demande vérification.
Si l’on met les coefficients suivants : B0=1 B=0 B2=0 A2=0 A1=-1, n’obtiendrait ‘on pas l’intégrale recherchée ?

Par contre j’ai déjà fait des PID sur des moteurs, chauffage… mais je n’ai aucune idée dans l’audio le rapport entre la fs et le résultat de cette PID.

louisr
Messages : 456
Enregistré le : mar. 14 juil. 2015 15:52
Localisation : Bordeaux/Poitiers

Re: PID

Messagepar louisr » sam. 19 déc. 2015 19:22

thierryvalk a écrit :
Une autre solution pour cette intégrale serait d’utiliser un biquad, je me plante peut être complètement et donc demande vérification.
Si l’on met les coefficients suivants : B0=1 B=0 B2=0 A2=0 A1=-1, n’obtiendrait ‘on pas l’intégrale recherchée ?


J'ai regardé un peu sur internet, j'ai rien trouvé qui semblait utiliser des biquads.. Et en fait je comprend pas ce que ça ferait avec ces coefficients :gene:

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Absorbeur actif autonome

Messagepar thierryvalk » mar. 22 déc. 2015 08:51

En fait un intégrateur sous Sigmastudio semble hyper simple.
On utilise un feedback et un additionneur.
Le feedback va reprendre la valeur à T-1 et l'additionner à la valeur à T0 et devenir la valeur de T-1 pour le sample suivant.
Si nécessaire on va mettre en forme le signal d'entrée via un gain et l'on peut créer une saturation a n'importe quel niveau via un HardClip ou SoftClip.
integra.JPG

Malheureusement le simulateur de SigmaStudio ne semble pas bien gérer les Feedback, je testerais sur la carte d'évaluation ou sur un DSPiy.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Absorbeur actif autonome

Messagepar alka » mar. 22 déc. 2015 10:07

exactement comme un intégrateur simple en code : une addition ! :) (dt = 1 dans ton exemple)
faut quand même multiplier par un coeff Ki et ajouter au P et D.

Je trouve l'explication du PID sur wikipedia anglais plutot bien faite. C'est orienté asservissement en position et plutot clair, et même des idées pour optimiser les coeffs.

exemple en pseudo code (setpoint = cible)
previous_error = 0
integral = 0
start:
error = setpoint - measured_value
integral = integral + error*dt
derivative = (error - previous_error)/dt
output = Kp*error + Ki*integral + Kd*derivative
previous_error = error
wait(dt)
goto start
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Absorbeur actif autonome

Messagepar thierryvalk » mar. 22 déc. 2015 10:27

Oui, une simple adition, mais je bloquais sur le fait de garder le résultat en mémoire qui n'a lieu d'être vu le principe du feedback.
La boucle, elle faite par le HP -> Micro.
Voici ce qui devrait faire la dérivée :
deriv.JPG

Avec filtre optionnel pour calmer le jeu.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Absorbeur actif autonome

Messagepar alka » mar. 22 déc. 2015 10:43

bien joué :) j'ai du mal aussi a penser a sigmastudio comme un éditeur graphique de code qui agit sur un flux de données.
ca donne des idées pour un autre projet en gestation ;)
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Absorbeur actif autonome

Messagepar thierryvalk » mer. 23 déc. 2015 19:25

Mi simulation, j’ai fait un projet sous sigmastudio qui simule +- mon HP via des filtres.
Je rente un signal Pink-noise que je mixe avec ce qui représente le micro captant la sortie de cet HP.
Ensuite filtres puis PID parallèle et enfin bouclage dans le HP.
Fonctionne sur la carte d'évaluation de l'ADAU1701

voici les courbes en jouant un peu avec tout :
pid.png


Le signal In est à 80dB, en mauve le résultat de l'atténuation réalisée, donc serait le signal résultant capté par le micro qui représente l'erreur.
En rouge la sortie P, en vert la sortie I et enfin D en cyan.

Ça fonctionne +-, faut voir en contexte plus réel avec le tube.
Sachant que le signal n'est pas du Pink-noise mais surtout des fréquences plus basses dues aux modes.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: Absorbeur actif autonome

Messagepar alka » mar. 19 juil. 2016 21:15

En cherchant tout a fait autre chose, je suis tombé sur ça : comment utiliser un HP pour réduire du bruit a 100Hz et a 200Hz (dans leur cas, du bruit de transfos). Ils disent absorbtion autour de 90%. A voir en situation réelle.
ca s'appelle Shunted loudspeaker.

http://www.iiav.org/icsv21/content/pape ... 215371.pdf
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: Absorbeur actif autonome

Messagepar thierryvalk » mer. 20 juil. 2016 07:51

Un peu le même principe de Lissek, qui est d'ailleurs dans les références.


Retourner vers « DSPiy général »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités