首页 > 其他分享 >数值计算(1) --求解连续微分系统和混沌系统

数值计算(1) --求解连续微分系统和混沌系统

时间:2022-09-28 13:00:54浏览次数:63  
标签:Simulink 模块 求解 -- 系统 微分 dx 微分方程 yout

前言

微分系统在工程项目中很常见,通过物理建模之后,基本都需要求解微分方程得到其结果,混沌系统属于特殊的一类微分系统,在某些项目上也很常见,同时可以引申出分岔图、李雅普诺夫指数谱、相图、庞加莱截面等,本文探讨通过matlab常见的微分求解函数和simulink求解器来实现计算。

关键字:微分系统,混沌系统,Simulink


正文



1、常微分方程(Lorenze混沌系统)


数值计算(1) --求解连续微分系统和混沌系统_工程项目



方法1:m文件实现

x0=[0;0;1e-3]; %设定初始值[t,x]=ode45(@lorenzfun,[0,100],x0); %调用函数ode45求解,figure(1)plot(t,x)figure(2)plot3(x(:,1),x(:,2),x(:,3))



function dx=lorenzfun(t,x)% 输入微分方程a=10;c=28;b=8/3;dx=zeros(3,1);dx(1)=-b*x(1)+x(2)*x(3);dx(2)=-a*x(2)+10*x(3);dx(3)=-x(1)*x(2)+c*x(2)-x(3);



结果如图

数值计算(1) --求解连续微分系统和混沌系统_工程项目_02



 

方法2:Simulink模块实现

数值计算(1) --求解连续微分系统和混沌系统_建模_03



其中三个积分模块的初始值设置与exam1相同,仿真时长为100s。精度设置:Simulation--Configuration Parameters—Relative tolerance, 1e-3改为1e-5(试试不作此修改的结果比较)。运行后双击示波器scope后可看到。

数值计算(1) --求解连续微分系统和混沌系统_工程项目_04



在matlab命令窗口输入画图命令:

figureplot(tout,yout)figureplot3(yout(:,2),yout(:,3),yout(:,1))



数值计算(1) --求解连续微分系统和混沌系统_工程项目_05



方法3:simulink向量模块

在Fcn模块里面分别定义好3组微分方程,最后进行积分求解即可

数值计算(1) --求解连续微分系统和混沌系统_调用函数_06




2、常时滞微分方程

数值计算(1) --求解连续微分系统和混沌系统_工程项目_07



方法1:m文件需调用dde23来求解

sol = dde23('exam1f',[1, 0.2],ones(3,1),[0, 5]);plot(sol.x,sol.y);title('Example 2')xlabel('time t');ylabel('y(t)');


function v = exam1f(t,y,Z)ylag1 = Z(:,1);ylag2 = Z(:,2);v = zeros(3,1);v(1) = ylag1(1);v(2) = ylag1(1) + ylag2(2);v(3) = y(2);



数值计算(1) --求解连续微分系统和混沌系统_工程项目_08



方法2:Simulink中S函数来实现

数值计算(1) --求解连续微分系统和混沌系统_建模_09


注:用Simulink中S函数求解时滞微分方程的核心思想在于:将时滞变量作为S函数的外部输入,这个需要通过transport delay模块实现。


延申思考

1、在求解微分方程后如何得到分叉图?

Tips:系统单参数分岔图的计算方法:最大值法和Poincare截面法,最大值法最为简便,对系统微分方程(组)进行求解,对求解的结果用getmax函数进行取点,并绘图即可。

标签:Simulink,模块,求解,--,系统,微分,dx,微分方程,yout
From: https://blog.51cto.com/domi/5719172

相关文章

  • CATIA V5-6R2021软件安装包和安装教程
    CATIAV5-6R2021软件简介:CATIAV5-6R2021是一款由法国达索公司发行的CAD/CAE/CAM一休化软件,它集机械设计、工程分析和仿真、数控加工、CATweb网络应用解决方案于一身,包括完......
  • Vue3知识点之数据侦测
    Vue的核心之一就是响应式系统,通过侦测数据的变化,来驱动更新视图。实现可响应对象的方式通过可响应对象,实现对数据的侦测,从而告知外界数据变化。实现可响应对象的方式:ge......
  • 成本低,使用灵活!华为云OBS助力企业高效解决数据存储问题
    随着数据中心以及物联网和移动设备的快速发展,我们已经来到一个信息爆炸的时代,海量数据、图片、视频以及文件等,给企业存储带来了不小的压力。而如果购买传统的存储设备,高昂的......
  • java面向对象程序设计
    一:面向对象的优点1.与人类的思维习惯一致2.信息隐藏,提高了程序的可维护性和安全性3.提高了程序的可重要性定义:抽象是从众多的事务中抽取出共同的、本质性的特征,而舍弃......
  • (转载)【RocketMQ 课程笔记】17.消费者基于Tag实现消息过滤
    消费者基于Tag实现消息过滤在发送消息时,需要设置消息的“标记Tag”,Tag用于说明消息的某项特征,消费者可以根据这个特征决定是否接收这些消息。消息发送者com.itlaoqi.roc......
  • while循环的使用
     ......
  • python装饰器
    1.1python装饰器装饰器(Decorators)是Python的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短。python的装饰器本质上是一个P......
  • Raft协议
      算法基础选举和日志复制安全性节点变更 第一篇:《解读Raft(一算法基础)》 什么是RAFT分布式系统除了提升整个体统的性能外还有一个重要特征就是提......
  • docker出现Error response from daemon: driver failed programming external connect
    1.出现了如下问题点击查看代码docker:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointtomcat01(00028237b8dd7b21dbce7......
  • 幸运的袋子 附加动图演示!
    幸运的袋子_牛客题霸_牛客网(nowcoder.com)厄运的袋子 用到了深度遍历 递归回溯法这里假设一个例子: 1112234578因为要确认是否辛运,并且保持这次不幸运,......