|
| underlig steprespons i matlab ..hjælp! Fra : bamse |
Dato : 24-04-04 10:17 |
|
Hej
Jeg har checket stepresponsen for henholdsvis en kontinuert
overføringsfunktion og den diskrete udgave af samme.
Overføringsfunktionen er defineret på følgende måde:
num = [1 0 0]
den = 1.0e+015 * [ 0.0000 0.0000 1.2596 ]
sys=tf(num,den)
[numD,denD]=bilinear(num,den,fs)
hvor fs = 400 MHz
dstep(numD,denD) og step(sys) giver to MEGET forskellige responser.
Settling-time er VIDT forskellige.
Hvordan kan det være?
Tak på forhånd...
| |
bamse (24-04-2004)
| Kommentar Fra : bamse |
Dato : 24-04-04 11:26 |
|
> den = 1.0e+015 * [ 0.0000 0.0000 1.2596 ]
> sys=tf(num,den)
Her er de præcise værdier:
den(1)=1
den(2)=50000000
den(3) = 1.2596e+015
| |
JohnDoe (25-04-2004)
| Kommentar Fra : JohnDoe |
Dato : 25-04-04 09:55 |
|
Hej Bamse,
Det er et meget underligt filter du har stykket sammen. Du bliver nødt til
at ha' en værdi forskellig fra nul i første koefficient i nævneren - ellers
har du ikke et output!
der mangler for øvrigt noget kode; er du flink at submitte det?
Thomas
"bamse" <bamse@kyllingen.dkkkk> wrote in message
news:Dgqic.2601$WP2.235@news.get2net.dk...
> Hej
>
> Jeg har checket stepresponsen for henholdsvis en kontinuert
> overføringsfunktion og den diskrete udgave af samme.
>
> Overføringsfunktionen er defineret på følgende måde:
>
> num = [1 0 0]
> den = 1.0e+015 * [ 0.0000 0.0000 1.2596 ]
> sys=tf(num,den)
>
> [numD,denD]=bilinear(num,den,fs)
>
> hvor fs = 400 MHz
>
> dstep(numD,denD) og step(sys) giver to MEGET forskellige responser.
> Settling-time er VIDT forskellige.
>
> Hvordan kan det være?
>
> Tak på forhånd...
>
>
| |
bamse (25-04-2004)
| Kommentar Fra : bamse |
Dato : 25-04-04 19:06 |
|
>
> Det er et meget underligt filter du har stykket sammen. Du bliver nødt til
> at ha' en værdi forskellig fra nul i første koefficient i nævneren -
ellers
> har du ikke et output!
>
> der mangler for øvrigt noget kode; er du flink at submitte det?
>
Hejsa...Grunden til at der står 0 i vektoren skyldes at tallene er tæt på 0.
Anyways....så fandt jeg ud af at jeg skal bruge kommandoen stepz
i stedet for dstep....
Men jeg kunne da godt tænke mig at vide om man ikke kan bruge
dstep og hvordan man i så fald skal bruge kommandoen for at
opnå samme resultat som ved brug af stepz ???
Overføringsfunktionen for systemet er :
s^2
H(s) = ---------------------------
s^2 + Kv*Kp*s + Ki*Kv
kp = 0.5000
ki =12596000
kv =100000000
| |
bamse (26-04-2004)
| Kommentar Fra : bamse |
Dato : 26-04-04 15:54 |
|
Overføringsfunktionen hedder:
s^2
H(s) = ---------------------------
s^2 + kv*kp*s + ki*kv
kp = 0.5000
ki =12596000
kv =100000000
Følgende defineres:
num=[1 0 0]
den=[1 kv*kp ki*kv]
sys=tf(num,den)
fs=400000000
[numD,denD]=BILINEAR(num,den,fs)
Og jeg har så eksekveret følgende kommandoer:
dstep(numD,denD) viser at indsvingning omkring 0 sker efter ca. 60 sek.
step(sys) viser at indsvingning omkring 0 sker efter ca. 1.5*(10^(-7)) sek.
stepz(numD,denD,100,fs) viser en diskret version af step(sys)
Spørgsmål:
Hvorfor er tidsaksen ved brug af dstep forkert?
| |
JohnDoe (26-04-2004)
| Kommentar Fra : JohnDoe |
Dato : 26-04-04 21:29 |
|
Hej Bamse,
du glemte at tilføje en tidvektor som argument for dstep-funktionen (se
vedhæftede kode)
% -------------------------------------------------
clear all;clc;close all;
kp = 0.5000
ki = 12596000
kv = 100000000
num = [1 0 0]
den = [1 kv*kp ki*kv]
sys = tf(num,den)
fs = 400000000
[numD,denD]=bilinear(num,den,fs)
figure(1),dstep(numD,denD,1/fs:1/fs:100*(1/fs))
figure(2),stepz(numD,denD,100,fs)
Cheers
Thomas Stoltz
"bamse" <bamse@kyllingen.dkkkk> wrote in message
news:do9jc.395$by4.387@news.get2net.dk...
> Overføringsfunktionen hedder:
>
> s^2
> H(s) = ---------------------------
> s^2 + kv*kp*s + ki*kv
>
> kp = 0.5000
> ki =12596000
> kv =100000000
>
> Følgende defineres:
>
> num=[1 0 0]
> den=[1 kv*kp ki*kv]
> sys=tf(num,den)
> fs=400000000
> [numD,denD]=BILINEAR(num,den,fs)
>
> Og jeg har så eksekveret følgende kommandoer:
>
> dstep(numD,denD) viser at indsvingning omkring 0 sker efter ca. 60 sek.
>
> step(sys) viser at indsvingning omkring 0 sker efter ca. 1.5*(10^(-7))
sek.
>
> stepz(numD,denD,100,fs) viser en diskret version af step(sys)
>
> Spørgsmål:
>
> Hvorfor er tidsaksen ved brug af dstep forkert?
>
>
>
| |
|
|