Servus,
Ich versuche für MDA von ETAS einen DT1 Filter zu erstellen. Vorweg noch meine Perl kenntnisse beschränken sich auf garkeine. Jetzt weiter zum Problem mir fehlt nur noch in der Formel "y
=KDT*(x-x[i-1])+(1-MDT)*y[i-1]" der letzte Teil mit dem *y[i-1]. Wie bekomme ich es hin das der vorher berechnete Output Wert in die aktuelle Berechnung mit einfließt?
Alles was ich bisher habe ist aus bereits in MDA integrierten Formeln zusammen gesucht.
Vielen Dank schon mal für die Hilfe
count wird immer mit 1 belegt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use PDL;
use PDL::Types;
use PDL::Func;
use PDL::Math;
use warnings;
use strict;
sub new
{
return (bless {
_signals => ['time', 'input'],
_parameters => ['count']
})->create(@_);
}
sub calc
{
my ($this, $dim, $time, $input, $count) = @_;
my $KDT = 62.9;
my $MDT = 0.6;
my $inputdelay = $this->delay('inputstate', $input);
my $output = $KDT*($input-$inputdelay)+(1+$MDT);
return ($output)
}
sub init
{
my ($this) = @_;
my $count = $this->{count};
$this->initdelay('inputstate', zeroes($count));
return 0;
}
Last edited: 2015-07-20 12:33:37 +0200 (CEST)