Matlab软件中的Simlink仿真功能非常强大,下面将介绍如何使用Simlink软件来实现各种数字电路的控制和仿真。首先介绍一下Simlink软件数字电路仿真常用的元器件。
Simlink电路仿真库分为“蓝色”库和“黑色”库。根据笔者Simlink软件的使用经验来看,“蓝色”库里面的电路元器件更偏向于模拟电路仿真,“黑色”库里面的电路元器件更偏向于数字电路仿真。需要注意的是,“蓝色”库和“黑色”库里面的电路元器件不能混用,“蓝色”的电路元器件与“黑色”的电路元器件无法使用导线连接。

图1.1 “蓝色”库和“黑色”库
Matlab版本不同,Simlink电路仿真元器件库位置不太一样。以笔者使用的Matlab R2018a版本为例,电路仿真能用到的电路元器件基本在Simscape的子文件夹下面。
分享一个寻找电路元器件的小技巧,Simlink在模型库中有搜索功能,只需要输入对应元器件的英文名称再挑选一番便能找到自己需要的元器件模型。后面如果对仿真元器件比较熟悉,可以直接在仿真页面双击搜索需要的元器件。
因为笔者更喜欢用“黑色”库来进行数字电路仿真,因此只介绍“黑色”库中的比较常用元器件模型。
(1)电源
交流电压源(AC Voltage Source):可调节频率、初始相位、幅值的交流电压源。
直流电压源(DC Voltage Source):可调节幅值的直流电压源。
(2)电阻/电容/电感
电阻/电容/电感(Series RLC Branch):需要特别说明的是,“黑色”库里面没有单独的电容、电感、电阻元器件,因此我们需要选择Series RLC Branch,在设置中调整为实际需要的元器件。
(3)开关元器件
MOS管(Mosfet)
IGBT管(IGBT或者IGBT/Diode)
二级管(Diode)
以上开关元器件广泛用于各大电路拓扑网络中,需要注意的是,“蓝色”库中有名称一样的元器件,在实际仿真过程中不能混用。
(4)信号测量
电压传感器(Voltage Measurement):测量电压信号。
电流传感器(Current Measurement):测量电流信号。
示波器(Scope):显示、分析各种波形。
(5)其它
POWERGUI:必不可缺,可设置仿真模式,仿真参数。
时钟信号(Clock):仿真时间。
开关(Breaker):不建议使用。此开关在仿真电路有电流经过的情况下无法断开。
理想开关(Ideal Switch):开关(Breaker)的升级版,不存在无法断开的BUG。
线性变压器(Linear Transformer):比较复杂,后续会结合实例单独讲。
(6)信号类
常数(Constant):通常作为给定输入信号使用。
信号比较器(Sum):将两个信号相加或者相减。
PID控制器(PID Controller):实现PID控制算法。
饱和器(Saturation):用于限制信号的幅度。
PWM发生器(PWM Generator):将数字信号转化为模拟信号,数字信号0-1输入对应0-100%占空比输出的PWM波形。
信号运算相关:放大器(Gain)、乘法器(Product)、取绝对值(abs)等
逻辑门:与门(AND)、或门(OR)、非门(NOT)等
Goto/From:仿真电路布局神器。为防止仿真走线凌乱,信号可以通过Goto、From以标签的形式连接。相同标签的Goto和From他们是连在一起的。需要注意的是,一个Goto信号对应一个或者多个From信号,但一个From信号不可对应多个Goto信号,要不然Simlink仿真软件会报错。
其它未提到的元器件模型可自行在百度中搜索,只需知道元器件的英文名即可在库中搜索栏中找到。
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
在Ruby中,是否有一种简单的方法可以将n维数组中的每个元素乘以一个数字?这样:[1,2,3,4,5].multiplied_by2==[2,4,6,8,10]和[[1,2,3],[1,2,3]].multiplied_by2==[[2,4,6],[2,4,6]]?(很明显,我编写了multiplied_by函数以区别于*,它似乎连接了数组的多个副本,不幸的是这不是我需要的)。谢谢! 最佳答案 它的长格式等价物是:[1,2,3,4,5].collect{|n|n*2}其实并没有那么复杂。你总是可以使你的multiply_by方法:c
我正在使用Ruby解决一些ProjectEuler问题,特别是这里我要讨论的问题25(Fibonacci数列中包含1000位数字的第一项的索引是多少?)。起初,我使用的是Ruby2.2.3,我将问题编码为:number=3a=1b=2whileb.to_s.length但后来我发现2.4.2版本有一个名为digits的方法,这正是我需要的。我转换为代码:whileb.digits.length当我比较这两种方法时,digits慢得多。时间./025/problem025.rb0.13s用户0.02s系统80%cpu0.190总计./025/problem025.rb2.19s用户0.0