Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, C:\ro\Si05\dgln\tauchsp\Tauchspul3.doc, S. 1/1 Homepage: http://www.home.hs-karlsruhe.de/~kero0001 http://www.home.hs-karlsruhe.de/~kero0001/tauchspule/tauchspule.html Tauchspulsystem: DGLn, Ersatzschaltung, Simulationen im Zeitbereich u. Frequenzbereich Physikalische Grundlagen des Tauchspul-Modells Elektrik: Spannung u0 , Strom i, Spuleninduktivität L, Spulenwiderstand R, induzierte Spannung kg*v. v= Geschwindigkeit der Spule im Magnetfeld, kg = „Generatorkonstante“ i R L u0 kg*v Maschensatz : u0 = R*i + L*di/dt + kg*v (DGL für Strom i ) oder mit Operator s= d/dt u0 = (R + L*s)*i + kg * v Mechanik: Die elektrische Kraft Fel = km * i wirkt auf die Masse m, die mit Feder D und Reibelement r an das Gehäuse des Tauchspulsystems gekoppelt ist. km = „Motorkonstante“. x = Position der Masse m. Fel D m r x Newton: m*dv/dt = Summe der auf m wirkenden Kräfte, folglich m * dv/dt = km*i - D* x – r*v (DGL für Geschwindigkeit v ) v = dx/dt (DGL für Position x ) Behauptung: Motorkonstante km = Generatorkonstante kg Beweis mit Energieerhaltungssatz: mechanische Leistung Pmech = Kraft Fel (= km* i ) mal Geschwindigkeit v, also Pmech = km* i * v elektrische Leistung Pel = Strom i mal Spannung (= kg * v), also Pel = i * kg * v Gleichsetzen Pmech = Pel, also km * i* v = i * kg * v ==> km = kg Aufstellen einer elektrischen Ersatzschaltung des elektromechanischen Systems. Ziel: die mechanischen Größen durch elektrische ersetzen. Mit dem Operator s = d/dt wird mit dv/dt = s*v und mit x = v/s aus der DGL für v die Operatorgleichung m*s*v = km*i – D*v/s – r*v. Geordnet und v ausgeklammert: (m*s + r +D/s )*v = km*i . Daraus v= km*i /( m*s + r + D/s). Diesen Ausdruck für v eingesetzt in die obige Gleichung für u0 ergibt die Operatorgleichung für i u0 = (R+ L*s) * i + i* kg*km/(m*s + r + D/s) oder i ausgeklammert und durch kg*km dividiert u0 = (R + L * s + 1 ) *i m r D *s + + kg * km kg * km kg * km * s Diese Formel legt nahe, den 3. Term aufzufassen als Parallel-Schaltung, darin m „mechanische Kapazität“ Cm = kg * km kg * km „mechanischer Widerstand“ Rm = r kg * km „mechanische Induktivität “ Lm = D Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, C:\ro\Si05\dgln\tauchsp\Tauchspul3.doc, S. 2/2 Damit hat sich die Ersatzschaltung ergeben u0 = (R + L * s + i R 1 ) *i 1 1 Cm * s + + Lm * s Rm L u0 Cm kg*v Lm Rm Mit diesem Ersatzschaltbild könnte man z.B. PSPICE zum Simulieren verwenden. An der Parallelschaltung liegt die Spannung kg*v. Daraus kann man mit PSPICE die Geschwindigkeit v berechnen und durch Integration von v die Position x = ∫ v * dt . Simulink-Schaltung zum Simulieren des Zeitbereichs: Man hat ein System von drei linearen DGLn 1. Ordnung, hier noch mal hingeschrieben, aber der jeweilige Differentialquotient auf der linken Seite: di/dt = 1/L * ( u0 – R*i – kg*v) dv/dt = 1/m * (km*i –D*x – r*v) dx/dt = v Daraus folgt sofort die zugehörige Simulink-Schaltung (Datei Tauchspul1.MDL). Zum Verständnis dieser Schaltung braucht man lediglich zu wissen, dass der Block gain (das Dreieck) die Eingangsgröße mit dem konstanten Faktor (der im Dreieck steht), multipliziert. Der Addierer ist selbsterklärend, der Integrator 1/s liefert das Zeitintegral der Eingangsgröße. Die Blöcke To Workspace liefern die berechneten Größen an die Kommandoebene von Matlab, so dass sie dort mit plot-Befehlen gezeichnet werden können. Sowohl der Aufruf als auch die zeichnerische Darstellung werden im vorliegenden Fall mit der Matlab-Datei tauchspulm3.m ausgeführt, die ihrerseits von der Matlab-Datei runtauchsp1.m aufgerufen wird: in Kommandoebene eintippen runtauchsp1, dann die Eingabetaste. Datei Tauchspul1.MDL R.Kessler Juni 2004 DGLn: di/dt = 1/L * ( u0 – R*i – kg*v) dv/dt = 1/m * (km*i –D*x – r*v) dx/dt = v Aufruf z.B.mit runtauchsp1 aP*(u > t1)*(t2 > u) + aS*sin(2*pi * fS * u) Clock Funktions-Generator: Puls und Sinus u0 t To Workspace di/dt kg 1 1/L i s Gain R km dv/dt 1/m Integrator 1 v=dx/dt s r D 1 s v x Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, C:\ro\Si05\dgln\tauchsp\Tauchspul3.doc, S. 3/3 Die Simulation im Frequenzbereich wird mit Matlab durchgeführt. Benutzen wir das oben hergeleitete Ersatzschaltbild! Zunächst führen wir zur Abkürzung ein Z = R+ L*s die „Längsimpedanz“ der Ersatzschaltung und den „Querleitwert“ der Ersatzschaltung Y = s*Cm + 1/(s*Lm) + 1/Rm Dann ergibt sich i = u0 / (Z+1/Y) Der Strom i und die Spannung kg*v am Querleitwert kg*v = i /Y = u0 /(1+ Z*Y) v = 1/kg * u0/(1+Z*Y) und daraus die Geschwindigkeit v x = v/s und daraus die Auslenkung x Für die komplexe Rechnung wird s = j*w (mit w = Kreisfrequenz, j = Wurzel aus minus eins) % Datei runtauchsp1.m R. Kessler Juni 2004 % Run-Datei für einige Tauchspulbeispiele clear;bild=1;t1=0.01;t2=0.21;tmax=0.4;wmax=0.5e3; kg=5;R=7.45;L=6e-3;D=1100;m=0.05;r=1e-6;aP=0.99;aS=0;wS=100;tauchspulm3; disp('weiter mit beliebiger Taste'); pause; clear;bild=3;t1=0.01;t2=0.21;tmax=0.2;wmax=0.5e3; kg=5;R=7.45;L=6e-3;D=1100;m=0.05;r=1e-6;aP=0;aS=1;wS=100;tauchspulm3; disp('weiter mit beliebiger Taste');pause; clear;bild=5;t1=0.01;t2=0.21;tmax=0.2;wmax=0.5e3; kg=5;R=7.45;L=6e-3;D=1100;m=0.05;r=1e-6;aP=0.0;aS=1;wS=148;tauchspulm3; disp('weiter mit beliebiger Taste');pause; clear;bild=7;t1=0.01;t2=0.21;tmax=0.4;wmax=0.5e3; kg=5;R=2;L=6e-3;D=1100;m=0.05;r=1e-6;aP=0.99;aS=0;wS=148;tauchspulm3; disp('weiter mit beliebiger Taste');pause; clear;bild=9;t1=0.01;t2=0.21;tmax=0.4;wmax=0.5e3; kg=5;R=20;L=6e-3;D=1100;m=0.05;r=1e-6;aP=0.99;aS=0;wS=148;tauchspulm3; disp('weiter mit beliebiger Taste');pause; % % % % % % % % % % % % % % % % Datei Tauchspulm3.m R. Kessler Juni 2004 Tauchspulsystem. Aufruf z.B. mit runtauchsp1 Für das Ersatzschaltbild: Zunächst führen wir zur Abkürzung ein "Längsimpedanz" der Ersatzschaltung Z = R+ L*s "Querleitwert" der Ersatzschaltung Y = s*Cm + 1/(s*Lm) + 1/Rm Es ergeben sich: Strom i = u0 / (Z+1/Y) Spannung kg*v am Querleitwert kg*v = i /Y = u0 /(1+ Z*Y) daraus die Geschwindigkeit v = 1/kg * u0/(1+Z*Y) daraus die Auslenkung x = v/s Für die komplexe Rechnung wird s = j*w (mit w=Kreisfrequenz, j=Wurzel aus minus eins) Wichtig: bei Matlab muss man die "gliedweise" Multiplikation und Division beachten, s.u. Ausführung: Beispielaufrufe: runtauchsp1 format compact; % verhindert unnötige Leerzeilen % Berechnung der Ersatzgrößen: km=kg; fS=wS/(2*pi); % fS = Frequenz, wS = Kreisfrequenz des eingeprägten Sinus Cm = m/(kg*km); % m= Masse Rm = kg*km/r; % r = Reibkonstante Lm = kg*km/D; % D = Federkonstante % Strings erzeugen für Parameterausgabe: Skg=[' kg=',num2str(kg)]; SR=[',R=',num2str(R)]; SL=[',L=',num2str(L)]; SD=[',D=',num2str(D)]; Sm=[',m=',num2str(m)]; SwS=[',wS=',num2str(wS)]; te=[Skg,SR,SL,SD,Sm,SwS]; % te = String mit Parameterwerten Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, C:\ro\Si05\dgln\tauchsp\Tauchspul3.doc, S. 4/4 % Zunächst komplexe Rechnung mit Matlab: % beachte die "gliedweise" Multiplikation .* statt * % "gliedweise" Division ./ statt / dw=wmax/1000; wst=dw; w=wst:dw:wmax; % Vektor Kreisfrequenz, wst= Startwert >0 s= j*w; % Vektor komplexer Operator s Z = R+ L*s; % Längsimpedanz der Ersatzschaltung Y = s*Cm + 1./(s*Lm) + 1/Rm; % Querleitwert der Ersatzschaltung u0k=1; % Komplexe Amplitude der (gedachten) Sinuserregung ik = u0k ./ (Z+1 ./Y); % ik= Vektor der komplexen Stromstärke vk = 1/kg * u0k ./(1+Z .* Y); % vk= Vektor der komplexen Geschwindigkeit xk= vk ./s; % xk= Vektor der komplexen Position figure(bild); clf; subplot(2,2,1); % 2 Spalten, 2 Zeilen, Bildnummer 1 (oben links) plot(w,abs(ik),w,abs(vk),w,100*abs(xk));grid on; legend('ik','vk','100*xk'); xlabel('Kreisfrequenz w'); ylabel('Beträge'); title(te); subplot(2,2,3); % 2 Spalten, 2 Zeilen, Bildnummer 3 (unten links) plot(w,angle(ik),w,angle(vk),w,angle(xk));grid on; xlabel('Kreisfrequenz w'); ylabel('Winkel'); legend('ik','vk','xk'); subplot(2,2,2); % 2 Spalten, 2 Zeilen, Bildnummer 2, oben rechts hold on; % warum Bild anhalten? Damit man die Kreise zeichnen kann, s.u. plot(real(ik),imag(ik), real(vk),imag(vk), 100*real(xk),100*imag(xk)); ylabel('ortskurven');grid on; % zusätzlich an Ortskurven Kreis beim 1. Punkt (drum vorher hold on) : plot(real(ik(1)),imag(ik(1)),'o',... real(vk(1)),imag(vk(1)),'o',... 100*real(xk(1)),100*imag(xk(1)),'o'); % Jetzt noch Kreuz x am Ende der Ortskurven: imax=length(ik); plot(real(ik(imax)),imag(ik(imax)),'x',... real(vk(imax)),imag(vk(imax)),'x',... 100*real(xk(imax)),100*imag(xk(imax)),'x'); axis equal; hold off; % Damit die Kreise auch Kreise sind und nicht Ellipsen! % jetzt hold off, damit nachfolgendes keinen Unsinn macht % Jetzt mit Simulink den Zeitbereich simulieren: if bild == 1 tauchspul1;end; % bei Bild=1 Simulinkschaltung auf Bildschirm sim('tauchspul1'); % Simulieren mit Simulink-Datei tauchspul1.mdl figure(bild+1); clf; hold on; % Warum hier hold on? Um die Achsen zu zeichnen (s.u.) of1=0.005; of2=0.010;of3=0.015; % Offsets plot(t,u0/100, t,v/10+of1,t,10*x+of2,'k', t,i/10+of3); grid on; ta=[0,tmax]; % ta= x-Vektor zum Zeichnenen der Achsen plot(ta,[0,0],ta,[of1,of1],ta,[of2,of2],'k',ta,[of3,of3]); % Achsen zeichnen ofte=0.001; % Offset für nachfolgende "Kurvenbeschriftung" text(0.005+tmax,0+ofte,'u0/100'); % Kurvenbeschriftung text(0.005+tmax,0+of1+ofte,'v/10'); text(0.005+tmax,0+of2+ofte,'x*10'); text(0.005+tmax,0+of3+ofte,'i/10'); xlabel('Zeit t'); title(te); % Im Titel stehen einige Parameter hold off; % Damit nachfolgende Plotbefehle keinen Quatsch machen % Ende Matlab-Datei Tauchspulm3.m Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, C:\ro\Si05\dgln\tauchsp\Tauchspul3.doc, S. 5/5 kg=5,R=7.45,L=0.006,D=1100,m=0.05,wS=100 0.25 0.15 0.05 ik ortskurven Beträge ik vk 100*xk vk 0.2 ik 0.1 0 -0.05 vk 0.05 -0.1 100*xk 0 0 100 100*xk 200 300 Kreisfrequenz w 400 500 -0.05 0 0.05 0.1 0.15 0.2 4 ik vk xk 2 Winkel ik 0 vk -2 xk -4 0 100 200 300 Kreisfrequenz w 400 500 Figur oberhalb: Erkenntnisse aus den Frequenzgängen: Strom ik wirkt wie „Bandsperre“, Geschwindigkeit vk wirkt wie „Bandpass“, Auslenkung xk wirkt wie „Tiefpass“ (mit Resonanzüberhöhung) Die Resonanzkreisfrequenz liegt bei etwa w=148 /sec kg=5,R=7.45,L=0.006,D=1100,m=0.05,wS=100 0.035 0.03 i/10 0.025 0.02 x*10 i/10 0.015 u0/100 x*10 0.01 v/10 v/10 0.005 u0/100 0 -0.005 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 Zeit t Figur oberhalb: Sprungantworten Strom i, Geschwindigkeit v Auslenkung x. Auffällig ist die anfängliche „Spitze“ im Stromverlauf (beim Ein-und Ausschalten) der Spannung u0: Sie entsteht durch die bei der mechanischen Bewegung entstehenden Induktionsspannung kg*v (vgl DGLn) Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, C:\ro\Si05\dgln\tauchsp\Tauchspul3.doc, S. 6/6 kg=5,R=7.45,L=0.006,D=1100,m=0.05,wS=100 0.03 0.025 i/10 0.02 i/10 0.015 x*10 0.01 x*10 0.005 v/10 u0/100 0 v/10 -0.005 u/100 -0.01 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 Zeit t Figur oberhalb: Sinusantworten bei Kreisfrequenz wS = 100/sec, also unterhalb der „Resonanzfrequenz“. Man vergleiche die Phasenwinkel mit den Kurven der komplexen Frequenzgänge: Strom i und Auslenkung x haben gleichen Phasenwinkel (etwas nacheilend gegenüber u0), v eilt 90 Grad vor (bezogen auf x) kg=5,R=7.45,L=0.006,D=1100,m=0.05,wS=148 0.025 i/10 0.02 i/10 0.015 x*10 0.01 x*10 0.005 v/10 u0/100 0 v/10 -0.005 -0.01 u0/100 -0.015 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 Zeit t Figur oberhalb: Sinusantworten bei „Resonanzkreisfrequenz“ wS = 148 /sec. Auffällig ist, dass der Strom i nur einige gedämpfte Schwingungen macht und dann null wird. Das entspricht dem Frequenzgang (s.o.), nämlich Strom hat Eigenschaft einer Bandsperre. Dagegen sind die mechanischen Größen Geschwindigkeit v und Auslenkung groß: sie sind jetzt in Resonanz (vgl wieder die Frequenzgänge!) Auch die Phasenwinkel entsprechen den Frequenzgängen: Geschwindigkeit v ist gleichphasig mit Erregerspannung u0, Auslenkung x ist 90 grad nacheilend. Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, C:\ro\Si05\dgln\tauchsp\Tauchspul3.doc, S. 7/7 kg=5,R=2,L=0.006,D=1100,m=0.05,wS=148 0.5 0.2 ik 0.4 0.1 ik vk 100*xk vk ortskurven Beträge ik 0.3 0.2 0 100*xk -0.1 0.1 100*xk vk -0.2 0 0 100 200 300 Kreisfrequenz w 400 500 0 0.2 0.4 4 Winkel 2 ik ik vk xk 0 vk -2 xk -4 0 100 200 300 400 Kreisfrequenz w 500 Figur oberhalb: Spulenwiderstand R sehr klein gewählt ( 2 Ohm statt 7.45 Ohm). Dadurch ist die „Güte“ sehr verringert: Bandsperre ( Kurve ik) und Bandpass (Kurve vk ) sind „sehr breit“. Tiefpass (Kurve xk) hat keine Resonanzüberhöhung mehr kg=5,R=2,L=0.006,D=1100,m=0.05,wS=148 0.07 0.06 i/10 0.05 0.04 x*10 0.03 0.02 i/10 x*10 0.01 v/10 u0/100 0 v/10 u0/100 v/10 -0.01 -0.02 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 Zeit t Figur oberhalb: Sprungantworten bei Spulenwiderstand sehr klein ( 2 Ohm statt 7.45 Ohm) Dadurch kaum noch Schwingung im Zeitbereich (Kurve Auslenkung x und Kurve Geschwindigkeit v). Aber Strom i zeigt noch deutlicher die „Spitze“ beim Spannungssprung. Diese Stromkurve ähnelt jetzt dem Einschalt-und Ausschalt-Strom beim elektromagnetischen Relais. (vgl. meine homepage: http://www.home.fhkarlsruhe.de/~kero0001/relais/relaisdynamik.html Prof. Dr. R. Kessler, FH-Karlsruhe, Sensorsystemtechnik, C:\ro\Si05\dgln\tauchsp\Tauchspul3.doc, S. 8/8 kg=5,R=20,L=0.006,D=1100,m=0.05,wS=148 0.25 0.05 ik ortskurven Beträge ik vk 100*xk vk 0.2 0.15 0.1 0 -0.05 vk 100*xk 0.05 0 -0.1 ik 0 100 200 300 Kreisfrequenz w 400 500 100*xk -0.05 0 0.05 0.1 0.15 0.2 4 ik vk xk Winkel 2 ik 0 vk -2 xk -4 0 100 200 300 400 Kreisfrequenz w 500 Figur oberhalb: Jetzt Spulenwiderstand sehr groß: R= 20 Ohm statt 7.45 Ohm: Dadurch haben die Frequenzgänge „hohe Güte“, also schmale Resonanzkurven der Bandsperre ( Strom ik ) und Bandpass (Geschwindigkeit vk ) und starke Resonanzüberhöhung beim Tiefpass (Auslenkung xk ). kg=5,R=20,L=0.006,D=1100,m=0.05,wS=148 0.025 i/10 0.02 i/10 0.015 10*x x*10 0.01 u0/100 v/10 v/10 0.005 u0/100 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 Zeit t Figur oberhalb: Sprungantworten bei großem Spulenwiderstand (R=20 Ohm statt 7.45 Ohm): Alle drei Größen Strom i, Geschwindigkeit v und Auslenkung x zeigen Schwingung mit relativ wenig Dämpfung. (entspricht wieder „hohe Güte“). Jetzt ist die anfängliche „Spitze“ im Stromverlauf zwar noch erkennbar, aber nicht mehr so auffällig wie bei den anderen früheren Kurven