Example H4.6

MATLAB code for example 4.6 from the book "Regeltechniek voor het HBO"

Differentiating behaviour of a tamed controller

Copyright (c) 2022, Studieboeken Specialist Permission is granted to copy, modify and redistribute this file, provided that this header message is retained.
Table of Contents

Assignment

Pure differentiating behaviour is not very common in real existing systems. With a steep slope of the input variable this would quickly lead to a very large value of the output. In many practical situations that is impermissible or even impossible (hugely large forces, pressures, flows, temperatures, etc.). A tamed D-action of a controller does not behave like this; its behaviour with input and output is described in this example as (more descriptions are possible):
Determine the pole and zero plot of this system and the response on an input of stepsize 2.

Solution

From the mathematical model in the time domain it follows directly:
The pole and zero plot of this transfer function is displayed in figure 4.16a. The pole and zero plot of the step response Y(s) is displayed in figure 4.16b (note the extra pole in the origin and the twice as large value of . Both are caused by the input).
From the pole and zero plot, the requested step response can be determined directly for (see section 3.4.4).
The step response is shown in figure 4.17. Since it is a tamed D-action, the output is limited at t=0. In a pure D-action the output would be infinite at this point, no problem in theory, impossible in practice.

MATLAB code for this example

% clear all variables from Workspace and close all figures.
clear variables;
close all;
 
% Define 's' variable
s=tf('s');
 
H=(6*s+1)/(2*s+1);
 
% Run the zpk function without ; to check the zero, pole and gain
zpk(H)
ans = 3 (s+0.1667) ------------ (s+0.5) Continuous-time zero/pole/gain model.
 
% Check the stepresponse
figure(101);
% Use a step amplitude of 2;
opt = stepDataOptions('StepAmplitude',2);
step(H,opt);
grid on;
xlim([0 15]);
ylim([0 10]);

MATLAB code for symbolic solution

% create symbolic functions
syms s t y(t);
Hsym=(6*s+1)/(2*s+1);
Xsym=2/s;
Ysym=Xsym*Hsym;
y(t)=ilaplace(Ysym)
y(t) = 
% Plot the output signal y(t)
t_interval = [0 15];
figure(101);
fplot(y(t),t_interval);
grid on;
title('outputsignal y(t)');
xlabel('t [s]');
ylabel('y(t)');
ylim([0 10]);
xlim(t_interval);