Function or variable 'rscale' not recognised.
조회 수: 35 (최근 30일)
이전 댓글 표시
A = [ 0 1 0
980 0 -2.8
0 0 -100 ];
B = [ 0
0
100 ];
C = [ 1 0 0 ];
poles = eig(A)
t = 0:0.01:2;
u = zeros(size(t));
x0 = [0.01 0 0];
sys = ss(A,B,C,0);
[y,t,x] = lsim(sys,u,t,x0);
plot(t,y)
title('Open-Loop Response to Non-Zero Initial Condition')
xlabel('Time (sec)')
ylabel('Ball Position (m)')
p1 = -10 + 10i;
p2 = -10 - 10i;
p3 = -50;
K = place(A,B,[p1 p2 p3]);
sys_cl = ss(A-B*K,B,C,0);
lsim(sys_cl,u,t,x0);
xlabel('Time (sec)')
ylabel('Ball Position (m)')
p1 = -20 + 20i;
p2 = -20 - 20i;
p3 = -100;
K = place(A,B,[p1 p2 p3]);
sys_cl = ss(A-B*K,B,C,0);
lsim(sys_cl,u,t,x0); xlabel('Time (sec)')
ylabel('Ball Position (m)')
t = 0:0.01:2;
u = 0.001*ones(size(t));
sys_cl = ss(A-B*K,B,C,0);
lsim(sys_cl,u,t); xlabel('Time (sec)')
ylabel('Ball Position (m)')
axis([0 2 -4E-6 0])
Nbar = rscale(sys,K)
Function or variable 'rscale' is not recognised by matlab. I get an error like this.
However, the url above has this code description. How can I use it?
댓글 수: 0
답변 (2개)
Rik
2023년 6월 12일
As it says right on that page:
"Note that this function is not standard in MATLAB. You will need to download it here, rscale.m, and save it to your current workspace."
Pavl M.
2024년 12월 5일
clc
clear all
close all
A = [ 0 1 0
980 0 -2.8
0 0 -100 ];
B = [ 0
0
100 ];
C = [ 1 0 0 ];
D = [0];
poles = eig(A)
ts = 0.001;
sys = ss(A,B,C,D,ts);
G = ss2tf(sys.A,sys.B,sys.C,sys.D)
p1 = -20 + 20i;
p2 = -20 - 20i;
p3 = -100;
K = place(sys.A,sys.B,exp(ts*[p1 p2 p3]))
%In place of separate function invokation, faster
s4 = size(sys.A,1);
Z = [zeros([1,s4]) 1];
N = (1\([sys.A,sys.B;sys.C,sys.D]))*Z';
Nx = N(1:s4);
Nu = N(1+s4);
Nbar=Nu + K*Nx
%
opts = hinfsynOptions('Display','on');
W1 = makeweight(100,[1],0.25,ts);
W3 = makeweight(0.25,[1],100,ts);
%W2 = makeweight(0.01,[0.1],1,ts);
figure
bodemag(W1,[],W3)
P = augw(sys,[],[],W3)
%ncont = 1; % one control signal, u
%nmeas = 2; % 1 measurement signals
%[K,CL,gamma] = hinfsyn(P,ncont,nmeas,opts)
%contact me more if want this to study more interactively and to complete.
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!