如何在Simulink Matlab中测量导纳?

时间:2017-01-25 19:01:23

标签: matlab simulation simulink

我需要测量我的RLC的入场许可。有没有聪明的方法呢?我知道有阻抗测量的特殊模块,我可以利用它吗?

1 个答案:

答案 0 :(得分:3)

  

首先,我想重申Ander Biguri的建议   在他的评论中。在Stack Overflow上发布之前,你应该试试   通过自己的方式解决问题(使用documentation),如果你没有成功,那么发布一个   问题提供更多细节。这样更多的用户将能够   帮助你,你会得到更好的答案。

这是一种不使用阻抗测量模块的方法:

首先,我使用 Simscape Power Systems专业技术基础块库(powerlib)中的以下块创建了simulink RLC电路模型:

  • 交流电压源
  • 电流测量
  • 系列RLC分会
  • PowerGUI的

除交流电压源模块和串联RLC支路模块外,电流测量模块和Powergui模块是模型工作所必需的。

Simulink model rlc circuit

由于您没有为电路组件提供任何特定值,我使用的是默认值。

然后我将模型命名为my_rlc并将其保存在我的工作目录中。

最后,我创建了以下脚本(受this example启发),该脚本使用power_analyze函数来获取电路的state-space modelmy_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;

结果如下:

RLC circuit: Admittance Magnitude and Phase

如果您想了解有关在MATLAB中使用状态空间模型的更多信息,建议您阅读:What Are State-Space Models?