Julia 針對 MATLAB 使用者/索引/工具箱/控制系統工具箱
外觀
將 MATLAB 控制系統工具箱 的功能對映到 Julia 中的等效功能。
相關 Julia 包
tf建立傳遞函式模型,轉換為傳遞函式模型zpk建立零極點增益模型;轉換為零極點增益模型ss建立狀態空間模型,轉換為狀態空間模型frd建立頻率響應資料模型,轉換為頻率響應資料模型filt在 DSP 格式中指定離散傳遞函式dss建立描述符狀態空間模型pid以並聯形式建立 PID 控制器,轉換為並聯形式的 PID 控制器pidstd以標準形式建立 PID 控制器,轉換為標準形式的 PID 控制器pid2以並聯形式建立 2-DOF PID 控制器,轉換為並聯形式的 2-DOF PID 控制器pidstd2以標準形式建立 2-DOF PID 控制器,轉換為標準形式的 2-DOF PID 控制器rss生成隨機連續測試模型drss生成隨機離散測試模型
tunableGain可調靜態增益塊tunablePID可調 PID 控制器tunablePID2可調雙自由度 PID 控制器tunableSS可調固定階狀態空間模型tunableTF可調傳遞函式,具有固定數量的極點和零點realp實數可調引數AnalysisPoint線性分析的關注點genss廣義狀態空間模型genfrd廣義頻率響應資料 (FRD) 模型genmat具有可調引數的廣義矩陣getLoopTransfer控制系統的開環傳遞函式getIOTransfer來自控制系統廣義模型的閉環傳遞函式getSensitivity來自控制系統廣義模型的靈敏度函式getCompSensitivity從控制系統廣義模型獲取互補靈敏度函式getPoints獲取控制系統廣義模型中的分析點列表replaceBlock替換或更新廣義 LTI 模型中的控制設計塊sampleBlock對廣義模型中的控制設計塊進行取樣rsampleBlock對廣義模型中的控制設計塊進行隨機取樣getValue獲取廣義模型的當前值setValue修改控制設計塊的當前值getBlockValue獲取廣義模型中控制設計塊的當前值setBlockValue修改廣義模型中控制設計塊的值showBlockValue顯示廣義模型中控制設計塊的當前值showTunable顯示廣義模型中可調控制設計塊的當前值nblocks獲取廣義矩陣或廣義 LTI 模型中的塊數量getLFTModel對廣義 LTI 模型進行分解
具有時延的模型
[edit | edit source]pade對具有時延的模型進行 Padé 近似absorbDelay用 z = 0 處的極點或相移替換時延thiran基於 Thiran 近似生成分數階延遲濾波器hasdelay對於具有時延的線性模型為真hasInternalDelay判斷模型是否具有內部延遲totaldelay獲取 LTI 模型的總的 I/O 延遲delayss建立具有延遲輸入、輸出和狀態的狀態空間模型setDelayModel構建具有內部延遲的狀態空間模型getDelayModel獲取內部延遲的狀態空間表示
模型屬性
[edit | edit source]get訪問模型屬性值set設定或修改模型屬性tfdata訪問傳遞函式資料zpkdata訪問零極點增益資料ssdata訪問狀態空間模型資料frdata訪問頻率響應資料 (FRD) 物件的資料piddata訪問並聯形式 PID 控制器係數pidstddata訪問標準形式 PID 控制器係數piddata2訪問並聯形式 2-DOF PID 控制器係數pidstddata2訪問標準形式 2-DOF PID 控制器係數dssdata提取描述狀態空間資料chgFreqUnit更改頻率響應資料模型的頻率單位chgTimeUnit更改動態系統的時單位isct判斷動態系統模型是否為連續時間isdt判斷動態系統模型是否為離散時間isempty判斷動態系統模型是否為空isfinite判斷模型是否具有有限係數isParametric判斷模型是否具有可調引數isproper判斷動態系統模型是否為真isreal判斷模型是否具有實值係數issiso判斷動態系統模型是否為單輸入單輸出(SISO)isstable判斷系統是否穩定isstatic判斷模型是靜態還是動態order查詢模型階數ndims查詢動態系統模型或模型陣列的維數size查詢輸入輸出模型的輸出/輸入/陣列維度以及FRD模型的頻率數量
模型陣列
[edit | edit source]stack透過沿陣列維度堆疊模型或模型陣列來構建模型陣列nmodels模型陣列中的模型數量permute重新排列模型陣列中的陣列維度reshape改變模型陣列的形狀repsys複製和平鋪模型voidModel標記模型陣列中缺失或無關的模型sampleBlock對廣義模型中的控制設計塊進行取樣rsampleBlock對廣義模型中的控制設計塊進行隨機取樣
模型互聯
[edit | edit source]feedback兩個模型的反饋連線connect動態系統的框圖互聯sumblk用於基於名稱互聯的求和結點series兩個模型的串聯連線parallel兩個模型的並聯連線append透過追加模型的輸入和輸出,將模型分組blkdiag模型的塊對角線級聯imp2exp將隱式線性關係轉換為顯式輸入輸出關係inv反轉模型lft兩個模型的廣義反饋互聯(Redheffer 星積)connectOptionsconnect 命令的選項
模型轉換
[edit | edit source]模型型別轉換
[edit | edit source]tf建立傳遞函式模型,轉換為傳遞函式模型zpk建立零極點增益模型;轉換為零極點增益模型ss建立狀態空間模型,轉換為狀態空間模型frd建立頻率響應資料模型,轉換為頻率響應資料模型pid以並聯形式建立 PID 控制器,轉換為並聯形式的 PID 控制器pidstd以標準形式建立 PID 控制器,轉換為標準形式的 PID 控制器pid2以並聯形式建立 2-DOF PID 控制器,轉換為並聯形式的 2-DOF PID 控制器pidstd2以標準形式建立 2-DOF PID 控制器,轉換為標準形式的 2-DOF PID 控制器make1DOF將 2-DOF PID 控制器轉換為 1-DOF 控制器make2DOF將 1-DOF PID 控制器轉換為 2-DOF 控制器getComponents從 2-DOF PID 控制器中提取 SISO 控制組件
連續-離散轉換
[edit | edit source]c2d將模型從連續時間轉換為離散時間d2c將模型從離散時間轉換為連續時間d2d對離散時間模型重新取樣upsample對離散時間模型進行上取樣c2dOptions為連續時間到離散時間的轉換建立選項集d2cOptions為離散時間到連續時間的轉換建立選項集d2dOptions為離散時間重新取樣建立選項集
狀態座標變換
[edit | edit source]balreal基於格拉姆矩陣的輸入/輸出平衡狀態空間實現canon狀態空間規範實現prescale狀態空間模型的最佳縮放ss2ss狀態空間模型的狀態座標變換xperm重新排列狀態空間模型中的狀態
模態分解
[edit | edit source]modsep基於區域的模態分解stabsep穩定-不穩定分解stabsepOptions穩定-不穩定分解選項freqsep慢速-快速分解freqsepOptions慢速-快速分解選項spectralfact線性系統的頻譜分解
模型降階
[edit | edit source]balred模型降階balredOptions建立模型降階選項集balreal基於格拉姆矩陣的輸入/輸出平衡狀態空間實現minreal最小實現或零極點抵消sminreal結構性零極點抵消modred從狀態空間模型中消除狀態freqsep慢速-快速分解freqsepOptions慢速-快速分解選項hsvd動態系統的漢克爾奇異值hsvplot繪製漢克爾奇異值並返回繪圖控制代碼hsvdOptions建立計算漢克爾奇異值和輸入/輸出平衡的選項集
線性分析
[edit | edit source]時域和頻域分析
[edit | edit source]step動態系統的階躍響應圖;階躍響應資料stepinfo上升時間、穩定時間和其他階躍響應特徵impulse動態系統的脈衝響應圖;脈衝響應資料initial狀態空間模型的初始條件響應lsim模擬動態系統對任意輸入的時域響應lsiminfo計算線性響應特徵gensig為 lsim 生成測試輸入訊號covar由白噪聲驅動的系統的輸出和狀態協方差stepDataOptionsstep 的選項集bode頻率響應的波特圖,或幅值和相位資料bodemagLTI 模型的波特幅值響應nyquist頻率響應的奈奎斯特圖nichols頻率響應的尼科爾斯圖ngrid在奈奎斯特圖上疊加尼科爾斯圖sigma動態系統的奇異值圖freqresp頻率響應網格evalfr在給定頻率處評估頻率響應dcgainLTI 系統的低頻(直流)增益bandwidth頻率響應頻寬getPeakGain動態系統頻率響應的峰值增益getGainCrossover指定增益的交叉頻率fnormFRD 模型的逐點峰值增益norm線性模型的範數db2mag將分貝(dB)轉換為幅值mag2db將幅值轉換為分貝(dB)
穩定性分析
[edit | edit source]pole計算動態系統的極點zero單輸入單輸出動態系統的零點和增益damp自然頻率和阻尼比dsort按幅值對離散時間極點進行排序esort按實部對連續時間極點進行排序tzero線性系統的非變零點pzplot動態系統模型的零極點圖,帶有繪圖定製選項iopzplot繪製 I/O 對的零極點圖並返回繪圖控制代碼allmargin增益裕度、相位裕度、延時裕度和交叉頻率margin增益裕度、相位裕度和交叉頻率
靈敏度分析
[edit | edit source]sampleBlock對廣義模型中的控制設計塊進行取樣rsampleBlock對廣義模型中的控制設計塊進行隨機取樣
無源性和扇區邊界
[edit | edit source]isPassive檢查線性系統的無源性getPassiveIndex計算線性系統的無源性指數passiveplot計算或繪製無源性指數作為頻率的函式getSectorIndex計算線性系統的圓錐扇區指數getSectorCrossover扇區邊界交叉頻率sectorplot計算或繪製扇區指數作為頻率的函式
繪製自定義
[edit | edit source]impulseplot繪製脈衝響應並返回繪圖控制代碼initialplot繪製初始條件響應並返回繪圖控制代碼lsimplot模擬動態系統對任意輸入的響應並返回繪圖控制代碼stepplot繪製階躍響應並返回繪圖控制代碼bodeplot繪製 Bode 頻率響應,並提供其他繪圖自定義選項nicholsplot繪製 Nichols 頻率響應並返回繪圖控制代碼nyquistplot奈奎斯特圖,並提供其他繪圖自定義選項sigmaplot繪製頻率響應的奇異值並返回繪圖控制代碼bodeoptions建立 Bode 圖選項列表hsvoptionshsvplot 的繪圖選項nicholsoptions建立 Nichols 圖選項列表nyquistoptions奈奎斯特圖選項列表pzoptions創建極點/零點圖選項列表sigmaoptions建立奇異值圖選項列表timeoptions建立時間圖選項列表setoptions設定響應圖的繪圖選項getoptions返回 @PlotOptions 控制代碼或繪圖選項屬性ctrlpref設定控制系統工具箱首選項updateSystem更新響應圖中的動態系統資料
控制系統設計和整定
[edit | edit source]PID 控制器整定
[edit | edit source]pidTuner開啟 PID Tuner 以進行 PID 整定pidtune用於線性裝置模型的 PID 整定演算法pidtuneOptions定義 pidtune 命令的選項
經典控制設計
[edit | edit source]rlocus動態系統的根軌跡圖rlocusplot繪製根軌跡並返回繪圖控制代碼sisoinit在啟動時配置控制系統設計器
狀態空間控制設計和估計
[edit | edit source]狀態空間控制設計
[edit | edit source]lqr線性二次型調節器 (LQR) 設計lqry形成具有輸出權重的線性二次型 (LQ) 狀態反饋調節器lqi線性二次型積分控制dlqr離散時間狀態空間系統的線性二次型 (LQ) 狀態反饋調節器lqrd為連續系統設計離散線性二次型 (LQ) 調節器lqg線性二次型高斯 (LQG) 設計lqgreg形成線性二次型高斯 (LQG) 調節器lqgtrack形成線性二次型高斯 (LQG) 伺服控制器augstate將狀態向量追加到輸出向量norm線性模型的範數estim給定估計器增益,形成狀態估計器place極點配置設計reg給定狀態反饋和估計器增益,形成調節器
狀態估計
[edit | edit source]kalman卡爾曼濾波器設計,卡爾曼估計器kalmd為連續系統設計離散卡爾曼估計器estim給定估計器增益,形成狀態估計器extendedKalmanFilter建立用於線上狀態估計的擴充套件卡爾曼濾波器物件unscentedKalmanFilter建立用於線上狀態估計的無跡卡爾曼濾波器物件particleFilter用於線上狀態估計的粒子濾波器物件correct使用擴充套件或無跡卡爾曼濾波器,或粒子濾波器和測量值來校正狀態和狀態估計誤差協方差predict使用擴充套件或無跡卡爾曼濾波器,或粒子濾波器來預測下一時間步的狀態和狀態估計誤差協方差initialize初始化粒子濾波器的狀態clone複製線上狀態估計物件
多回路,多目標調整
[edit | edit source]程式設計調整
[edit | edit source]用於調整 Simulink 模型的設定
[edit | edit source]slTuner用於 Simulink 模型的控制系統調整的介面slTunerOptions設定 slTuner 介面選項addBlock將塊新增到 slTuner 介面的調整塊列表中addOpening將訊號新增到 slLinearizer 或 slTuner 介面的開啟列表中addPoint將訊號新增到 slLinearizer 或 slTuner 介面的分析點列表中refresh將 slLinearizer 或 slTuner 介面與當前模型狀態同步removeAllOpenings從 slLinearizer 或 slTuner 介面中移除所有開啟removeAllPoints從 slLinearizer 或 slTuner 介面中移除所有點removeBlock從 slTuner 介面的調整塊列表中移除塊removeOpening從 slLinearizer 或 slTuner 介面中移除永久迴圈開啟removePoint從 slLinearizer 或 slTuner 介面的分析點列表中移除點setBlockParam設定 slTuner 介面中調整塊的引數化setBlockRateConversion設定 slTuner 介面中調整塊的速率轉換設定setBlockValue設定 slTuner 介面中調整塊引數化的值writeBlockValue更新 Simulink 模型中的塊值writeLookupTableData更新調整的查詢表的一部分getBlockParam獲取 slTuner 介面中調整塊的引數化getBlockRateConversion獲取 slTuner 介面中調整塊的速率轉換設定getBlockValue獲取 slTuner 介面中調整塊引數化的當前值getOpenings獲取 slLinearizer 或 slTuner 介面的開啟列表getPoints獲取 slLinearizer 或 slTuner 介面的分析點列表showTunable顯示 slTuner 介面中可調整塊的引數化值
用於調整 MATLAB 模型的設定
[edit | edit source]tf建立傳遞函式模型,轉換為傳遞函式模型zpk建立零極點增益模型;轉換為零極點增益模型ss建立狀態空間模型,轉換為狀態空間模型tunableGain可調靜態增益塊tunableTF可調傳遞函式,具有固定數量的極點和零點tunablePID可調 PID 控制器tunablePID2可調雙自由度 PID 控制器tunableSS可調固定階狀態空間模型realp實數可調引數AnalysisPoint線性分析的關注點connect動態系統的框圖互聯feedback兩個模型的反饋連線
調整目標
[edit | edit source]TuningGoal.StepTracking 控制系統調整的階躍響應要求TuningGoal.StepRejection 控制系統調整的階躍干擾抑制要求TuningGoal.Transient 控制系統調整的瞬態匹配要求TuningGoal.LQG 控制系統調整的線性二次高斯 (LQG) 目標TuningGoal.Gain 控制系統調整的增益約束TuningGoal.Variance 控制系統調整的噪聲放大約束TuningGoal.Tracking 控制系統調整的跟蹤要求TuningGoal.Overshoot 控制系統調整的超調約束TuningGoal.Rejection 控制系統調整的干擾抑制要求TuningGoal.Sensitivity 控制系統調整的靈敏度要求TuningGoal.WeightedGain 控制系統調整的頻率加權增益約束TuningGoal.WeightedVariance 控制系統調整的頻率加權 H2 範數約束TuningGoal.MinLoopGain 控制系統調整的最小環路增益約束TuningGoal.MaxLoopGain 控制系統調整的最大環路增益約束TuningGoal.LoopShape 控制系統調整的目標環路形狀TuningGoal.Margins 控制系統調整的穩定裕度要求TuningGoal.Passivity 控制系統調整的無源性約束TuningGoal.ConicSector 控制系統調整的扇區邊界TuningGoal.WeightedPassivity 頻率加權無源性約束TuningGoal.Poles 控制系統動力學約束TuningGoal.ControllerPoles 控制系統調整的控制器動力學約束
調整、分析和驗證
[edit | edit source]systune(slTuner) 使用 slTuner 介面調整 Simulink 中的控制系統引數systuneOptions設定 systune 的選項getIOTransfer(slTuner) 使用 slLinearizer 或 slTuner 介面獲取指定 I/O 集的傳遞函式getLoopTransfer(slTuner) 使用 slLinearizer 或 slTuner 介面獲取指定點的開環傳遞函式getSensitivity(slTuner) 使用 slLinearizer 或 slTuner 介面獲取指定點的靈敏度函式getCompSensitivity(slTuner) 使用 slLinearizer 或 slTuner 介面獲取指定點的互補靈敏度函式writeBlockValue更新 Simulink 模型中的塊值systune調整在 MATLAB 中建模的固定結構控制系統systuneOptions設定 systune 的選項getIOTransfer來自控制系統廣義模型的閉環傳遞函式getLoopTransfer控制系統的開環傳遞函式getSensitivity來自控制系統廣義模型的靈敏度函式getCompSensitivity從控制系統廣義模型獲取互補靈敏度函式viewGoal檢視調整目標;根據調整目標驗證設計evalGoal評估調整後的控制系統的調整目標
環路整形設計
[edit | edit source]slTuner用於 Simulink 模型的控制系統調整的介面looptune使用 slTuner 介面調整 Simulink 中的 MIMO 反饋環路looptuneOptions設定 looptune 的選項loopview使用 slTuner 介面以圖形方式分析控制系統調整結果looptuneSetup使用 slTuner 介面為 looptune 構造調整設定,以調整 systune 的設定looptune調整固定結構反饋環路looptuneOptions設定 looptune 的選項loopview以圖形方式分析 MIMO 反饋環路looptuneSetup將 looptune 的調整設定轉換為 systune 的調整設定viewGoal檢視調整目標;根據調整目標驗證設計evalGoal評估調整後的控制系統的調整目標
增益排程
[edit | edit source]tunableSurface為增益排程建立可調整的增益曲面polyBasis可調整增益曲面的多項式基函式fourierBasis可調整增益曲面的傅立葉基函式ndBasis可調整增益曲面的基函式viewSurf將增益曲面視覺化為排程變數的函式evalSurf在特定設計點評估增益曲面getData獲取可調整曲面係數的當前值setData設定可調曲面係數的值codegen為可調增益曲面生成 MATLAB 程式碼systune調整在 MATLAB 中建模的固定結構控制系統slTuner用於 Simulink 模型的控制系統調整的介面systune(slTuner) 使用 slTuner 介面調整 Simulink 中的控制系統引數voidModel標記模型陣列中缺失或無關的模型varyingGoal增益排程控制器的可變調整目標getGoal在指定設計點評估可變調整目標
矩陣運算
[edit | edit source]lyap連續李雅普諾夫方程解lyapchol連續時間李雅普諾夫方程的平方根求解器dlyap求解離散時間李雅普諾夫方程dlyapchol離散時間李雅普諾夫方程的平方根求解器care連續時間代數Riccati方程解dare求解離散時間代數Riccati方程 (DARE)gcare連續時間代數Riccati方程的廣義求解器gdare離散時間代數Riccati方程的廣義求解器ctrb可控性矩陣obsv可觀測性矩陣ctrbf計算可控性階梯形式obsvf計算可觀測性階梯形式gram可控性和可觀測性格拉姆矩陣gramOptionsgram 命令選項bdschur塊對角舒爾分解norm線性模型的範數