Forum: Mikrocontroller und Digitale Elektronik Amplitudenvariation über eine Gleichspannung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Matthew R. (matthew)


Lesenswert?

Hallo, ich habe folgende Aufgabe, die ich bewältigen muss: ein 
Sinussignal von 400Hz mit ca. 24V Spitzenspannung soll so moduliert 
werden, dass es durch eine Gleichspannung in der Amplitude gesteuert 
wird. Soll heißen, eine Gleichspannung (0 bis 10V) wird in Winkelwerte 
umgerechnet (0V entsprechen 0°, 5V 180°, 10V 360° usw.) und daraus 
einmal der Cosinus und einmal der Sinus berechnet. Die beiden 
berechneten Werte werden jeweils mit dem o.g. Sinussignal multipliziert, 
und so erhält man zwei Ausgangssignale mit variabler Amplitude (nach dem 
Resolverprinzip). Das 400Hz Eingangssignal kann entweder extern erzeugt 
werden oder intern, wichtig ist dass es über 20V sind (ideal wären 24V). 
Es soll ebenfalls ausgegeben werden.

Da ich annehme dass diese Art von Schaltung nicht analog zu lösen ist, 
wäre meine Frage: welche Art von Baustein wäre zu empfehlen (vermutlich 
DSP/ Mikrocontroller...)? Wichtig ist, dass dieser nicht zu groß sein 
sollte, da alles in ein handliches Gerät verpackt werden soll. 
Interessant wäre auch der Preis...

Zum Verständnis ist sicher der folgende Link hilfreich: 
http://www.avtron.com/images/jpgs/resolver1.jpg

In der Grafik sieht man die Abhängigkeit der Amplitude von der 
"Winkellage", in unserem Falle der entsprechenden Gleichspannung 
(normalerweise wird dies durch Induktion einer Spannung am Rotor auf 
zwei Ständerwicklungen bei Motoren erzeugt, aber das ist hier 
unwichtig).

Ich hoffe ich konnte das Problem einigermaßen verständlich vermitteln. 
Ich freue mich über jeden hilfreichen Beitrag!

von tom (Gast)


Lesenswert?

matthew,

deine anfrage ist leider etwas konfus. was haben amptlitude und 
winkellage bitte miteinander zu tun ???

allgemein:
wenn du einen sinus mit veränderlicher amplitude/frequenz/winkellage per 
8/16-bit uC erzeugen möchtest gibt es z.B. den ansatz, die periodische 
kurvenform in einer lookup-table abzulegen und dann hast du einen 
zeiger, welcher dadurch rotiert (zeit zwischen den einzelnen 
stützstellen ergibt mit der anzahl der stützstellen/periode dann die 
frequenz) und multipliziert mit einem amplitudenfaktor hast du die 
veränderliche amplitude. Das per PWM ausgegeben, bei induktiver Last ist 
nun alles schick oder du musst eine Filterspule spendieren und hinter 
der hast Du dann deinen sinus.
die phasenlage kannst du durch einen simplen offset auf den zeigerwert 
für den lookup-table zugriff einstellen.

ausserdem solltes du dich mal mit deinen randbedingungen zuerst 
auseiandersetzen und schauen, wie doll darf das quantisierungsrauschen 
(spannungsstufen zwischen deinen stützstellen) sein usw. usf. .
dazu musst du entweder mit der zielapplikation rüberrücken oder genau 
wissen was du willst (aber dann würdest du hier wohl nicht mehr fragen 
müssen...) ;-).

Ein Ansatz mit DAC wäre z.B. auch zu überlegen...

gruss+viel erfolg, tomas.

P.S. ansonsten mal unter NCO/VCO googeln.

von Matthew R. (matthew)


Lesenswert?

Hi Tom,

danke für die schnelle Antwort. Ich habe mich wahrscheinlich ein 
bisschen komisch ausgedrückt. Was ich möchte sind zwei Ausgangssignale, 
die durch eine Eingangsspannung (DC) in ihrer Amplitude verändert 
werden. Das Problem ist nur dass das ganze nicht linear ist, also soll 
bei 10V DC auch keine Spitzenspannung von 10V am Sinus sein. Die 
Anwendung simuliert ein induktives Verhalten (Resolver) an elektrischen 
Maschinen. Daher auch die etwas seltsame Funktion. Die Anwendung dafür 
ist unwichtig, ich baue das für meine Firma.

Also, was ich machen möchte ist erst mal:

- Auswerten einer Eingangsspannung (DC), Multiplikation mit 36 - damit 
gilt: 10V DC entsprechen einer Umdrehung (360° oder 2*pi)
- Sinus und Cosinus aus dem errechneten "Grad-Wert" bilden
- Sinus- und Cosinus-Wert jeweils mit einem 400Hz- Sinussignal 
multiplizieren (sozusagen als Konstante, um die Amplitude zu bestimmen)
- beide errechneten Signale und den 400Hz Sinus ausgeben

Lookup-Table...ist auch das erste was mir eingefallen ist. Aber 
vielleicht gibt es ja einen Baustein, bei dem man die Funktion einfach 
eingeben kann (d.h. Gleichspannung in Werte mit max. dem Wert 2*pi 
umrechnen, den (Co)Sinus daraus bilden und mit Sinusspannung 
multiplizieren).

Viele Grüße,
M.

von Matthew R. (matthew)


Lesenswert?

Also, um es zu vereinfachen: ich brauche einen Baustein, der zu jedem 
Spannungswert (0 bis 10V DC, in 0,1V oder besser 0,01V Schritten) einen 
bestimmten Wert aus einer Tabelle zuordnet. Dieser Wert soll analog 
ausgegeben werden und mit einer Sinusspannung multipliziert werden. 
Diese Sinusspannung mit 400Hz kann entweder intern oder extern erzeugt 
werden.

von tom (Gast)


Lesenswert?

anderer weg mit DDS chip(s):

...nimmst du einen kleinen uC mit ADC und SPI und CLK-OUT, nagelst 1 
oder 2 AD9833 chips ran und verstärkst den Ausgang vom(n) AD9833 
entsprechend, bzw. addierst sin+cos.
Damit hättest Du saubere+hochgenaue Sin/Cosinüsse als 
resolversimulation.

von Matthew R. (matthew)


Lesenswert?

tom schrieb:
> anderer weg mit DDS chip(s):
>
> ...nimmst du einen kleinen uC mit ADC und SPI und CLK-OUT, nagelst 1
> oder 2 AD9833 chips ran und verstärkst den Ausgang vom(n) AD9833
> entsprechend, bzw. addierst sin+cos.
> Damit hättest Du saubere+hochgenaue Sin/Cosinüsse als
> resolversimulation.


Aha, hört sich erst mal gut an...aber kann der AD9833 auch nen Sinus 
ausrechnen und ihn anschließend mit einem anderen Signal multiplizieren 
(nicht addieren)?

von Falk B. (falk)


Lesenswert?

@  Matthew R. (matthew)

>- Auswerten einer Eingangsspannung (DC), Multiplikation mit 36 - damit
>gilt: 10V DC entsprechen einer Umdrehung (360° oder 2*pi)

???

>- Sinus und Cosinus aus dem errechneten "Grad-Wert" bilden
>- Sinus- und Cosinus-Wert jeweils mit einem 400Hz- Sinussignal
>multiplizieren (sozusagen als Konstante, um die Amplitude zu bestimmen)

Ein Konstante wird nciht berechnet, sie ist konstant. Was du meinst ist 
ein Faktor, genauer ein Gewichtungsfaktor.

Ich deute deine Beschreibung mal so.

U_sinus = sin(U_ADC*36) * sin(t*400*2*PI)
U_cosinus = sin(U_ADC*36) * cos(t*400*2*PI)

>- beide errechneten Signale und den 400Hz Sinus ausgeben

>Lookup-Table...ist auch das erste was mir eingefallen ist. Aber
>vielleicht gibt es ja einen Baustein, bei dem man die Funktion einfach
>eingeben kann (d.h. Gleichspannung in Werte mit max. dem Wert 2*pi
>umrechnen, den (Co)Sinus daraus bilden und mit Sinusspannung
>multiplizieren).

Ja, nennt sich Mikrocontroller ;-)
Da gibt es AFIAK nix fertiges. Aber bei 400 Hz kann man das recht 
einfach in Software machen, die Erzeugeung der Sinus- und 
Cosinussignale.
Kleine DDS in Software, dazu den ADC auswerten, per Tabelle in den 
Gewichtungsfaktor umrechnen, fertig. Ein kleiner AVR ala Mega8 oder Mega 
16 reicht.
Aber nach deiner Schilderung ist dein Kenntnisstand dafür wahrscheinlich 
nicht ausreichend.

MFG
Falk

von Falk B. (falk)


Lesenswert?

@  Matthew R. (matthew)

>Aha, hört sich erst mal gut an...aber kann der AD9833 auch nen Sinus
>ausrechnen

Der macht nix anderes.

> und ihn anschließend mit einem anderen Signal multiplizieren

Die Amplitude kann man in einem Register einstellen.

MfG
Falk

von Matthew R. (matthew)


Lesenswert?

@  Falk:
>
>>- Auswerten einer Eingangsspannung (DC), Multiplikation mit 36 - damit
>>gilt: 10V DC entsprechen einer Umdrehung (360° oder 2*pi)
>
> ???

Unwichtig, aber wenn du es genau wissen willst: die Gleichspannung 
simuliert einen mechanischen Drehwinkel.

>
>>- Sinus und Cosinus aus dem errechneten "Grad-Wert" bilden
>>- Sinus- und Cosinus-Wert jeweils mit einem 400Hz- Sinussignal
>>multiplizieren (sozusagen als Konstante, um die Amplitude zu bestimmen)
>
> Ein Konstante wird nciht berechnet, sie ist konstant. Was du meinst ist
> ein Faktor, genauer ein Gewichtungsfaktor.

Sorry, da habe ich wohl nur ein falsches Wort benutzt...

>
> Ich deute deine Beschreibung mal so.
>
> U_sinus = sin(U_ADC*36) * sin(t*400*2*PI)
> U_cosinus = sin(U_ADC*36) * cos(t*400*2*PI)

Ja, fast richtig (die Formeln hätte ich natürlich auch gleich 
hinschreiben können). Einziger Fehler:

U_cosinus = cos(U_ADC*36) * sin(t*400*2*PI)


> Aber nach deiner Schilderung ist dein Kenntnisstand dafür wahrscheinlich
> nicht ausreichend.

Kann man so nicht sagen. Ich hab bloß mit so einem µC noch nie 
gearbeitet. Ist das denn so kompliziert?

MfG

von Josef Huber (Gast)


Lesenswert?

bevor Sie sich die Haare ausreißen über die vermeindliche 
Verstäntnisslosigkeit Ihrer ersten Beschreibung (oder einiger Leser).

Sie wollen also einen Resolver nachahmen. Als Meßgröße wird eine 
Spannung von 0...10 Volt angenommen. Richtig. Sie wollen das Ding selbst 
bauen, richtig. Sollten aber vorab auch abgeklären, ob die Eingänge der 
Resolverelektronik potentialgebundene Spannungen verträgt. Sonst 2x 
Übertrager einplanen (Trägerfrequenz ist ja dazu da). Ich baue sogar 3x 
Übertrager ein. Die Modulation der Hüllkurve ist gut mit einem 
steuerbaren Verstärker machbar. Früher gab es auch sogenannte 
log.-Verstärker und die dazugehörigen antilog.-Verstärker von glaube 
Intersil. Ist aber bischen schwierig. Selbstverständlich stimmen die 
oben aufgeführten Antworten. Sollten Sie mir wegen meiner Antwort 
persönlich die Meinung geigen wollen huber_josef@freenet.de.

von Falk B. (falk)


Lesenswert?

@Matthew R. (matthew)

>> Aber nach deiner Schilderung ist dein Kenntnisstand dafür wahrscheinlich
>> nicht ausreichend.

>Kann man so nicht sagen. Ich hab bloß mit so einem µC noch nie
>gearbeitet. Ist das denn so kompliziert?

Nein, aber es ist ne Menge Holz und der Teufel steckt bekanntlich im 
Detail.
Jemand der fit in der Materie ist macht das in einer Woche. Du wirst es 
nach 4 Wochen wahrscheinlich immer noch nicht ausreichend stabil und 
schön zum laufen kriegen.

MfG
Falk

von Matthew R. (matthew)


Lesenswert?

@ Josef Huber:
> bevor Sie sich die Haare ausreißen über die vermeindliche
> Verstäntnisslosigkeit Ihrer ersten Beschreibung (oder einiger Leser)...

Ja, ich weiß ich hab das vielleicht ein bisschen umständlich 
beschrieben. War sicher auch mein Fehler. Die Materie ist allerdings ja 
auch nicht so leicht zu verstehen wenn man nicht weiß dass es sich 
eigentlich um Mechanik handelt. Als Elektrotechniker habe ich selbst am 
Anfang meine Probleme mit dem Thema gehabt.

> Sie wollen also einen Resolver nachahmen. Als Meßgröße wird eine
> Spannung von 0...10 Volt angenommen. Richtig. Sie wollen das Ding selbst
> bauen, richtig.

Stimmt exakt!

> Die Modulation der Hüllkurve ist gut mit einem
> steuerbaren Verstärker machbar. Früher gab es auch sogenannte
> log.-Verstärker und die dazugehörigen antilog.-Verstärker von glaube
> Intersil. Ist aber bischen schwierig.

Analog wäre schon schöner. Wenn ich einen OP über die Spannung steuern 
könnte o.ä. ... Blöderweise ist die Kennlinie ja nicht linear. Welche 
logarithmischen Verstärker wären denn zu empfehlen?

von Falk B. (falk)


Lesenswert?

@  Matthew R. (matthew)

>Analog wäre schon schöner.

???

> Wenn ich einen OP über die Spannung steuern
>könnte o.ä. ... Blöderweise ist die Kennlinie ja nicht linear. Welche
>logarithmischen Verstärker wären denn zu empfehlen?

Viel Spass bei einer gescheiten, stabilen, analogen Sin/Cos Berechung.

MfG
Falk

von Josef Huber (Gast)


Lesenswert?

also der erste Satz war nicht gegen Sie gerichtet. Steuerkurve nicht 
linear, da haben Sie warscheinlich HF/ZF-Verstärker erwischt. VCA (blöde 
Bezeichnung) müsste das Zauberwort sein. Typen zB. THAT2180/ VCA810 
finden Sie bei Fanell und Co. Lassen Sie Sich nicht von niederiger 
Versorgungs-spannung abschrecken. Nun haben Sie gedanklich 1x 
Eingangsübertrager 2x Ausgangsübertrager wegen dem Potential, 2x 
steuerbare Verstärker/etwas Endstufe (vieleicht reichts auch so). Träger 
vom Eingangsübertrager auf beide Eingänge der VCA's. Auf den einen 
Steuereingang (Gedanklich), die Gleichspannung 0..10Volt zu Sinus bzw. 
auf den anderen Eingang den  Cosinus. Das Ganze mit der Genauigkeit wie 
es Ihnen (falk) angedeutet hat. Und nicht vergessen der Sinus hat dann 
ein künstliches Null d.h, Sin=5Volt ist Cos=10Volt und Cos=5Volt ist ist 
Sin=0Volt (negative Halbwelle). Viel Spaß Josef Huber

von Matthew R. (matthew)


Lesenswert?

@ Josef Huber:

Kein Problem, habs nicht persönlich genommen. Dann würde ich das mit dem 
VCA probieren, hört sich am einfachsten an...danke für den Tipp! (ich 
schreib dann nochmal obs funktioniert)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.