我需要测量我的RLC的入场许可。有没有聪明的方法呢?我知道有阻抗测量的特殊模块,我可以利用它吗?
答案 0 :(得分:3)
首先,我想重申Ander Biguri的建议 在他的评论中。在Stack Overflow上发布之前,你应该试试 通过自己的方式解决问题(使用documentation),如果你没有成功,那么发布一个 问题提供更多细节。这样更多的用户将能够 帮助你,你会得到更好的答案。
这是一种不使用阻抗测量模块的方法:
首先,我使用 Simscape Power Systems专业技术基础块库(powerlib
)中的以下块创建了simulink
RLC电路模型:
除交流电压源模块和串联RLC支路模块外,电流测量模块和Powergui模块是模型工作所必需的。
由于您没有为电路组件提供任何特定值,我使用的是默认值。
然后我将模型命名为my_rlc
并将其保存在我的工作目录中。
最后,我创建了以下脚本(受this example启发),该脚本使用power_analyze
函数来获取电路的state-space model(my_rlc
)可以获得准入。由于RLC电路的行为根据频率而变化,因此我使用bode
函数来获得跨越10 Hz至10 kHz的频率范围的导纳的幅度和相位。
% Analyze electric circuit.
% Obtain the matrices (A,B,C,D) of the state-space model of the circuit.
[A, B, C, D] = power_analyze('my_rlc');
% Generate logarithmically spaced vector of frequency values.
% 500 points between decades 10^1 and 10^4.
freq = logspace(1, 4, 500);
% Vector of angular frequency values.
w = 2*pi*freq;
% Magnitude and phase of frequency response.
% Ymag: Admittance magnitude.
% Yphase: Admittance phase.
[Ymag, Yphase] = bode(A, B, C, D, 1, w);
% Plot Admittance magnitude.
subplot(2, 1, 1);
loglog(freq, Ymag);
grid on;
title('RLC Circuit');
xlabel('Frequency [Hz]');
ylabel('Admittance [S]');
% Plot Admittance phase.
subplot(2, 1, 2);
semilogx(freq, Yphase);
xlabel('Frequency [Hz]');
ylabel('Phase [deg]');
grid on;
结果如下:
如果您想了解有关在MATLAB
中使用状态空间模型的更多信息,建议您阅读:What Are State-Space Models?