-
Notifications
You must be signed in to change notification settings - Fork 0
/
loop_single.m
58 lines (43 loc) · 1.14 KB
/
loop_single.m
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
% Authors: Alejandro R. Mosteo, Danilo Tardioli, Eduardo Montijano
% Copyright 2018-9999 Monmostar
% Licensed under GPLv3 https://www.gnu.org/licenses/gpl-3.0.en.html
%
classdef loop_single < i_loop
properties
stf, dtf
G, H
end
methods(Static)
function this = loop_single(tff, T, G, H)
% requires a tf factory and period
% requires direct and back continuous TFs
this.G = G;
this.H = H;
this.stf = feedback(G, H);
this.dtf = tff(this.stf, T);
this.period = T;
end
end
methods
function y = output(this, x)
y = this.dtf.output(x);
end
function v = get_v(this)
% the velocity output after last call to output (position)
v = this.dtf.get_v();
end
function a = get_a(this)
% The acceleration output
a = this.dtf.get_a();
end
function stf = get_tf(this)
stf = this.stf;
end
function dtf = get_discrete_tf(this)
dtf = this.dtf;
end
function reset_state(this)
this.dtf.reset_state();
end
end
end