1. 程式人生 > >matlab Time-domain analysis 漸進式或者實時獲取仿真值

matlab Time-domain analysis 漸進式或者實時獲取仿真值

values 漸進 control app any for 系統 具體實現 space

首先準備一個傳遞函數sys,

然後使用lsim(sys,u,t,x0)函數(通用的時序分析的函數)

u: The input u is an array having as many rows as time samples (length(t)) and as many columns as system inputs.

x0:further specifies an initial condition x0 for the system states. This syntax applies only when sys is a state-space model. x0 is a vector whose entries are the initial values of the corresponding states of sys

.

叠代使用的關鍵是使用上一步的結果,對x0進行賦值

具體實現:使用python環境,使用 control庫。

關鍵代碼片段如下:

1    #u是前文設置的系統輸入,t是時序
2 lastValue=0
3 result=[]
4 for i in range(len(t) - 1):
5     y= lsim(T1, U=u[i:i + 2], T=t[i:i + 2], X0=lastValue)
6     lastValue = y[2][1]
7     result.append(y[0][1])

註意,y是三個數組的元組形式 y=(yout, T ,xout) 。X0傳遞的是xout。

matlab Time-domain analysis 漸進式或者實時獲取仿真值