How to change the reference ?
이전 댓글 표시
we have this system by its state representation :

the formulation of the quardatic command is described by the following equations:


exemple :

we would like to apply the quardatic command so that the output y(k) = x1(k) follows a certain reference.
For reference = 5 , this is the code :
clear, clc
Ac=[0 1;0 0]; Bc=[0;1]; Cc=[1 0]; Dc=0;
[A,B,C,D]=c2dm(Ac,Bc,Cc,Dc,0.1) %Converting to discrete mode
N=600;
ref=5; %The reference
Q=[1 2;2 1] ; R=0.1;
P=Q;
x_ref=[ref;0];
for k=N:-1:0
F=R+B'*P*B; %Equation 1
K=inv(F)*B'*P*A; %Equation 2
M=P-P*B*inv(F)*B'*P; %Equation 3
P=A'*M*A+Q; %Equation 4
end
u=0 ; x=[0;0];
for i=1:N
x=A*x+B*u;
u=-K*(x-x_ref); %Equation 5
y(i)=C*x;
end
plot(1:N,ref*ones(1,N),'r',1:N,y)
I get the following figure:

And now i would like to use the same code by modifying the reference signal, so as to obtain nearly these 2 curves:

y= red curve , reference= black curve
The goal is that the signal y (i) follows a non-fixed reference:
ref = 8 in [0.200]
ref = 5 in [200,400]
ref = 12 in [400,600]
This is the reference to follow :

if anyone can help me, i will be very grateful
댓글 수: 2
Image Analyst
2020년 3월 5일
I'm not tackling that until you do two things: (1) add comments, and (2) use descriptive variable names. To me it just looks like an impenetrable alphabet soup of a program. And I'm not sure why you can't just make the changes since (evidently) you understand the original code far better than us. We're willing to help but you have to make it easy for us to help you.
Alan Robertson
2020년 3월 5일
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!