/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
creamygirl 610
berpox 610
jomfruane 570
10  3773 570
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?
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste