Python 符号系统线性化

Python Linearization with Symbolic System

因此,我正在尝试将我的简单符号系统线性化,该系统具有非线性输出方程和线性状态方程。

我想弄清楚如何更改我的输入 u 的标称值。也就是说,我想设置 u0。我想出了如何设置状态向量的标称值,我想,如下。

c_e = Variable('c_e')
c_2 = Variable('c_2')
u   = Variable('u')

x = [c_e, c_2]

sys = SymbolicVectorSystem(state = x, input = [u], dynamics = f(x, u), output = g(x))

context = sys.CreateDefaultContext()
context.get_continuous_state_vector().SetAtIndex(0, 10**-6)
linear_sys = Linearize(sys, context)

我目前收到输入端口未连接的错误,但我不确定这是什么意思。我应该怎么做才能修复这个错误,并设置我的标称点?

RuntimeError: InputPort::Eval(): required InputPort[0] (u0) of System ::_ (SymbolicVectorSystem<double>) is not connected

错误消息为您指明了正确的方向。要使具有状态和输入的系统线性化,您不仅需要指定标称状态 (x0),还需要指定标称输入 (u0)。您需要在上下文中进行设置。

您已经设置了标称状态,但需要像

这样的行
context.FixInputPort(0, [0])

指定标称输入。

(特定的错误消息是由于调用系统动态的线性化方法,需要评估输入端口...失败)