欢迎访问yhm138的博客园博客, 你可以通过 [RSS] 的方式持续关注博客更新

MyAvatar

yhm138

HelloWorld!

Simulink的MATLAB function使用

note 2021-02-21 下面的文章来自我的公众号 yhm同学
note 2021-04-01 今天检查这篇文章的正确性,发现存在着一些我没有发现的错误,但是我不想修改了。
原文链接 https://mp.weixin.qq.com/s/J5nmK4Z9ImC3fRKqutXH5g


写个很简单的东西,可以说是备忘录

引子

这里打算用Simulink仿真一个常微分方程和初始条件描述的系统
\(x, \dot{x}, \ddot{x}\) 是研究的变量

\[\ddot{x}=\frac{F}{m}+\frac{T}{m}-9.8 \]

变参数 \(F, m, T\)

\[\begin{array}{c} F=\left\{\begin{array}{rl} -0.4\dot{x}^{2} & \dot{x}>0 \\ 0.4 \dot{x}^{2} & \dot{x}<0 \\ 0 & \dot{x}=0 \end{array}\right. \\ m=\left\{\begin{array}{rl} 1400-18 t & 0<t \leq 60 \\ 320 & t>60 \end{array}\right. \\ T=\left\{\begin{array}{rr} 32000 & 0<t \leq 60 \\ 0 & t>60 \end{array}\right. \end{array} \]

其中\(t\) 是仿真时间
初始条件

\[x(0)=0, \dot{x}(0)=0 \]

matlab仿真

feixiang.m

k=0.4;g=9.8;m0=1400;T=32000;
x0=[0,0];
ts=0:1:100;
[t,x]=ode45('huojian',ts,x0);
[t,x(:,1)]
a=[t,x];
x40=a(61,2)
v40=a(61,3)
a40=-(k/320)*v40^2+T/320-g
xmax=max(x(:,1))
subplot(2,1,1),plot(t,x(:,1)),title('altitude')
subplot(2,1,2),plot(t,x(:,2)),title('speed')

huojian.m

function y=huojian(t,x)
k=0.4;g=9.8;m0=1400;T=32000;m=m0-18*t;
if t>60
     T=0;
      m=320;
end
y=[x(2),-(k/m)*x(2)^2+T/m-g]';

Simulink仿真

嗯找了篇博客照着样子搭就行了

上面是streamja的视频(iframe标签),但是streamja被墙了

可能有用?当时用ctrl shift L 来快速打开Library Browser
.slx源文件传到坚果云了.你需要一个坚果云账号来access.

仿真结果

参考

如何在博客园中插入视频、音频、网页
html视频自动播放(iframe)及不自动播放(video)
HTML 标签的 height 和 width 属性
simulink建模之求解微分方程
Streamja - Simple video sharing,不好用,差评

posted @ 2021-02-21 10:17  yhm138  阅读(1478)  评论(0编辑  收藏  举报