🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
问题描述
matlab可以把多个二维图合成为三维瀑布图吗???如图一到图四所示,已解出图一到图三的时域响应图,具体求解过程见图五图六,想要把图一到图三的三张二维图合成为图四所示的三维瀑布图,其中时间t为x轴,齿侧间隙b为y轴,z轴为振幅响应(y_1(:,2)*rb2-y_1(:,3)*rb3-b),请问有什么办法可以实现此功能吗,非常感谢您的建议
clear;clc;close all;
%初始参数,该参数变化,myfun程序要对应调整
wm = 3891*2*pi/60;
zi=4;%内转子极对数
zo=14;%外转子极对数k
z1=32;%小齿轮齿数
z2=99;%大齿轮齿数
ms=4.62e-3;
r2=ms*z1/2;%小齿轮分度圆
r3=ms*z2/2;%大齿轮分度圆
arf0=20/180*pi;
rb2=r2*cos(arf0);%小齿轮基圆
rb3=r3*cos(arf0);%大齿轮基圆
I=z2/z1;%机械齿轮速比
G=(zo+zi)/zi;%磁齿轮速
bc=1e-4;
b=1e-5;
tmax = 11;
%一、计算过程
y0=[0;0;0;wm;wm/G;wm/(G*I)];
[t,y]=odeRK4sys('myfun3',tmax,bc,y0);
%
start_index = find(t >= 10, 1, 'first');
t_1 = t(start_index:end);
y_1 = y(start_index:end, :);
subplot(1,1,1);
plot(t_1,y_1(:,2)*rb2-y_1(:,3)*rb3-b);
signal2=y_1(:,2)*rb2-y_1(:,3)*rb3-b;
set(gca,'FontSize',16);
title('时域响应图b=1e-5','FontSize',16);
xlabel('时间 (s)','FontSize',16);
ylabel('线位移振幅(m)','FontSize',16);%机械齿轮的相对弹性转角
function dydt=myfun3(t,y)
wm = 3891*2*pi/60;
% wm=11067*2*pi/60;
% wm_func = @(t)((1600*(15.8-1.1*t)*3.6)/3600*9550/(46.4))*pi*2/60;
% wm=wm_func(t);
zi=4;%内转子极对数
zo=14;%外转子极对数
z1=32;%小齿轮齿数
z2=99;%大齿轮齿数
arf0=20/180*pi;%压力角
ms=4.62e-3;
r2=ms*z1/2;%小齿轮分度圆
r3=ms*z2/2;%大齿轮分度圆
rb2=r2*cos(arf0);%小齿轮基圆
rb3=r3*cos(arf0);%大齿轮基圆
I=z2/z1;%机械齿轮速比
G=(zo+zi)/zi;%磁齿轮速比
Tm=randi([1 135]);
TL=Tm*I*G;%变速器负载
%3 转动惯量
IM=0.081197;%电机转子转动惯量kgm2
I0=0.181197;%磁齿轮低速级转动惯量kgm2
I1=0.013663;%磁齿轮高速级转动惯量kgm2
I2=0.0230596;%机械小齿轮转动惯量
I3=1.9825692;%机械大齿轮转动惯量
IL=21;%整车等效转动惯量
%4 刚度与阻尼
%齿轮的阻尼和刚度
w1=wm*G;%机械小齿轮输入转速
kp=10.51e8;
kb=0.25e8;%两个齿轮的刚度曲线为正弦曲线,
km=kp+kb*sin(w1*t*z1);
sg=0.16;%齿轮阻尼比
cm=2*sg*sqrt(kp*I2*I3/(I2*rb3^2+I3*rb2^2));
b=1e-5;
% 初始化存储结果的数组
xx=rb2*y(2)-rb3*y(3);
dxx=rb2*y(5)-rb3*y(6);
if xx-b>0
fx=xx-b;
elseif xx+b<0
fx=xx+b;
else
fx=0;
end
F23=km*fx+cm*dxx;
T0=1.7*Tm*G;
Tc1=0.2*T0*sin(wm*t);
Tc=0.03*(zi*y(4)-(zi+zo)*y(5));
T21=T0*sin(zi*y(1)-(zi+zo)*y(2))+Tc+Tc1;
y(7)=(Tm-T21/G)/(I0+IM);
y(8)=(T21-r2*F23)/(I2+I1);
y(9)=(-TL+r3*F23)/(I3+IL);
dydt=[y(4)
y(5)
y(6)
y(7)
y(8)
y(9)];
end
温馨提示:
如上问题有的来自我自身项目开发,有的收集网站,有的来自读者…如有侵权,立马删除。再者,针对此专栏中部分问题及其问题的解答思路或步骤等,存在部分搜集于全网社区及人工智能问答等渠道,若最后实在是没能帮助到你,还望见谅!并非所有的解答都能解决每个人的问题,在此希望屏幕前的你能够给予宝贵的理解,而不是立刻指责或者抱怨!如果你有更优解,那建议你出教程写方案,一同学习!共同进步。
解决方案
如下是上述问题的解决方案,仅供参考:
在MATLAB中,您可以使用多种方法将多个二维图合成为三维瀑布图(也称为三维散点图或3D line plot)。根据您的描述,您想要将三个不同的时域响应图合并为一个三维瀑布图,其中时间t
为x轴,齿侧间隙b
为y轴,振幅响应为z轴。
以下是一个基本的步骤,展示如何使用MATLAB创建这样的三维图:
-
准备数据:首先,确保您有三个不同的
b
值对应的时域响应数据。您已经有了y_1
数据,您可能需要为不同的b
值重复实验或计算以获取其他两组数据。 -
创建网格:如果
b
的值不是连续的,您可以为每个b
值创建一个网格。如果b
是连续的,您可以使用linspace
或0.1:0.05:1
这样的命令来创建一个。 -
生成三维图:使用
plot3
或scatter3
函数来为每个b
值绘制三维线或散点图。 -
合并图形:您可以在一个图形窗口中绘制多条线或多个散点,或者使用
hold on
命令来在同一个坐标轴中绘制。
以下是一个简单的示例代码,说明如何实现:
% 假设您有三个不同的b值和对应的响应数据
b_values = [1e-5, 1.5e-5, 2e-5]; % 例如三个不同的b值
responses = {y_1, y_2, y_3}; % 假设y_2和y_3是其他两个b值的响应数据
% 时间数据,假设是相同的
t = t_1; % 从您的代码中获取时间数据
% 创建图形窗口
figure;
hold on; % 保持当前图形,以便在上面绘制多条线
% 绘制每个b值的响应图
for i = 1:length(b_values)
plot3(t, b_values(i) * ones(size(t)), ...
responses{i} * rb2 - y_1(:,3) * rb3 - b_values(i), 'LineWidth', 1);
end
% 设置坐标轴标签
xlabel('时间 (s)');
ylabel('齿侧间隙 b');
zlabel('振幅响应 (m)');
% 其他图形设置...
title('三维瀑布图');
legend('b = 1e-5', 'b = 1.5e-5', 'b = 2e-5');
grid on;
view(3); % 设置为三维视图
hold off; % 完成绘图
请注意,您需要根据实际情况调整上述代码,特别是数据的组织和处理方式。如果您有具体的数据集或需要进一步的帮助,请提供更多的信息。
希望如上措施及解决方案能够帮到有需要的你。
PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。
若有对当前Bug有与如下提供的方法不一致,有个不情之请,希望你能把你的新思路或新方法分享到评论区,一起学习,目的就是帮助更多所需要的同学,正所谓「赠人玫瑰,手留余香」。
☀️写在最后
ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏《CSDN问答解惑-专业版》,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。
码字不易,如果这篇文章对你有所帮助,帮忙给 bug菌 来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。
同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!
📣关于我
我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,掘金等各大社区平台签约作者,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 30w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿哇。