首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用zdot函数求解ODE

无法用zdot函数求解ODE
EN

Stack Overflow用户
提问于 2020-08-09 13:16:22
回答 1查看 80关注 0票数 0

我在Scilab中用zdot函数绘制RLC电路有问题。

我已经算出了分析计算:

代码语言:javascript
复制
Vin = ( VR/(s^2*L*C)+ VR/(s*R*C) + VR )   

    // R = 11 Ohm, R = 0.012 F, L = 1.5 H. f - 1e4

在密谋之前,我正试着解决上面的ODE问题,这让我发现

代码语言:javascript
复制
Vin = (s^2*VR + s*VR*(1/R*C) + VR/(L*C)) /s^2 

为了使用zdot函数求解ode,我尝试遵循scilab中的手册:

代码语言:javascript
复制
function zdot=RLCsystem(t, y)
z1 = y(1); z2 = y(2);
// Compute input
Vin = A*sin(2*%pi*f*t);    // A = 1, f = 1e4 Hz
zdot(1) = z2; zdot(2) = (Vin - z1/(L*C) - z2/(R*C)) ;
endfunction

-我不知道s^2在这个代码/方程中的位置

任何建议都会有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-09 14:12:55

这是一个关于数学形式主义的问题。你所说的解和方程是在Laplace空间中表述的。粗略地说,s代表微分运算符,1/s代表积分运算符。在适当的计算中,也涉及到初始值。

因此,用导数表示法编写的ODE是

代码语言:javascript
复制
VR'' + VR'/(R*C) + VR/(L*C) = Vin''

如果状态向量y按递增顺序包含函数值和导数,则s的作用是该向量中的一个移位,或者是对应于s幂的分量的选择。这显然是在代码中完成的。

注意,代码不尊重Vin的二阶导数。正确地说,这必须是

代码语言:javascript
复制
function zdot=RLCsystem(t, y)
z1 = y(1); z2 = y(2);
  // Compute input
  w = 2*%pi*f
  Vin = A*sin(w*t);    // A = 1, f = 1e4 Hz
  D2Vin = -A*w^2*sin(w*t)
  zdot(1) = z2; zdot(2) = (D2Vin - z1/(L*C) - z2/(R*C)) ;
endfunction

以下确认计算中的其他消除可能导致不包含输入电压的导数的一阶系统。

代码语言:javascript
复制
element laws:
  C*VC'=IC, VR = R*IR = VL = L*IL',
cell laws:
  IC = IL+IR, Vin = VC + VR
eliminate flows
  L*IC' = VR + L*IR'
  L*C*(Vin-VR)'' = VR + L/R*VR'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63326804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档