使用Matlab中的SimScape Electrical基础库进行时间依赖性阻力

时间:2016-12-07 05:00:53

标签: matlab simscape

我正在尝试使用Electrical foundation library blocks在SimScape中建模大型电阻和电容网络。其中一个电阻需要根据时间改变其电阻,如下所示:

while ((inValue = inFile.ReadLine()) != null) {
    for (int letter = 'A'; letter < 'z'; letter++)
    {
        if (letter >= 'A' && letter <= 'M')
            inValue = inValue.Replace((char)letter, (char)    (letter + 13));
        else if (letter >= 'N' && letter <= 'Z')
            inValue = inValue.Replace((char)letter, (char)(letter - 13));
        else if (letter >= 'a' && letter <= 'm')
            inValue = inValue.Replace((char)letter, (char)(letter + 13));
        else if (letter >= 'n' && letter <= 'z')
            inValue = inValue.Replace((char)letter, (char)(letter - 13));
    }
}

其中R是电阻,R0是初始电阻,delR是我希望电阻减小而t是时间的因素。我无法弄清楚如何将时间差异完全纳入simscape模型(因为我似乎无法访问时间变量)。有一个可变电阻块可用,但我也面临同样的问题,因为它似乎是建立在电压变化。我正在使用Matlab 2016a。

1 个答案:

答案 0 :(得分:0)

你可以:

  • 将可变电阻块与时钟模块结合使用以实现此目的。
  • 构建自己的块(一个好的起点是可变阻力的源代码)。并使用time关键字:

https://www.mathworks.com/help/physmod/simscape/lang/time.html

您的等式看起来像:

让 R = R0 *(1-delR *(1-exp(time)); 在 v == R * i;