Forum: Digitale Signalverarbeitung / DSP / Machine Learning matlab mit Parameter arbeiten!


von wulf (Gast)


Lesenswert?

Hi,

weiß jemand wie man folgende Zusammenfassung mit matlab machen kann?

P1=L*R*s+1
P2=C*s

Produkt von P1 und P1 als Ergebnis wie folgt rausgeben lassen:

Z=P1*P2=L*C*R*s^2+C*s

Ist das bestimmt irgendwie möglich, oder?

Nach der Zusammenfasseng der Gleichungen möchte ich die genannten 
Parameter mit Wert vorsehen und das Ergebnis rausfinden lassen wie z.B.:
L=1
R=2
C=3

Z=6s^2+3s

Vielen Dank für Eure Tipps
Wulf

von Alexander L. (lippi2000)


Lesenswert?

Hallo wulf,

ich habe momentan gerade kein Matlab zur Hand und muss daher auf Octave 
zurückgreifen.

Du benötigst in Matlab die "Symbolic Math Toolbox" um L,R und C als 
Variablen verwenden zu können. Anschließend kannst du mit dem Befehl:

L=sym("L")

Deine Induktivität als symbolische Variable anlegen.
Dies geht leider mit Octave nicht zuverlässig, daher kann ich dir kein 
getestetes Beispiel geben.

Allgemein kannst du die Übertragungsfunktion wie folgt anlegen:

num = [L*R 1]
den = [1]
P1 = tf(num,den)

num = [C 0]
den = [1]
P2 = tf(num,den)

"tf" steht für Transfer Function.

Ob du die Toolbox installiert hast kannst du einfach über die 
Befehlsreferenz herausfinden.

help sym

Viel Erfolg

von Jan K. (jan_k)


Lesenswert?

Ich würde es so machen:
1
s = tf('s');
2
3
Z = @(L,R,C)(L*C*R*s^2+C*s);
4
5
Z1 = Z(1,2,3)

Das Z ist ein function handle, mit den Parametern L,R,C. Das mit dem tf 
geht nur, wenn du die control system box installiert hast.

Wenn du P1 und P2 benutzen willst, könntest du ne eigene Datei erstellen 
mit der function Z:

Z.m
1
function out = Z(L,R,C)
2
   s = tf('s');
3
4
   P1 = L*R*s + 1; % oder halt was anderes..
5
   P2 = C*s;
6
7
   out = P1*P2;
8
end

P1 und P2 kannst du natürlich ändern ;)
Die funktion wird dann in einer anderen Datei mit
1
Z1 = Z(1,2,3);

aufgerufen.

Was mein Vorposter geschrieben hat mit den symbolischen Variablen 
funktioniert in matlab (zumindest in 2012b) NICHT. Er kann die 
symbolischen Variablen nicht in eine transfer function casten.
Es gibt noch die Möglichkeit der "tunable parameter", siehe 
http://www.mathworks.de/de/help/control/ref/realp.html

Schöne Grüße,
Jan

von wulf (Gast)


Lesenswert?

Vielen Dank für Eure Infos.

ich habe eine Studentenversion und werde erst überprüfen ob es mit sym 
einfach geht. Ansonsten werde ich den Jan's Vorschlag überprüfen. Das 
sieht ja sehr gut aus.

Ich hoffe, dass ich dabei vorankommen kann.

Danke nochmal

Wulf

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.