Matlab电路原理应用——计算未知电阻

求电阻,按我现在的理解,至少有求等效电阻和求未知电阻两种类型。

对于编程来说,求等效电阻实质上就是把U和I测量一下,但是求未知电阻就是完全不同的类型了。等效电阻能够建立完整的仿真系统,但是未知电阻根本无法直接建立系统,我想到的办法是首先假设一个电阻值,然后建立系统进行计算,再由系统反馈的量确定这个电阻值不是否符合要求。是一种试错式的求解办法。类似于牛顿二分法。


技术上还是有点困难,参考以下资料:

模块参数的动态交换: (Simulink与 MATLAB的接口)  点击打开链接


只要把图示中的R取值填写为一个变量R,然后在Matlab中设定其值就可以用了~


本来打算在筛选值的时候用二分法之类,但是二分法很可能出很多位小数。。。得进行一些控制。想想这个具体问题及其计算量。直接简单粗暴地一个个试吧。反正速度快。如果要应用到更复杂的问题的话,到时候再说。这种问题的基本策略产生后其实就没问题了。


电路(电阻画得怪怪的。。。):

Matlab电路原理应用——计算未知电阻_第1张图片

代码:

clc
clear all
close all

tic
for R=14:0.1:15
    sim('circuit',1);
    if sum(i)/size(i,1)-0<1e-5
        disp(['The solution is ', num2str(R)]);
        break;
    end
end
toc

结果:

R=14.2 Ohms


提醒:

R =14.2欧姆的时候,i的值实际上是1.9429e-15,一开始没发现这个数这么小,光注意它不是0去了。。。。所以把判断条件也修正了一下。


你可能感兴趣的:(Matlab,matlab)