使用带有函数的equationToMatrix(因变量)

时间:2017-09-08 12:36:13

标签: matlab symbolic-math state-space

我正在尝试使用 DateTime fromDate = DateTime.UtcNow; fromDate = fromDate.AddDays(-1); string fromDateStr = fromDate.ToString("o"); // set a filter for the envelopes we want returned using the fromDate return _EnvelopeOptions = new EnvelopesApi.ListStatusChangesOptions() { fromDate = fromDateStr, toDate = DateTime.UtcNow.ToString("o"), status = "completed" }; 函数找到倒置(单片)摆的状态空间模型。我正在使用以下代码:

equationsToMatrix

MATLAB抛出以下错误:

  

使用%Declaration of Variables syms x(t) t M m ddx(t) l th(t) ddth(t) dth(t) b1 b2 dx(t) F(t) I %Nonlinear Equations eqn1=eq((I+m*l^2)*ddth+m*l*cos(th)*ddx-m*g*l*sin(th)+b2*dth,0) eqn2=eq((M+m)*ddx+m*l*cos(th)*ddth-m*l*sin(th)*(dth)^2+b1*dx,F) %Linear Equations eqn1L=subs (eqn1,[cos(th),sin(th(t)),dth(t)^2],[1,th(t),0]) eqn2L=subs (eqn2,[cos(th),sin(th(t)),dth(t)^2],[1,th(t),0]) %Finding State Space Model [A,B]=equationsToMatrix([eqn2L,eqn1L],[x(t),dx(t),th(t),dth(t)]) C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]; D=[0;0;0;0]; sys = ss(A,B,C,D) > sym.getEqnsVars时出错(第92行)
  第二个参数必须是符号变量的向量。

     

checkVariables中的错误(第54行)
  sym.getEqnsVars

     

checkVariables(vars);中的错误(第55行)
     sym/equationsToMatrix

     

[eqns,vars] = sym.getEqnsVars(argv{:});中的错误(第10行)
  Linearization_Test

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

您应该将变量替换为没有时间依赖性的变量:

syms x_ dx_ th_ dth_
X = [x(t),dx(t),th(t),dth(t)];
X_ = [x_,dx_,th_,dth_];
[A,B]=equationsToMatrix(subs([eqn2L,eqn1L], X, X_),X_)