在Simulink中更新值

时间:2017-01-16 04:24:51

标签: matlab simulink

我目前正在研制一个带执行器的航天器机体,并给出以下等式:

J·w_dot = -w^x·J·w + u                                 (1)

其中w^x实际上是3x3矩阵的符号

[  0 -w3  w2 
  w3   0 -w1 
 -w2  w1   0]

通过重新排列(1),我得到w_dot = (-w^x·J·w + u)/J。在这里我面临问题,我需要不断为w_dot更新价值,但我不知道如何。我已经尝试了 Memory 块,但它只每0.2秒更新一次,这对系统来说是不合适的。

这是我目前的设定:

enter image description here

我认为 integrator 块可能是每个周期都要更新的块,因为可以设置初始条件。

1 个答案:

答案 0 :(得分:1)

是的,你的解决方案似乎是正确的;积分器块将使系统成为连续时间,而不是离散时间。这将像Simulink一样准确地输出结果。

您可以通过双击积分器块设置积分器的初始值,将“Initial condition source”设置为“external”,然后连接其他输入或常量块,输出或其他任何你想提供初始值的东西。

顺便说一下,Jinertia tensor吗?在这种情况下,你不能简单地“划分”它;你应该乘以它的倒数(在 Divide 块的选项中将“Matrix”设置为“Multiplication”选项)