基于MATLABSimulink的建模与仿真课件_第1页
基于MATLABSimulink的建模与仿真课件_第2页
基于MATLABSimulink的建模与仿真课件_第3页
基于MATLABSimulink的建模与仿真课件_第4页
基于MATLABSimulink的建模与仿真课件_第5页
已阅读5页,还剩195页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机仿真技术计算机仿真技术1第五讲基于MATLAB/Simulink的建模与仿真

MATLAB软件简介

MATLAB仿真实例什么是Simulink?

Simulink模块库简介

Simulink模型的建立方法

Simulink建模与仿真举例小结第五讲基于MATLAB/Simulink的建模与仿真2

MATLAB软件简介?MATLAB是一门计算机编程语言,是一种科学计算软件,取名来源于MatrixLaboratory,本意是专门以矩阵的方式来处理计算机数据

.MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,被广泛应用在科学计算,信息处理,控制系统等领域的分析,仿真和设计工作。

MATLAB的功能包括:数值分析,数值和符号计算,工程和科学绘图,通讯和控制系统的设计与仿真,数字图像与信号处理,财务与金融工程等。MATLAB软件简介?MATLAB是一门3

MATLAB软件简介?MATLAB软件的典型应用领域:科学研究;工程技术应用研究CAI(ComputerAidedInstruct)数学实验(MathematicalExperiment)数学建模(MathematicalModeling)MATLAB软件简介?MATLAB软件的典型应用领域:4clear删除工作空间中的所有变量!系统不会要求你确认这个命令。所有变量都被清除且不能再恢复。对于简单的问题,在MATLAB提示符下输入命令是快速有效的。然而当命令数增加或希望改变一个或几个变量的值,然后重新执行一系列命令时,在MATLAB提示符处键入命令就非常麻烦了。对这个问题MATLAB提供了一种逻辑解决方案。它允许用户把MATLAB命令放在一个简单的文本文件中,然后告诉MATLAB打开文件并执行命令,如同在MATLAB提示符处键入命令一样。这些文件被称为脚本文件或简单地称为M文件。M文件是指脚本文件以扩展名.m结尾。

MATLAB软件简介?clear删除工作空间中的所有变量!系统不会要求你确认这个命5MATLAB提供三种控制流结构的语句:For-end循环While-end循环If-Else-End结构

MATLAB软件简介?MATLAB提供三种控制流结构的语句:MATLAB软件简6For-end循环的基本作用是以固定的和预定的次数重复一组特定的命令。一般形式是:forn=循环控制量的范围{commands}end

MATLAB软件简介?For-end循环的基本作用是以固定的和预定的次数重复一组特7说明:在for和end语句之间的命令串{commands}按矩阵(array)中的每一列执行一次。在每一次迭代中,n被指定为循环控制量的范围内的下一列。例如:forn=1:10x(n)=sin(n*pi/10);end这个循环体的作用是:对n等于1到10,求所有语句的值,直到下一个end语句。第1次通过For循环n=1,第2次,n=2,如此继续,直到n=10。在n=10以后,For循环结束,然后求end语句后面的任何命令值说明:在for和end语句之间的命令串{commands}按8For循环不能用For循环内重新赋值循环变量n来终止。在For循环中循环控制量的范围可以是任何有效的MATLAB矩阵。比如data=[119456;716-15];forn=datax=n(1)-n(2)end这时程序的输出有四个数值,分别是矩阵data的两列相减的结果x=4x=-7x=46x=1For循环不能用For循环内重新赋值循环变量n来终止。9For循环可按需要嵌套,即For循环体内的命令组中可以出现另一个For循环体,这体现了For循环体也是命令组。比如forn=1:5form=5:-1:1A(n,m)=n^2+m^2;EndendFor循环可按需要嵌套,即For循环体内的命令组中可以出现另10While-end循环以不定的次数求一组语句的值。Whil-end循环的一般形式是:whileexpression(控制表达式){commands}end只要在控制表达式(expression)里的所有元素为真,就执行While和end语句之间的命令串({commands})。

MATLAB软件简介?While-end循环以不定的次数求一组语句的值。Whil-11说明:控制表达式的值未必是一个标量值,矩阵值也同样有效。在矩阵情况下,所得到矩阵的所有元素必须都为真。具体示例:num=0;EPS=1;while(1+EPS)>1EPS=EPS/2;num=num+1;end这段MATLAB代码最后在num=53时停止。说明:控制表达式的值未必是一个标量值,矩阵值也同样有效。在矩12IF-ELSE-END结构提供有条件地执行一些特定的命令序列的方式。最简单的IF-ELSE-END结构是:ifexpression(条件控制表达式){commands}end如果在条件控制表达式(expression)中的所有元素为真(非零),那么就执行if和end语句之间的命令串({commands})。在表达式包含有几个逻辑表达式时,即使前一个表达式决定了表达式的最后逻辑状态,仍要计算所有的子表达式。

MATLAB软件简介?IF-ELSE-END结构提供有条件地执行一些特定的命令序列13一般的有两个选择的IF-ELSE-END结构是:ifexpression(条件控制表达式)commandsevaluatedifTrueelsecommandsevaluatedifTrueend在这里,如果条件控制表达式(expression)为真,则执行第1组命令;如果表达式是假,则执行第2组命令。一般的有两个选择的IF-ELSE-END结构是:14有三个或更多选择时的IF-ELSE-END结构的形式:ifexpression1commandsevaluated-ifexpression1isTrueelseifexpression2commandsevaluated-ifexpression2isTrueelseifexpression3commandsevaluated-ifexpression3isTrueelseifelsecommandsevaluatedifonotherexpressionisTrueend最后这种有三个以上选择的IF-ELSE-END形式,依次检查各表达式,只执行第一个表达式为真的命令串,接下来的关系表达式不检验,跳过其余的IF-ELSE-END结构。最后的else命令可有可无。有三个或更多选择时的IF-ELSE-END结构的形式:15break是一种特殊的控制结构,基本作用是无条件跳出临近的循环体,即结束For循环和While循环的执行。

MATLAB软件简介?break是一种特殊的控制结构,基本作用是无条件跳出临近的循16学习和使用常用软件MATLAB的一些基本语句和功能来验证或观察函数的变化,实现函数的可视化计算

MATLAB软件简介?学习和使用常用软件MATLAB的一些基本语句和功能来验证或观17MATLAB仿真举例设系统方程,y(0)=1试用Euler法求其数值解(取步长h=0.1,0≤t≤1)试编写matlab程序求其数值解。MATLAB仿真举例设系统方程,y(0)=1试用Euler18设系统方程,y(0)=1试用Euler法求其数值解(取步长h=0.1,0≤t≤1)试编写matlab程序求其数值解。Euler迭代公式:yn+1=yn-0.1yn2MATLAB仿真举例设系统方程,y(0)=1试用Euler法求其数值解(取步长h19Euler迭代公式:yn+1=yn-0.1yn2,y(0)=1(取步长h=0.1,0≤t≤1)MATLAB仿真举例Euler迭代公式:yn+1=yn-0.1yn2,y(0)=20Euler迭代公式:yn+1=yn-0.1yn2,y(0)=1t=[0:0.1:1]’;length=size(t,1);y=zeros(size(t));y(1)=1;forn=1:1:length-1y(n+1)=y(n)-0.1*y(n)^2endplot(t,y)(取步长h=0.1,0≤t≤1)MATLAB仿真举例Euler迭代公式:yn+1=yn-0.1yn2,y(0)=21运行结果:y=1.00000.90000.81900.75190.69540.64700.60520.56850.53620.50750.4817MATLAB仿真举例运行结果:y=MATLAB仿真举例22

作业设系统方程,y(0)=1试用二阶龙格库塔法求其数值解(取步长h=0.1,0≤t≤1)试编写matlab程序求其数值解。二阶龙格库塔法迭代公式:请在第二次实验时上机验证结果。作业设系统方程,y(0)=1试用二阶龙格库塔法求其数值解(23

Simulink是MATLAB提供的实现动态系统建模和仿真的一个软件包,它让用户把精力从编程转向模型的构造。

Simulink一个很大的优点是为用户省去了许多重复的代码编写工作。Simulink

支持线性,非线性系统,连续系统,离散系统,或者混合系统的建模与仿真。同时它也支持具有不同部分拥有不同采样率的多种采样速度的系统仿真。

Simulink的启动方式有两种:(1)在工具栏点击Simulink图标;(2)在CommandWindow中输入:>>Simulink

什么是Simulink?Simulink是MATLAB提供的实现动态24Simulink模块库简介Simulink模块库简介25SIMILINK模块库按功能进行分类:连续模块、离散模块、查表模块、数学模块、非线性模块、信号通路模块、接收器模块、输入源模块、其他常用方块组及工具箱、特别模块。Simulink模块库简介SIMILINK模块库按功能进行分类:连续模26Derivative:输入信号微分Integrator:积分器State-Space:线性状态空间系统模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递函数模型Memory:存储上一时刻的状态值TransportDelay:输入信号延时一个给定时间再输出VariableTransportDelay:输入信号延时一个可变时间再输出

连续模块(Continuous)Derivative:输入信号微分连续模块(Continu27Zero-OrderHold:零阶采样保持器UnitDelay:一个采样周期的延时Discrete-timeIntegrator:离散时间积分器DiscreteState-Space:离散状态空间系统模型DiscreteFilter:离散滤波器DiscreteTransfer-Fcn:离散传递函数模型DiscreteZero-Pole:以零极点表示的离散传递函数模型First-OrderHold:一阶采样保持器离散模块(Discrete)Zero-OrderHold:零阶采样保持器离散模块(D28Look-UpTable:建立输入信号的查询表(线性峰值匹配)Look-UpTable(2-D):建立两个输入信号的查询表(线性峰值匹配)Fcn:用户自定义的函数(表达式)MATLABFcn:利用MATLAB的现有函数S-Function:调用自编的S函数的程序

Look-upTable(查表模块)

User-definedfunction(用户定义函数模块)Look-UpTable:建立输入信号的查询表Look29Sum:加减运算Product:模块输入的乘除运算DotProduct:点乘运算Gain:比例运算MathFunction:包括指数函数、对数函数、求平方等常用数学函数TrigonometricFunction:三角函数,包括正弦、余弦、正切等MinMax:最小值或最大值运算

Mathoperations(数学模块)Sum:加减运算Mathoperations(数学模块30Abs:取绝对值Sign:给出符号函数RoundingFunction圆整函数CombinatorialLogic:建立真值表LogicalOperator:逻辑运算RelationalOperator:关系运算ComplextoMagnitude-Angle:由复数输入转为幅值和相角输出ComplextoReal-Imag:由复数输入转为实部和虚部输出Magnitude-AngletoComplex:由幅值和相角输入合成复数输出Real-ImagtoComplex:由实部和虚部输入合成复数输出Abs:取绝对值31RateLimit:变化速率限制Saturation:饱和输出,让输出超过某一值时能够饱和。Quantizer:离散化Blacklash:滞环或间隙DeadZone:死区Relay:滞环继电器Switch: 切换开关ManualSwitch:手动选择开关Coulomb&ViscousFriction库仑和粘滞摩擦

Discontinuous(非线性模块)RateLimit:变化速率限制Discontinu32Mux:将多个单一输入转化为一个复合输出。Demux:将一个复合输入转化为多个单一输出。

SignalRouting(信号通路模块)Mux:将多个单一输入转化为一个复合输出。SignalR33Scope:示波器,显示信号曲线。XYGraph:显示二维X-Y图形。

Out1:输出端口Display:显示数值ToWorkspace:将输出写入MATLAB的工作空间。ToFile(.mat):将输出写入数据文件。Terminator:终止一个未连接的输出端口

Sinks(接收器模块)Scope:示波器,显示信号曲线。Sinks(接收器模块34In1:输入端口Constant:常数信号SignalGenerator:信号发生器,产生任意波形Ramp:斜坡信号SineWave:正弦波信号Step:阶跃波信号RepeatingSequence:重复信号PulseGenerator:脉冲发生器Ground:搁置一个未连接的输入端口Clock:时钟信号FromWorkspace:来自MATLAB的工作空间。FromFile(.mat):来自数据文件。

Sources(输入源模块)In1:输入端口Sources(输入源模块)35其他常用方块组及工具箱

Blocksets&Toolboxes其他常用方块组及工具箱

Blocksets36

Simulinkextras(特别模块)Simulinkextras(特别模块)372.SimulinkExtras(Simulink附加库)3.CommunicationsBlockset(通信模块集)4.ControlSystemToolbox(控制系统工具箱)5.DSPBlockset(数字信号处理模块集)6.Dials&GaugesBlockset(面板和仪表模块集)7.Fixed-PointBlockset(定点模块集)8.FuzzyLogicToolbox(模糊逻辑工具箱)9.MPCBlockset(MPC模块集)10.NCDBlockset(非线性控制设计模块集)11.MotorolaDSPBlockset(DSP模块集)12.NeuralNetworkBlockset(神经网络模块集)13.PowerSystemBlockset(电力系统模块集)SIMULINK的一些其它工具箱2.SimulinkExtras(Simulink附加3814.Real-TimeWindowsTarget(实时窗口目标库)15.Real-TimeWorkshop(实时工作空间库)16.SystemIDBlocks(系统辨识模块集)17.Stateflow(有限状态流程库)18.AerospaceBlockset(航空模块集)23.DataAcquistionToolbox(数据采集工具箱)20.SignalProcessingBlocks(信号处理工具箱)21.ImageAcquistionToolbox(图形采集工具箱)22.RFBlockset(射频工具箱)23.VideoandImageProcessingBlocks图像处理工具箱新增工具箱:机构仿真工具箱液压驱动工具箱14.Real-TimeWindowsTarget(实时39基于MATLABSimulink的建模与仿真课件40例1、考虑下图所示的简单的小车系统运动。例1、考虑下图所示的简单的小车系统运动。41例1、考虑下图所示的简单的小车系统运动。忽略摩擦力,运动微分方程为:例1、考虑下图所示的简单的小车系统运动。忽略摩擦力,运动微分42例1、考虑下图所示的简单的小车系统运动。在matlab/simulink中搭建仿真模型:加入两个积分模块,第一个模块用来计算速度,第二个模块用来计算位移,可用模块图表示为:例1、考虑下图所示的简单的小车系统运动。在matlab/si43例1、考虑下图所示的简单的小车系统运动。假定F=sin(t)为正弦激励,m=0.5。求0~10s区间内的系统位移响应曲线,仿真结果如下图:例1、考虑下图所示的简单的小车系统运动。假定F=sin(t)44例1、考虑下图所示的简单的小车系统运动。若要求同时输出位移和速度,则模型框图为:例1、考虑下图所示的简单的小车系统运动。若要求同时输出位移和45例1、考虑下图所示的简单的小车系统运动。仿真结果如下图:例1、考虑下图所示的简单的小车系统运动。仿真结果如下图:46基于MATLABSimulink的建模与仿真课件47基于MATLABSimulink的建模与仿真课件48基于MATLABSimulink的建模与仿真课件49在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作。移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单FormatFlipBlock(Ctrl+I)旋转180度,FormatRotateBlock(Ctrl+R)顺时针旋转90度。模块的处理

Simulink模型的建立方法在模型窗口中,选中模块,则其4个角会出现黑色标50改变大小:选中模块,对鼠标移到角上出现,进行拖曳即可。模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180度,可以用FormatFlipName来实现,也可以直接通过鼠标进行拖曳。HideName可以隐藏模块名称。颜色设定:

FormatForegroundColor改变模块的前景颜色,BackgroundColor改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。或点击鼠标右键,选择Blockparameters

参数设定窗口包含了该模块的基本功能帮助。通过对模块的参数设定,就可以获得需要的功能模块。模块的处理

Simulink模型的建立方法改变大小:选中模块,对鼠标移到角上出现,进行拖曳即可。模51

SIMULINK模型的构建是通过用线将各种功能模块进行连接而构成的。用鼠标可以在功能模块的输入与输出端之间直接连线。线的分支:按住鼠标右键,在需要分支的地方拉出即可。或者按住Ctrl键,并在要建立分支的地方用鼠标拉出即可。或从输入端拉线到分支点模块的连接

Simulink模型的建立方法SIMULINK模型的构建是通过用线将各种功能52属性设定:选中模块,打开EditBlockProperties可以对模块进行属性设定。或鼠标右键选择BlockProperties属性包括Description描述属性:对模块的说明文本

Priority优先级属性:模块执行顺序Tag标签属性:Openfunction属性:通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数Attributesformatstring属性属性的改变

Simulink模型的建立方法属性设定:选中模块,打开EditBlockPropert531.点击鼠标左键3.双击打开模块窗口2.点击鼠标左键‘新建’

Simulink模型的建立方法1.点击鼠标左键3.双击打开模块窗口2.点击鼠标左键‘54取信号源Sources/Step鼠标选中后拖拽到仿真窗口双击可弹出属性窗口编辑属性弹开右边模块窗口取信号源Sources/Step鼠标选中后拖拽双击可弹出属性55取增益Math/Gain双击可弹出属性窗口编辑属性点击增益所在模块夹鼠标选中后拖拽到仿真窗口取增益Math/Gain双击可弹出属性窗口编辑属性点击增益所56取传函Continuous/TransferFcn双击可弹出属性窗口编辑属性点击传函所在模块夹鼠标选中后拖拽到仿真窗口取传函Continuous/TransferFcn双击可弹57取相加点Math/Sum双击可弹出属性窗口编辑属性点击求和所在模块夹鼠标选中后拖拽到仿真窗口取相加点Math/Sum双击可弹出属性窗口编辑属性点击求和所58取显示Sinks/Scope双击可弹出示波器窗口点击示波器所在模块夹鼠标选中后拖拽到仿真窗口点击示波器参数图标取显示Sinks/Scope双击可弹出示波器窗口点击示波器所59连接各元件;选择仿真参数,如停止时间等Simulation/Simulationparameters;开始仿真Simulation/Start选择start或这里开始仿真点击右键,调整显示参数连接各元件;选择仿真参数,如停止时间等Simulation/60仿真结果显示仿真结果显示61例3、考虑下图所示的简单的小车系统运动。若要求同时输出位移、速度和加速度,则模型框图为:Simulink建模与仿真举例例3、考虑下图所示的简单的小车系统运动。若要求同时输出位移、62例3、考虑下图所示的简单的小车系统运动。仿真结果如下图:例3、考虑下图所示的简单的小车系统运动。仿真结果如下图:63例4:考虑下图所示的简单的小车系统运动。例4:考虑下图所示的简单的小车系统运动。64例4:考虑下图所示的简单的小车系统运动。运动微分方程为:动力方程变换为:例4:考虑下图所示的简单的小车系统运动。运动微分方程为:动力65例4:考虑下图所示的简单的小车系统运动。在matlab/simulink中搭建仿真模型:例4:考虑下图所示的简单的小车系统运动。在matlab/si66例4:考虑下图所示的简单的小车系统运动。位移曲线仿真结果如下图:例4:考虑下图所示的简单的小车系统运动。位移曲线仿真结果如下67同时查看位移、速度、加速度仿真模型框图:同时查看位移、速度、加速度仿真模型框图:68同时查看位移、速度、加速度10s内仿真结果:同时查看位移、速度、加速度10s内仿真结果:69若要同时查看位移、速度、加速度20s内仿真结果,该如何设置参数?若要同时查看位移、速度、加速度20s内仿真结果,该如何设置参70第1步:设置仿真参数和选择解法器选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。WorkspaceI/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。Diagnostics诊断页,允许用户选择Simulink在仿真中显示的警告信息的等级。构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。仿真方法与仿真参数的选择Simulink建模与仿真举例第1步:设置仿真参数和选择解法器构建好一个71基于MATLABSimulink的建模与仿真课件72Solver页

Simulationtime仿真时间:注意这里的时间是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。

Solveroption解法选项:Type后面的第一个选项中指定仿真的步长类型,分Variable-step(变步长)和Fixed-step(固定步长)两种。Solver页Simulationtime仿真73变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。变步长模式解法器有:ode45,ode23,ode113,o74ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。ode23tb:是TR-BDF2的一种实现,TR-BDF2是具有两个阶段的隐式龙格-库塔公式。discrtet:当Simulink检查到模型没有连续状态时使用它。Simulink建模与仿真举例ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误75固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。ode4:四阶龙格-库塔法,具有一定的计算精度。ode3:固定步长的二/三阶龙格-库塔法。ode2:改进的欧拉法。ode1:欧拉法。discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。Simulink建模与仿真举例固定步长模式解法器有:ode5,ode4,ode3,ode276Fixedstepsize固定步参数:缺省情况下,步长自动地确定,它由值auto表示Mode(固定步长模式选择)Multi

tasking:多任务模式,当simulink检测到模块间非法的采样速率转换,它会给出错误提示。所谓的非法采样速率转换指两个工作在不同采样速率的模块之间的直接连接。在实时多任务系统中,如果任务之间存在非法采样速率转换,那么就有可能出现一个模块的输出在另一个模块需要时却无法利用的情况。通过检查这种转换,Multitasking将有助于用户建立一个符合现实的多任务系统的有效模型。使用速率转换模块可以减少模型中的非法速率转换。Simulink提供了两个这样的模块:unitdelay模块和zero-orderhold模块。对于从慢速率到快速率的非法转换,可以在慢输出端口和快输入端口插入一个单位延时unitdelay模块。而对于快速率到慢速率的转换,则可以插入一个零阶采样保持器zero-orderhold。Single

tasking:单任务模式,不检查模块间的速率转换,它在建立单任务系统模型时非常有用,在这种系统就不存在任务同步问题。Auto:自动模式,simulink会根据模型中模块的采样速率是否一致,自动决定切换到multitasking和singletasking。Fixedstepsize固定步参数:缺省情况下,步长自77Stepsize步长参数:对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。Maximumstepsize(最大步长参数):它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。Initialstepsize(初始步长参数):一般建议使用“auto”默认值即可。Relativetolerance(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。Absolutetolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。Simulink建模与仿真举例Stepsize步长参数:对于变步长模式,用户可以设置最大78Outputoptions输出选项(在变步长模式下有效)Refineoutput:精细输出,其意义是在仿真输出太稀松时,simulink会产生额外的精细输出,这一点就像插值处理一样。用户可以在refinefactor设置仿真时间步间插入的输出点数。产生更光滑的输出曲线,改变精细因子比减小仿真步长更有效,并且在ode45效果最好。Produceadditionaloutput:它允许用户直接指定产生输出的时间点。一旦选择了该项,则在它的右边出现一个outputtimes编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。Producespecifiedoutputonly:它的意思是让simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的时间输出。Outputoptions输出选项(在变步长模式下有效)79WorkspaceI/O页此页主要用来设置与MATLAB工作空间交换数值的有关选项。Loadfromworkspace:从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。Initialstate用来定义从MATLAB工作空间获得的状态初始值的变量名。Savetoworkspace:设置保存到MATLAB工作空间的变量类型和变量名,包括输出时间向量(Time)、状态向量(States)和输出变量(Output)。最终状态(Finalstate)用来定义将系统稳态值存往工作空间所使用的变量名。WorkspaceI/O页此页主要用来设置与MATLAB80

Diagnostics页此页分成两个部分:仿真选项和配置选项。配置选项下的列表框主要列举了一些常见的事件类型,以及当SIMULINK检查到这些事件时给予的处理。仿真选项options主要包括是否进行一致性检验、是否禁用过零检测、是否禁止复用缓存、是否进行不同版本的SIMULINK的检验等几项。除了上述3个主要的页外,仿真参数设置窗口还包括real-timeworkshop页,主要用于与C语言编辑器的交换,通过它可以直接从SIMULINK模型生成代码并且自动建立可以在不同环境下运行的程序,这些环境包括实时系统和单机仿真。Diagnostics页此页分成两个部分:仿真选项和配置选81设置仿真参数和选择解法器之后,就可以启动仿真而运行。选择Simulink菜单下的start选项来启动仿真,如果模型中有些参数没有定义,则会出现错误信息提示框。如果一切设置无误,则开始仿真运行,结束时系统会发出一鸣叫声。启动仿真Simulink建模与仿真举例设置仿真参数和选择解法器之后,就可以启动仿真而运行。启动仿82演示示波器ScopeSimulink建模与仿真举例演示示波器ScopeSimulink建模与仿真举例83SCOPE图形的鼠标右键:zoomoutAutoscaleSavecurrentaxessettingAxesproperties工具栏:ScopeparametersGeneralDatahistoryFloatingscopeExm5_2.mdlSimulink建模与仿真举例SCOPE图形的鼠标右键:Exm5_2.mdlSimuli84Simulink建模与仿真举例Simulink建模与仿真举例85Simulink建模与仿真举例连杆机构设计的基本问题是根据给定的运动要求选定的形式,并确定其各构件的尺寸参数。为了使机构设计合理,可靠,通常还需要满足结构条件(如要求存在曲柄,杆长比较恰当),动力条件和运动连续条件等。根据机械的用途和性能要求等的不同,对连杆机构设计的要求是多种多样的,但这些设计要求一般可归纳为以下三类问题:一是满足预定的运动规律要求,即要求两连架杆的转动能满足预定的对应关系;或者要求在原动件运动规律一定的条件下,从动件能够准确地或者近似地满足预定的运动规律要求;二是满足预定的连杆位置,即要求连杆能依次占据一系列地预定位置;三是满足预定的轨迹要求,即要求在机构运动过程中连杆上某点能实现预定的轨迹。Simulink建模与仿真举例连杆机构设计86Simulink建模与仿真举例确定四个连杆长度后,对曲柄摇杆机构运动进行解析法分析,应用编程方法进行仿真分析的实现。Simulink建模与仿真举例确定四个连杆87Simulink建模与仿真举例按图示运用SimMechanics仿真:

Simulink建模与仿真举例按图示运用SimMechan88Simulink建模与仿真举例仿真结果:

Simulink建模与仿真举例仿真结果:89Simulink建模与仿真举例仿真结果:

Simulink建模与仿真举例仿真结果:90Simulink建模与仿真举例仿真结果:

Simulink建模与仿真举例仿真结果:91Simulink建模与仿真举例结果分析:从仿真结果可以看出,对于机械模型设计仿真优化,SimMechanics比普通编程方法无论在效率上,还是功能上都要强大很多,而且实现了动画显示,是机械系统的建模和设计强大而方便的工具。结合某工程应用实际,在分析四杆机构运动学的基础上,利用SimMechanics工具箱对该工程实例进行了仿真分析研究。与运用编程方法进行仿真相比,采用SimMechanics可以更容易地解决复杂机构系统的仿真问题,使工程技术人员能更专注于对机械系统的各种运动进行分析的应用设计,并可以得出直观的动画效果。SimMechanics工具箱具有系统建模方便直观,仿真功能强大,自动模型分析且不需要编程等优势,它为机械产品的优化仿真分析提供了条件,也为机械产品的性能优化提供了基础。Simulink建模与仿真举例结果分析:从仿真结果可以看出92学习MATLAB/simulink的方法:

1.听,听老师讲,掌握快

2.练,听后练习,掌握牢

3.试,大胆尝试,掌握好

4.查,查看帮助,掌握多SIMULINK仿真编程四个层次:

1.会使用基本模块搭建模型

2.能使用已有模块搭建复杂模块和模型

3.能使用S-function编写复杂模块

4.能将SIMULINK用于半实物仿真或实时控制推荐学习SIMULINK论坛:研学论坛()中国振动联盟()学习MATLAB/simulink的方法:SIMULINK仿93m=5,k=2,c=1m=5,k=2,c=194已知条件:假设系统处于零平衡位置,外力函数为幅值为1的阶跃函数。已知条件:假设系统处于零平衡位置,外力函数为幅值为1的阶跃95基于MATLABSimulink的建模与仿真课件96基于MATLABSimulink的建模与仿真课件97基于MATLABSimulink的建模与仿真课件98介绍了一个强大的仿真环境MATLAB/Simulink,SIMULINK是MATLAB的一个扩展软件,它是基于模型化图型输入的仿真环境。介绍了系统Simulink建模的全过程,包括模块复制,模块连接,模块参数修改,仿真控制参数设置,仿真过程的启动和仿真结果显示等。

对几类常用的系统形式通过例子进行了详细介绍。小结介绍了一个强大的仿真环境MATLAB/Simulink,99作业:弹簧阻尼系统仿真已知:试分析参数b对系统阶跃响应的影响。忽略重力影响,弹簧阻尼系统的数学模型:作业:弹簧阻尼系统仿真已知:试分析参数b对系统阶跃响应的影100计算机仿真技术计算机仿真技术101第五讲基于MATLAB/Simulink的建模与仿真

MATLAB软件简介

MATLAB仿真实例什么是Simulink?

Simulink模块库简介

Simulink模型的建立方法

Simulink建模与仿真举例小结第五讲基于MATLAB/Simulink的建模与仿真102

MATLAB软件简介?MATLAB是一门计算机编程语言,是一种科学计算软件,取名来源于MatrixLaboratory,本意是专门以矩阵的方式来处理计算机数据

.MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,被广泛应用在科学计算,信息处理,控制系统等领域的分析,仿真和设计工作。

MATLAB的功能包括:数值分析,数值和符号计算,工程和科学绘图,通讯和控制系统的设计与仿真,数字图像与信号处理,财务与金融工程等。MATLAB软件简介?MATLAB是一门103

MATLAB软件简介?MATLAB软件的典型应用领域:科学研究;工程技术应用研究CAI(ComputerAidedInstruct)数学实验(MathematicalExperiment)数学建模(MathematicalModeling)MATLAB软件简介?MATLAB软件的典型应用领域:104clear删除工作空间中的所有变量!系统不会要求你确认这个命令。所有变量都被清除且不能再恢复。对于简单的问题,在MATLAB提示符下输入命令是快速有效的。然而当命令数增加或希望改变一个或几个变量的值,然后重新执行一系列命令时,在MATLAB提示符处键入命令就非常麻烦了。对这个问题MATLAB提供了一种逻辑解决方案。它允许用户把MATLAB命令放在一个简单的文本文件中,然后告诉MATLAB打开文件并执行命令,如同在MATLAB提示符处键入命令一样。这些文件被称为脚本文件或简单地称为M文件。M文件是指脚本文件以扩展名.m结尾。

MATLAB软件简介?clear删除工作空间中的所有变量!系统不会要求你确认这个命105MATLAB提供三种控制流结构的语句:For-end循环While-end循环If-Else-End结构

MATLAB软件简介?MATLAB提供三种控制流结构的语句:MATLAB软件简106For-end循环的基本作用是以固定的和预定的次数重复一组特定的命令。一般形式是:forn=循环控制量的范围{commands}end

MATLAB软件简介?For-end循环的基本作用是以固定的和预定的次数重复一组特107说明:在for和end语句之间的命令串{commands}按矩阵(array)中的每一列执行一次。在每一次迭代中,n被指定为循环控制量的范围内的下一列。例如:forn=1:10x(n)=sin(n*pi/10);end这个循环体的作用是:对n等于1到10,求所有语句的值,直到下一个end语句。第1次通过For循环n=1,第2次,n=2,如此继续,直到n=10。在n=10以后,For循环结束,然后求end语句后面的任何命令值说明:在for和end语句之间的命令串{commands}按108For循环不能用For循环内重新赋值循环变量n来终止。在For循环中循环控制量的范围可以是任何有效的MATLAB矩阵。比如data=[119456;716-15];forn=datax=n(1)-n(2)end这时程序的输出有四个数值,分别是矩阵data的两列相减的结果x=4x=-7x=46x=1For循环不能用For循环内重新赋值循环变量n来终止。109For循环可按需要嵌套,即For循环体内的命令组中可以出现另一个For循环体,这体现了For循环体也是命令组。比如forn=1:5form=5:-1:1A(n,m)=n^2+m^2;EndendFor循环可按需要嵌套,即For循环体内的命令组中可以出现另110While-end循环以不定的次数求一组语句的值。Whil-end循环的一般形式是:whileexpression(控制表达式){commands}end只要在控制表达式(expression)里的所有元素为真,就执行While和end语句之间的命令串({commands})。

MATLAB软件简介?While-end循环以不定的次数求一组语句的值。Whil-111说明:控制表达式的值未必是一个标量值,矩阵值也同样有效。在矩阵情况下,所得到矩阵的所有元素必须都为真。具体示例:num=0;EPS=1;while(1+EPS)>1EPS=EPS/2;num=num+1;end这段MATLAB代码最后在num=53时停止。说明:控制表达式的值未必是一个标量值,矩阵值也同样有效。在矩112IF-ELSE-END结构提供有条件地执行一些特定的命令序列的方式。最简单的IF-ELSE-END结构是:ifexpression(条件控制表达式){commands}end如果在条件控制表达式(expression)中的所有元素为真(非零),那么就执行if和end语句之间的命令串({commands})。在表达式包含有几个逻辑表达式时,即使前一个表达式决定了表达式的最后逻辑状态,仍要计算所有的子表达式。

MATLAB软件简介?IF-ELSE-END结构提供有条件地执行一些特定的命令序列113一般的有两个选择的IF-ELSE-END结构是:ifexpression(条件控制表达式)commandsevaluatedifTrueelsecommandsevaluatedifTrueend在这里,如果条件控制表达式(expression)为真,则执行第1组命令;如果表达式是假,则执行第2组命令。一般的有两个选择的IF-ELSE-END结构是:114有三个或更多选择时的IF-ELSE-END结构的形式:ifexpression1commandsevaluated-ifexpression1isTrueelseifexpression2commandsevaluated-ifexpression2isTrueelseifexpression3commandsevaluated-ifexpression3isTrueelseifelsecommandsevaluatedifonotherexpressionisTrueend最后这种有三个以上选择的IF-ELSE-END形式,依次检查各表达式,只执行第一个表达式为真的命令串,接下来的关系表达式不检验,跳过其余的IF-ELSE-END结构。最后的else命令可有可无。有三个或更多选择时的IF-ELSE-END结构的形式:115break是一种特殊的控制结构,基本作用是无条件跳出临近的循环体,即结束For循环和While循环的执行。

MATLAB软件简介?break是一种特殊的控制结构,基本作用是无条件跳出临近的循116学习和使用常用软件MATLAB的一些基本语句和功能来验证或观察函数的变化,实现函数的可视化计算

MATLAB软件简介?学习和使用常用软件MATLAB的一些基本语句和功能来验证或观117MATLAB仿真举例设系统方程,y(0)=1试用Euler法求其数值解(取步长h=0.1,0≤t≤1)试编写matlab程序求其数值解。MATLAB仿真举例设系统方程,y(0)=1试用Euler118设系统方程,y(0)=1试用Euler法求其数值解(取步长h=0.1,0≤t≤1)试编写matlab程序求其数值解。Euler迭代公式:yn+1=yn-0.1yn2MATLAB仿真举例设系统方程,y(0)=1试用Euler法求其数值解(取步长h119Euler迭代公式:yn+1=yn-0.1yn2,y(0)=1(取步长h=0.1,0≤t≤1)MATLAB仿真举例Euler迭代公式:yn+1=yn-0.1yn2,y(0)=120Euler迭代公式:yn+1=yn-0.1yn2,y(0)=1t=[0:0.1:1]’;length=size(t,1);y=zeros(size(t));y(1)=1;forn=1:1:length-1y(n+1)=y(n)-0.1*y(n)^2endplot(t,y)(取步长h=0.1,0≤t≤1)MATLAB仿真举例Euler迭代公式:yn+1=yn-0.1yn2,y(0)=121运行结果:y=1.00000.90000.81900.75190.69540.64700.60520.56850.53620.50750.4817MATLAB仿真举例运行结果:y=MATLAB仿真举例122

作业设系统方程,y(0)=1试用二阶龙格库塔法求其数值解(取步长h=0.1,0≤t≤1)试编写matlab程序求其数值解。二阶龙格库塔法迭代公式:请在第二次实验时上机验证结果。作业设系统方程,y(0)=1试用二阶龙格库塔法求其数值解(123

Simulink是MATLAB提供的实现动态系统建模和仿真的一个软件包,它让用户把精力从编程转向模型的构造。

Simulink一个很大的优点是为用户省去了许多重复的代码编写工作。Simulink

支持线性,非线性系统,连续系统,离散系统,或者混合系统的建模与仿真。同时它也支持具有不同部分拥有不同采样率的多种采样速度的系统仿真。

Simulink的启动方式有两种:(1)在工具栏点击Simulink图标;(2)在CommandWindow中输入:>>Simulink

什么是Simulink?Simulink是MATLAB提供的实现动态124Simulink模块库简介Simulink模块库简介125SIMILINK模块库按功能进行分类:连续模块、离散模块、查表模块、数学模块、非线性模块、信号通路模块、接收器模块、输入源模块、其他常用方块组及工具箱、特别模块。Simulink模块库简介SIMILINK模块库按功能进行分类:连续模126Derivative:输入信号微分Integrator:积分器State-Space:线性状态空间系统模型Transfer-Fcn:线性传递函数模型Zero-Pole:以零极点表示的传递函数模型Memory:存储上一时刻的状态值TransportDelay:输入信号延时一个给定时间再输出VariableTransportDelay:输入信号延时一个可变时间再输出

连续模块(Continuous)Derivative:输入信号微分连续模块(Continu127Zero-OrderHold:零阶采样保持器UnitDelay:一个采样周期的延时Discrete-timeIntegrator:离散时间积分器DiscreteState-Space:离散状态空间系统模型DiscreteFilter:离散滤波器DiscreteTransfer-Fcn:离散传递函数模型DiscreteZero-Pole:以零极点表示的离散传递函数模型First-OrderHold:一阶采样保持器离散模块(Discrete)Zero-OrderHold:零阶采样保持器离散模块(D128Look-UpTable:建立输入信号的查询表(线性峰值匹配)Look-UpTable(2-D):建立两个输入信号的查询表(线性峰值匹配)Fcn:用户自定义的函数(表达式)MATLABFcn:利用MATLAB的现有函数S-Function:调用自编的S函数的程序

Look-upTable(查表模块)

User-definedfunction(用户定义函数模块)Look-UpTable:建立输入信号的查询表Look129Sum:加减运算Product:模块输入的乘除运算DotProduct:点乘运算Gain:比例运算MathFunction:包括指数函数、对数函数、求平方等常用数学函数TrigonometricFunction:三角函数,包括正弦、余弦、正切等MinMax:最小值或最大值运算

Mathoperations(数学模块)Sum:加减运算Mathoperations(数学模块130Abs:取绝对值Sign:给出符号函数RoundingFunction圆整函数CombinatorialLogic:建立真值表LogicalOperator:逻辑运算RelationalOperator:关系运算ComplextoMagnitude-Angle:由复数输入转为幅值和相角输出ComplextoReal-Imag:由复数输入转为实部和虚部输出Magnitude-AngletoComplex:由幅值和相角输入合成复数输出Real-ImagtoComplex:由实部和虚部输入合成复数输出Abs:取绝对值131RateLimit:变化速率限制Saturation:饱和输出,让输出超过某一值时能够饱和。Quantizer:离散化Blacklash:滞环或间隙DeadZone:死区Relay:滞环继电器Switch: 切换开关ManualSwitch:手动选择开关Coulomb&ViscousFriction库仑和粘滞摩擦

Discontinuous(非线性模块)RateLimit:变化速率限制Discontinu132Mux:将多个单一输入转化为一个复合输出。Demux:将一个复合输入转化为多个单一输出。

SignalRouting(信号通路模块)Mux:将多个单一输入转化为一个复合输出。SignalR133Scope:示波器,显示信号曲线。XYGraph:显示二维X-Y图形。

Out1:输出端口Display:显示数值ToWorkspace:将输出写入MATLAB的工作空间。ToFile(.mat):将输出写入数据文件。Terminator:终止一个未连接的输出端口

Sinks(接收器模块)Scope:示波器,显示信号曲线。Sinks(接收器模块134In1:输入端口Constant:常数信号SignalGenerator:信号发生器,产生任意波形Ramp:斜坡信号SineWave:正弦波信号Step:阶跃波信号RepeatingSequence:重复信号PulseGenerator:脉冲发生器Ground:搁置一个未连接的输入端口Clock:时钟信号FromWorkspace:来自MATLAB的工作空间。FromFile(.mat):来自数据文件。

Sources(输入源模块)In1:输入端口Sources(输入源模块)135其他常用方块组及工具箱

Blocksets&Toolboxes其他常用方块组及工具箱

Blocksets136

Simulinkextras(特别模块)Simulinkextras(特别模块)1372.SimulinkExtras(Simulink附加库)3.CommunicationsBlockset(通信模块集)4.ControlSystemToolbox(控制系统工具箱)5.DSPBlockset(数字信号处理模块集)6.Dials&GaugesBlockset(面板和仪表模块集)7.Fixed-PointBlockset(定点模块集)8.FuzzyLogicToolbox(模糊逻辑工具箱)9.MPCBlockset(MPC模块集)10.NCDBlockset(非线性控制设计模块集)11.MotorolaDSPBlockset(DSP模块集)12.NeuralNetworkBlockset(神经网络模块集)13.PowerSystemBlockset(电力系统模块集)SIMULINK的一些其它工具箱2.SimulinkExtras(Simulink附加13814.Real-TimeWindowsTarget(实时窗口目标库)15.Real-TimeWorkshop(实时工作空间库)16.SystemIDBlocks(系统辨识模块集)17.Stateflow(有限状态流程库)18.AerospaceBlockset(航空模块集)23.DataAcquistionToolbox(数据采集工具箱)20.SignalProcessingBlocks(信号处理工具箱)21.ImageAcquistionToolbox(图形采集工具箱)22.RFBlockset(射频工具箱)23.VideoandImageProcessingBlocks图像处理工具箱新增工具箱:机构仿真工具箱液压驱动工具箱14.Real-TimeWindowsTarget(实时139基于MATLABSimulink的建模与仿真课件140例1、考虑下图所示的简单的小车系统运动。例1、考虑下图所示的简单的小车系统运动。141例1、考虑下图所示的简单的小车系统运动。忽略摩擦力,运动微分方程为:例1、考虑下图所示的简单的小车系统运动。忽略摩擦力,运动微分142例1、考虑下图所示的简单的小车系统运动。在matlab/simulink中搭建仿真模型:加入两个积分模块,第一个模块用来计算速度,第二个模块用来计算位移,可用模块图表示为:例1、考虑下图所示的简单的小车系统运动。在matlab/si143例1、考虑下图所示的简单的小车系统运动。假定F=sin(t)为正弦激励,m=0.5。求0~10s区间内的系统位移响应曲线,仿真结果如下图:例1、考虑下图所示的简单的小车系统运动。假定F=sin(t)144例1、考虑下图所示的简单的小车系统运动。若要求同时输出位移和速度,则模型框图为:例1、考虑下图所示的简单的小车系统运动。若要求同时输出位移和145例1、考虑下图所示的简单的小车系统运动。仿真结果如下图:例1、考虑下图所示的简单的小车系统运动。仿真结果如下图:146基于MATLABSimulink的建模与仿真课件147基于MATLABSimulink的建模与仿真课件148基于MATLABSimulink的建模与仿真课件149在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作。移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。删除:选中模块,按Delete键即可。若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单FormatFlipBlock(Ctrl+I)旋转180度,FormatRotateBlock(Ctrl+R)顺时针旋转90度。模块的处理

Simul

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论