版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
控制系統(tǒng)仿真與CAD教材:《控制系統(tǒng)仿真與CAD》王燕平
——高等教育“十二五”規(guī)劃教材主講教師:閆晶晶聯(lián)系方式:yanjingjing2009@163.com公用郵箱:hngydxdqgcxy@163.com(20130901)計算機輔助設計(Computer-AidedDesign)2本課程主要內容第1章
控制系統(tǒng)仿真及工具軟件概述第2章控制系統(tǒng)的數(shù)學描述第3章控制系統(tǒng)分析第4章控制系統(tǒng)設計與仿真第5章控制系統(tǒng)CAD-Simulink基礎第1章
控制系統(tǒng)仿真及工具軟件概述控制系統(tǒng)及仿真軟件
MATLAB的操作與使用數(shù)值計算與矩陣運算程序、文件和函數(shù)控制系統(tǒng)是指由控制主體、控制客體和控制媒體組成的具有自身目標和功能的管理系統(tǒng)。1.1控制系統(tǒng)及仿真軟件概述2023/2/4運動體多傳感器控制器運動空間構建導航與控制…………信息濾波與融合4仿真軟件發(fā)展概述仿真技術引起該領域各國學者、專家們的重視,建立起國際仿真委員會,該公司于1967年通過了仿真語言規(guī)范。仿真語言CSMP(computersimulationmodelingprogram)應該屬于建立在該標準上的最早的專用仿真語言。中科院沈陽自動化研究所在1988年推出了該語言的推廣版本
CSMP-C。51.1控制系統(tǒng)及仿真軟件概述6系統(tǒng)仿真領域需求:
最高水平,最實用的軟件或語言介紹仿真技術,能直接采用該語言解決自己的問題。實踐證明,MATLAB就是這樣的仿真軟件,由于它本身卓越的功能,已經使得它成為自動控制、航空航天、汽車設計等諸多領域仿真的首選語言。所以在本課程中將介紹基于MATLAB/Simulink的控制系統(tǒng)仿真與設計方法及其應用。1.1控制系統(tǒng)及仿真軟件概述7本課程的主要研究內容:1.1控制系統(tǒng)及仿真軟件概述分析系統(tǒng)的數(shù)學模型編寫程序運算語句得到關于系統(tǒng)輸出和中間變量的有關數(shù)據(jù)、曲線實現(xiàn)對控制系統(tǒng)性能指標的分析與設計。8本課程的主要研究內容:1.1控制系統(tǒng)及仿真軟件概述本章主要說明控制系統(tǒng)模型和控制系統(tǒng)仿真等基本概念,并詳細介紹控制系統(tǒng)仿真工具軟件MATLAB。9
實際系統(tǒng)的物理模型:根據(jù)相似原理,把真實系統(tǒng)按比例放大或縮小制成的模型,其狀態(tài)變量與原系統(tǒng)完全相同。1.1.1 控制系統(tǒng)模型
10數(shù)學模型:用數(shù)學方程(微分方程、傳遞函數(shù)、狀態(tài)方程)或信號流程圖、結構圖來描述系統(tǒng)性能的模型。1.1.1 控制系統(tǒng)模型11
仿真模型:原始控制系統(tǒng)的數(shù)學模型不能用來直接對系統(tǒng)進行仿真,應該將其轉換為能在計算機中對系統(tǒng)進行仿真的模型。1.1.1 控制系統(tǒng)模型傳遞函數(shù)模型狀態(tài)空間模型動態(tài)結構圖模型數(shù)字控制器模型12本課程的主要研究內容:1.1控制系統(tǒng)及仿真軟件概述本章主要說明控制系統(tǒng)模型和控制系統(tǒng)仿真等基本概念,并詳細介紹控制系統(tǒng)仿真工具軟件MATLAB。13將實際系統(tǒng)抽象為數(shù)學模型,稱為建模問題1.1.2 控制系統(tǒng)仿真
控制系統(tǒng)仿真研究對象:控制系統(tǒng)仿真過程可劃分為三個基本活動:建模,模型實現(xiàn)和模型實驗
1.1.2 控制系統(tǒng)仿真
控制系統(tǒng)仿真研究對象:控制系統(tǒng)仿真過程可劃分為三個基本活動:建模,模型實現(xiàn)和模型實驗
將數(shù)學模型轉換為可在計算機上運行的仿真模型,稱為模型實現(xiàn)傳遞函數(shù)模型狀態(tài)空間模型動態(tài)結構圖模型數(shù)字控制器模型14模型試驗傳遞函數(shù)模型狀態(tài)空間模型動態(tài)結構圖模型數(shù)字控制器模型1.1.2 控制系統(tǒng)仿真
控制系統(tǒng)仿真研究對象:控制系統(tǒng)仿真過程可劃分為三個基本活動:建模,模型實現(xiàn)和模型實驗。
15
通常,采用計算機來實現(xiàn)控制系統(tǒng)仿真的過程以下幾個步驟:
一、根據(jù)仿真目的確定仿真方案
二、建立控制系統(tǒng)的數(shù)學模型
三、建立控制系統(tǒng)的仿真模型四、用合適的開發(fā)語言編制控制系統(tǒng)的仿真程序五、在計算機上進行仿真實驗并輸出仿真結果1.1.2 控制系統(tǒng)仿真
1617系統(tǒng)仿真領域需求:
最高水平,最實用的軟件或語言介紹仿真技術,能直接采用該語言解決自己的問題。實踐證明,MATLAB就是這樣的仿真軟件,由于它本身卓越的功能,已經使得它成為自動控制、航空航天、汽車設計等諸多領域仿真的首選語言。所以在本課程中將介紹基于MATLAB/Simulink的控制系統(tǒng)仿真與設計方法及其應用。1.1控制系統(tǒng)及仿真軟件概述語言簡單,使用方便
181.1.3
MATLAB的語言特點例:矩陣乘法C語言程序(核心部分)for(i=0:i<n;i++){for(j=0;j<m;j++){c[i][j]=0;for(k=0;k<p
;
k++)c[i][j]+=a[i][k]*b[k][j];}}MATLAB實現(xiàn):C=A*B功能強大,適用范圍廣在數(shù)值計算方面,MATLAB的內容幾乎涵蓋了所有的數(shù)學知識門類;有強大的符號運算功能;
十分方便的繪圖功能。擴充能力和可開發(fā)性很強MATLAB軟件除了有基本部分,還有專業(yè)擴展部分-工具箱(toolbox
);MATLAB的庫函數(shù)豐富,且可擴充。191.1.3
MATLAB的語言特點1.1.4MATLAB的控制產品MATLAB中與控制系統(tǒng)設計分析相關6個基礎工具箱控制系統(tǒng)工具箱(ControlSystemToolbox)系統(tǒng)辨識工具箱(SystemIdentificationToolbox)模糊邏輯工具箱(FuzzyLogicToolbox)魯棒控制工具箱(RobustControlToolbox)模型預測控制工具箱(ModelPredictiveControlToolbox)航空航天工具箱(AerospaceToolbox)20
Simulink為控制系統(tǒng)的仿真提供了一種可視化的編程方式,被廣泛應用于控制理論和數(shù)字信號處理的復雜仿真和設計。
MATLAB的控制產品可以完成的主要功能:使用經典和狀態(tài)空間方法設計單回路和多回路控制系統(tǒng)使用GUI或命令行函數(shù)分析系統(tǒng)響應和性能在Simulink模型中手動或自動調整SISO回路優(yōu)化控制系統(tǒng)性能以滿足時間和頻率要求將線性模型表示或轉換為傳遞函數(shù)、狀態(tài)空間、零極點增益和頻率響應數(shù)據(jù)對象在模型表示間轉換,使連續(xù)時間模型離散化計算高階系統(tǒng)的低階近似值等211.1.4MATLAB的控制產品1.2MATLAB的操作與使用在公用郵箱中按照“說明”下載MATLAB安裝包并進行安裝。雙擊打開MATLAB的桌面平臺(Desktop),在默認情況下的桌面平臺包含幾個主要窗口,分別是MATLAB主窗口、命令窗口(CommandWindow)、當前目錄窗口(CurrentDirectory)、工作空間管理窗口(Workspace)、歷史窗口(CommandHistory)等;22工作空間窗口中顯示目前內存中所有的MATLAB變量的變量名、數(shù)學結構、字節(jié)數(shù)以及類型231.2.1MATLAB的工作空間(Workspace)其中等號右邊的表達式可由操作符或其它字符、函數(shù)和變量組成,它可以是MATLAB允許的數(shù)學或矩陣運算,也可以包含MATLAB下的函數(shù)調用;等號左邊的變量名是給右邊表達式返回結果所賦予的名字,該變量將出現(xiàn)在工作空間。如果左邊的變量名為默認,則返回值自動賦給系統(tǒng)默認變量ans。MATLAB語句的一般格式為:變量名=表達式;241.2.2MATLAB的命令窗口(CommandWindow)
1.2.2MATLAB的命令窗口(CommandWindow)
25在命令窗口的提示符號“>>”后輸入命令,并按“Enter”鍵,則MATLAB立即執(zhí)行命令,完成相應的運算,顯示結果或繪制圖形。
,和;的差別
1.2.3MATLAB的程序編輯器
MATLAB不僅可以以交互式的命令行的方式工作,也可以進行控制流的程序設計,即將一段程序編寫在以.m為擴展名的M文件內。M文件的打開方法:
單擊
File-New-M-file/Script26MATLAB的M文件的兩種形式命令式文本文件編制相當于在命令窗口中逐行輸入命令,變量不需要預先定義,也可以通過文本編輯對其進行查看或修改。%P15函數(shù)(Function)文件
函數(shù)文件的功能是建立一個函數(shù),且這個文件能夠與MATLAB的庫函數(shù)一樣被調用。函數(shù)文件的第一行必為function。函數(shù)文件中定義的變量為局部變量,只在函數(shù)內部起作用。%leapyear
27
1.2.3MATLAB的程序編輯器
幫助系統(tǒng):聯(lián)機幫助系統(tǒng);
命令窗口查詢幫助系統(tǒng);
聯(lián)機演示系統(tǒng)。聯(lián)機幫助系統(tǒng)(1)單擊MATLAB主窗口工具條中的 按鈕。
(2)選擇下拉菜單Help/ProductHelp。
(3)在命令窗口執(zhí)行helpwin,helpdesk
或doc。(4)快捷鍵<F1>進入簡潔版的幫助界面。281.2.4MATLAB的幫助文件291.2.4MATLAB的幫助文件幫助導航面板幫助顯示面板初學者最好的入門教程:
Contents-MATLAB-GettingStartedContents-MATLAB-Demos-GettingStarted在學習過程中,可以隨時通過選擇某條命令后,點擊右鍵,選擇HelpOnSelection來打開簡潔版幫助窗口界面,查詢該命令的功能及使用方法。301.2.4MATLAB的幫助文件311.2.4MATLAB的幫助文件命令窗口查詢幫助系統(tǒng)
在命令窗口通過幫助命令對特定的內容進行快速查詢。這些幫助指令包括help系列、lookfor系列和其他常用幫助命令。
help系列的幫助命令有help,help+函數(shù)(類)名,helpwin及helpdesk,其中后兩個命令是用來調用聯(lián)機幫助窗口的。321.2.4MATLAB的幫助文件
33例:若在命令窗口中直接輸入“helpabs”,執(zhí)行后會列出函數(shù)abs()的說明,結果如下:
ABSAbsolutevalue.
ABS(X)istheabsolutevalueoftheelementsofX.
WhenXiscomplex,ABS(X)isthecomplexmodulus(magnitude)oftheelementsofX.
Seealsosign,angle,unwrap,hypot1.2.4MATLAB的幫助文件聯(lián)機演示系統(tǒng)
對于MATLAB或者其中某個工具箱的初學者,最好的學習方法之一就是查看MATLAB的聯(lián)機演示系統(tǒng)。
進入方法:(1)MATLAB主窗口菜單-Help-Demos(2)在命令窗口輸入demos命令(3)在幫助頁面上選中Demos選項均可進入MATLAB幫助系統(tǒng)的主演示頁面
341.2.4MATLAB的幫助文件35演示系統(tǒng)提供多種演示類型,通過研究它們來學習MATLAB是一種十分有效的方式。1.2.4MATLAB的幫助文件1.3數(shù)值計算與矩陣運算36數(shù)值計算功能是MATLAB的基礎,本節(jié)將簡要介紹1.3.1MATLAB的數(shù)值類型1.3.2矩陣運算1.3.3符號運算37MATLAB中的基本數(shù)據(jù)類型主要有數(shù)字、字符、矩陣、邏輯型、單元型數(shù)據(jù)及結構型數(shù)據(jù)等,這里只介紹幾個常用類型。變量與常量MATLAB不要求事先對要使用的變量進行定義或聲明,也不需要指定變量的類型,MATLAB會自動根據(jù)所賦予變量的值或對變量所進行的操作來識別變量的類型。
在賦值過程中如果賦值變量已經存在,則MATLAB將使用新值代替舊值,并以新值類型代替舊值類型。1.3.1MATLAB的數(shù)值類型
MATLAB變量命名規(guī)則
(1)變量名區(qū)分字母大小寫。
(2)變量名不超過31個字符,且字符之間不能有空格。
(3)變量名必須以字母打頭,之后可以是任意字母、數(shù)字或下畫線。變量名不允許使用標點符號。
3839在命令窗口中執(zhí)行的命令和運行M文件所產生的變量信息全部存放在當前的工作空間(Workspace)中;Who;Whos永久變量含義ans計算結果的默認變量名eps機器零閾值,浮點運算的相對精度Inf無窮大,如1/0i或j虛數(shù)單位pi圓周率πNaN非數(shù)變量(NotaNumber),如0/0、∞/∞nargin函數(shù)輸入變量數(shù)目,用于M文件程序設計nargout函數(shù)輸出變量數(shù)目,用于M文件程序設計realmax最大正實數(shù)realmin最小正實數(shù)MATLAB語言預先定義了一些常量(或稱永久變量)表1-1常用的永久變量40(1)永久變量不能用clear命令清除,所以稱為永久變量。(2)永久變量不響應Who,Whos命令。
41(3)永久變量的變量名如果沒有被賦值,那么永久變量將取表1-1中所給定的值。
4243(4)若賦值,則默認值將被所賦的值臨時覆蓋。如果使用clear命令清除MATLAB內存中的變量,或者MATLAB的命令窗口被關閉后重新啟動,不管永久變量曾經被賦值與否,所有的永久變量將被重新設置為默認值。44(5)在遵循IEEE算法規(guī)則的計算機上,被0除是允許的。它不會導致程序執(zhí)行的中斷,系統(tǒng)會給出警告信息,且用一個特殊的名稱(如Inf,NaN)記述。數(shù)字和算術表達式
對于簡單的數(shù)字運算,可以直接用表達式語句和賦值語句的形式在MATLAB命令窗口輸入。
45MATLAB語言的算術運算符可按優(yōu)先級由低到高分為五級,
每一級的優(yōu)先級相同,運算時從左向右進行結合。如果要改變運算的優(yōu)先級,可以用括號強制實現(xiàn)。各優(yōu)先級所包含的運算符為:
(1)數(shù)組轉置符“.’”、數(shù)組冪符“.^”、
矩陣轉置符“’”、矩陣冪符“^”。
(2)標量加“+”、標量減“-”。
(3)數(shù)組乘法“.*”、數(shù)組右除“./”、數(shù)組左除“.\”、
矩陣乘法“*”、矩陣右除“/”、矩陣左除“\”。
(4)加法“+”、減法“-”。
(5)冒號運算符。
46[1,2,3;4+5,6,1;sin(pi/2),0,1]'*[0,1,2;9,1,2;4,3,2]+[0,1,2;9,1,2;4,3,2]矩陣的生成直接輸入法:從鍵盤上直接輸入矩陣。注意:
①輸入矩陣時要以“[]”為
其標識符號,矩陣的所有元
素必須都在括號內。
②矩陣同行元素之間由空格
或逗號分隔,行與行之間用分
號或回車鍵分隔。
③矩陣大小不需要預先定義。
④矩陣元素可以是運算表達式。
⑤若“[]”中無元素表空矩陣。471.3.2矩陣運算
介紹矩陣的生成、矩陣的基本運算和矩陣的數(shù)組運算。
在MATLAB語言中冒號的作用是最為豐富的。
首先,可以用冒號來定義行向量。
例如可在命令窗口輸入:
a=1:0.5:4
返回結果為:a=1.00001.50002.00002.50003.00003.50004.0000
48其次,通過使用冒號,可以截取指定矩陣中的一部分
例如可在命令窗口輸入:
A=[123;456;789],B=A(1:2,:)
返回結果為:
A=
123
456
789
B=
123
456
通過上例可以看到B是由矩陣A的1到2行和相應的所有列的元素構成的一個新的矩陣。在這里,冒號代替了矩陣A的所有列。
49
外部文件讀入法
MATLAB語言允許用戶調用在MATLAB環(huán)境之外定義的矩陣??梢岳萌我獾奈谋揪庉嬈骶庉嬎褂玫木仃?,通過菜單File/ImportData…來導入到MATLAB工作空間。
另外也可以利用load函數(shù),其調用方法為:load+文件名[參數(shù)]。
Load函數(shù)將會從文件名所指定的文件中讀取數(shù)據(jù),并將輸入的數(shù)據(jù)賦給以文件名命名的變量。50
例如:事先在記事本中建立文件:1,2,3
2,3,4
并以data1.txt保存在當前工作目錄下。
在MATLAB命令窗口中輸入:
loaddata1.txt%載入文件中的數(shù)據(jù)至MATLAB工作空間
data1
%查看工作空間中的數(shù)據(jù)
運行后結果為:
data1=
123
23451特殊矩陣的生成
對于一些比較特殊的矩陣,MATLAB提供了一些函數(shù)用于生成這些矩陣。
zeros(m) %生成m階全0矩陣
eye(m) %生成m階單位矩陣
ones(m) %生成m階全1矩陣
rand(m) %生成m階均勻分布的隨機陣
randn(m)%生成m階正態(tài)分布的隨機矩陣
52矩陣的基本數(shù)學運算
矩陣的基本數(shù)學運算包括矩陣的四則運算、與常數(shù)的運算、逆運算、行列式運算、秩運算、特征值運算等基本函數(shù)運算。四則運算
矩陣的加、減、乘運算符:“+,-,*”
矩陣的除法:左除“\”和右除“/”
在傳統(tǒng)的MATLAB算法中,右除是先計算矩陣的逆再相乘,而左除則不需要計算逆矩陣直接進行除運算。通常右除要快一點,但左除可避免被除矩陣的奇異性所帶來的麻煩。在MATLAB7中兩者的區(qū)別不太大。53常數(shù)與矩陣的運算
常數(shù)與矩陣的運算即是同該矩陣的每一元素進行運算。但需注意進行數(shù)除時,常數(shù)通常只能做除數(shù)?;竞瘮?shù)運算
常用的基本函數(shù)運算主要有以下幾個:
det(a) %求矩陣a的行列式
eig(a) %求矩陣a的特征值
inv(a)或a^(-1)
%求矩陣a的逆矩陣
rank(a) %求矩陣a的秩
trace(a) %求矩陣a的跡(對角線元素之和)54例如可在命令窗口輸入:
a=[21-3-1;3107;-124-2;10-15];
a1=det(a);a2=det(inv(a));
a1*a2
返回結果為:ans=1
注意:命令行后加“;”表示該命令執(zhí)行但不顯示
執(zhí)行結果。55
矩陣的數(shù)組運算
矩陣對應元素之間的運算,也稱為“點”運算。
56基本數(shù)學運算
(1)數(shù)組的加、減與矩陣的加、減運算完全相同。
(2)數(shù)組的乘除法是指兩同維數(shù)組對應元素之間的乘除法,它們的運算符為“.*”和“./”或“.\”。(3)矩陣的數(shù)組運算中還有冪運算(.^)、指數(shù)運算(exp)、對數(shù)運算(log)、和開方運算(sqrt)等。數(shù)組運算實質上就是針對矩陣內部的每個元素進行的。例如可在命令窗口輸入:
a=[123;456;789];b=a^2,c=a.^2
返回結果為:
b=
303642
668196
102126150
c=
149
162536
496481
可見矩陣的冪運算與數(shù)組的冪運算有很大的區(qū)別。57表1-2常用邏輯函數(shù)
邏輯關系運算符號運算符功能函數(shù)名==等于eq~=不等于ne<小于lt>大于gt<=小于等于le>=大于等于ge&邏輯與and|邏輯或or~邏輯非not58說明:
①在關系比較中,若比較的雙方為同維數(shù)組,則比較的結果也是同維數(shù)組。當滿足比較關系時,對應值為1,否則為0。
②當比較的雙方中一方為常數(shù),另一方為一數(shù)組,則比較的結果與數(shù)組同維。
③在算術運算、比較運算和邏輯與、或、非運算中,它們的優(yōu)先級關系先后為:比較運算、算術運算、邏輯與或非運算。59例如可在命令窗口輸入:
a=[123;456;789];x=5;y=ones(3)*5;xa=x<=a
返回結果為:
xa=
000
011
111
若在命令窗口輸入:b=[010;101;001];ab=a&b
返回結果為:
ab=
010
101
001601.3.2符號運算61符號運算的基本操作
符號運算與數(shù)值運算的區(qū)別:數(shù)值運算中必須先對變量賦值,然后才能參與運算。而符號運算無須事先對獨立變量賦值,運算結果以標準的符號形式表達,但是符號變量必須預先定義。
字符串與符號變量、符號常量
①字符串
MATLAB用半角狀態(tài)下的單引號“''”來定義字符串。例在指令窗口輸入A='hello,thisisastring',回車執(zhí)行后返回“A=hello,thisisastring”,此時在工作空間里觀察,或者用class(A)命令來返回對象A的數(shù)據(jù)類型為“char”,即字符型。62字符串對象也可以用于定義符號表達式,比如:f='sin(x)+5x',表達式中f為字符串名,sin(x)+5x為函數(shù)表達式,單引號里的內容可以是函數(shù)表達式,也可以是方程。
例如:
f1='a*x^2+b*x+c'%二次三項式
f2='a*x^2+b*x+c=0'%方程
f3='Dy+y^2=1'
%微分方程
對于這種方式定義的表達式或方程,在MATLAB工作空間中仍然顯示為字符格式。63
②符號變量
符號變量是內容可變的符號對象。它通常是指一個或幾個特定的字符。相關指令為sym()和syms(),sym是symbolic的縮寫,用于定義符號變量。
64例如:
a=sym('a'),b=sym('c')%定義單個符號變量
symsabcde %同時定義多個符號變量
顯見:當需要同時定義多個符號變量時,使用syms()更簡潔一些,可以用whos來查看所有變量類型。
③符號常量
當數(shù)值常量作為sym()的輸入?yún)⒘繒r,就建立了一個符號對象--符號常量,符號常量雖然看上去是一個數(shù)值量,但已經是一個符號對象了。
例如:a=3/4;b='3/4';c=sym(3/4);d=sym('3/4');
用whos來查看所有變量類型:a為實雙精度浮點數(shù)值類型;b為實字符類型;c和d都是符號對象類型。65
④符號函數(shù)和符號方程
符號表達式是由符號常量、符號變量、符號函數(shù)運算符以及專用函數(shù)連接起來的符號對象。它包括:符號函數(shù)和符號方程。判斷看帶不帶等號。
例如:
symsxyz;f1=x*y/z;f2=x^2+y^2+z^2;f3=f1/f2;%符號函數(shù)
e1=sym('a*x^2+b*x+c')%符號函數(shù)e2=sym('sin(x)^2+2*cos(x)=1');
e3=sym('Dy-y=x')
%符號方程66符號矩陣的創(chuàng)建與修改
①創(chuàng)建符號矩陣
與數(shù)值矩陣不同,需要用MATLAB函數(shù)sym來創(chuàng)建矩陣,并用“''”標識
命令格式:A=sym('[]')。注意sym('[a,b;c,d]')與'[a,b;c,d]'的區(qū)別,后者只是定義了一系列字符串。67例如:在命令窗口輸入
“A=sym('[a,2*b;3*a,0]')”,
運行結果為:
A=
[a,2*b]
[3*a,0]
這就創(chuàng)建了一個符號矩陣。符號矩陣的每一行的兩端都有方括號,這是與數(shù)值矩陣的一個重要區(qū)別。
68
②符號矩陣的修改
直接修改,即在工作空間中找到要修改的矩陣,逐層雙擊打開后找到需要修改的值,直接修改。指令修改,用A(m,n)=‘new’或A1=subs(A,‘new’,‘old’)來修改。前者與普通數(shù)字矩陣的調用方法相同,后者將用新字符new代替矩陣A中的所有舊字符old。69例如:
A=sym('[a,2*b;3*a,0]')
A(2,2)='4*b' %把符號矩陣A中的第二行第二
列的元素用4*b代替
A1=subs(A,'c','b')%用新字符c代替矩陣A中的所有b
執(zhí)行結果為:
A= [a,2*b]
[3*a,0]
A= [a,2*b]
[3*a,4*b]
A1=[a,2*c]
[3*a,4*c]
70符號運算
MATLAB中,符號計算表達式的運算符和基本函數(shù),在形狀、名稱以及使用方法上,都與數(shù)值計算幾乎完全相同。下面主要介紹與符號計算相關的一些常用函數(shù)。71符號表達式的化簡
①collect函數(shù)——合并同類項
格式:R=collect(S)%以x為默認變量,返回系數(shù)
整理后的多項式
R=collect(S,v)%以v為指定變量,返回系數(shù)
整理后的多項式例如:
symsxy; %定義基本變量x,y
R1=collect((exp(x)+x)*(x+2))
%合并多項式中x的同
類項,exp為指數(shù)函數(shù)
R2=collect((x+y)*(x^2+y^2+1),y)%合并多項式中y的同類項
程序運行結果為:
R1=2*exp(x)+x*(exp(x)+2)+x^2
R2=y^3+x*y^2+(x^2+1)*y+x*(x^2+1)72
例如:
symsxyabt;
R1=expand((x-2)*(x-4)),R2=expand(cos(x+y)),
R3=expand(exp((a+b)^2)),
R4=expand([sin(2*t),cos(2*t)]),
程序運行結果為:
R1=x^2-6*x+8
R2=cos(x)*cos(y)-sin(x)*sin(y)
R3=exp(2*a*b)*exp(a^2)*exp(b^2)
R4=[2*cos(t)*sin(t),cos(t)^2-sin(t)^2]73②expand函數(shù)——展開符號表達式
格式:R=expand(S)
說明:對符號表達式S中每個因式的乘積進行展開。
例如:
symsxyab;
R1=factor(x^3-y^3),R2=factor([a^2-b^2,a^3+b^3])
R3=factor(sym('12345678901234567890'))
程序運行結果為:
R1=(x-y)*(x^2+x*y+y^2)
R2=[(a-b)*(a+b),(a+b)*(a^2-a*b+b^2)]
R3=2*3^2*5*101*3541*3607*3803*2796174③factor函數(shù)——符號表達式的因式分解
格式:factor(X)
說明:將系數(shù)為有理數(shù)的多項式(矩陣),表示成低階多項式相乘的形式,如果不能分解,則返回其本身。
④simple和simplify函數(shù)——符號表達式的化簡
格式:R=simple(S)或simplify(S)
例如:symsx;simple(cos(x)^2+sin(x)^2)
運行以后,從結果看出,simple比較這些不同函數(shù)的結果,最終把最少字符作為標準。75
符號表達式的計算
①符號表達式的極限
格式:limit(F,x,a)
%求當x→a時,表達式F的極限
limit(F,a)
%默認自變量趨于a的極限
limit(F)%默認自變量,默認a=0
limit(F,x,a,'left')、limit(F,x,a,'right')%取F的左或右極限
注意:對于極限不存在,返回NaN7677例如:symshnx
dc=limit((sin(x+h)-sin(x))/h,h,0)%按照導數(shù)的定義求sin的導數(shù),結果為:dc=cos(x)
limit(1/x,x,0) %ans=NaN
limit(1/x,x,0,'left') %ans=-Inf
limit(1/x,x,0,'right') %ans=Inf
②符號表達式的微分
格式:diff(f)
%對缺省變量求f的微分
diff(f,v)
%對指定變量v求微分
diff(f,n)
%對默認變量求n階微分
diff(f,v,n)
%對指定變量v求f的n階微分78例如:symsax;f=sin(a*x);%定義函數(shù)f=sin(a*x)
df=diff(f) %對默認變量x求1階微分結果為:df=a*cos(a*x)
dfa=diff(f,a,2) %對指定變量a求f的2階微分結果為:dfa=-x^2*sin(a*x)③符號表達式的積分
格式:int(f)
%對f表達式的缺省變量求不定積分
int(f,v)
%對f表達式的v變量求不定積分
int(f,v,a,b)
%對f表達式的v變量在(a,b)區(qū)間求
定積分
findsym(f)
%可以找出f中的每個變量
注意:當函數(shù)的積分不存在時,Matlab將簡單地返回原來的積分表達式;當積分上限和積分下限缺省時為不定積分。79
例如:symsx;int(-2*x/(1+x^2)^2) %ans=1/(1+x^2)
int(x*log(1+x),0,1) %ans=1/4
int(log10(x)) %ans=(x*(log(x)-1))/log(10)
int(sin(x),x,-pi,pi)
%ans=0
80④符號函數(shù)的Taylor級數(shù)展開
格式:taylor(f,n,v)
%n階泰勒級數(shù)展開
另外,MATLAB提供了可以使用Taylor級數(shù)計數(shù)器的taylortool命令。
81該命令生成一圖形用戶界面,顯示默認函數(shù)f=x*cos(x)在區(qū)間[-2*pi,2*pi]內的圖形,同時顯示函數(shù)f的前7項Taylor級數(shù)和的圖形(在a=0附近)。通過更改f(x)項可以得到不同的函數(shù)圖形。通過改變相關的參量,利用taylortool('cos(x*sin(x))')或直接在打開的界面中修改相關參量,可得到如圖所示的界面。
82
⑤Fourier積分變換公式:格式:F=fourier(f)
%對符號單值函數(shù)f中的默認變量x計算fourier變換形式。默認的輸出結果F是變量ω的函數(shù)若f=f(ω),則fourier(f)返回變量為v的函數(shù)F=F(v)。
F=fourier(f,v)
%對符號單值函數(shù)f中的默認變量x計算fourier變換形式,F(xiàn)(v)F=fourier(f,u,v)
%令符號函數(shù)f為變量u的函數(shù),而F為變量v的函數(shù),計算fourier變換形式。83
例如:symsxwu;
f=exp(-x^2);F1=fourier(f)
g=exp(-abs(w));F2=fourier(g)
h=x*exp(-abs(x));F3=fourier(h,u)
執(zhí)行結果為:
F1=pi^(1/2)/exp(w^2/4)
F2=2/(v^2+1)
F3=-(4*i*u)/(u^2+1)^2
84⑥ifourier函數(shù)
逆Fourier積分變換定義為:格式:f=ifourier(F)
%輸出參量f=f(x)為默認變量w的標量符號對象F的逆fourier積分變換,即F=F(w)→f=f(x)。若F=F(x),ifourier(F)返回變量t的函數(shù),即F=F(x)→f=f(t)。
f=ifourier(F,u)
%使f為變量u的函數(shù),即
f=ifourier(F,v,u)
%使F為變量v的函數(shù),f為變量u的函數(shù)85
例如:symsawxtreal;
F=exp(-w^2/(4*a^2));f=ifourier(F);
f1=simple(f),
F=exp(-abs(x));f2=ifourier(F),
F=2*exp(-abs(w))-1;f3=ifourier(F,t)
執(zhí)行結果為:
f1=abs(a)/(pi^(1/2)*exp(a^2*x^2))
f2=1/(pi*(t^2+1))
f3=2/(pi*(t^2+1))-dirac(t)
86
⑦Laplace函數(shù)
Laplace變換定義為: 。
格式:L=laplace(F)
%返回默認獨立變量t的符號表達式F的Laplace變換,函數(shù)返回默認變量為s的函數(shù),即F=F(t)→L=L(s)。若F=F(s),則返回的變量為t。L=laplace(F,t)
%以t代替s為變量的Laplace變換
L=laplace(F,w,z)
%在指定自變量w和指定參變量z的情況下,計算符號函數(shù)F的Laplace變換。87例如:symstsax;
F=t^4; L1=laplace(F)
F=1/sqrt(s); L2=laplace(F)
F=exp(-a*t); L3=laplace(F,x)
執(zhí)行結果為:
L1=24/s^5
L2=pi^(1/2)/t^(1/2)
L3=1/(a+x)
88⑧ilaplace函數(shù),逆Laplace變換。
逆Laplace變換的定義為:格式:F=ilaplace(L)
%在默認自變量s和參變量t情況下,計算L(s)的laplace逆變換,即。
另:
F=ilaplace(L,y)%以y代替默認的t。
F=ilaplace(L,y,x)
%以x代替t,對y取積分。
89例如:
symssatxu
L=1/s^2;
F1=ilaplace(L)
L=1/(t-a)^2;F2=ilaplace(L)
symsareal;L=1/(u^2-a^2);
F3=simplify(ilaplace(L,x))
執(zhí)行結果為:
F1=t
F2=x*exp(a*x)
F3=sinh(a*x)/a90
符號方程求解
①符號代數(shù)方程求解
Matlab符號運算能夠解一般的線性方程、非線性方
程、超越方程。線性方程的求解函數(shù)為solve。
調用格式如下:
solve(f)
%求一個方程f=0的解;
solve(f,‘t’
)
%對指定變量t求解,‘’可以忽略;t缺省時默認為x或最接近x的符號變量;
solve(f1,f2,…,fn)
%求n個方程的解。91例如:求解方程:ax^2+bx+c=0
輸入程序:f='a*x^2+b*x+c'; %定義符號方程
solve(f) %對缺省變量x求解
返回結果:ans=
-(b+(b^2-4*a*c)^(1/2))/(2*a)
-(b-(b^2-4*a*c)^(1/2))/(2*a)
92例如:解方程組輸入命令:[x,y,z]=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')
返回結果為:x=2/3,y=-1/2,z=5/693例如:解方程組輸入命令:[x,y,z]=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')
返回結果為:x=2/3,y=-1/2,z=5/6[x,y,z]=solve('x+y+z-1','x-y+z-2','2*x-y-z-1')②符號微分方程求解
符號微分方程求解指令:dsolve
格式:dsolve('eq1','eq2',...,'cond1','cond2',...,'v')
說明:eq1,eq2,…為微分方程(組),可多至12個微分方程的求解;cond1,cond2,...為初始條件;v為指定自變量,默認時為t;微分方程的各階導數(shù)項以大寫字母D表示,如:y的一階導數(shù) 可表示為:Dy,
y的二階導數(shù) 可表示為:D2y,
y的n階導數(shù) 可表示為:Dny。94例如:求微分方程的解
在命令窗口輸入:y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')
運行返回結果為:y=cos(t)/exp(t)+sin(t)/exp(t)
若再輸入命令“ezplot(y)”,可進行符號函數(shù)繪圖。
951.4程序、文件和函數(shù)
Matlab不僅具有強大的數(shù)值處理和符號運算功能,而且可以像計算機高級語言一樣進行程序設計。用matlab編程語言編寫的程序以.m為擴展名,簡稱M文件。M文件的打開方法:
單擊
File-New-M-file/Script96
1.4.1m文件編程
M文件根據(jù)調用方式的不同分為命令文件和函數(shù)文件。命令式文件(又稱文本文件)特點:1、可以通過調用文件名來執(zhí)行,逐條讀取和執(zhí)
行命令;2、運行產生的變量都是駐留在MATLAB的工作空間中,除非用clear命令清除工作空間;3、可以通過其他編輯器來編寫m文件;
97在編輯/調試窗口中按順序輸入下面的命令語句:
%該文件用于順次求出從sin(1)到sin(10)的值。
fori=1:10
a=sin(i);
fprintf('sin(%d)=',i)
fprintf('%12.4f\n',a)
end
將該命令式文件以文件名sinvalue.m保存在MATLAB的work文件夾中(默認值),然后在命令窗口輸入sinvalue,即可運行sinvalue.m文件,結果為:
sin(1)=0.8415
sin(2)=0.9093
…
sin(10)=-0.544098%d讀取“,”后面的數(shù)值,并要求該數(shù)值必須為整數(shù)。%12.4f
讀取后面的數(shù)值,并要求輸出的結果占12個字符的位置,并保留4個有效數(shù)字。\n指換行。
函數(shù)式文件作用:實現(xiàn)參數(shù)傳遞特點:1、第一行為function;2、返回值可有可無;3、執(zhí)行后只保留最后結果,不在工作空間中保留任何中間過程,所定義的變量也只在函數(shù)內部起作用,并隨著調用的結束而被清除。4、M函數(shù)必須由其它語句調用,不能直接鍵入一個文件名來運行一個M函數(shù)。99
MATLAB語言的函數(shù)文件包含以下幾個部分。
(1)函數(shù)題頭:指函數(shù)的定義行,在該行中定義函數(shù)名、輸入輸出變量列表等。函數(shù)文件的第一行總是以“function”引導的函數(shù)聲明行,一般格式為:
function[輸出變量列表]=函數(shù)名(輸入變量列表)(2)幫助信息索引行:函數(shù)幫助文本第一行,內容為該函數(shù)功能的大致描述,當使用lookfor命令查看該函數(shù)時,顯示該行。(3)詳細幫助信息:該部分提供函數(shù)的完整幫助信息,通過MATLAB的幫助系統(tǒng)查看函數(shù)的幫助信息時,顯示該部分。(4)函數(shù)體:指函數(shù)代碼段,是函數(shù)的主體部分。(5)注釋部分:是對函數(shù)體中各語句的解釋和說明文本,注釋語句以英文輸入狀態(tài)下的%引導。
100例如:編寫一個函數(shù)文件,來求一向量的平均值。
在MATLAB語言的編輯/調試窗口中輸入如下內容:
functiony=myaverage(x)%函數(shù)題頭
%MYAVERAGEMeanofvectorelements.%幫助信息索引行
%MYAVERAGE(X),whereXisavector,isthemeanof%詳細幫助信息
%vectorelements.Nonvectorinputresultsinanerror. %詳細幫助信息[m,n]=size(x); %函數(shù)主體,判斷輸入?yún)?shù)維數(shù)
if(~((m==1)|(n==1))) %m,n為臨時變量
disp(‘輸入必須是向量!’);%判斷輸入變量為矩陣顯示提示
return; %并結束函數(shù)文件的運行
end
y=sum(x)/length(x);%實際計算,臨時的函數(shù)變量
101
將該函數(shù)文件以myaverage.m為文件名保存在MATLAB的work文件夾中,若在命令窗口輸入“a=myaverage([12345678910])”,可調用函數(shù)文件,完成向量1~10平均值的計算,返回結果a=5.5000。
若在命令窗口輸入“myaverage([12345;678910])”,也可以調用函數(shù)文件,但由于輸入?yún)?shù)為矩陣,返回結果為程序中設置的提示信息:“輸入必須是向量!”。
102注意1、上述函數(shù)文件的五個組成部分,并不是所有的函數(shù)均需要。實際上,除了函數(shù)題頭是必須的以外,其它部分均可以省略。
注意2、在MATLAB語言中,存儲M函數(shù)時文件名應當與文件內主函數(shù)名一致。這是因為調用M文件時,系統(tǒng)查詢的是相應的文件而不是函數(shù)名,如果兩者不一致,這或者打不開目的文件,或者打開的是其他文件。鑒于這種查詢方式與其他程序設計語言不同,所以建議在儲存M函數(shù)文件時,應該將文件名與主函數(shù)名統(tǒng)一起來,方便理解和使用。
103
For循環(huán)語句功能:重復執(zhí)行循環(huán)體內的MATLAB語句特點:1、循環(huán)判斷條件通常就是對循環(huán)次數(shù)的判斷,即
for循環(huán)語句的循環(huán)次數(shù)是預先設定好的;2、可以多次嵌套for循環(huán)或者是與其他的結構形式
嵌套使用。使用格式:
for循環(huán)變量=表達式1(初值):表達式2(增量):表達式3(終值)
循環(huán)語句組
end1041.4.2常用編程語句形式可以是m:s:n。如1:0.1:5生成從1到5等差為0.1的數(shù)列。當增量為1時可以省略表達式2。如1:5生成從1到5等差為1的數(shù)列。例如:用for循環(huán)實現(xiàn)數(shù)值1~10平方的求取,程序如下:
fori=1:10
x(i)=(i+1).^2;
end
x
程序運行后結果為:
x=
49162536496481100121
該段程序使用了一個for循環(huán),求出了數(shù)組x從x(1)到x(10)的值,程序運行結束后,自動在工作空間生成雙精度變量i和雙精度數(shù)組x。105while循環(huán)語句
特點:判斷控制語句可以是邏輯判斷語句通用格式:while表達式
執(zhí)行語句
end
只要表達式的值為真,程序就會一直運行下去,當程序設計出現(xiàn)了問題,比如表達式的值總是為真,程序將陷入死循環(huán),可以利用鍵盤CTRL+Break中斷程序運行。106a=0;while1<2;a=a+1,end
例如:利用while循環(huán)求1+2+3+…+100的值。
sum=0;i=1;
while(i<=100)
sum=sum+i;i=i+1;
end
sum
執(zhí)行結果為:sum=5050107作用:流程控制,選擇執(zhí)行指定的命令if:判斷一個邏輯表達式,當表達式為true時執(zhí)行一組語句。elseif和else:是可選的,用于提供替代語句的執(zhí)行end:和if匹配,放在最后,用于終止最后一組語句
條件判斷語句if,elseif,else,end108(1)當if語句只有一種選擇時,它的程序結構為:
if表達式
執(zhí)行語句
end
當表達式為真時,執(zhí)行語句被執(zhí)行;否則不予執(zhí)行。(2)當if語句有兩種選擇時,它的程序結構為:
if表達式
執(zhí)行語句1
else
執(zhí)行語句2
end如果表達式為真,則系統(tǒng)將運行執(zhí)行語句1;如果表達式為假,則系統(tǒng)將運行執(zhí)行語句2。109(3)當if語句有3種或者更多選擇時,它的程序結構為:
if表達式1 //表達式1為真時的執(zhí)行語句1執(zhí)行語句1
elseif表達式2 //表達式2為真時的執(zhí)行語句2執(zhí)行語句2
elseif表達式3//表達式3為真時的執(zhí)行語句3執(zhí)行語句3
…
else
//所有表達式都為假時的執(zhí)行語句執(zhí)行語句N
end
在這種情況下,當運行到程序的某一條表達式為真時,則執(zhí)行與之相關的執(zhí)行語句,此時系統(tǒng)將不再檢驗其他的關系表達式。在實際應用中,最后的else命令可有可無。110
例如:編寫一個M文件繪制函數(shù)的圖形程序:
x=-6:0.1:6;%設定自變量x的取值范圍
leng=length(x);%計算向量x的長度
form=1:leng %計算函數(shù)值
ifx(m)<=0 %判斷x取值所在范圍
y(m)=sin(x(m)); %計算分段函數(shù)值
elseifx(m)<=3
y(m)=x(m); %計算分段函數(shù)值
else
y(m)=-x(m)+6; %計算分段函數(shù)值
end
end
plot(x,y,‘*’),grid; %繪制函數(shù)曲線
將其存盤為demoif.m(該文件就是一個MATLAB腳本文件),然后在MATLAB命令行下輸入“demoif”,則生成函數(shù)曲線。
111多分支判斷語句switch-case
作用:多分支判斷選擇。
一般表達形式:
switch〈選擇判斷量〉
case選擇判斷值1
選擇判斷語句1
case選擇判斷值2
選擇判斷語句2
……
otherwise
判斷執(zhí)行語句
end注意:當其中一個case語句后的條件為真時,switch-case語句不對其后的case語句進行判斷。112
例如:利用switch_case語句編寫判斷季節(jié)的函數(shù)文件。
functiondemo_switch_case(month)
switchmonth
case{3,4,5}
season='spring'
case{6,7,8}
season='summer'
case{9,10,11}
season='autumn'
otherwise
season='winter'
end
將該函數(shù)文件以demo_switch_case.m為文件名保存后,在命令窗口輸入“demo_switch_case(1)”,可調用該函數(shù)文件,返回結果為:season=winter。113人機交互命令作用:在執(zhí)行MATLAB主程序文件時,在適當?shù)牡胤綄Τ绦虻倪\行進行觀察或干預。重要性:在調試程序的時候,人機交互命令更是不可缺少。MATLAB語言提供的基本人機交互命令有:echo、input、pause和keyboard四種。114
echo命令
作用:使M文件的命令在執(zhí)行時可見,有利于程序的調試和演示。
115echofile %文件在執(zhí)行中的回應顯示開關。echofileon %使指定的file文件的命令在執(zhí)行中被顯示出來。
echofileoff %關閉指定文件的命令在執(zhí)行中的回應。對于函數(shù)文件,echo命令一般只用于其調試階段。函數(shù)文件echoon %打開文本文件的回應命令。
echooff %關閉回應命令。
echoonall %顯示其后所有執(zhí)行文件的執(zhí)行過程。
echooffall %關閉其后所有執(zhí)行文件的顯示。文本文件
input命令
input命令用來提示用戶從鍵盤輸入數(shù)據(jù)、字符串或表達式,并接收輸入值。116例:R=input('Howmanyapples')pause命令
作用:使程序暫時執(zhí)行,等待用戶按任意鍵后繼續(xù)執(zhí)行?;菊{用格式:
pause%暫停程序等待回應。
pause(n) %在程序運行中等待n秒后繼續(xù)運行。
pauseon %顯示其后的pause命令,并且執(zhí)行pause命令。
pauseoff %顯示其后的pause命令,但不執(zhí)行該命令。
keyboard命令
keyboard命令與input命令的作用相似。當程序遇到此命令時,MATLAB就將暫時停止運行程序,處于等待鍵盤輸入狀態(tài)且在屏幕上顯示字符K。鍵盤處理完畢后,輸入字符串return,程序將繼續(xù)執(zhí)行。在M文件中使用該命令,對于程序的調試和在程序運行中修改變量都很方便。117例如:
disp(‘pleaseinputamonth:’) %顯示提示信息
keyboard %控制權交給鍵盤
demo_switch_case(ans)
輸入數(shù)字(例如3)回車,繼續(xù)在命令行輸入“return”,控制權返回給MATLAB,即可顯示3月是春天。
程序調試與診斷MATLAB程序出錯時的基本處理方法
語法格式錯誤
如缺“(”或“)”等,在運行時可檢測出大多數(shù)該類錯誤,并指出錯在哪一行。
算法邏輯錯誤這樣的錯誤非常隱蔽,往往是對算法考慮不周全,程序可以順利通過,顯示的結果也是正常的數(shù)值,但是與先驗的預期不符合。118
注意:在包含函數(shù)調用的M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年生物基材料生產與銷售合同
- 2024旅游景區(qū)導游勞動合同書含旅游行業(yè)創(chuàng)新發(fā)展研究2篇
- 7-2 《一名物理學家的教育歷程》說課稿 2023-2024學年統(tǒng)編版高中語文必修下冊
- 2024柚子果品質量檢測與認證服務合同3篇
- 2024年財務報表保密合同3篇
- 個人住宅租賃簡明合同樣本(2024版)版B版
- 2024年水產養(yǎng)殖聯(lián)盟協(xié)議3篇
- 福建省南平市武夷山第三中學高三地理月考試題含解析
- 個人融資擔保借款標準化協(xié)議樣本版
- 6 影子第二課時 說課稿-2024-2025學年語文一年級上冊統(tǒng)編版
- AHP層次分析法-EXCEL表格自動計算
- 團代會工作流程圖
- 身心康中醫(yī)經絡檢測儀—報告解讀
- 電力工程承裝(修、試)資質管理辦法
- 簡譜樂理知識(課堂PPT)
- 急診科烏頭堿中毒課件
- 混凝土攪拌站污水處理方案精編版
- 2013天津中考滿分作文
- 醫(yī)院安保人員錄用上崗管理辦法
- 公共政策分析簡答題
- 加熱爐溫度控制系統(tǒng)_畢業(yè)論文
評論
0/150
提交評論