Matlab电路仿真笔记(4)

2019-05-24 21:54

powerl_extra的两个Fourier(傅里叶)模块用于分析电流的基本成分和直流成分。按上图建立仿真模型,为实现i=f(?),在查表模块中指定下列两个向量。

Vector of input values (flux) [-1.25 -1 1 1.25 ] *(120*sqrt(2)/(2π*60)) Vector of output values (current) [-2 -1 1 2]*(120*sqrt(2)/(4π*60)) 将你的电路保存为circuit7,为两个电源设置下面的参数: AC source

? Peak amplitude 120*sqrt(2) ? Phase 90 degrees ? Frequency 60 Hz DC source

? Amplitude0 V

调整仿真时间为1.5s,选择ode33tb积分算法作为默认参数,并开始仿真。仿真结果与计算一致。

2.4.3.定制自己的非线性模型

simulink提供了一种面板(mask)工具,来为你自定的模型创建对话框,你可以一个指定下列几个提示和变量:

Nominal voltage (Volts rms):Vnom Nominal frequency (Hz):Fnom Unsaturated inductance (H):L

Saturation characteristic [i1(pu) phi1(pu); i2 phi2; ...]:sat 最终的结果如下图所示:

下列代码在模板初始化时准备了两个向量,Current_vect 和 Flux_vect,以用于look_up table模块。

% Define base current and Flux for pu system I_base = Vnom*sqrt(2)/(L*2*pi*fnom); Phi_base = Vnom*sqrt(2)/(2*pi*fnom);

% Check first two points of the saturation characteristic if ~all(all(sat(1:2,:)==[0 0; 1 1])),

h=errordlg('The first two points of the characteristic must be [0 0; 1 1]','Error'); uiwait(h);

end

% Complete negative part of saturation characteristic [npoints,ncol]=size(sat); sat1=[sat ; -sat(2:npoints,:)]; sat1=sort(sat1);

% Current vector (A) and flux vector (V.s) Current_vect=sat1(:,1)*I_base;

Flux_vect=sat1(:,2)*Phi_base;

打开查表模块对话框,输入如下两个变量名:

Vector of input values (flux) Flux_vect Vector of output values (current) Current_vect 关闭对话框,重新开始仿真,可得到同样的系统。

2.4.4.非线性电阻的建模

非线性电阻的建模与非线性电感的建模类似。

一个典型的例子是金属氧化物电阻器具有下列伏安特征:

?vi?I0??V?0?? ???

这里 v, i =瞬时电压和电流 Vo =保护电压 Io =参考电流

α =非线性特征指数 (典型值在10-50之间) 下图显示了非线性电阻的应用。

上面的方程是一个代数方程,其在状态空间中是一个代数循环,尽管simulink也能完成循环运算,但是会减低仿真速度,为此,通常在不改变原始非线性特征的前提下在中间加入一个一阶传递函数环节1/(1+Ts),通常取T为较小的值,如(T=0.01us)。使用工具封装该非线性电阻模块的参数。

2.4.5.创建自己的库

simpowersystems允许用户创建自己的模块库,要创建自己的模块库,选择“file >new library”,一个新的simulink:Untitled的窗口打开了。将你创建的非线性电感模块和非线性电阻模块拷贝到该窗口中,保持该库就可用了。

2.4.6.将你的模型与别的非线性模型连接起来

应当考虑电流源不能与电流源串联,电流源不能与纯电感串联,若遇到此种情况,可用考虑在电流源旁边并联一个极大的电阻。

2.4.7.使用模型构建命令创建模型

通常,不建议这样做,有兴趣的,可以参考Matlab相关帮助,下面给出一个例子: add_block('powerlib/Elements/Pi Section Line','Mymodel/Block1'); add_block('powerlib/Measurements/Voltage Measurement', 'Mymodel/Block2');

set_param('Mymodel/Block1','position',[340,84,420,106]); set_param('Mymodel/Block2','position',[520,183,545,207]);

Block1PortHandles = get_param('Mymodel/Block1','PortHandles'); Block2PortHandles = get_param('Mymodel/Block2','PortHandles');

add_line('Mymodel',Block1PortHandles.LConn(1), Block2PortHandles.LConn(1));

add_line('Mymodel',Block1PortHandles.RConn(1), Block2PortHandles.LConn(2));

writeDocFeedbackSurveyLink();

3.附录 3.1.常用模块

3.1.1.阻抗测量模块(impedance mesurement block)

(1)描述

阻抗测量模块用于测量线性电路中的两个节点间的阻抗,两节点间阻抗是频率的函数。将其输入分别接到电路上的两个节点,便可以使用powergui的分析工具计算两节点间的阻抗了。该模块不改变电路的特性。

3.1.2.断路器(breaker)

(1)描述

断路器实现了一种可以通过外部或内部控制电路开、关时刻的电路。该模型包含了一个串联RC缓冲器电路,可以把它连接到电路断路器上。如果断路器刚好与感性电路、开路电路或电流源串联,就必须使RC缓冲器电路连到其中。

当断路器被设为外部控制模式(external control mode),一个simulink输入就会出现在断路器的图标上,控制信号必须为0或1(0表示开关断开,1表示开关闭合)。 当断路器设为内部控制模式(internal control mode),开关时刻由其参数设置对话框设定。

当断路器处于闭合状态,其等效于一个电阻Ron。Ron可以被设为很小的值(典型值为10m欧),从而与外电阻比较而言可以忽略。当断路器处于断开状态,其等效于一个无穷大的电阻。

灭弧过程是通过在控制信号由1变为0后的第一个电流为0的时刻断开断路器来模拟的。条件如下表所示。 操作 断路器闭合 条件 控制信号变为1(对离散系统,控制信号保持为1的时间应至少为采样周期的3倍) 控制信号变为0 流过断路器的电流为0 断路器断开 注:断路器模块对直流电路可能不合适。对于直流电路,推荐使用理想开关作为开关元器件。


Matlab电路仿真笔记(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:18秋季青海电大8887民族与宗教作业一二三及考试参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: