Display radius on the plot
17 次查看(过去 30 天)
显示 更早的评论
%% Plot Region of Attraction
for k=1:360
xra(k)=2*cos(2*pi*k/360);
yra(k)=2*sin(2*pi*k/360);
end
figure(1)
p1=plot(xra,yra,'--r')
title('Initial Condition with radius ')
xlabel('x1(t)')
ylabel('x2(t)')
grid
axis(2.5*[-1 1 -1 1])
hold on
%% Plot Initial Circle
for k=1:360
xc(k)=ro*cos(2*pi*k/360); %Projection on x1
yc(k)=ro*sin(2*pi*k/360); %Projection on x2
end
figure(1)
p2=plot(xc,yc,'--k')
%% Run Simulation for N different initial conditions
for k =1:N
x1_o=ro*cos(2*pi*k/10+pi/6); %Projection on x1
x2_o=ro*sin(2*pi*k/10+pi/6); %Projection on x2
%% Simulation Linear Model
sim('sim_nonlinear_new.slx')
%states
x1=x(:,1);
x2=x(:,2);
scatter(x1_o,x2_o,100,'ok','filled') %Plot initial condition
plot(x1,x2) %Plot trajectory
drawnow;
legend([p1 p2],{'First','Second'});
end
hold off
I have above code for region of attraction circle and intial circle. I want to be able to display with a line drawing out and radius of the two circles. Please help
0 个评论
采纳的回答
Star Strider
2019-6-11
You did not define ‘ro’.
When you do, you can plot the radius easily as:
plot([0 xra(45)], [0 yra(45)], '-b', [0 xc(135)],[0 yc(135)],'-g')
after the second loop. Choose whatever index you want to define the radius lines.
I would also use:
axis equal
so your circles don’t look like elipses.
5 个评论
更多回答(1 个)
KSSV
2019-6-11
YOu can display radius of the circle like below:
th = linspace(0,2*pi) ;
R = 1. ; % REadius of Circle
C = [0. 0.] ; % cneter of circle
x = C(1)+R*cos(th) ;
y = C(2)+R*sin(th) ;
plot(x,y)
hold on
plot([C(1) x(1)],[C(2) y(1)])
2 个评论
KSSV
2019-6-11
The above code doesn't show any error. It is wokring fine unless you make some changes.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!