From 200ab38842d7dc6352eb83479ac2d915ad098f34 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Wed, 18 Dec 2024 22:55:22 +0100 Subject: [PATCH] Update Content - 2024-12-18 --- content/zettels/reference_tracking.md | 50 ++++++++++++++++++ .../reference_tracking_ramp_one_int.png | Bin 0 -> 24059 bytes 2 files changed, 50 insertions(+) create mode 100644 content/zettels/reference_tracking.md create mode 100644 static/ox-hugo/reference_tracking_ramp_one_int.png diff --git a/content/zettels/reference_tracking.md b/content/zettels/reference_tracking.md new file mode 100644 index 0000000..956b32b --- /dev/null +++ b/content/zettels/reference_tracking.md @@ -0,0 +1,50 @@ ++++ +title = "Reference Tracking" +author = ["Dehaeze Thomas"] +draft = false ++++ + +Tags +: + + +## Following Ramp inputs with one integrator {#following-ramp-inputs-with-one-integrator} + +Let's suppose a static plant and a controller with one integrator with a crossover frequency of \\(\omega\_c = 10\cdot 2\pi\\) (i.e. 10Hz). + +```matlab +G = tf(1); % Plant +K = 2*pi*10/s; % Controller +``` + +The transfer function from the reference to the output is: +\\[ T(s) = \frac{G(s)K(s)}{1 + G(s)K(s)} \\] + +```matlab +T = G*K/(1 + G*K); % Transmissibility +``` + +The reference signal is a ramp with a "velocity" \\(r\_v = 1\\) unit/sec. + +```matlab +% Time domain simulation +Ts = 1e-4; % Sampling Time [s] +t = 0:Ts:0.4; % Time vector [s] +r = zeros(size(t)); % Sepoint +r(t>0.1) = t(t>0.1)-0.1; +y = lsim(T, r, t); % Output +``` + + + +{{< figure src="/ox-hugo/reference_tracking_ramp_one_int.png" caption="Figure 1: Comparison of the setpoint and the plant output for a ramp with only one integrator in the loop" >}} + +The error converges to a constant equal to \\(\frac{r\_v}{\omega\_c} \approx 0.016\\). + +The output "lags" behind the reference by \\(\frac{1}{\omega\_c}\\) in seconds. + + +## Bibliography {#bibliography} + +
+
diff --git a/static/ox-hugo/reference_tracking_ramp_one_int.png b/static/ox-hugo/reference_tracking_ramp_one_int.png new file mode 100644 index 0000000000000000000000000000000000000000..73c054445eaf96502bc00816c2b848f1cd6b6fd8 GIT binary patch literal 24059 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