Effacer les filtres
Effacer les filtres

Deleting some parts of a figure

4 vues (au cours des 30 derniers jours)
Ali Esmaeilpour
Ali Esmaeilpour le 1 Oct 2019
greeting guys! I got a code which result is a figure of output y with respect to t (time). I wanted to keep some part of this figure for example from time 5 till 9 and delete other parts. I wanted to know how to do that.
my code is as follows:
clc;
clear;
close all;
%% Initialization
T0=0 ;
Tf=20 ;
Ts=0.1 ;
t=T0:Ts:Tf ;
system=tf([1 1],[1 1 2]); % system=(s+1)/(s^2+s+2)
system_dis=c2d(system,Ts) ;
system_dis_ss=ss(system_dis) ;
Am=system_dis_ss.a;
Bm=system_dis_ss.b;
Cm=system_dis_ss.c;
n=size(Am,1); % Number of state variables
Om=zeros(1,n);
A=[Am,Om';Cm*Am,1];
B=[Bm ;Cm*Bm];
C=[Om 1];
p=10; % Prediction horizon
m=5; % Control horizon
Q=1;
R=1;
F=zeros(p,n+1);
for i=1:p
F(i,:)=C*A^i;
end
PHI=zeros(p,m);
for i=1:p
for j=1:i
PHI(i,j)=C*A^(i-j)*B;
end
end
PHI=PHI(:,1:m);
%% Main Loop
Nt=numel(t);
%W=ones(Nt,1); % Reference signal
W=[ones(floor(Nt/4),1);2*ones(floor(Nt/4),1);-ones(floor(Nt/4),1);zeros(floor(Nt/4+1),1)];
y=zeros(Nt,1);
du=zeros(Nt,1);
x=zeros(n+1,Nt); % (System state)+integral ===> n+1
Fval=zeros(Nt,1);
for i=1:Nt-1
FreeResponse=F*x(:,i);
dU=(PHI'*Q*PHI+R)\(PHI'*Q*(W(i)-FreeResponse))
du(i)=dU(1); % Receding horizon
x(:,i+1)=A*x(:,i)+B*du(i); % State variable update
y(i+1)=C*x(:,i+1); % Output update
end
%% Plot result
figure(1)
plot(t,y,'linewidth',2)
  7 commentaires
Sebastian Körner
Sebastian Körner le 1 Oct 2019
plot(t(5:9),y(5:9),'linewidth',2) %??
with that you dont change "y" at all, you just dont plot all of it
Ali Esmaeilpour
Ali Esmaeilpour le 1 Oct 2019
t is 1*201 and y is 201*1 so we can't simply have t(5:9) can we???

Connectez-vous pour commenter.

Réponses (1)

Steven Lord
Steven Lord le 1 Oct 2019
timesInRange = (5 <= t) & (t <= 9);
plot(t(timesInRange), y(timesInRange))
Depending which of the endpoints you want to keep, you may need to use < instead of <= in one or both conditions.
For more information about how this works, see this documentation page and/or some of the blog posts that discuss "logical indexing".

Produits


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by