matlab ode45 检索参数

2024-02-24

我正在 Matlab 中试验 ode45。我已经学会了如何将参数传递给 ode 函数,但我仍然有一个问题。假设我想计算汽车的轨迹(速度曲线)并且我有一个函数,例如getAcceleration,这给了我汽车的加速度以及正确的档位:[acceleration, gear] = getAcceleration(speed,modelStructure) where modelStructure代表汽车的型号。

颂函数为:

function [dy] = car(t,y,modelStructure)

dy           = zeros(2,1);
dy(1)        = y(2);
[dy(2),gear] = getAcceleration(y(1),modelStructure);

然后我这样调用Ode45积分器:

tInit = 0;
tEnd  = 5,
[t,y] = ode45(@car,[tInit tEnd], [speedInitial,accelerationInitial],options,modelStructure);

问题是:如何获得矢量存储齿轮?我应该有类似的东西吗[t,y,gear]=ode45(....)或者应该gear位于y vector?


我一直在编写代码并使用事件函数,现在我可以获取汽车“齿轮”的变化(作为事件)。 现在我有一个与相同代码相关的新问题。 想象一下,当我评估 de 'dy' 向量时,我能够获得进一步的 Z 值,这让我能够大幅加快调用加速度计算 (getAcceleration) 的速度:

function [dy] = car(t,y,modelStructure)

dy           = zeros(2,1);
dy(1)        = y(2);
[dy(2),Z(t)] = getAcceleration(y(1),modelStructure,Z(t-1)); 

并假设我也能够计算初始条件下的 Z 。问题是我无法计算 Z 导数。

有没有办法在不积分的情况下传递Z值抛出步进?

多谢你们。


首先:为什么微分方程的初始值为初速度(speedInitial)和初始加速度(accelerationInitial)?这意味着微分方程car将计算加速度(y(1))和混蛋(y(2)),加速度的时间导数,在每个时间t。这似乎不正确......我想说初始值应该是初始位置(positionInitial)和初速度(speedInitial)。但是,我不知道你的型号,我可能是错的。

现在,得到gear在直接解决方案中:你不能,没有黑客就不行ode45。这也是符合逻辑的;你也无法得到dy任何时候都直接,可以吗?事实并非如此ode45已设置。

我在这里看到有两种出路:

全局变量

免责声明

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab ode45 检索参数 的相关文章

  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • 命令 A(~A) 在 matlab 中的真正作用是什么

    我一直在寻找找到矩阵非零最小值的最有效方法 并在论坛上找到了这个 设数据为矩阵A A A nan minNonZero min A 这是非常短且高效的 至少在代码行数方面 但我不明白当我们这样做时会发生什么 我找不到任何关于此的文档 因为它
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • JasperReports Server 参数依赖关系

    我有一份有两个输入参数的报告 两者都有一个保管箱 我可以在其中选择值 假设参数A 和参数B 是否可以使 ParameterB 依赖于 ParameterA 例如 如果我在 ParameterS 中选择汽车品牌 Honda 我应该只能看到 H
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • C 中函数参数中的固定数组或指针之间的区别?

    之间有区别吗 void draw line float p0 2 float p1 2 float color 4 和这个 void draw line float p0 float p1 float color in C 项目清单 C 和
  • 将 Matlab 数组移植到 C/C++

    我正在将 matlab 程序移植到 C C 我有几个问题 但最重要的问题之一是 Matlab 将任何维度的数组都视为相同 假设我们有一个这样的函数 function result f A B C result A 2 B C A B and
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca
  • 我应该使用什么函数签名来返回对可能不存在的对象的引用?

    我正在用 C 编写一个简单的容器类 类似于存储由键索引的对象的映射 我想提供一个访问器函数 例如 V getValue const K key 我在哪里返回参考到值 但我也想处理键 值不存在的情况 并能够向用户返回一些状态 可能有一些原因导
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 如何在VB函数中添加可选参数/默认值参数?

    如何在 Visual Basic 中创建一个包含可选参数的方法 Use the Optional关键字并提供默认值 可选参数必须是最后定义的参数 以避免创建不明确的函数签名 Sub MyMethod ByVal Param1 As Stri
  • 初始化参数时会发生什么? C++

    void foo int i int k 7 cout lt lt k int main foo 1 2 k将输出2 我的问题是 foo 按什么顺序初始化参数并获取参数 foo 得到 2 的过程是什么 谢谢 void foo int i i
  • 优先连接,Matlab 中的复杂网络

    大家好 我现在正在 MATLAB 中研究优先附件模型 在理解以下内容时遇到一些困难 假设我一开始有 4 个节点 连接如下 time 0 1 lt gt 2 3 lt gt 4 在下一个时间步骤中 我添加一个节点和 4 个连接 然后添加另一个
  • 2D 网格的纹理贴图

    我有一组点 x y meshgrid 1 N 1 M 在常规二维上定义 N x M网格 我还有另一组要点 u v 这是原始网格的一些变形 即 u v f x y 但是我没有实际的f导致变形 如何将纹理映射到由定义的 变形 网格u v 即 给
  • 在矩阵中找到叉的最快方法

    定义 A i j 1 是十字的中点 如果元素A i 1 j 1A i 1 j 1A i j 1 1A i j 1 1 这些元素和中点一起形成矩阵 A 中的十字 其中 A 至少是一个 3 3 矩阵 并且i j 0 假设上图是 8 8 矩阵 A
  • 如何在Matlab中将图像从笛卡尔坐标更改为极坐标?

    我正在尝试将图像的像素从 x y 坐标转换为极坐标 但我遇到了问题 因为我想自己编写该函数 这是我到目前为止所做的代码 function newImage PolarCartRot read and show the image image
  • C#中out参数有什么用

    你能告诉我具体的用途是什么吗out范围 相关问题 ref 和 out 和有什么不一样 C https stackoverflow com questions 516882 what is the difference between ref
  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255

随机推荐

  • Git:如何重写远程历史记录?

    一位同事意外提交了一个大型二进制文件 该文件与源代码管理无关 从而导致存储库异常大 然后 他将此提交推送到公共服务器 从那时起 就有了许多其他提交和推送 我正在寻找一种方法来撤消该提交 或者只是从远程删除二进制文件 以便存储库恢复其通常的大
  • 没有匹配的函数可用于调用“ ”

    我被要求实现该功能 static double distanta const Complex const Complex 返回两个复数之间的距离 函数的定义位于 Complex 类内部 我已经这样实现了 double Complex dis
  • 有谁知道 LocationManager 上的 Android addProximityAlert 是否耗电

    我基本上只是想添加大约 20 个 有时是 80 个接近警报 且半径约为 500 米 且没有时间限制 只是想知道这样做是否会很快耗尽电池电量 减小半径也会有什么不同吗 这肯定会很快耗尽你的电池 在任何情况下 您都不想设置超过几个接近警报 您描
  • 在自定义AuthorizeAttribute中获取Post请求参数

    我在用this https stackoverflow com a 19050773 384554从输入流中获取请求参数 POST 在请求正文中使用 JSON 在我的onAuthorize被覆盖的函数AuthorizeAttribute 它
  • 与证书作斗争:私钥未成功获取访问权限

    我在为开发人员提供许多服务器和个人电脑的公司工作 服务器是win2003 开发PC是Windows XP 在名为 preiis01 的服务器 Win2003 中 在预生产环境中 公司其他人使用任何其他用户 对我来说未知用户 安装客户端证书用
  • 如何发出 jsonp 请求

    我需要做一些跨站点脚本编写 下面的代码块包含 jsonp 的方法 该方法就像失败一样返回 但是当我将其更改为 get 请求时 我就成功了 我需要能够使用 jsonp 方法成功响应 可以排除以下情况 响应是有效的 json 并且此参数位于 u
  • 同一 .Net 6 项目中多个 nuget 包中同一 DLL 的不同版本

    我有一个名为 Foundation dll 的基本 nuget 库 我还有另外 5 个 nuget 库 它们使用不同版本的 Foundation dll 一切都在一个项目中 我的问题是 当我构建一个项目时 VS Net 显然只会在 bin
  • webpack 4 模块可以配置为允许 Jasmine 监视其成员吗?

    我无法让我的测试 jasmine 测试套件与 webpack 4 一起运行 升级 webpack 后 几乎每个测试都会出现以下错误 Error
  • C# 中泛型类型的命名空间范围别名

    让我们看一个下面的例子 public class X public class Y public class Z public delegate IDictionary
  • 用 C# 下载 HTML 页面

    我正在用 C 编写一个应用程序 有没有办法只给我的程序提供 URL 来下载 HTML 页面 例如 我的程序将获取 URL www google com 并下载 HTML 页面 Use WebClient DownloadString htt
  • Django模型子类中相同的字段,不同的选择

    是否可以使用不同的choices对于模型的子类 下面的代码应该可以给你一个想法 class Clothing models Model size models CharField max length 1 colour models Cha
  • Play 控制台:在哪里可以找到运行我的应用程序的设备列表?

    我正在寻找一种方法来导出当前安装了 Android 应用程序的设备列表 这可能吗 如果可以 如何实现 玩游戏时 转到您的应用程序页面 在左侧边栏上 选择统计 打开 添加新指标 或编辑现有指标 下拉列表 选择设备 gt 安装基础 gt 所有设
  • 用Java发送/接收电子邮件

    我想通过 Java 发送电子邮件 任何电子邮件 如来自 yahoo gmail 或任何其他部分 我尝试了代码here http www tutorialspoint com java java sending email htm 但是我得到
  • Swift - Objective-C 加载类方法?

    在 Objective C 中 NSObject有一个名为的类方法load当类第一次加载时被调用 Swift 中的等价物是什么 implementation MyClass void load self registerClass end
  • Sl 4、MVVM:在TextBlock中使用Inlines,如何绑定到ViewModel?

    我们通过向 TextBlock Inlines 添加一系列 System Windows Documents Run 对象来格式化 TextBlock 的文本 我们如何绑定ViewModel中的格式化文本以显示在TextBlock中 感谢您
  • 如何使用 Jackson API(列表内的列表)迭代 JSON 响应?

    如何使用 Jackson API 迭代 Java 中的 JSON 响应 换句话说 如果响应有一个列表 并且该列表内有另一个列表 在本例中称为 天气 那么我如何获取温度 这是我试图迭代的示例 message like cod 200 coun
  • JBOSS - 计时器的先前执行仍在进行中,计时器状态为 IN_TIMEOUT

    我正在使用 JBOSS EAP 6 4 我使用 EJB Shedule 注释在 ScedulerBean 中安排了一些调度程序 如下所示 这里的ShedulerBean依赖于StartupBean Singleton DependsOn S
  • 实体框架与 NHibernate - 性能

    我希望在我们的系统中实现 ORM 我们目前有许多表 其中有大量可怕的数据和存储过程 我听说使用 ORM 会降低系统速度 有谁知道哪种 ORM 使用 C 代码中创建的查询并映射到存储过程在速度和性能方面更好 Thanks EDIT 该项目将使
  • C++ 迭代器对向量中的某些元素进行迭代

    如果这是一个微不足道的问题 请原谅我 我只是在学习 C 并试图理解某些概念 尤其是当涉及到迭代器时 我完全迷失了 假设我有一个表示某种数据结构的自定义类 其成员之一是整数向量 我想为该类编写一个双向迭代器 它仅输出向量中的偶数 有没有简单且
  • matlab ode45 检索参数

    我正在 Matlab 中试验 ode45 我已经学会了如何将参数传递给 ode 函数 但我仍然有一个问题 假设我想计算汽车的轨迹 速度曲线 并且我有一个函数 例如getAcceleration 这给了我汽车的加速度以及正确的档位 accel