d簧振子的matlab程序解释,每一步都请解释一下

d簧振子的matlab程序解释,每一步都请解释一下,第1张

% 本程序为基于matlab的动画绘制实例

% 通过设置句柄来达到理想d簧振子简谐运动示例

% 其核心思想是句柄、数据设置、演示延迟等% 理想d簧振子简谐运动

clcclear allclose all% 清理matlab空间

figurehold onbox on% 打开figure窗口

% 绘制矩形框,作为顶板

rectangle('position', [12, 8.5, 2, 0.3], 'FaceColor', [0.5,0.3,0.4])

% 设置坐标轴

axis([0, 15, -1, 10])

% 绘制直线

plot([13,13], [7,8.5], 'r', 'linewidth', 2)

% 画d簧

y = 2:.2:7

M = length(y)% y的长度

x = 12+mod(1:M,2)*2

x(1) = 13

x(end-3:end) = 13% 直线数据

D = plot(x,y)

% 画小球

C = 0:.1:2*pi

r = 0.35

t1 = r*sin(C)

F1 = fill(13+r*cos(C),2+t1,'r')

% 设置坐标轴属性

set(gca, 'ytick', [0:2:9])

set(gca, 'yticklabels', num2str([-1:3]'))

% 绘制中间横线

plot([0,15], [3.3,3.3], 'black')

% 绘制中间横线,此时为绿色线

H1 = plot([0,13], [3.3,3.3], 'g')

% 运动曲线

Q = plot(0,3.8,'color','r')

td = []

yd = []

T = 0

% 字符标签

text(2, 9, '理想中的d簧振子简谐振动', 'fontsize', 16)

set(gcf, 'doublebuffer', 'on')

while T <12

% 设置时间延迟

pause(0.2)

Dy = (3/2-1/2*sin(pi*T))*1/2

Y = -(y-2)*Dy+7

Yf = Y(end)+t1

td = [td,T]% 保存数据

yd = [yd,Y(end)]% 保存数据

set(D, 'ydata', Y)% 设置数据

set(F1, 'ydata', Yf, 'facecolor', rand(1,3))% 设置小球

set(H1, 'xdata', [T,13], 'ydata', [Y(end),Y(end)])% 设置横轴

set(Q, 'xdata', td, 'ydata', yd)% 绘制运动曲线

T = T+0.1

end

您好,NFIELD - 所选择实体对应 *** 作命令的第几个参数 (field),注意 *** 作命令的第一个域是命令本身,因此 NFIELD=2,表示是命令的第1个参数; NFIELD=3,表示是命令的第2个参数.....等。

NARG - 后续列表中的项数 (即后续 FITEM 命令行数)

TYPE - 所选择的实体类型,定义为:

1 - 节点编号;

2 - 单元编号;

3 - Keypoint 编号;

4 - Line 编号;

5 - Area 编号;

6 - Volume 编号;

7 - Trace points;

8 - 总体直角坐标系中的坐标值;

9 - 屏幕坐标选择 (在屏幕 X, Y 坐标中,值 (-1 to 1))

Otype - 数据排列方式,有两种方式:

NOOR - 数据是无序的 (默认);

ORDER - 数据是个有序的表 (例如对于 E,P51X 和 A,P51X 命令,其中数据的顺序与用 pick 方式选择时的顺序一致)。

LENG - 数据表长度 (后续 FITEM 命令的个数。如果 Otype = NOOR,LENG 应等于 NARG)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11230643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存