czh717的个人博客分享 http://blog.sciencenet.cn/u/czh717

博文

匿名函数描述和ODE45求解微分方程

已有 4422 次阅读 2019-1-6 15:51 |个人分类:YALMIP|系统分类:科研笔记

传统的连续微分方程求解是通过手动转为差分方程,然后for语句求解。而当考虑系统的传感采样和事件触发传输时,控制系统的呈现多维时间尺度。而以最小时间尺度的微分方程对象作为基准时间单位时,需要设置多个时间变量,和使用嵌套for循环以及变量赋值,比较麻烦。因此,需要使用ODE45函数对微分方程求解以简化控制系统仿真流程。

首先,对微分方程进行描述。方法1:通过建立.m文件的方式,建立函数。但对于多智能体系统,需要多个m文件,不便管理。本文推荐使用匿名函数语句对微分方程组进行描述。使用匿名函数的好处是不必为仅需要简短定义的函数编辑和维护文件。

   F18_1=@(~,x)[A(1,1)*x(1)+A(1,2)*x(2)+B(1,1)*u1(1,k)+B(1,2)*u1(2,k);

                        A(2,1)*x(1)+A(2,2)*x(2)+B(2,1)*u1(1,k)+B(2,2)*u1(2,k); ];%

    [~,y1]=ode45(F18_1,[0 h], x1(:,k));

    x1(:,k+1)=[y1(length(y1),1);y1(length(y1),2)];

 https://ww2.mathworks.cn/help/matlab/matlab_prog/anonymous-functions.html

变量 F18_1 是一个函数句柄。@ 运算符创建句柄,@ 运算符后面的圆括号 () 包括函数的输入参数。再者,注意输出[~,y1]中为了减少使用变量,用‘~’表示.






https://blog.sciencenet.cn/blog-3317894-1155623.html

上一篇:mosek安装
下一篇:word插件Jabref实现文献插入和自动更新
收藏 IP: 218.2.216.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-9-19 07:01

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部