版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、技术凝聚实力技术凝聚实力专业创新出版专业创新出版第23章 simulink高级技术l在第22章中,对simulink使用的一些基础知识、动态系统建模方法及仿真的方法做了详细的介绍。在22章的介绍中读者可以看到,simulink环境中可运行的工具包很多,已经涵盖了航空、航天、控制、通信、dsp、电力等诸多领域,所涉及的内容专业性极强。为此,本章将向读者介绍一些simlink的高级技术,以求给读者一个更加深刻的印象。l本章主要介绍simulink的高级仿真技术,主要包括:数据显示、高级积分器 、过零以及系统代数环形成与处理、simulink条件执行子系统、simulink调试技术、模块库的扩展及函
2、数的创建与使用等。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.1 数据显示l在工程设计中,对于大多数工程设计人员来说,查看和分析结果曲线对于了解模型的内部结构,以及判断结果的准确性具有重要意义。lsimulink仿真模型后,绘制模型输出轨迹的方法有以下几种:l将信号输出到scope模块或xy graph模块;l使用悬浮scope模块或display模块;l将输出数据写入到返回变量,并用matlab的绘图命令绘制曲线;l将输出数据用to workspace模块写入到工作区,并用matlab的绘图命令绘制结果曲线。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.1.1 使用scop
3、e模块lscope模块是示波器模块,它与实验室中使用的示波器功能类似,在模型仿真运行结束后,用户可以再通过双击打开scope模块,观察输出轨迹。lscope模块显示对应于仿真时间的输入信号,该模块可以在一个坐标系中,以不同的颜色同时显示出多个输入信号,用户可以调整需要显示的时间范围和输入值范围。当用户运行模型仿真时,虽然simulink会把结果数据写入到相应的scope中,但它并不打开scope窗口,用户在仿真结束运行后双击scope模块打开示波器窗口,此时示波器窗口会显示scope模块的输入信号。如果信号是连续的,scope会生成有点构成的连续曲线;如果信号是离散的,scope会生成阶梯状曲
4、线。此外,用户还可以在仿真运行期间移动scope窗口或改变窗口的大小,或scope窗口的参数值。使用scope模块提供的工具栏按钮,可以缩放被显示的数据,保存此次仿真的坐标轴设置,限制被显示的数据量,把数据存储到工作区等。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.1.2 使用xy graph模块lxy graph模块是simulink中sinks模块库中的模块,该模块利用matlab的图形窗口绘制信号的xy曲线,这个模块有两个标量输入,它把第一个输入作为x轴数据,第二个输入作为y轴数据,x轴和y轴的坐标范围可以在模块的参数对话框内设置,如图23.5所示,超出指定范围的数据在图形窗口
5、中不显示。此外,如果模型中有多个xy graph模块,simulink仿真的起始时刻会为每个xy graph模块打开一个图形显示窗口。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.1.3 使用悬浮scope模块l悬浮scope模块也是一个可以显示一个或多个信号的示波器模块,用户启用悬浮scope模块的方式有:l从simulink的sinks库中把scope复制到模型中并按下“悬浮示波器”按钮,将scope模块设置为悬浮示波器;l直接从sinks库中把floating scope模块复制到模型窗口中。l悬浮示波器是不带输入端口的模块,它可以在仿真过程中显示任何一个被选择的信号,悬浮示波器
6、通过示波器窗口中的蓝框来辨别,下面,将结合如图23.9所示的模型,演示浮动示波器的使用。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.1.4 使用命令绘制输出曲线l关于使用命令绘制输出曲线,这里将通过一个建模的例子向读者说明。l【例23.1】 求解微分方程。其中是单位阶跃函数,初始值为0。l要求解这样一个问题,关键是建立能够表征例中微分方程的模型,故其模型实现步骤如下。l(1)改写微分方程为:。l(2)选择模块、构建模型。在微分问题中,往往是通过积分来解决微分问题,基本思路是:经过积分得到,再经过积分得到,而可由(1)中的代数运算得到。技术凝聚实力技术凝聚实力专业创新出版专业创新出版2
7、3.2 过零检测l在运行动态系统仿真时,simulink利用过零检测来检查每个时间步上系统状态变量的不连续性,如果simulink在当前工作时刻检测到不连续性,它会确定不连续性状态出现的准确时刻,并在该时刻的前后选取另外的时间步来求取仿真结果。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.2.1 过零检测的工作方式l在动态系统中,状态变量的不连续性往往表征了系统的重要事件。以篮球撞击地面系统为例,在篮球撞击地面的时刻,撞击的位置是不连续的,在仿真中,如果篮球是在两次时间步之间撞击了地面,那么仿真的结果可能是篮球在半空中就已经翻转方向,这与我们实际情况是不相符的,因此,对不连续点的精确仿
8、真是非常重要的。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.2.2 执行过零检测l过零检测可以使simulink精确的仿真不连续点,而不必过多的选用小步长。事实上,simulink中的许多模块都支持过零检测。在实际仿真中,如果用户对所有的系统,包括含有不连续状态的系统,利用过零检测进行仿真,不仅可以加快仿真速度,也可以提高仿真精度。l对于simulink中不同模块来说,产生过零的类型是不同的,如abs模块是在输入信号符号发生变化时产生过零,而积分模块进入饱和区段时产生过零。后一种模块我们称为饱和(saturation)模块,当过零检测功能检测到饱和模块发生如下事件时产生过零:l输入信
9、号达到上限;l输入信号离开上限;l输入信号到达下限;l输入信号离开下限。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.3 代数环的概念及解决方案l在simulink仿真中,读者可能看到如下的代码信息:lfound algebraic loop containing:l li14/k2l li14/sum (algebraic variable)l这说明在模型中存在代数环(algebraic loops),simulink中代数环与数学上的代数循环的概念是一样的。通常,在代数环中包含的某些模块都具有这样的特性:当前时刻模块的输出依赖于当前时刻模块的输入。这种输入输出关系在时间上“无延时”
10、模块被称为直接馈通模块(direct feedthrough)。在smulink中具有这种“无延时”特性模块有:技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.3.1 代数环的表征l一般来说,代数环在模型图表现为含有直接馈通模块的闭合回路。如下图23.19所示。模型中红色显示的部分就是一个闭合的含有直接馈通模块的代数环,读者可以在运行模型后在matlab命令窗口中验证。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.3.2 代数环问题的解决l计算机在处理代数环计算时,采用的是一种迭代算法,也就是说每个时间步里,计算机都将进行这样的计算,这会使得计算机的计算时间增长。同时,由于这种代
11、数环包含的模块的“无延时”特性,要求环上所有模块的输出在同一时刻计算,这与系统顺序仿真的要求不符。l要解决代数环问题,可以采取以下方式:l方式一:设计模型时尽量不采用代数环设计;l方式二:在计算速度可以忍受的范围内,可以不必介意代数环问难;l方式三:对代数环采取代数约束;l方式四:切断模型中的代数环。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.4 高级积分器l在simulink的continues库中有一个非常重要的模块就是积分模块integrator,其功能是对输入信号进行积分,并输出当前时间步上的积分值。这里用一个等式来说明:,其中,y时模块的输出,u时输入,是初始时刻,t是当前
12、时刻,是初始状态。lsimulink可以用许多中不同的数值积分方法来计算积分模块的输出,每种方法在特定的环境下都有各自的优缺点,simulink将积分模块看作一个具有状态和输出的动态系统,他的输入时状态的时间导数。如下式所示:,用户可以在simulation parameters对话框中选择合适的求解器算法,所选择的求解器会用当前时刻的输入值和前一时刻时间步的状态值来计算当前时间步上积分模块的输出值。为了支持这种计算模式,积分模块必须保存当前时间步的输出值以备计算下一时间步的输入值,同时,模块也提供给求解器一个初始条件,用来在仿真开始执行时计算模块的初始状态,默认情况下值为0。模块参数对话框也
13、允许用户为初始条件指定其他值,或者在模块中创建一个初始值输入端口。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.4.1 定义初始条件l双击积分模块,打开积分模块参数属性对话框,如图所示。l在该对话框中,用户可以将初始条件定义为参数,或选择从外部信号输入初始条件。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.4.2 限制积分l为了防止输出超出指定的范围,用户可以勾选limit output复选框,在下面的参数文本框中输入适当的限制范围值,如图23.26所示。l当输出达到限制值时,simulink将关闭积分动作,在积分过程中,用户可以改变这个积分限制,但模块的输出将遵循以下规则:l
14、当积分小于或等于lower saturation limit参数值,而且输入是负值时,输出被限制在lower saturation limit值;l当积分在lower saturation limit和upper saturation limit之间时,输出是积分值;l当积分大于或等于upper saturation limit参数值,而且输入是正值时,输出被限制在upper saturation limit值。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.4.3 重新设置状态l积分模块可以根据外部信号重新把状态设置为指定的初始条件。当用户选择积分模块参数对话框中external re
15、set列表下的任意选项时,模块输入端口的下方将出现一个触发端口,同时标注所选项的触发类型,如图23.30所示。lexternal reset列表下各项功能说明如下:lrising:当重置信号有上升沿时触发状态重置;lfalling:当重置信号有下降沿时触发状态重置;leither:当重置信号有上升沿或者下降沿发生时,触发重置;llevel;当重置信号为非零时,触发重置,并保持输出为初始条件值。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.4.4 状态端口l勾选积分模块参数对话框中show state port复选框,积分模块将在其顶部出现一个附加的输出端口,即状态端口。如果模块在当前时
16、间步上重置,那么状态端口的输出值是模块还没有被重置时标准输出端口的值;除此以外,状态端口和模块的标准输出端口一样。l由于状态端口比积分模块标准输出端口早一个时间步,因此,状态端口的使用可以使用户在创建下列模型时 避免代数环的出现:l自重置积分器;l在两个使能子系统间传递状态。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.4.5 创建自重置积分器l有时候,用户可能需要创建一个根据积分器输出值来重新设置积分器初始值的模型,那么这时,往往产生一个代数环;为了避免这个问题,用户最好使用积分模块状态端口这个功能来避免代数环的产生。在如图所示的模型中,创建了一个自重置积分器,其将输出减去1后反馈回
17、积分器的重置端口。l但是,当运行这个模型时,将弹出如图所示的仿真错误诊断器,显示仿真中出现代数环,并在2.449489742783214时刻停止仿真,而simulink无法判断积分器的输出值,因为计算积分器的输出需要知道模块的重置信号。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.5 简单子系统l对于工程问题,建立的模型往往非常复杂,此时,可以通过把多个模块组合在子系统中来简化模型。创建子系统有如下优点:l减少了模型窗口中显示模块的数目;l使得模块之间的函数关系清晰化;l建立层次模型,子系统作为一个层,组成子系统的其他模块构成另一个层;l子系统可以反复调用。技术凝聚实力技术凝聚实力专业
18、创新出版专业创新出版23.5.1 系统的基本操作和子系统创建的方法l在用户使用simulink子系统建立系统模型之前,简单介绍一下子系统的基本操作。l1子系统命名:命名方法与模块命名类似。为增强系统模型的可读性,应使用有代表意义的文字给子系统进行命名。l2子系统编辑:用鼠标左键双击子系统模块图标,打开子系统属性对话框对其进行编辑。l3子系统的输入:使用sources模块库中的inport输入模块(即in1模块)作为子系统的输入端口。l4子系统的输出:使用sinks模块库中的outport输出模块(即out1模块)作为子系统的输出端口。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.5.2
19、 组合已有模块创建子系统l这是一种比较简单的方法,也易于用户操作。下面通过一个实例来说明通过组合已有模块来创建子系统的具体方法。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.5.3 添加subsystem模块创建子系统l添加子系统模块创建子系统的方法就是首先将系统模型模块化,即将模型中实现不同功能的模块组看成一个子系统,用一个空的子系统模块来表征,勾画出整个系统的方框图,再在空的子系统模块中添加相应的模块来实现该子系统的预定功能。l下面的例子将演示这种创建方法。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.6 条件执行子系统l条件执行子系统的执行受到控制信号的控制,也就是说,系
20、统的输出受输入信号之外的另一个信号控制。这个控制信号是从子系统的一个单独端口输入的。根据控制信号对条件子系统执行的控制方式的不同,可以将条件执行子系统划分为如下的几种基本类型。l使能子系统(enable subsystem):当子系统为正时,子系统将被执行。l触发子系统(triggered subsystem):当控制信号的符号发生变化时,即当信号过零时,自系统将被执行。其触发方式有三种,控制信号上升沿时触发,控制信号下降沿时触发,控制信号上升或下降沿时触发。l使能触发子系统(enable and triggered subsystem):在使能状态下被触发时执行子系统。即在控制信号为正的同时
21、出现触发信号,子系统才被执行。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.6.1 使能子系统(enable subsystem)l使能子系统(enable subsystem)在控制信号为正值时的时间步上开始执行,一个使能子系统有单个的控制输入,该输入信号可以是标量也可以是向量。l如果控制信号是标量,那么当输入信号大于零时子系统开始执行。l如果控制信号是向量,那么当向量中的一个分量大于零时子系统开始执行。l下面将通过事例来说明使能子系统的使用。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.6.2 触发子系统(triggered subsystem)l触发子系统指的是只有在控制
22、信号的符号发生改变的情况下(也就是控制信号出现过零事件时),子系统才开始执行。按照控制信号符号变化方式的不同,触发子系统可分为如下三类: l上升沿触发子系统。系统在控制信号出现上升沿时开始执行;l下降沿触发子系统。系统在控制信号出现下降沿时开始执行;l双边沿(上升沿或下降沿)触发子系统。系统在控制信号出现任何过零时开始执行。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.6.3 触发使能子系统l对于某些条件执行子系统而言,其控制信号可能不止一个。在很多情况下,条件执行子系统同时具有触发控制信号与使能控制信号,这样的条件执行子系统一般称之为触发使能子系统。顾名思义,触发使能子系统指的是子系
23、统的执行受到触发信号和使能信号的共同控制,也就是说,只有当触发条件与使能条件均满足的情况下,子系统才开始执行。触发使能子系统的工作原理如图所示。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.7 子系统封装l封装就是创建子系统的自定义用户接口,也就是把具有一定功能的子系统封装成一个模块。它可以隐藏原子系统中的内容,使其作为一个模块显示在用户模型中,而且该模块与simulink中的固有模块一样有自己的图标和参数对话框,当用户双击这个模块时可以打开属性对话框,并设置参数值。lsimulink中的mask editor(封装编辑器)提供了封装子系统时编辑模块的所有操作设置值,它可以对任何子系统
24、进行封装。若要打开封装编辑器,可选择子系统模块,然后从包含子系统的模型窗口中的菜单【edit/edit mask】选项,或者在子系统模块上单击鼠标右键,在弹出的菜单中选择edit mask选项,打开mask editor对话框,其共有四个标签页:icon、parameters、initialization和documentation。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.7.1 icon标签页licon标签页,如图所示,它可以创建包含文本说明、状态方程、图像和图形的图标。默认状态下封装子系统是不使用图标的。icon标签页包括图标选项栏icon option、绘图命令栏drawi
25、ng commands以及绘图命令举例栏examples of drawing commands。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.7.2 parameters标签页l子系统封装的目的之一就是提供一个友好的参数设置界面。用户无须了解子系统内部结构,只需输入参数就可以对系统进行设计和仿真。子系统封装编辑器界面parameters标签页如图所示。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.7.3 initialization标签页l初始化设置标签页如图所示。其中的对话变量表(dialog variables)是在用户设置了参数标签页(parameters)中变量(va
26、riable)之后自动生成的。初始化命令(initialization commands)一般是matlab命令,可以通过matlab命令定义封装后子系统空间中的各种变量,以便这些变量在被封子系统模块图标绘制指令或其他初始化指令中使用。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.7.4 documentation标签页ldocumentation标签页,可以帮助用户建立全面的帮助文档,通过该标签页可以定义或更改被封装模块的类型、说明和帮助文本,它有三个选项区:mask type、mask description和mask help。lmask type栏。在mask type栏中输入
27、封装子系统的标注性说明。在选择模型窗口菜单【view/block data tips/show block data tips】子项之后,当鼠标停留在模块上时模块将会显示该标注。lmask description栏。封装说明区域中的文本内容将显示在参数设置窗口的说明部分,它可以对模块的作用和参数的设置方式进行简要的说明。lmask help栏。该区域中输入的帮助信息将在单击参数设置窗口的“help”按钮后在浏览器加载的网页中出现。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.7.5 子系统封装举例l【例23.12】封装如图所示的模型,其中constant模块表示自变量x,display
28、模块显示输出y。模型实现直线方程,本例演示将实现功能的模块封装,并使其中斜率k和截距b的变量化。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.8 simulinlk调试器lsimulink调试器是一个定位和诊断模型中错误的工具它允许用户利用仿真方法来仿真模型,并在每个方法结束后暂停仿真,查看该方法执行后的仿真结果。通过simulink调试工具,用户可以采用多种方式对模型进行调试,发现其中可能存在的问题并加以修改,从而使得用户的模型设计、仿真、更加快捷。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.8.1 启动simulink图形调试器lsimulink调试器有两种模式,即gui
29、模式和命令行模式,这里主要介绍gui模式。simulink图形调试界面的启动方式有两种:l单击要调试模型窗口工具栏按钮 ,打开图形调试窗口;l打开要调试模型的窗口,选择菜单栏【tools/debugger】子项,打开图形调试窗口,如图所示。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.8.2 simulink调试窗口工具栏lsimulink调试器窗口包括工具栏和左右两个面板。左侧面板包括break points标签页和simulation loop标签页;右侧面板包括outputs、sorted list和status标签页。lsimulink调试器工具栏如图所示。技术凝聚实力技术凝聚
30、实力专业创新出版专业创新出版23.8.3 断点显示及条件断点设置lsimulink调试器允许用户设置仿真执行过程中的断点,一般来说,用户可以在模块前设置断点,用户若要在模块上设置断点,则先选中该模块,然后单击调试器工具栏上的设置断点按钮 ,调试器将在breakpoint标签页下的break/display points中显示被选中模块的名称。除此之外,还可以在特定条件下设置断点,simulink调试器提供了五种条件断点设置,条件断点设置(break on conditions):lzero crossings复选框:遇到过零点检测时,产生断点;lstep size limited by sta
31、te复选框:在步长受状态限制时,产生断点;lsolver error复选框:解法器算法出错时,产生断点;lnan values复选框:在系统中出现无限大或超出机器数值表示范围时,产生断点;lbreak at time:在指定的某个时刻设置断点。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.8.4 仿真回路标签页(simulation loop)l单击仿真回路标签页,可以打开如图23.72中左侧面板所示的仿真回路标签页。可以看出,仿真回路标签页包括:方法(method)、断点 和断点标识(id)。l方法列(method)。方法列给出系统执行到当前所调用的各种方法,以树状结构进行显示,用户
32、可以单击列表中方法前的+/-号来展开/关闭树状结构,排列中的每个节点表示一个方法,展开这个节点就显示出它所调用的其他方法,树状结构中的模块方法名称是超链接的,单击模块方法名称会在模型中高亮显示相应的模块。l断点列。断点列是一系列复选框组成,勾选复选框意味着在该方法中设置一个断点。l标识列(id)。标识是方法在仿真过程中第一次执行时,simulink给其制定的一个整数标号。有些simulink指令用方法标识来指代方法。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.8.5 信息显示标签页l在调试器刚打开的时候,下列标签页并不显示任何信息,一旦调试开始,将在相应的标签页显示有关仿真的信息。l
33、1调试器输出标签页(outputs)l2调试器类型标签页(sorted list)l3调试器状态标签页(status)技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.8.6 设置无条件断点l如果用户知道自己系统执行到某些点或者满足一定条件就会出错,那么设置断点就将显得很有用。简单来说,断点就是仿真执行到该处时会暂停仿真,这时用户可以通过continue指令跳过这一断点继续执行到下一断点。simulink调试器允许用户设置的断点有两类:无条件中断和有条件中断。l无条件中断是指在任何条件下,系统执行到该模块或执行到设定的时间步都将停止仿真。设置无条件断点的方式有:l通过调试器工具栏设置断点;
34、l通过调试器仿真回路标签页设置断点;l通过matlab命令窗口设置断点。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.8.7 设置有条件断点l设置有条件中断,可以用调试器的“break on conditions”,也可以用以下的指令。ltbreak中断,在特定时间步内设置中断。这种设置用来指定当仿真执行到指定的时间时,仿真进程中断,这个指定的时间是仿真时间,而不是时间步个数,但其真实终止时刻是在大于指定时间且与指定时间最接近的时间步内。lnanbreak中断,在仿真出现无限大值时中断。这种设置是在仿真计算中出现无穷大或者计算数据限制,即上溢或下溢时,系统将结束仿真进程。如果在计算中出
35、现了计算错误,可以利用该指令的中断功能来查找。lxbreak中断,在仿真要选择可采用的时间步长时中断。如果模型中采用了可变步长解法器,那么当解法器遇到对其采用步长受限的情况时,系统将中断仿真进程。lzcbreak中断,出现过零时发生中断。这种中断设置是指,当系统检测到可能产生过零现象的模块时,暂停仿真进程,并在命令窗口中显示中断的位置、时间。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.9 编写s-函数ls-函数是系统函数(system function)的简称,是指采用非图形化的方式(即计算机语言,区别于simulink的系统模块)描述的一个功能模块。用户可以采用matlab代码,c
36、,c+,fortram或ada等语言编写s-函数。s-函数由一种特定的语法构成,用来描述并实现连续系统、离散系统以及复合系统等动态系统;s-函数能够接收来自simulink解法器的相关信息,并对解法器发出的命令做出适当的响应,这种交互作用非常类似于simulink系统模块与解法器的交互作用。ls-函数作为与其他语言相结合的接口,可以使用这个语言所提供的强大功能。例如,matlab语言编写的s-函数可以方便地调用各种工具箱函数和图形函数;使用c语言编写的s-函数则可以实现对操作系统的访问等。技术凝聚实力技术凝聚实力专业创新出版专业创新出版23.9.1 s-函数的工作原理l要创建一个s-函数,用户必须了解s-函数的工作原理。因为s-函数是一个系统函数,也就要理解simulink仿真的过程,首先就需要理解模块的数学含义。l1simulink模块的数学含义l2simulink仿真过程l3s-函数的回调技术凝聚实力
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 委托合同纠纷起诉书
- 2024年度电子设备采购合同标的及服务详细描述3篇
- 2024二手房买卖合同中的购房补贴及优惠政策协议2篇
- 2024二手房买卖合同中交易流程及时间节点安排
- 员工外派海外协议
- 的公司合作协议书
- 健身房2024年度应急演练与安全指导合同
- 2024年度物联网技术研发与示范应用合同2篇
- 污水处理厂运营合同模板范本
- 自愿变更抚养权协议书模板
- 学术规范与论文写作智慧树知到答案2024年浙江工业大学
- 2024年典型事故案例警示教育手册15例
- 球形网架结构的吊顶施工做法
- 孟母三迁(课堂PPT)
- 人教版八年级数学上册14.3.2《公式法》第2课时 教 案
- 股东会同意借款决议范本专业版
- 《南州六月荔枝丹》学习要点
- 软件工程实验报告_学生成绩管理系统
- 九年义务教育全日制小学音乐教学器材配备目录
- MSDS(10-100048)聚脂烤漆
- 船舶风险辩识、评估及管控须知
评论
0/150
提交评论