资源简介
单摆matlab仿真,单摆是能够产生往复摆动的一种装置,将无重细杆或不可伸长的细柔绳一端悬于重力场内一定点,另一端固结一个重小球,就构成单摆。使用matlab和ode函数对于单摆运动分析。
代码片段和文件信息
close all
clear all
clc
%% 输入参数
syms y(t) x(t) % 创建符号变量/函数
a = input(‘请输入纬度=‘);
x0 = input(‘请输入x方向初始坐标x0=‘);
y0 = input(‘请输入y方向初始坐标y0=‘);
u0 = input(‘请输入x方向初始速度u0=‘);
v0 = input(‘请输入y方向初始速度v0=‘);
T = input(‘请输入总时间T=‘);
%% 常数设置
tPause = 0; % 绘图间隔时间
c = a*pi/180; % 弧度制转换
w = pi/50; % 地球自转角速度,实际约为2pi/86400,为效果明显,暂设为2pi/100
l = 67; % 傅科摆摆长
g = 9.8; % 重力加速度
%% 求解微分方程组
eqns = [diff(xt2)-2*w*diff(yt)*sin(c)+x*g/l==0 diff(yt2)+2*w*diff(xt)*sin(c)+y*g/l==0];
Dx = diff(xt);
Dy = diff(yt);
cond = [x(0) == x0y(0) == y0 Dx(0) == u0 Dy(0) == v0];
[x y] = dsolve(eqnscond);
t = 0:0.1:T; % 时间
x = eval(x); % 运行符号解,得到解向量
y = eval(y); % 同上
%% 可视化
set(gcf‘color‘[1 1 1]);
axis([-0.6 0.6 -1 0.2]);
axis off
axis equal
z = -(l^2-x.^2-y.^2).^0.5;
% 竖轴
verticalaxis = line([00][00][0min(z)]‘color‘‘k‘‘linestyle‘‘-‘‘linewidth‘1.5);
% 摆线初始化
pendulumline = line([0x(1)][0y(1)][0z(1)]‘color‘‘y‘‘linestyle‘‘-‘‘linewidth‘2);
% 摆锤初始化
pendulumbob = line(x(1)y(1)z(1)‘color‘‘r‘‘marker‘‘.‘‘markersize‘ 25);
% 摆锤起点
pendulumtra = line([x(1)x(1)][y(1)y(1)][z(1)z(1)]);
axis square
axis([min(x) max(x) min(y) max(y) min(z) 0])
hold on
grid on
for i = 1:size(t2)
% 更新摆线位置
set(pendulumline‘xdata‘[0x(i)]‘ydata‘[0y(i)]‘zdata‘[0z(i)]);
% 更新摆锤位置
set(pendulumbob‘xdata‘x(i)‘ydata‘y(i)‘zdata‘z(i));
% 更新轨迹
set(pendulumtra‘xdata‘x(1:i)‘ydata‘y(1:i)‘zdata‘z(1:i))
% 绘制
drawnow;
% 暂停
pause(tPause);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-02-24 15:00 2_3_foucaultpendulum\
文件 1965 2018-02-24 14:56 2_3_foucaultpendulum\dsolve_pendulum.m
目录 0 2018-02-24 21:06 __MACOSX\
目录 0 2018-02-24 21:06 __MACOSX\2_3_foucaultpendulum\
文件 210 2018-02-24 14:56 __MACOSX\2_3_foucaultpendulum\._dsolve_pendulum.m
文件 162 2018-02-24 14:29 2_3_foucaultpendulum\myODE.m
文件 210 2018-02-24 14:29 __MACOSX\2_3_foucaultpendulum\._myODE.m
文件 1857 2018-02-24 14:59 2_3_foucaultpendulum\ode45_pendulum.m
文件 120 2018-02-24 14:59 __MACOSX\2_3_foucaultpendulum\._ode45_pendulum.m
相关资源
- 串行级联cpm系统MATLAB仿真
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
川公网安备 51152502000135号
评论
共有 条评论