simulink是matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于simulink。
学习目标:
(1)学习和掌握simulink基本操作;
(2)学习和掌握simulink运行仿真参数设置;
(3)学习和掌握simulink创建模型的方法;
(4)学习和掌握simulink简单的仿真分析等
•matlab有两种启动simulink的方式,具体如下:
•(1)在matlab命令窗口中输入simulink,结果是在桌面上出现一个称为simulink library browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。具体如图2-1所示。
•(2)用户也可以通过matlab主窗口的快捷按钮来打开simulink library browser窗口,相应能打开simulink library browser窗口模块库窗口
•simulink模块库包括很多工具箱,使得用户能够针对不同行业的数学模型能够进行快速设计,在打开simulink时出现的界面中,如图2-2所示左侧的模块库和工具箱(block and toolboxes)栏中列出了各领域开发的仿真环节库。
•主要的仿真环节库有:
•(1)控制系统工具箱(control system toolbox)
•(2)通信模块工具箱(communications blockset)
•(3)数字信号处理模块工具箱(dsp blockset)
•(4)非线性控制模块工具箱(ncd blockset)
•(5)定点处理模块工具箱(fixed-point blockset)
•(6)状态流(stateflow)
•(7)系统辨识模块工具箱(system id blocks)
•(8)神经网络模块工具箱(neural network blockset)
•(9)模糊逻辑工具箱(fuzzy logic toolbox)
•其中,控制系统工具箱(control system toolbox)应用最为广泛,具体的simulink模块库如下:
•常用模块库如图2-4所示。
•常用模块包括用户常用的模块集,通常该常用模块为一般simulink模型的基本构建模块,例如输入、输出、示波器、常数输出、加减运算、乘除运算等。
•连续函数模块如图2-5所示。
•连续函数模块主要用于控制系统的拉氏变换中,主要为积分环节、传递函数、抗饱和积分、延迟环节等。
•非连续函数模块如图2-6所示。
•如图2-6所示非连续函数模块主要为死区、信号的一阶导数rate limiter模块、阶梯状输出模块quantizer模块、约定信号的输出的上下界saturation以及relay环节等。
•离散函数模块如图2-7所示。
•离散模块主要将拉氏变换后的传递函数经z变换离散化,从而实现传递函数的离散化建模,离散化系统容易进行程序移植,因此广泛应用在各种控制器仿真设计中,具体的离散模块库包括延时delay环节、导数difference、离散零极点配置discrete zero-pole,离散时间积分环节等。
•逻辑控制器模块库如图2-8所示。
•如图2-8所示逻辑控制器主要逻辑位运算,在常用的系统建模较少用到,主要有bit clear位清除、bit set位设置、combinatorial logic组合逻辑运算等。
•查表模块库如图2-9所示。
•如图2-9所示查表模块库,包括1-d lookup table、2-d lookup table、direct lookup table(n-d)等,主要是根据模块参数的定义值对输入进行插值映射输出,输出的值定义为table参数,方便用户进行定义和应用。
•数学模块库如图2-10所示。
•如图2-10所示数学模块库,主要为绝对值计算abs、加减运算add、放大缩小倍数运算gain、乘除运算product等,用户根据相应的模型表达式构建相应的不同模块的配合使用,达到相应的表达式计算,该数学模块库基本涵盖了所有的基本运算功能。
•数据输出显示库如图2-11所示。
•如图2-11所示数据输出显示库,包含有输出端out1、示波器scope、数据显示display等模块,方便用户搭建模型后,进行仿真观察模型输出参数值的变化图。
•用户自定义模块如图2-13所示。
•如图2-13所示的户自定义模块,该模块主要用于供用户自己抒写相应的程序进行系统仿真,从而实现快速的建模仿真。
•相应的还有模型验证库model-verification、子系统模块库ports&subsystems、航空器模块aerospace blockset、通信模块communications system toolbox等,用户可以根据实际问题背景以及模型需要,选择不同的模块进行设计。
•如图2-14为一simulink模块仿真图。
•对于该simulink模块仿真图的搭建,主要有以下几步:
在命令行窗口输入simulink,打开simulink模块库界面,如图2-15所示。
•接下来,新建一个仿真文件,点击simulink library browser界面左上方file下的图标,弹出新建一个simulink文件,如图2-16所示。
•(3)点击新建文件的保存按钮,进行该simulink文件的保存操作,进行命名,在此程序中,命名为“ysw2_1”,即生成一个simulink文件“ysw2_1.slx”。
•(4)在simulink library browser界面上进行每一个仿真元件的寻找,查询位置如图2-17所示。
•(5)通过输入step,进行查找,得到相应的查找结果,得到如图2-18所示结果。
•(6)选择查询的结果,拖放到新建的simulink文件“ysw2_1.slx”下,依次查询其它的sum、pid、scope元件,将它们放入simulink文件“ysw2_1.slx”下,如图2-19所示。
•(7)依次搭建每一个模块,通过连线构成一个系统,得到相应的仿真结果图如图2-20所示。
•如图2-20所示的仿真模型与图2-14的simulink模块仿真图一致,设置相应元器件的参数,点击该仿真文件的仿真运行按钮,进行模型仿真,如图2-21所示。
•(8)带仿真结束,点击示波器,弹出示波器图形界面,如图2-22所示。
•至此,一个简单的simulink模型由搭建到仿真到生成图形,全部结束。
•simulink模型搭建较简单,关键在于simulink模型所代表的数学模型,通常情况下,数学模型限制了simulink资源的使用。
•simulink仿真文件建立后,常常会出现仿真故障诊断问题,仿真不通过,系统提示仿真步长设置、仿真参数设置等问题,因此本节主要讨论simulink仿真文件运行仿真及参数设置。
•2.2.1 模型的创建
•simulink的模型窗口的常用菜单如表2-1所示。
•1.模块的复制
•simulink模型搭建过程中,模块的复制能够为用户提供快捷的操作方式,具体的复制操作如下:
•(1)不同模型窗口(包括模型库窗口)之间的模块复制
•§ 1)选定模块,用鼠标将其拖到另一模型窗口。
•§ 2)选定模块,使用菜单的“copy”和“paste”命令。•§ 3)选定模块,使用工具栏的“copy”和“paste”按钮。
•(2)在同一模型窗口内的复制模块(如图1.8所示)
•§ 1)选定模块,按下鼠标右键,拖动模块到合适的地方,释放鼠标。
•§ 2)选定模块,按住ctrl键,再用鼠标拖动对象到合适的地方,释放鼠标。
•§ 3)使用菜单和工具栏中的“copy”和“paste”按钮。• 具体如图2-23所示。
•2.模块的移动
•(1)在同一模型窗口移动模块,选定需要移动的模块,用鼠标将模块拖到合适的地方。
•(2)在不同模型窗之间移动模块,在不同模型窗之间移动模块,在用鼠标移动的同时按下shift键。
•(3)当模块移动时,与之相连的连线也随之移动。•3.模块的删除
•要删除模块,应选定待删除模块,按delete键;或者用菜单“edit”、“clear”或“cut”。•4.改变模块大小
•选定需要改变大小的模块,出现小黑块编辑框后,用鼠标拖动编辑框,可以实现放大或缩小。
•具体如图2-24所示。
•5. 模块的翻转
•(1)模块翻转180度
•选定模块,选择菜单“format” —> “flip block”可以将模块旋转180度,
•(2)模块翻转90度
•选定模块,选择菜单“format” —> “rotate block”可以将模块旋转90度,如果一次翻转不能达到要求,可以多次翻转来实现,或者使用“ctrl + r”快捷键实现模块的翻转。如图所示
• 具体如图2-25所示。
•6. 模块名的编辑
•(1)修改模块名:单击模块下面或旁边的模块名,出现虚线编辑框就可对模块名进行修改。•(2)模块名字体设置:选定模块,选择菜单“format”—>“font”,打开字体对话框设置字体。
•(3)模块名的显示和隐藏:选定模块,选择菜单“format” —> “hide / show name”,可以隐藏或显示模块名。
•(4)模块名的翻转:选定模块,选择菜单“format” —> “flip name”,可以翻转模块名。
•1. 模块间连线
•(1)先将光标指向一个模块的输出端,待光标变为十字符后,按下鼠标键并拖动,直到另一模块的输入端。
•(2)按住”ctrl”键,选中两个模块,simulink模块之间自动连线,能够在模块很密集情况下,解决用户不好连线的问题。simulink
•(1)分支的产生
•将光标指向信号线的分支点上,按鼠标右键,光标变为十字符,拖动鼠标直到分支线的终点,释放鼠标;或者按住ctrl键,同时按下鼠标左键拖动鼠标到分支线的终点,如图2-27所示。
•(2)信号线的折线
•选中已存在的信号线,将光标指向折点处,按住shift键,同时按下鼠标左键,当光标变成小圆圈时,用鼠标拖动小圆圈将折点拉至合适处,释放鼠标,如图2-28所示。
•3. 信号线文本注释(label)
•(1)添加文本注释:双击需要添加文本注释的信号线,则出现一个空的文字填写框,在其中输入文本。•(2)修改文本注释:单击需要修改的文本注释,出现虚线编辑框即可修改文本。
•(3)移动文本注释:单击标识,出现编辑框后,就可以移动编辑框。
•(4)复制文本注释:单击需要复制的文本注释,按下ctrl键同时移动文本注释,或者用菜单和工具栏的复制操作。
•文本注释具体如图2-29所示。
•4. 在信号线中插入模块
•如果模块只有一个输入端口和一个输出端口,则该模块可以直接被插入到一条信号线中。
•具体的信号线中插入模块时,信号线自动连接,如图2-30所示。
仿真参数设置简介
•在模型窗口选择菜单“simulation” —> “model configurationparameters”,则会打开参数设置对话框,如图2-31所示。
•1. solver页的参数设置
•(1)仿真的起始和结束时间
•包括仿真的起始时间(start time)和仿真的结束时间(stop time)。•(2)仿真步长
•仿真的过程一般是求解微分方程组,“solve options”的内容是针对解微分方程组的设置。
•(3)仿真解法
•type的右边:设置仿真解法的具体算法类型。
•(4)输出模式
•根据需要选择输出模式(output options),可以达到不同的输出效果。
•2. data import/export的设置
•如图2-26所示,可以设置simulink从工作空间输入数据、初始化状态模块,也可以把仿真的结果、状态模块数据保存到当前工作空间。
•(1)从工作空间装载数据(load from workspace);
•(2)保存数据到工作空间(save to workspace);
•(3)time栏:勾选time栏后,模型将把(时间)变量以在右边空白栏填写的变量名(默认名为tout)存放于工作空间。
•(4)states栏:勾选states栏后,模型将把其状态变量在右边空白栏填写的变量名(默认名为xout)存放于工作空间。
•(5)output栏:如果模型窗口中使用输出模块“out”,那么就必须勾选output栏,并填写在工作空间中的输出数据变量名(默认名为yout)。
•(6)final state栏:final state栏的勾选,将向工作空间以在右边空白栏填写的名称(默认名为xfinal),存放最终状态值。
•(7)变量存放选项(save options):save options必须与save to workspace配合使用。
子系统及其封装
•子系统类似于编程语言中的子函数。建立子系统有两种方法:在模型中新建子系统和在已有的子系统基础上建立。
•打开simulink模型库,建立相应的模型,并创建一个子系统。
•在模型窗口中,将控制对象中的中间模块连接部分,用鼠标拖出的虚线框框住,选择菜单“edit”—>“create subsystem”,则系统如图2-33所示。
•双击子系统,则会出现“subsystem”模型窗口,如图2-34所示。
•可以看到子系统模型除了用鼠标框住的两个环节,还自动添加了一个输入模块“in1”和一个输出模块“out1”。该输入模块和输出模块将应用在主模型中作为用户的输入和输出接口,如图2-35所示。
•运行仿真结果如图2-36所示。
•新建一个pid控制器,建立新子系统,利用simulink模型库中模块搭建pid控制器,如图所示。
•将图中的所有对象都复制到新的空白模型窗口中,双击打开子系统“subsystem”,则出现如图所示的子系统模型窗口,子系统创建好后,复制粘贴都是整体进行。
•添加模型构成反馈环形成闭环系统,如图所示。
•建立一个用使能子系统控制正弦信号为半波整流信号的模型。
•模型由正弦信号“sine wave”为输入信号源,示波器“scope”为接收模块,使能子系统“enabled subsystem”为控制模块。
•连接模块,将“sine wave”模块的输出作为“enabled subsystem”的控制信号,
•由此得到使能子系统如图2-43所示。
•对该使能子系统开始仿真,由于“enabled subsystem”的控制为正弦信号,大于零时执行输出,小于零时就停止,则示波器显示为半波整流信号,示波器的显示如图1.42(b)所示。
触发子系统(triggeredsubsystem)
•模型由正弦信号“sine wave”为输入信号源,示波器“scope”为接收模块,触发子系统“triggered subsystem”为控制模块,选择“sources”模块库中的“pulsegenerator”模块为控制信号。
•连接模块,将“pulse generator”模块的输出作为“triggeredsubsystem”的控制信号,模型如图2-46所示。
• 开始仿真,由于“triggered subsystem”的控制为正弦信号“sinewave”模块的输出,示波器输出如图2-47所示。
• 运行仿真文件,输出图形如图2-48所示。
使能触发子系统(enabledand triggered subsystem)
•使能触发子系统就是触发子系统和使能子系统的组合,含有触发信号和使能信号两个控制信号输入端,触发事件发生后,simulink检查使能信号是否大于0,大于0就开始执行。
•模型由正弦信号“sine wave”为输入信号源,示波器“scope”为接收模块,触发子系统“triggered subsystem”为控制模块,使能子系统“enabled subsystem”为控制模块,选择“sources”模块库中的“randomnumber”模块为控制信号。
•连接模块,将“random number”模块的输出作为“triggeredsubsystem”的控制信号,正弦信号“sine wave”模块的输出作为“enabled subsystem”的控制信号,模型如图2-46所示。
•开始仿真,由于“triggered subsystem”的控制为正弦信号“sinewave”模块的输出,示波器输出如图2-47所示。
•运行仿真文件,输出图形如图2-48所示。
封装子系统
•1. 封装子系统的步骤
•(1)选中子系统双击打开,给需要进行赋值的参数指定一个变量名;
•(2)选择菜单“edit”—>“mask subsystem”,出现封装对话框;
•(3)在封装对话框中的设置参数,主要有“icon”、“parameters”、“initialization”和“documentation”四个选项卡。
•2. icon选项卡
•icon选项卡用于设定封装模块的名字和外观,如图2-52所示。
•drawing commands栏用来建立用户化的图标,可以在图标中显示文本、图像、图形或传递函数等。在drawing commands栏中的命令如上图中“examples of drawing commands”的下拉列表所示,包括plot、disp、text、port_label、image、patch、color、droots、dploy和fprintf。
•3. parameters & dialog选项卡
•parameters & dialog选项卡用于输入变量名称和相应的提示,如图2-53所示。
•用户可以从左侧添加功能进入dialog box中,然后用鼠标右键,可以对该模块进行删除、复制、剪切等操作,具体如图2-54所示。
•对于dialog parameters,
•(1)prompt:输入变量的含义,其内容会显示在输入提示中。
•(2)variable:输入变量的名称。
•(3)type:给用户提供设计编辑区的选择。“edit”提供一个编辑框;“checkbox”提供一个复选框;“popup”提供一个弹出式菜单。
•(4)evaluate:用于配合“type”的不同选项提供不同的变量值,有两个选项“evaluate”和“literal”,其含义如表2-2所示。
•4. initialization选项卡
•initialization选项卡用于初始化封装子系统。具体如图2-55所示。该界面主要为用户参数的初始化设置。
•5. documentation选项卡
•documentation选项卡用于编写与该封装模块对应的help和说明文字,分别有“mask type”、“mask description”和“maskhelp”栏。如图2-56所示。
•(1)mask type栏:用于设置模块显示的封装类型。
•(2)mask description栏:用于输入描述文本。
•(3)mask help栏:用于输入帮助文本。
•6. 按钮
•设置参数设置对话框中的“apply”按钮用于将修改的设置应用于封装模块;“unmask”按钮用于将封装撤销,则双击该模块就不会出现定制的对话框。•例如创建一个二阶系统,并将子系统进行封装。
•创建一个二阶系统,将其闭环系统构成子系统,并封装将阻尼系数zeta和无阻尼频率wn作为输入参数。•(1)创建模型,并将系统的阻尼系数用变量zeta表示,无阻尼频率用变量wn表示,如图2-57所示。
•(2)用虚线框框住反馈环,选择菜单“edit”—>“create subsystem”,则产生子系统,如图2-58所示。
•(3)封装子系统,选择菜单“edit” —> “mask subsystem”,出现封装对话框,将zeta和wn作为输入参数。
•在icon选项卡中设置的“icon drawing commands”栏中写文字并画曲线,命令如下:•disp('二阶系统')
•plot([0 1 2 3 10],-exp(-[01 2 3 10]))
•具体如图2-59所示。
•在parameters&dialog选项卡中,单击按钮添加两个输入参数,设置“prompt”分别为“阻尼系数”和“无阻尼振荡频率”,并设置“type”栏分别为“popup”和“edit”,对应的“variable”为“zeta”和“wn”,如图2-60所示。在initialization选项卡初始化输入参数,如图2-61所示。
•在documentation选项卡中输入提示和帮助信息,如图2-62所示。
•单击“ok”按钮,完成参数设置,然后双击该封装子系统,则出现如图2-63所示的封装子系统。
•双击该子系统出现图2-63所示的输入参数对话框,在对话框中输入“阻尼系数”zeta和“无阻尼振荡频率”wn的值,如图2-64所示。
•运行仿真文件,输出如图2-65所示图形。
用matlab命令创建和运行simulink模型
•matlab命令创建和运行simulink模型在程序和simulink模型结合起来运行时,显得很简捷,用户可以内嵌到gui设计中,或者程序设计中进行参数的循环运算从而得到最佳模拟状态。
•1)创建新模型
•new_system命令用来在matlab的工作空间创建一个空白的simulink模型。•语法:
•new_system(‘newmodel’,option) %创建新模型
•说明:
•newmodel:为模型名;
•option选项可以是library和model两种,也可以省略,默认为model。
•(2)打开模型•open_system命令用来打开逻辑模型,在simulink模型窗口显示该模型。
•语法:
•open_system(‘model’) %打开模型
•说明:
•model:为模型名。
•(3)保存模型
•save_system命令用来保存模型为模型文件,扩展名为.slx。
•语法:
•save_system(‘model’,文件名) %保存模型
•说明:
•model:模型名可省略,如果不给出模型名,则自动保存当前的模型;
•文件名:指保存的文件名,是字符串,也可省略,如果不省略则保存为新文件。•例如用matlab命令创建新模型。
•new_system('ex0711model') %创建逻辑模型•open_system('ex0711model') %打开模型•save_system('ex0711model','ex0711') %保存模型文件
•(1)添加模块
•使用add_block命令在打开的模型窗口中添加新模块。
•语法:
•add_block(’源模块名’,’目标模块名’,’属性名1’,属性值1,’属性名2’,属性值2,…
•说明:
•源模块名:为一个已知的库模块名,或在其它模型窗口中定义的模块名,simulink自带的模块为内在模块,例如正弦信号模块为“built-in/sine wave”;
•目标模块名:为在模型窗口中使用的模块名。
•(2)添加信号线
•模块需要用信号线连接起来,添加信号线使用add_line命令。
•语法:
•add_line(’模块名’,’起始模块名/输出端口号’, ’终止模块名/输入端口号’)
•add_line(’模块名’,m)
•说明:
•模块名:为在模型窗口中的模块名;
•m:为有两列元素的矩阵,每列给出一个转折点坐标。•用matlab命令添加四个模块连接成一个二阶系统模型。
•clc,clear,close all•open_system('ysw2_9.slx');
•add_block('built-in/step','ysw2_9/step','position',[20,100,40,120]) %添加阶跃信号模块
•add_block('built-in/sum','ysw2_9/sum','position',[60,100,80,120]) %添加sum模块•%添加传递函数模块•add_block('built-in/transferfcn','ysw2_9/fcn1','position',[120,90,200,130])
•%添加示波器模块•add_block('built-in/scope','ysw2_9/scope','position',[240,100,260,120])
add_line('ysw2_9','step/1','sum/1') %添加连线•add_line('ysw2_9','sum/1','fcn1/1')
•add_line('ysw2_9','fcn1/1','scope/1')•add_line('ysw2_9','fcn1/1','sum/2')
•程序中'position'为位置属性,模块名为'ysw2_9'。
•删除模块
•例如删除示波器模块则使用:•delete_block('ysw2_9/scope')
•则出现如图2-67所示的模型。
•(1)模型属性的获得
• 对simulink模型进行属性的获取分析,matlab函数如下:
•f1=simget('模型文件名')• 说明:• 模型文件名:默认为当前分析的simulink文件。
•对如图2-66所示模型进行属性的获取分析,
•clc,clear,close all•open_system('ysw2_9.slx');
•f1=simget('ysw2_9')•运行程序输出结果如下:
•f1 =
• abstol: 'auto' %绝对允许误差限
• debug: 'off' %是否允许跟踪调试
• decimation: 1 %输出位数,每个1点输出1次
• dstworkspace: 'current' %输出量工作空间
• finalstatename: '' %状态变量名
• fixedstep:'auto' %定步长• initialstate: [] %初始状态向量
• initialstep:'auto' %初始步长
• maxorder:5 %最高算法阶次
• saveformat:'array' %变量类型
• maxdatapoints: 1000 %最大返回点数
• maxstep: 'auto' %最大步长
• minstep: [] %最小步长
• outputpoints: 'all' %输出点
• outputvariables: 'ty' %输出变量
• refine: 1 %插值点吗
• reltol: 0.0010 %相对误差
• solver: 'ode45' %仿真算法
• srcworkspace: 'base' %输入量工作空间
• trace: '' %是否逐步显示
• zerocross:'on' %检测过零点
•(1)模型属性的获得• 对simulink模型进行属性的获取分析,matlab函数如下:•f1=simget('模型文件名')
• 说明:
• 模型文件名:默认为当前分析的simulink文件。
•对如图2-66所示模型进行属性的获取分析,
•clc,clear,close all
•open_system('ysw2_9.slx')
•f1=simget('ysw2_9')•运行程序输出结果如下:
•f1 =
• abstol: 'auto' %绝对允许误差限
• debug: 'off' %是否允许跟踪调试
• decimation: 1 %输出位数,每个1点输出1次
• dstworkspace: 'current' %输出量工作空间
• finalstatename: '' %状态变量名
• fixedstep:'auto' %定步长
• initialstate: [] %初始状态向量
• initialstep:'auto' %初始步长
• maxorder:5 %最高算法阶次
• saveformat:'array' %变量类型
• maxdatapoints: 1000 %最大返回点数
• maxstep: 'auto' %最大步长
• minstep: [] %最小步长
• outputpoints: 'all' %输出点
• outputvariables: 'ty' %输出变量
• refine: 1 %插值点
• reltol: 0.0010 %相对误差
• solver: 'ode45' %仿真算法
• srcworkspace: 'base' %输入量工作空间
• trace: '' %是否逐步显示
• zerocross:'on' %检测过零点
•使用sim命令来完成,在命令窗口就可以方便地对模型分析和仿真。
•语法:
•[t,x,y]=sim(‘model’,timespan,options,ut) %利用输入参数进行仿真,输出矩阵
•[t,x,y1,y2,…]=sim(‘model’,timespan,options,ut) %利用输入参数进行仿真,逐个输出
•说明:
•model:为模型名;
•timespan:是仿真时间区间,可以是[t0, tf]表示起始时间和终止时间,也可以是[],利用模型对话框设置时间,如果是标量则指终止仿真时间;
•options参数为模型控制参数;
•ut为外部输入向量;
•t为时间列向量;
•x为状态变量构成的矩阵;
•y为输出信号构成的矩阵,每列对应一路输出信号。
•仿真中timespan、options和ut参数都可省略。
•运行二阶系统的阶跃响应,
•[t,x,y]=sim('ex0711',[0,15]);
•plot(t,x(:,2))
•运行仿真输出结果如图2-69所示。
实战用华硕AX86U解决家庭网络卡顿痛点
8K播放设备必须具备哪些条件
高速电路PCB“地”、返回路径、镜像层和磁通化
如何将PIC16F15244系列用作I/O扩展器以提高设计灵活性
经纬恒润以ODX格式为数据中心的整车诊断系统
Simulink是什么?
打造安全道路:C-V2X解决方案助您安心畅行!
线束测试仪要怎么调试才能检测线材
紫光高通互怼大戏开场 紫光宣告年底量产32层64G存储器
雷达物位计的故障问题与维护措施
高通与苹果的专利诉讼大战已正式落下帷幕
5月全球新能源汽车销量对比:中国车企销量同比增长128%,预计未来会持续走高
如何定义全栈工程师和DevOps
行业 | 全SiC模块正在加速,SiC功率器件走向繁荣
全球43000余家餐厅已经使用普渡的服务机器人
中国台湾面板厂商重心开始转向Mini/MicroLED
台达自动化技术在精密带刀片皮机上的解决方案
dfrobot模拟烟雾传感器 (MQ2)简介
gps定位器怎么使用,初次使用有什么需要注意的
华云数据云操作系统安超OS荣获2019物联网新产品新技术新应用成果评选金奖