matlab求解时滞微分方程_matlab延迟环节传递函数

matlab求解时滞微分方程_matlab延迟环节传递函数具有常时滞的DDERef:时滞微分方程—示例

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

具有常时滞的 DDE

举例为如下方程
y 1 ′ ( t ) = y 1 ( t − 1 ) y 2 ′ ( t ) = y 1 ( t − 1 ) + y 2 ( t − 0.2 ) y 3 ′ ( t ) = y 2 ( t − 1 ) \begin{aligned} y_1′(t) &= y_1(t-1) \\ y_2′(t) &= y_1(t-1) + y_2(t-0.2) \\ y_3′(t) &= y_2(t-1) \\ \end{aligned} y1(t)y2(t)y3(t)=y1(t1)=y1(t1)+y2(t0.2)=y2(t1)

编写时滞代码

%% 测试求解常时滞微分方程
% Author: Zhao-Jichao
% Date: 2021-07-05
clear
clc

%% Define Time-Delay
lags = [1 0.2];

tspan = [0 5];
sol = dde23(@ddefun, lags, @history, tspan);

%% Draw Results
plot(sol.x,sol.y,'-o')
xlabel('Time t');
ylabel('Solution y');
legend('y_1','y_2','y_3','Location','NorthWest');

%% DDE Function
function dydt = ddefun(t,y,Z) % equation being solved
  ylag1 = Z(:,1);
  ylag2 = Z(:,2);

  dydt = [ylag1(1); 
          ylag1(1)+ylag2(2); 
          y(2)];
end
%-------------------------------------------
function s = history(t) % history function for t <= 0
  s = ones(3,1);
end
%-------------------------------------------

在这里插入图片描述

修改成自用的一阶系统微分方程

y 1 ′ = y 1 ( t − 0.1 ) y 2 ′ = y 2 ( t − 0.5 ) \begin{aligned} y_1’&=y_1(t-0.1) \\ y_2’&=y_2(t-0.5) \\ \end{aligned} y1y2=y1(t0.1)=y2(t0.5)

写成了两个并列的形式,方便对比最终的效果。

代码如下

%% 测试求解常时滞微分方程
% Author: Zhao-Jichao
% Date: 2021-07-05
clear
clc

%% Define Time-Delay
lags = [0.1 0.5];

tspan = [0 5];
sol = dde23(@ddefun, lags, @history, tspan);

%% Draw Results
plot(sol.x,sol.y,'-o')
xlabel('Time t');
ylabel('Solution y');
legend('y_1','y_2','y_3','Location','NorthWest');

%% DDE Function
function dydt = ddefun(t,y,Z) % equation being solved
  ylag1 = Z(:,1);
  ylag2 = Z(:,2);

  dydt = [-ylag1(2); 
          -ylag2(2)];
end
%-------------------------------------------
function s = history(t) % history function for t <= 0
  s = ones(2,1);
end
%-------------------------------------------

在这里插入图片描述

再改一个二阶的

方程为:
y 1 ′ = y 2 ( t − 0.1 ) y 2 ′ = − 2 y 3 ′ = y 4 ( t − 0.5 ) y 4 ′ = − 2 \begin{aligned} y_1′ &= y_2(t-0.1) \\ y_2′ &= -2 \\ y_3′ &= y_4(t-0.5) \\ y_4′ &= -2 \\ \end{aligned} y1y2y3y4=y2(t0.1)=2=y4(t0.5)=2

%% 测试求解常时滞微分方程
% Author: Zhao-Jichao
% Date: 2021-07-05
clear
clc

%% Define Time-Delay
lags = [0.1 0.5];

tspan = [0 3];
sol = dde23(@ddefun, lags, @history, tspan);

%% Draw Results
plot(sol.x,sol.y)
xlabel('Time t');
ylabel('Solution y');
legend('y_1','y_2','y_3','y_4','Location','NorthWest');

%% DDE Function
function dydt = ddefun(t,y,Z) % equation being solved
  ylag1 = Z(:,1);
  ylag2 = Z(:,2);

  dydt = [ylag1(2); 
          -2;
          ylag2(4); 
          -2;];
end
%-------------------------------------------
function s = history(t) % history function for t <= 0
  s = ones(4,1);
end
%-------------------------------------------

在这里插入图片描述

Ref: 时滞微分方程 — 示例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188839.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js-函数的prototype

    js-函数的prototypeDockerfile

    2022年7月22日
    8
  • Java设计模式之结构型:组合模式

    Java设计模式之结构型:组合模式

    2021年10月4日
    35
  • 机器学习之支持向量回归(SVR)

    机器学习之支持向量回归(SVR)简介支持向量机(SupportVectorMachine)是由Vapnik等人于1995年提出来的,之后随着统计理论的发展,支持向量机SVM也逐渐受到了各领域研究者的关注,在很短的时间就得到了很广泛的应用。支持向量机是被公认的比较优秀的分类模型。同时,在支持向量机的发展过程中,其理论方面的研究得到了同步的发展,为支持向量机的研究提供了强有力的理论支撑。本实训项目主要围绕支持向量机的原理和技术进行介绍,并基于实际案例进行实战实训。线性支持向量机#encoding=utf8fromsk

    2022年6月3日
    26
  • 基于特征的图像拼接算法_图像拼接算法原理

    基于特征的图像拼接算法_图像拼接算法原理目录APAP算法思路几个问题SVD在最小二乘中的应用DLT求单应性矩阵HMovingDLT求局部单应性矩阵实现的小细节文献图像拼接首先通过一些手段(标定、SIFT等特征点、其他传感器等)获取图像间的对应关系(2D-2D)。这个对应关系可以用单应性矩阵HHH(也称透视变换)描述[x′y′w′]=[h00h01h02h10h11h12h20h21h22][xyw]=H[xyw](1)\begin{aligned}\left[\begin{matrix}x’\\y’\\w’\end{matrix}\ri

    2022年9月22日
    1
  • TranslateMessage和DispatchMessage作用[通俗易懂]

    TranslateMessage和DispatchMessage作用[通俗易懂]PostMessage是将消息放入到窗体的消息队列中,窗体过程需要等待一段时间,以便从队列中取出了消息之后,才处理消息SendMessage不将消息放入消息队列,而只是把直接让窗体过程处理这个消息,所以消息一般能立刻响应。TranslateMessage函数是将消息转化成某一个,或更多的消息,比如,当消息循环接收一个WM_KEYDOWN消息时,如果用户按下了字母键,那么Translat

    2022年9月4日
    2
  • Maven 菜鸟教程 3 怎样启动web项目

    Maven 菜鸟教程 3 怎样启动web项目方案1:dos运行运行cmd输入mvnjetty:runjetty插件版本先在pom.xml添加jetty插件jdk7可以使用jetty插件7.1.0.RC1jdk8要使用高版本插件,如8.1.16.v20140903org.mortbay.jetty

    2022年9月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号