SwitcherCAD: Pulsweitenmodulation

Guest
Hallo,
wie kann ich unter SwitcherCAD III mit einfachen Mitteln eine
Rechteckspannung generieren die dem Ausgang einer Pulsweitenmodulation
entspricht?
Ich brauche diesen Spannungsverlauf, da ich mit diversen Filtern
herumspielen will, damit man aus dem Rechtecksignal der PWD einen Sinus
gewinnen kann.
Danke.
Servus Thomas
 
----- Original Message -----
From: <kein_Plan@habmalnefrage.de>
Newsgroups: de.sci.electronics
Sent: Sunday, December 04, 2005 8:05 PM
Subject: SwitcherCAD: Pulsweitenmodulation


Hallo,
wie kann ich unter SwitcherCAD III mit einfachen Mitteln eine
Rechteckspannung generieren die dem Ausgang einer Pulsweitenmodulation
entspricht?
Ich brauche diesen Spannungsverlauf, da ich mit diversen Filtern
herumspielen will, damit man aus dem Rechtecksignal der PWD einen Sinus
gewinnen kann.
Danke.
Servus Thomas
Hallo Thomas,
hier mal ein paar Tipps.

Ich sehe da prinzipiell zwei Möglichkeiten wobei jede
Vor- und Nachteile hat.

Die digitale Methode:
Man nehme einen N-Bit Binär-Zähler und einen Vergleicher.
Immer wenn der Zählerstand größer dem Signal ist, dann wird
eine "1" erzeugt. Das Signal muß natürlich mit int()
quantisiert sein.
Vorteil: prinzipiell hohe Genauigkeit
Nachteil: lange Rechenzeit.

Die analoge Methode:
Man erzeugt eine präzise Rampe oder Dreieck(Sym. PWM).
Immer wenn das Rampensignal größer dem Signal ist, dann wird
eine "1" erzeugt. Das Signal muß natürlich mit int()
quantisiert sein.
Vorteil: prinzipiell schneller
Nachteil: Man muß mit der Rechengenauigkeit aufpassen.

Ich würde mit der analogen Methode starten.

Gruß
Helmut


LTspice-Schaltung "test.asc"


Version 4
SHEET 1 1480 692
WIRE 16 528 16 496
WIRE 16 640 16 608
WIRE 32 176 32 128
WIRE 32 288 32 256
WIRE 48 -80 48 -112
WIRE 48 32 48 0
WIRE 80 128 32 128
WIRE 80 496 16 496
WIRE 96 -112 48 -112
WIRE 144 128 80 128
WIRE 448 496 80 496
WIRE 448 560 400 560
WIRE 656 -80 608 -80
WIRE 672 544 624 544
WIRE 768 -80 736 -80
WIRE 800 176 800 144
WIRE 800 288 800 256
WIRE 800 528 800 496
WIRE 800 640 800 608
WIRE 864 144 800 144
WIRE 864 496 800 496
WIRE 880 -80 848 -80
WIRE 880 -32 880 -80
WIRE 880 64 880 32
WIRE 912 -80 880 -80
FLAG 32 288 0
FLAG 80 128 ramp
FLAG 864 144 pwm
FLAG 800 288 0
FLAG 16 640 0
FLAG 80 496 sig0
FLAG 48 32 0
FLAG 96 -112 ctp
FLAG 400 560 ctp
FLAG 800 640 0
FLAG 864 496 sig2
FLAG 672 544 sig1
FLAG 880 64 0
FLAG 608 -80 pwm
FLAG 912 -80 out
SYMBOL voltage 32 160 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value PWL(0 0 repeat forever (1n 0 {TP} {NMAX}) endrepeat)
SYMBOL bv 800 160 R0
SYMATTR InstName B1
SYMATTR Value V=IF(V(ramp)>V(sig2), 1, 0) tripdt=1p
SYMBOL bv 16 512 R0
SYMATTR InstName B3
SYMATTR Value V=sin(2*pi*time*FREQ)*125.001
SYMBOL SpecialFunctions\\sample 528 528 R0
SYMATTR InstName A1
SYMATTR SpiceLine Vhigh=300 Vlow=-300
SYMBOL voltage 48 -96 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V2
SYMATTR Value PULSE(0 1 1p 1p 1p {TP/2} {TP})
SYMBOL bv 800 512 R0
SYMATTR InstName B4
SYMATTR Value V=int(V(sig1)+128)
SYMBOL res 640 -64 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 0 56 VBottom 0
SYMATTR InstName R1
SYMATTR Value 50
SYMBOL ind 752 -64 R270
WINDOW 0 32 56 VTop 0
WINDOW 3 5 56 VBottom 0
SYMATTR InstName L1
SYMATTR Value 10m
SYMBOL cap 864 -32 R0
SYMATTR InstName C1
SYMATTR Value 10ľ
TEXT 48 -232 Left 0 !.tran 0 30m 20m 50n
TEXT 48 -312 Left 0 !.param TP=100u
TEXT 48 -280 Left 0 !.param NMAX=256
TEXT 48 -200 Left 0 !.options plotwinsize=0
TEXT 424 -328 Left 0 ;PWM Generator With Edge Enhancement(tripdt)
TEXT 48 -344 Left 0 !.param FREQ=400
TEXT 832 648 Left 0 ;V=128+int(V(sig1))
 
On Sun, 04 Dec 2005 23:51:59 +0100, Helmut Sennewald
<helmutsennewald@t-online.de> wrote:

----- Original Message -----
From: <kein_Plan@habmalnefrage.de
Newsgroups: de.sci.electronics
Sent: Sunday, December 04, 2005 8:05 PM
Subject: SwitcherCAD: Pulsweitenmodulation


Hallo,
wie kann ich unter SwitcherCAD III mit einfachen Mitteln eine
Rechteckspannung generieren die dem Ausgang einer Pulsweitenmodulation
entspricht?
Ich brauche diesen Spannungsverlauf, da ich mit diversen Filtern
herumspielen will, damit man aus dem Rechtecksignal der PWD einen Sinus
gewinnen kann.
Danke.
Servus Thomas

Hallo Thomas,
hier mal ein paar Tipps.

Ich sehe da prinzipiell zwei Möglichkeiten wobei jede
Vor- und Nachteile hat.

Die digitale Methode:
Man nehme einen N-Bit Binär-Zähler und einen Vergleicher.
Immer wenn der Zählerstand größer dem Signal ist, dann wird
eine "1" erzeugt. Das Signal muß natürlich mit int()
quantisiert sein.
Vorteil: prinzipiell hohe Genauigkeit
Nachteil: lange Rechenzeit.

Die analoge Methode:
Man erzeugt eine präzise Rampe oder Dreieck(Sym. PWM).
Immer wenn das Rampensignal größer dem Signal ist, dann wird
eine "1" erzeugt. Das Signal muß natürlich mit int()
quantisiert sein.
Vorteil: prinzipiell schneller
Nachteil: Man muß mit der Rechengenauigkeit aufpassen.

Ich würde mit der analogen Methode starten.

Gruß
Helmut
Spricht denn was dagegen, das mit einer gewöhnlichen "Independent Voltage
Source" (Component->voltage) zu machen, indem man bei Advanced Pulse
auswählt,
und dort die gewünschte Periodendauer, Rise&Falltime und T_on (man muss
halt selber rechnen wieviel das bei welchem Duty-Cycle ist) einträgt und
die Zyklenzahl ausreichend hoch setzt?
Ich denke nämlich das ist somit die einfachste Methode, und sollte auch
nicht viel Rechenzeit kosten.

Gruß Thomas
 
"Thomas Faust" <tza@gmx.net> schrieb im Newsbeitrag
news:eek:p.s0972ax50lvuul@thomas...
On Sun, 04 Dec 2005 23:51:59 +0100, Helmut Sennewald
helmutsennewald@t-online.de> wrote:

----- Original Message -----
From: <kein_Plan@habmalnefrage.de
Newsgroups: de.sci.electronics
Sent: Sunday, December 04, 2005 8:05 PM
Subject: SwitcherCAD: Pulsweitenmodulation


Hallo,
wie kann ich unter SwitcherCAD III mit einfachen Mitteln eine
Rechteckspannung generieren die dem Ausgang einer Pulsweitenmodulation
entspricht?
Ich brauche diesen Spannungsverlauf, da ich mit diversen Filtern
herumspielen will, damit man aus dem Rechtecksignal der PWD einen Sinus
gewinnen kann.
Danke.
Servus Thomas

Hallo Thomas,
hier mal ein paar Tipps.

Ich sehe da prinzipiell zwei Möglichkeiten wobei jede
Vor- und Nachteile hat.

Die digitale Methode:
Man nehme einen N-Bit Binär-Zähler und einen Vergleicher.
Immer wenn der Zählerstand größer dem Signal ist, dann wird
eine "1" erzeugt. Das Signal muß natürlich mit int()
quantisiert sein.
Vorteil: prinzipiell hohe Genauigkeit
Nachteil: lange Rechenzeit.

Die analoge Methode:
Man erzeugt eine präzise Rampe oder Dreieck(Sym. PWM).
Immer wenn das Rampensignal größer dem Signal ist, dann wird
eine "1" erzeugt. Das Signal muß natürlich mit int()
quantisiert sein.
Vorteil: prinzipiell schneller
Nachteil: Man muß mit der Rechengenauigkeit aufpassen.

Ich würde mit der analogen Methode starten.

Gruß
Helmut

Spricht denn was dagegen, das mit einer gewöhnlichen "Independent Voltage
Source" (Component->voltage) zu machen, indem man bei Advanced Pulse
auswählt,
und dort die gewünschte Periodendauer, Rise&Falltime und T_on (man muss
halt selber rechnen wieviel das bei welchem Duty-Cycle ist) einträgt und
die Zyklenzahl ausreichend hoch setzt?
Ich denke nämlich das ist somit die einfachste Methode, und sollte auch
nicht viel Rechenzeit kosten.

Gruß Thomas
Hallo Thomas,

ich hatte gedacht du willst in einem Run verschiedene
Pulsweiten haben damit gleich ein Sinus herauskommt.
Wenn du natürlich nur eine bestimmte Pulsweite willst,
dann geht natürlich eine V-source

Gruß
Helmut
 
Hallo Thomas,

wie kann ich unter SwitcherCAD III mit einfachen Mitteln eine
Rechteckspannung generieren die dem Ausgang einer Pulsweitenmodulation
entspricht?
Ich brauche diesen Spannungsverlauf, da ich mit diversen Filtern
herumspielen will, damit man aus dem Rechtecksignal der PWD einen Sinus
gewinnen kann.
Danke.
Servus Thomas
Beispiel:

PULSE 0 8 0 100n 150n 2u 7u

Die Parameter der Reihe nach: untere Spannung 0V, obere 8V,
Zeitverzoegerung 0sec, 100nsec Anstieg, 150nsec Abfall, Pulsbreite
2usec, Periodendauer 7usec.

Hope that helps.

Gruesse, Joerg

http://www.analogconsultants.com
 
Hallo Helmut,
ich habe an dieser Stelle eine Frage, die auch in diese Richtung geht.
Ich benötige ein Rechecksignal mit einer Frequenz von ca. 200Hz bis
1200Hz, bei dem die Pulsweite von 20% bis 80% verstellbar sein soll.
Ich habe zwar eine PWM mit zwei NE555 (einer erzeugt den Takt, mit dem
zweiten wird über den Control Pin die Pulsweite verstellt) erzeugen
können, aber leider ist hier die Frequenz fix. Außerdem ist diese
Lösung recht aufwendig.

Kann man so etwas vielleicht mit den oben genannten Ansätzen lösen ?

Ich habe in der Hilfe von LTspice leider keine detaillierten Infos
bezüglich der PWL Spannungsquelle gefunden.
Gleiches gilt für die "if-then" und "forever repeat" Anweisungen.

Vielen Dank

Ralf Bartling
 
"Ralf Bartling" <ralf_bartling@yahoo.de> schrieb im Newsbeitrag
news:1133889739.796255.148480@o13g2000cwo.googlegroups.com...
Hallo Helmut,
ich habe an dieser Stelle eine Frage, die auch in diese Richtung geht.
Ich benötige ein Rechecksignal mit einer Frequenz von ca. 200Hz bis
1200Hz, bei dem die Pulsweite von 20% bis 80% verstellbar sein soll.
Ich habe zwar eine PWM mit zwei NE555 (einer erzeugt den Takt, mit dem
zweiten wird über den Control Pin die Pulsweite verstellt) erzeugen
können, aber leider ist hier die Frequenz fix. Außerdem ist diese
Lösung recht aufwendig.

Kann man so etwas vielleicht mit den oben genannten Ansätzen lösen ?

Hallo Ralf,

mir ist immer noch nicht klar was du jetzt brauchst.
Es ist ein himmelweiter Unterschied ob Frequenz und Pulsweite
während einer Simulation konstant sind oder ob das Ganze durch
eine zeitabhängige Spannung(Modulation), während dem Simulations-
lauf, moduliert wird.

Schick mir deine Schaltung(.asc) und eine Beschreibung was das
Ganze machen soll. Dann werfe ich mal einen Blick darauf.

Ich habe in der Hilfe von LTspice leider keine detaillierten Infos
bezüglich der PWL Spannungsquelle gefunden.
Gleiches gilt für die "if-then" und "forever repeat" Anweisungen.
Vielen Dank
Ralf Bartling
Du solltest dich in der Yahoo-Group anmelden.
Da findest du was du suchst.

http://groups.yahoo.com/group/LTspice/

Files section:

Files > Tut > PWL Voltage Sources

Files > adventures with analog > Waveform_Arithmetic_&_B_sources.pdf

Gruß
Helmut
 
Hallo Helmut,
hier zunächst die Schaltung.

Version 4
SHEET 1 1996 680
WIRE -160 240 -160 160
WIRE -160 368 -160 320
WIRE -48 160 -160 160
WIRE 0 160 -48 160
WIRE 80 160 64 160
WIRE 128 160 80 160
WIRE 256 160 208 160
WIRE 384 160 336 160
WIRE 384 256 384 160
WIRE 384 384 384 320
WIRE 480 160 384 160
WIRE 640 160 560 160
WIRE 640 240 640 160
WIRE 640 384 640 304
WIRE 736 64 736 48
WIRE 736 160 640 160
WIRE 736 160 736 128
WIRE 736 240 736 160
WIRE 736 384 736 304
WIRE 784 160 736 160
WIRE 848 -80 848 -304
WIRE 848 48 736 48
WIRE 848 48 848 0
WIRE 848 112 848 48
WIRE 848 384 848 208
WIRE 928 48 848 48
WIRE 960 48 928 48
WIRE 960 96 960 48
WIRE 1008 96 960 96
WIRE 1104 -304 848 -304
WIRE 1104 -64 1104 -304
WIRE 1104 64 1104 16
WIRE 1120 96 1088 96
WIRE 1120 160 1120 96
WIRE 1136 64 1104 64
WIRE 1136 160 1120 160
WIRE 1168 256 1168 224
WIRE 1168 368 1168 320
WIRE 1248 224 1168 224
WIRE 1248 256 1248 224
WIRE 1248 368 1168 368
WIRE 1248 368 1248 336
WIRE 1344 160 1328 160
WIRE 1344 224 1248 224
WIRE 1344 224 1344 160
WIRE 1344 368 1248 368
WIRE 1344 368 1344 240
WIRE 1360 128 1328 128
WIRE 1360 240 1344 240
WIRE 1360 240 1360 128
WIRE 1392 128 1360 128
WIRE 1392 208 1392 128
WIRE 1392 368 1392 272
WIRE 1408 -304 1104 -304
WIRE 1408 64 1328 64
WIRE 1408 64 1408 -304
WIRE 1440 128 1392 128
WIRE 1440 208 1440 128
WIRE 1440 368 1440 288
WIRE 1584 128 1440 128
WIRE 1760 128 1696 128
WIRE 1760 128 1760 80
WIRE 1936 -304 1408 -304
WIRE 1936 80 1936 -304
WIRE 1936 368 1936 160
FLAG 384 384 0
FLAG 640 384 0
FLAG 736 384 0
FLAG 1936 368 0
FLAG 848 384 0
FLAG 1440 368 0
FLAG 1392 368 0
FLAG -48 160 u_in
FLAG 928 48 u_opto
FLAG 1760 80 u_out
FLAG -160 368 0
FLAG 80 160 u_c
SYMBOL voltage -160 224 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value PULSE(0 24 0 1n 1n 600ľ 1000ľ 200)
SYMBOL res 224 144 R90
WINDOW 0 0 56 VBottom 0
WINDOW 3 32 56 VTop 0
SYMATTR InstName R1
SYMATTR Value 100
SYMBOL res 352 144 R90
WINDOW 0 0 56 VBottom 0
WINDOW 3 32 56 VTop 0
SYMATTR InstName R2
SYMATTR Value 22k
SYMBOL cap 368 256 R0
SYMATTR InstName C1
SYMATTR Value 47nF
SYMBOL res 576 144 R90
WINDOW 0 0 56 VBottom 0
WINDOW 3 32 56 VTop 0
SYMATTR InstName R3
SYMATTR Value 10k
SYMBOL npn 784 112 R0
SYMATTR InstName Q1
SYMATTR Value Qbc847bdw1t1/ON
SYMBOL cap 720 240 R0
SYMATTR InstName C2
SYMATTR Value 1nF
SYMBOL cap 720 64 R0
SYMATTR InstName C3
SYMATTR Value 1nF
SYMBOL res 832 -96 R0
SYMATTR InstName R4
SYMATTR Value 22k
SYMBOL voltage 1936 64 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V2
SYMATTR Value 5
SYMBOL Optos\\CNY17-3 1232 128 R0
SYMATTR InstName U1
SYMBOL res 1088 -80 R0
SYMATTR InstName R5
SYMATTR Value 220
SYMBOL res 1104 80 R90
WINDOW 0 0 56 VBottom 0
WINDOW 3 32 56 VTop 0
SYMATTR InstName R6
SYMATTR Value 320
SYMBOL res 1424 192 R0
SYMATTR InstName R7
SYMATTR Value 1500
SYMBOL res 1232 240 R0
SYMATTR InstName R8
SYMATTR Value 1e6
SYMBOL cap 1152 256 R0
SYMATTR InstName C4
SYMATTR Value 1nF
SYMBOL cap 1376 208 R0
SYMATTR InstName C5
SYMATTR Value 47nF
SYMBOL Misc\\diode_own 656 304 R180
WINDOW 3 31 0 Left 0
WINDOW 0 24 72 Left 0
SYMATTR Value bas21slt1/ON
SYMATTR InstName U2
SYMBOL 74HC\\74hc14 1632 80 R0
SYMATTR InstName U3
SYMBOL cap 64 144 R90
WINDOW 0 0 32 VBottom 0
WINDOW 3 32 32 VTop 0
SYMATTR InstName C6
SYMATTR Value 1ľ
TEXT 464 -80 Left 0 !.include on_bjt.lib\n.include
on_diode.lib\n.include 74hc.lib
TEXT 286 -22 Left 0 !.tran 200m

Es handelt sich dabei um eine Schaltung zum Auswerten von
Drehzahlsignalen eines induktiven Gebers (gibt Rechtecksignale ab).
Diesen Geber habe ich mit V1 modelliert.
Leider weist der Geber einige Probleme auf, die ich gerne simulieren
möchte:

- Die steigende Flanke des Gebers entspricht zwar der Drehzahl, aber
seine Pulsweite schwankt. Dadurch ändert sich der DC-Anteil und
verfälscht das Signal am Ausgang (u_out)
- Bei niedrigen Drehzahlen gibt der Geber ein Signal 0/24V ab. Je
höher die Drehzahl wird, umso weniger wird der 0V Pegel erreicht. Bei
1kHz liegt das Signal bei 6/24V. Hier wurde möglicherweise ein Pull Up
Widerstand zu klein dimensioniert.

Meine Aufgabe ist es nun, mit der bestehenden Schaltung (diese ist
nicht von mir entwickelt worden und kann auch nicht mehr geändert
werden) ein korrektes Signal in meinen Microcontroller zu bekommen
(hängt an u_out). Dieser Controller ermittelt die Drehzahl durch
Zeitmessung von einer steigenden Flanke hin zur nächsten.
Ich habe auch nicht verstanden, warum zwischen Basis/Collector und
Basis/Emitter des BC847 Kondensatoren liegen. Die Schaltung war wohl
ursprünglich zum Auswerten von Wechselspannungssignalen konzipiert
worden.

Nach meinem Verständnis trennt der Kondensator C6 den DC-Anteil im
Signal von u_in ab. Ich habe festgestellt, dass in der Einschwingphase,
also wenn C6 sich auflädt, bereits Verfälschungen am Ausgang messbar
sind. Wenn sich nun die Pulsweite oder auch der 0V Level ändern im
Betrieb ändern, so ändert sich auch das Drehzahlsignal.

Ziel der Simulation ist der Vergleich von u_in und u_out mit Einfluss
der oben genannten Randbedingungen.

An dieser Stelle möchte ich mich nochmals für deine Mühe bedanken.
Ich werde mich weiterhin in der yahoo group umsehen.

Ralf Bartling
 
"Ralf Bartling" <ralf_bartling@yahoo.de> schrieb im Newsbeitrag
news:1133935023.177835.253340@g44g2000cwa.googlegroups.com...
Hallo Helmut,
hier zunächst die Schaltung.

...

Es handelt sich dabei um eine Schaltung zum Auswerten von
Drehzahlsignalen eines induktiven Gebers (gibt Rechtecksignale ab).
Diesen Geber habe ich mit V1 modelliert.
Leider weist der Geber einige Probleme auf, die ich gerne simulieren
möchte:

- Die steigende Flanke des Gebers entspricht zwar der Drehzahl, aber
seine Pulsweite schwankt. Dadurch ändert sich der DC-Anteil und
verfälscht das Signal am Ausgang (u_out)
- Bei niedrigen Drehzahlen gibt der Geber ein Signal 0/24V ab. Je
höher die Drehzahl wird, umso weniger wird der 0V Pegel erreicht. Bei
1kHz liegt das Signal bei 6/24V. Hier wurde möglicherweise ein Pull Up
Widerstand zu klein dimensioniert.

Meine Aufgabe ist es nun, mit der bestehenden Schaltung (diese ist
nicht von mir entwickelt worden und kann auch nicht mehr geändert
werden) ein korrektes Signal in meinen Microcontroller zu bekommen
(hängt an u_out). Dieser Controller ermittelt die Drehzahl durch
Zeitmessung von einer steigenden Flanke hin zur nächsten.
Ich habe auch nicht verstanden, warum zwischen Basis/Collector und
Basis/Emitter des BC847 Kondensatoren liegen. Die Schaltung war wohl
ursprünglich zum Auswerten von Wechselspannungssignalen konzipiert
worden.
Hallo Ralf,

für die Messung der Frequenz ist das Tastverhältnis völlig unbedeutend.

Nach meinem Verständnis trennt der Kondensator C6 den DC-Anteil im
Signal von u_in ab. Ich habe festgestellt, dass in der Einschwingphase,
also wenn C6 sich auflädt, bereits Verfälschungen am Ausgang messbar
sind. Wenn sich nun die Pulsweite oder auch der 0V Level ändern im
Betrieb ändern, so ändert sich auch das Drehzahlsignal.

Ziel der Simulation ist der Vergleich von u_in und u_out mit Einfluss
der oben genannten Randbedingungen.
Du könntest zum Beispiel einzelne Parameter schrittweise ändern.
Dafür gibt es das .step command.

..step param per list 1000u 2000u 5000u 10000u
..param pw=m*0.6
..param amp0=6*1000u/per

PULSE({amp0} 24 0 1n 1n {pw} {per})

Ein sinnvolles Kommando für .tran sieht dann so aus:
..tran 0 100m 0 10u
..options plotwinsize=0

Dann würde ich vier Plot-Panes aufmachen und einen Trace
V(u_out)@1 , V(u_out)@2, V(u_out)@3, V(u_out)@4 plotten.

Die Plot-Settings kann man speichern.

Genau so könnte man auch Bauteilewerte ändern.
Statt 1n schreibt man dann {CABC}

..step param CABC list 1n 4.7n 22n


An dieser Stelle möchte ich mich nochmals für deine Mühe bedanken.
Ich werde mich weiterhin in der yahoo group umsehen.
Ralf Bartling
Gruß
Helmut
 

Welcome to EDABoard.com

Sponsor

Back
Top