Matlab Plot erstellen

Gast #6625520
Lesenswert?

Hallo Leute,

bin MATLAB Neuling und versuche gerade aus einer berechneten Funktion 
einen Plot zu erstellen. Die Berechnung habe ich schon hinbekommen. Das 
ist ein Fourier Transformiertes Reckecksignal, das mit einer 
Übertragungsfunktion eines Tiefpasses multipliziert und dann 
rücktransformiert wird. Jetzt meine Frage. Ich würde mir gerne die 
Funktion M(t) als Diagramm ausgeben lassen. Habe schon einiges probiert, 
aber es kam immer der Fehler "
Error using plot
Data must be numeric, datetime, duration or an array convertible to 
double."
Ich vermute das geht irgendwie ganz einfach, aber ich bekomms nicht 
hin...
Vielleicht kann mir da jemand einen Tipp geben oder weiterhelfen.

Danke schon mal!!


clc;

clear all;

syms L f t U;

f = U/2 + ((2*U)/pi) * sin(2*pi*f*t)

L = laplace(f)

syms G s;

G = 1/(1+1*s+0.25*s^2)

syms B;

B = L*G

M(t) = ilaplace(B)
#6632426
Lesenswert?

In Matlab gibt es einen Variableneditor, der zeigt die deine Variablen 
an und auch den Datentyp.
Mit dem Befehl
1
matlabFunction
 kannst du deine inverse Laplace-Funktion in eine Matlab-Funktion 
konvertieren.
Danach noch einen Vektor z.B. für t und die beiden anderen Parameter U 
(z.B. 1) und f (z.B. 10) definieren und plotten :-)
1
fun = matlabFunction(M)
2
fun =
3
  function_handle with value:
4
    @(t,U,f)U./2.0-(1.0./(f.^2.*pi.^2+1.0).^2.*(-U.*sin(f.*t.*pi.*2.0)+U.*f.^2.*pi.^2.*sin(f.*t.*pi.*2.0)+U.*f.*pi.*cos(f.*t.*pi.*2.0).*2.0).*2.0)./pi-(exp(t.*-2.0).*1.0./(f.^2.*pi.^2+1.0).^2.*(U-U.*f.*8.0+U.*f.^2.*pi.^2.*2.0+U.*f.^4.*pi.^4))./2.0-(t.*exp(t.*-2.0).*(U-U.*f.*4.0+U.*f.^2.*pi.^2))./(f.^2.*pi.^2+1.0)
5

6
t=0:0.01:10;
7
plot(t,fun(t, 1, 10))

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren