Simulink中如何给状态变量是(微分方程)x1、x2、x3赋初值 80
已知一个用状态方程描述的系统,现在用Simulink去仿真。状态变量都是有初值的,就是一般在t=0时刻该状态的值,这个在Simulink中怎么实现呢?明白一点举个例子比如...
已知一个用状态方程描述的系统,现在用Simulink去仿真。状态变量都是有初值的,就是一般在t=0时刻该状态的值,这个在Simulink中怎么实现呢?明白一点举个例子比如一个系统的方程:状态方程 dx1=3*x2 dx2=x3 dx3=-x3-2*x2;输出x1、x2、x3状态变量是x1、x2、x3。我如果希望仿真开始时的状态变量x1=10、x2=3、x3=6,这个怎么实现? 就是如何在simulimk中设置微分方程的初始值
展开
1个回答
展开全部
你是打算用什么模块实现?
就你举的例子而言,属于线性定常微分方程组,可以用State-Space模块(在Continuous库中),设置模块的Initial conditions即可。
但如果是非线性微分方程或线性时变系统,就无法使用State-Space模块实现,一般的做法是用Integrator模块(同样位于Continuous库)。设置初值可以通过两种方式:默认的是内部方式(Initial condition source设为internal),设置Initial condition;另一种是外部方式(Initial condition source设为external),此时会额外显示一个输入端口,用于指定积分器的初值。当然,前面说到的线性定常系统也可以用这种方式实现。
如果用更复杂的方式(比如S函数)实现,就不是几句话能说清楚的了。
就你举的例子而言,属于线性定常微分方程组,可以用State-Space模块(在Continuous库中),设置模块的Initial conditions即可。
但如果是非线性微分方程或线性时变系统,就无法使用State-Space模块实现,一般的做法是用Integrator模块(同样位于Continuous库)。设置初值可以通过两种方式:默认的是内部方式(Initial condition source设为internal),设置Initial condition;另一种是外部方式(Initial condition source设为external),此时会额外显示一个输入端口,用于指定积分器的初值。当然,前面说到的线性定常系统也可以用这种方式实现。
如果用更复杂的方式(比如S函数)实现,就不是几句话能说清楚的了。
追问
我试过不行呀
追答
怎么会不行呢?你遇到了什么问题?
请把具体现象说明一下,或者把模型贴出来(可以用网盘分享),我再具体分析。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询