matlab正弦余弦与圆的关系

先上图:

 可以看到y相等,其实就是代码里画圆时的x=sin(i),表示了y值的变化

 
clear;
clf;
close all
 
omega = linspace(0,2*pi,200);
 
% 圆
x = cos(omega)-1;
y = sin(omega);
 
% sine
x1 = omega;
y1 = sin(x1);
 
% sine2
% x2 = omega;
% y2 = sin(2*x1);
 
for i = 1:length(omega)
    set(gcf,'outerposition',get(0,'screensize'));
    %     圆和sine之间的连接线
    connectLineX = linspace(x(i),x1(i),50);
    connectLineY = zeros(1,50)+y(i);
    %
    AxisX = linspace(-2,10,50);
    AxisY = zeros(1,50);
    %     圆中的箭头
    arrowX = [-1,x(i)];
    arrowY = [0,y(i)];
    
    %圆周上的点到横轴的垂线
    lineX = zeros(1,20)+x(i);
    lineY = linspace(0,y(i),20);
    
    %
    x3 = zeros(1,20)+x1(i);
    y3 = linspace(0,y1(i),20);
    %
    plot(x(1:i),y(1:i),'-r',x1(1:i),y1(1:i),'-g',connectLineX,connectLineY,'--',arrowX,arrowY,'-bo',lineX,lineY,'k',x3,y3,'k','LineWidth',3);
    text(x(i)+0.05,y(i),strcat(num2str(omega(i)/pi),'\pi'),'fontsize',14);
    text(x1(i)+0.05,y1(i),strcat(num2str(omega(i)/pi),'\pi'),'fontsize',14);
    grid on
    axis equal
    axis([-2.2 7 -1.2 1.2])
    set(gca,'XTick',[-2,-1,0:pi/8:2*pi]);
    set(gca,'xtickLabel',{'-2','-1','0','\pi/8','\pi/4','3\pi/8','\pi/2','5\pi/8','3\pi/4','7\pi/8','\pi','9\pi/8','5\pi/4','11\pi/8','3\pi/2','13\pi/8','7\pi/4','15\pi/8','2\pi'});
    title('正弦函数和圆之间的关系','fontsize',22,'fontname','微软雅黑')
    drawnow
    %     hold on
    %     saveas(gcf,['./','block_',num2str(i),'.jpg']);
    f=getframe(gcf);
    imind=frame2im(f);
    [imind,cm] = rgb2ind(imind,256);
    if i == 1
        imwrite(imind,cm,'sinePhase.gif','GIF', 'Loopcount',inf,'DelayTime',0.01);
    else
        imwrite(imind,cm,'sinePhase.gif','GIF','WriteMode','append','DelayTime',0.01);
    end
end
 

同样,余弦就是x=cos(i),就是表示x值的变化

其实曲线是一样的,就是有一定错开,这个就叫相位差 

而右边曲线的横轴数值,在电子线路里一般是说时间t,其实就是圆心的角度,从0-360对应的弧度2π,因为交流电机旋转的时候,角度是不停在变化的,所以用时间来表示可能更直观,而且还可以表示出频率


clear;
clf;
close all
 
omega = linspace(0,2*pi,200);
 
% 圆
x = cos(omega)-1;
y = sin(omega);
 
% sine
x1 = omega;
y1 = cos(x1);
 
% sine2
% x2 = omega;
% y2 = sin(2*x1);
 
for i = 1:length(omega)
    set(gcf,'outerposition',get(0,'screensize'));
    %     圆和sine之间的连接线
    connectLineX = linspace(x(i),x1(i),50);
    connectLineY = zeros(1,50)+y(i);
    %
    AxisX = linspace(-2,10,50);
    AxisY = zeros(1,50);
    %     圆中的箭头,从圆心到弧的那根蓝色半径
    arrowX = [-1,x(i)];
    arrowY = [0,y(i)];
    
    %圆周上的点到纵轴的垂线
    lineX = linspace(-1,x(i),20); % zeros(1,20)+x(i);
    lineY = zeros(1,20)+y(i); % linspace(0,y(i),20);
    
    %
    x3 = zeros(1,20)+x1(i);
    y3 = linspace(0,y1(i),20);
    %
    plot(x(1:i),y(1:i),'-r',x1(1:i),y1(1:i),'-g',arrowX,arrowY,'-bo',lineX,lineY,'k',x3,y3,'k','LineWidth',3);
    text(x(i)+0.05,y(i),num2str(x(i)+1),'fontsize',14);
    text(x1(i)+0.05,y1(i),num2str(x(i)+1),'fontsize',14);
    grid on
    axis equal
    axis([-2.2 7 -1.2 1.2])
    set(gca,'XTick',[-2,-1,0:pi/8:2*pi]);
    set(gca,'xtickLabel',{'-2','-1','0','\pi/8','\pi/4','3\pi/8','\pi/2','5\pi/8','3\pi/4','7\pi/8','\pi','9\pi/8','5\pi/4','11\pi/8','3\pi/2','13\pi/8','7\pi/4','15\pi/8','2\pi'});
    title('余弦函数和圆之间的关系','fontsize',22,'fontname','微软雅黑')
    drawnow
    %     hold on
    %     saveas(gcf,['./','block_',num2str(i),'.jpg']);
    f=getframe(gcf);
    imind=frame2im(f);
    [imind,cm] = rgb2ind(imind,256);
    if i == 1
        imwrite(imind,cm,'cosPhase.gif','GIF', 'Loopcount',inf,'DelayTime',0.02);
    else
        imwrite(imind,cm,'cosPhase.gif','GIF','WriteMode','append','DelayTime',0.02);
    end
end
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值