Simulink小問題集錦

 

命令行如何運行simulink外部模式build和start

用sim()函數
該函數的調用格式爲:
[t,x,y]=sim(f1,tspan,options,ut)
其中f1爲SIMULINK的模型名,tspan爲仿真時間控制變量;參數options爲模型控制

參數;ut爲外部輸入向量。

-------------------------------------------------------------------------

-------
請問matlab中的仿真模塊,可以看到起源程序嗎?

那些基本模塊是看不了源代碼的,有很多模塊是用subsystem組成的,你可以用
look under mask(鼠標右鍵)看到裏面是怎樣用子模塊搭接的,還有很多是
由s函數寫成的simulink的模塊,這些直接edit sfunname(s函數的名字)
就可以看到源代碼

-------------------------------------------------------------------------

-------
請問:在simulink參數中設置的步長是50e-6,在系統中有一個simout模塊向MATLAB

中傳遞數據,但是希望以1e-3的步長獲取數據,因該如何設計?在simout模塊中直

接設定仿真步長是不能運行的。

需要插入一個"zero order hold"模塊,將該模塊的採樣時間設置爲1e-03就可以了



-------------------------------------------------------------------------

-------
simulink中IGBT等電力元件都有個m極,是什麼作用的?

用於測量流過IGBT電流及其電壓

-------------------------------------------------------------------------

-------
用simlink畫的圖,在示波器中顯示,如何複製到word中

告訴你一個辦法,
在加上示波器的地方加上to workspace
改爲array
在主窗口中plot

直接抓過去也行吧。

Edit下有copy model選項

-------------------------------------------------------------------------

-------
simulink中的mask問題
請問如何封裝
prompt,varible填啥
如何初始化

prompt中,填寫變量的提示,如:直線斜率
variable中填寫變量名.如:k

-------------------------------------------------------------------------

-------
有關神經網絡工具箱
爲什麼當訓練和仿真時,命令窗口會出現一堆warning?如:
*WARNING* TRAINBPX is an obsolete function.
Use NNT2FF and TRAIN to update and train your network.
Type NNTWARN OFF to suppress NNT warning messages.
trainbpx,simuff這些命令應該怎麼用?

你用的神經網絡不太適合你的matlab版本,有點過時了,對於BP網絡,像用newff訓

練就沒問題,建議你可買一本較新的神經網絡參考書。還可看matlab的help


-------------------------------------------------------------------------

-------
一個關於simulink仿真的問題
根據4個輸出a1、a2、a3、a4判斷,輸出最大的ai所對應的數。這樣一個過程不用s

函數能不能實現阿?我用了if else語句,但是無法把不同時刻的不同輸出值彙總成

串行數據流輸出。

用mux將各路信號構造成向量信號,再用matlab fcn下的max對之進行操作即可

-------------------------------------------------------------------------

-------
怎麼實現在simulink仿真過程中與其他程序進行通訊,即如何在simulink仿真過程

中實時讀出數據。不論通過網絡或變量空間中的變量都行,應該怎麼實現,請教!

用to workspace或to file 都可以保存仿真時的數據

-------------------------------------------------------------------------

-------
請問如何在simulink中實現A/D和D/A轉換。

有相關的模塊,在xpc中,不過得和硬件對應上

-------------------------------------------------------------------------

-------
請問如何改變ode45函數中的步長

ode45現在的版本不允許顯式給出步長

-------------------------------------------------------------------------

-------
請教:如何將workspace中的輸入,輸出數據存爲*.txt文件?

save filename varname -ASCII
varname是要存儲的變量名,之間用空格分隔

-------------------------------------------------------------------------

-------
將PID的SIMULINK圖的輸出仿真圖形怎樣與自己設計的界面中的按鈕連接 回調函數

怎麼編

要顯示的數據用Outport端子表示,就可以用sim函數直接獲得數據了

-------------------------------------------------------------------------

-------
怎樣才能增加採樣點?
在Simulink裏邊連接框圖,階躍step輸入經過一積分環節1/s,用out輸出至workspa

ce,tout跟yout都爲56×1,能不能把56變成更大的值?怎麼設置?謝謝!!!!!



能增加,simulink中你得到的是默認的結果
如果向增加,則可以認爲減小允許的誤差限,即在simulink中的relative error項

,如將其變化成e-6或其他更小的值。另外還可以通過定步長方法進行仿真(這時應

該注意要確認能保證仿真精度要求)

-------------------------------------------------------------------------

-------
我最近在做電機控制的仿真時,遇到一個問題。我是用matlab6.5中的電機模塊做爲

模型,然後自己搭建了一個變頻器。在運行中經常出現運行到一半時就進行不下去

了,simulink報錯說步長有問題,我修改後還是不行。請問在做有關電機的仿真時

,應該如何設置仿真環境。

試試改變仿真算法,如ode15s

-------------------------------------------------------------------------

-------
運行時出現下面的提示:
Derivative input 1 of block 'try1/check/Analog Filter Design' at time 0

is Inf or NaN. Stopping simulation. There may be a singularity in the

solution. If not, try reducing the step size (either by reducing the

fixed step size or by tightening the error tolerances)

仿真系統數值不穩定,是模型的問題或是其他問題

-------------------------------------------------------------------------

-------
相位Phase的單位deg是什麼意思?

degree,it is same to say 度

-------------------------------------------------------------------------

-------
workspace,數據多了就存不下啦?
採樣時間設爲0.01秒,運行若干秒以後,在workspace中打開scopedata(示波器form

at設定爲Array,limit data points to last沒選擇!)時,系統提示:cannot

display variables with more then 10000 elements,什麼原因?

數據量大了是不能顯示得

實在不顯示,可以考慮將矩陣存到文件中,你再去讀文件了。
另外:你的矩陣維數是多少

connot display variables with more than 65536 elements!
a=ones(500,499);
雙擊workspace中的a矩陣

-------------------------------------------------------------------------

-------
simulink中的數據爲什麼會丟失啊?
我在做一個比較大的系統的rtw仿真
可是在仿真時,要是記錄數據的模塊(比如示波器,to workspace)等比較多或者步

長比較小時,就會出現記錄的數據不全或者乾脆丟失的現象,比如to workspace的

數據只有後面或者前面的幾百個,丟了好多。記錄不全。出現提示信息如下
Warning: Received shutdown message from target 15.002000 seconds ago.

Waitin
g for final data logging buffer and
logging terminator...
Warning: Received shutdown message from target 30.004000 seconds ago.

Waitin
g for final data logging buffer and logging terminator...
Warning: Received shutdown message from target 45.003000 seconds ago.

Waitin
g for final data logging buffer and logging terminator...
Warning: Received shutdown message from target 60.008000 seconds ago.

Waitin
g for final data logging buffer and logging terminator...
Warning: Did not received final data logging buffer and logging

terminator f
rom target. Disconnecting...
這樣運行就停止了,但數據不全。另外,有時候運行時會出現突然黑屏現象。
還有就是在rtw中如何進行數據的實時觀測,scope不可以了,在gui中編程可以實現

嗎?

看看原來的simulink模型
其中示波器或其他輸出環節中可能選擇了存最新若干數據的選項,解除它即可

-------------------------------------------------------------------------

-------

請問白噪聲譜生產隨即數問題?
已知白噪聲譜爲S0,如何生產隨即數序列?
遇到問題:
1,用simulink中的Band-Limited
White Noise模塊,設置 Noise Power爲S0,
可是爲什麼Sample time取不同的值,生成的
生產隨即數序列大小相差很大,有數量級的差別,
不應該有那麼大吧??
2,生產隨機數的大小與Seed的取值有關嗎?
3,有無更簡單的方法。


你注意到1的現象很好
實際該模塊發出的噪聲是經過除以sqrt(T)後的結果,T是採樣週期。所以你覺得幅

值不同,這樣可以保證噪聲的強度符合有求。

請教:怎樣能查到仿真塊的程序?

simulink自帶的模塊如果不是mask的就查不了

-------------------------------------------------------------------------

-------
爲什麼用SUMULINK裏to file模塊中的數據傳不到M文件?需要設置什麼?謝謝
是寫入.mat中的。

用load命令讀入到workspace。

-------------------------------------------------------------------------

-------
請問如何產生帶限白噪聲
如果先產生隨機數再通過濾波器,請問,濾波器歸一化頻率如何確定,和採樣頻率

歸一化嗎

使用Band-Limited White Noise模塊

-------------------------------------------------------------------------

-------
請教:關於.m文件和simulink模型的仿真速度的問題。
一個控制問題,用.m文件做仿真,運行時間大約15分鐘;然後作成simulink模型,

運行了24小時也沒有得到結果。這是什麼原因?simulink就如此慢嗎?小弟對simul

ink不熟,請指教有無加快速度的辦法?(accelerate用過了)。謝謝。

問題不清楚,只能猜一下
simulink是不是有代數環?在command窗口看看
m文件用pcode處理一下

-------------------------------------------------------------------------

-------
請教:如何在.m文件中實現變量延時?就象simulink中的傳輸延時模塊的功能。謝

謝。

沒辦法,m文件中只是數值計算,只有調用順序問題,如果使用差分方程計算,對應

於滯後一些的循環
simulink仿真是有時間基準的

-------------------------------------------------------------------------

-------
Simulink模型的PreLoadFcn屬性在哪裏寫的呀?謝謝

打開模型文件——file--model property——callbacks,進行修改即可

-------------------------------------------------------------------------

-------
存在simulink下的file.mat中的文件結果怎麼才能在程序裏調用呢?需要什麼設置

?filename是pend.mat,爲什麼用以下的語句打不開呢?
load pend.mat
t=signals(1,;
總是提示 :Undefined variable.

你的pend.mat文件中有該變量嗎?

-------------------------------------------------------------------------

-------
爲什麼我在simulink裏仿真得不到較好的單位階躍圖??五階傳遞函數

是不是你階躍模塊的第一個參數沒改?是默認的1而不是0

-------------------------------------------------------------------------

-------
用MATLAB6.5版時,選用simpowersystems庫中的Voltage Measurement模塊,爲何在

每次運行時,都報Data type mismatch錯誤,而在6.1版時則沒有這個問題?

估計你把非電氣庫的線和電氣庫連線混用了

-------------------------------------------------------------------------

-------
我想知道SIMULINK中的延遲模塊(就是那個上面顯示1/z的模塊),它的延遲時間可以

改變嗎?比如讓它作一個0.001秒的延遲參數應該怎麼設?

雙擊unit delay模塊
改sample time

-------------------------------------------------------------------------

-------
MATLAB裏得NOTBOOK是做什麼用的?

MATLAB與WORD的連接,只要在命令窗口中輸入:notebook -setup 按照提示就可完

成設置

-------------------------------------------------------------------------

-------
離散的微分在SIMULINK中是哪塊?

沒有,得自己搭建

-------------------------------------------------------------------------

-------
在SIMULINK裏的FROM FILE 模塊裏讀入矩陣爲什麼總顯示錯誤信息?
我在模塊上寫讀入文件名時信息提示該文件不是矩陣,可明明是矩陣文件呀!

該矩陣文件還應該包括時間信息。

-------------------------------------------------------------------------

-------
用simulink實現的線性濾波器初始條件怎麼設 ?

默認的模塊不能設置,到SimulinkExtras裏找

-------------------------------------------------------------------------

-------
請問如何利用simulink中的模塊得到三角波(等腰)信號?

用repeat sequence模塊,只需定義一個週期的即可

-------------------------------------------------------------------------

-------
如何在Simulink中做到實時的響應鍵盤輸入?我的意思是就像在VC中那樣,按下任

意鍵後就有一個消息產生通知程序。
我看了幫助,waitforbuttonpress只能在GUI中使用。而且不能做到實時響應。

Simulink支持回調函數的

在simulink仿真試驗中,我能不能把simulink中的數據用To 

workspace寫入到matlab的工作窗口中,然後經過處理再用from 

workspace寫入到simulink中。

可以,如果不原意寫,還可以利用自動生成的tout和yout

-------------------------------------------------------------------------

-------
請問這裏有人是學導航的麼?有個小小問題請教。
我用Simulink的s-function做了一個運動軌跡數據發生模塊,但是數據總有些不對

。後來無意中在Simulink

Extras中發現了一大堆好東東,對我最有用的是Aerospace Blocks下面的東西,竟

然連導航計算都有現成的模塊!真是喜出望外啊。
我的問題就是:大家有誰用過這些block的嗎?我猜想一定有現成的產生軌跡數據的

模塊,哪位大俠指點一二!!謝謝!!

6.5版本帶更正式的Aerospace Blockset

-------------------------------------------------------------------------

-------
powersystems blockset中的電容電阻的問題
這個模塊中怎麼沒發現電容電感電阻.三級管等東西啊,是不是不在這個模塊裏,要是

在的話在哪,我怎麼沒發現啊

三極管沒有,需要自己搭建,電阻電容有,從RLC電路提取

-------------------------------------------------------------------------

-------

如何延長simulink的運行時間

可以用Simulation/Parameters菜單設置終止時間 ,放慢播放可以採用定步長方法

,設置小的步長

-------------------------------------------------------------------------

-------
在simulink中如何對一個連續信號進行抽樣,使用什麼樣的模塊或模塊的組合。

信號後加保持器,如零階保持器或Unit Delay模塊

-------------------------------------------------------------------------

-------
如何在matlab仿真中使用16進制

Simulink下調用MATLAB寫的轉換模塊

-------------------------------------------------------------------------

-------
已知信號[t,v],如何在其上加高斯白噪聲?要求用simulink作

直接用加法器就可以

-------------------------------------------------------------------------

-------
我要產生一個隨時間變化頻率的正弦波,變化的頻率是來自上一模塊的調節輸出量

,而且頻率是正負變化的,圍繞50HZ上下波動,如:+/-0.5HZ左右.我現在產生的

正弦波也可變頻,但只能正變??

用Fcn模塊可以任意變

-------------------------------------------------------------------------

-------
simulink產生等腰三角波

實時simulink的repeating sequence模塊

-------------------------------------------------------------------------

-------
我是一名電力工程師,需要用matlab解決一些諸如電力網計算,化簡方面的問題,

請問大家在哪可以得到這方面的信息?
你可以用simpowersystems模塊庫。裏面幾乎包括了所有電力系統的元件。我正在用

它搞發電機的故障分析。
感覺matlab十分精深廣博,要學的太多了。


-------------------------------------------------------------------------

-------
如何把編好的s-function加到simulink中去。

將S-FUNCTION模塊拖到SIMULINK下,將模塊名與S-FUNCTION一致,M文件不要求編譯

,C文件要編譯

-------------------------------------------------------------------------

-------
仿真示波器中的黑色背景能否處理?

想處理示波器的背景一般是想得到圖片,最好把數據存到工作空間中,用plot繪圖,這

樣的靈活性會更大

-------------------------------------------------------------------------

-------
如何在SIMULINK中實現u=u/max(u)

沒法實現,因爲u在仿真前沒有,無從建立最大值

-------------------------------------------------------------------------

-------
如何在SIMULINK中取出狀態變量?

可以存入文件,然後導入.

-------------------------------------------------------------------------

-------
請問如何用simulink進行變參數系統仿真?
就是說,仿真參數會隨輸出的值不同而發生變化,不再是個常數;而且對於輸出(階

躍函數爲輸入)的每一點都要進行判斷,如在某一範圍內就計算並調整參數,如在另

一範圍內就重新計算並調整參數。。。。。系統爲多輸入的比較負載的傳度函數,

能告訴我如何仿真嗎?謝謝!

用離散的仿真形式,各環節都用變量或者函數實現

參數時變的線性五階系統在MATLAB中應該怎樣仿真?(用mdl文件可以做?還是用S

函數?或者離散形式做成m文件仿真?)其中參數的變化規律是已知的,哪位高人幫

我解決一下這個問題,深表感謝!!!

可以自己用simulink模塊搭建,不一定非得用s函數,參考一下傳遞函數的狀態方程

實現內容,可以選擇一組積分器,再搭建模型

-------------------------------------------------------------------------

--------------
在matlab中,用M文件的形式編寫了S-function,請問怎麼把他變成自己的仿真模塊,

其中有什麼注意事項.

只需用S-function模塊,打開它並在其中設置上你編寫的S-function模塊的函數名

和參數,就可以直接使用了

-------------------------------------------------------------------------

--------------
本人在用simulink仿真某電機控制系統時,需要一整流橋模型
input:ua,ub uc
output:ia,ib,ic
簡單的二極管模型,很難傳遞數據,因此本人編程M函數並通過。
卻發現其在SIMULINK中,只能傳遞一組數據,只能用s函數?
還是有別的高招?

作爲一個向量不就行了?

效果不錯,可是有一點不明白.首先,simulink可以認爲是傳遞瞬時數據的一種工具

,假設時間一週期有50個採樣點,作爲一個向量輸出時,[ia,ib,ic]他們的最終數

據形式應該是1X150,我不知道最終的ia,ib,ic數組會是什麼樣子?
好像有些問題?

你可以參考matlab Fcn模塊的幫助,自己建一個簡單的模型試一下。

-------------------------------------------------------------------------

--------------
請問,在simulink裏怎麼設置初值

用其preloadfcn屬性

-------------------------------------------------------------------------

--------------
在.m文件中調用模塊仿真,應該如何做呢?

用sim函數

-------------------------------------------------------------------------

--------------
對形如dx/dt=Ax(t)+Bx(t-d) (d爲滯後時間常數),如何獲得它的零輸入響應?

用普通的狀態方程模塊,其輸入信號前加一個時間延遲模塊即可。如果用控制系統

工具箱中的ss對象,則將其ioDelay屬性設置爲d也能起到同樣的作用

-------------------------------------------------------------------------

--------------
>假設在matlab下,我寫了一個生成gold序列的gold.m文本,但我希望能夠像maxplu

s一樣把它變成一個subsystem,這樣我就可以在simulink下調用它了,請問我該怎

麼做才能把*.m的文件變成模塊?

建議採用S-函數的格式改寫你的源程序,而不是子系統形式。

-------------------------------------------------------------------------

--------------
>另外再問一個比較弱的問題
>能不能建一個我自己的模塊庫?我自己做的模塊能不能直接從庫中調用?怎麼做?

可以,用Simulink下的File/New/Library就能建立新的庫,而不是模塊

-------------------------------------------------------------------------

--------------
我看了一些s-function的資料,有點印象了,但是,如何實現時鐘控制的上升沿(

或下降沿)觸發?在matlab的庫中有沒有類似的*.m文件例子?

可以使用Simulink子系統模塊來控制

-------------------------------------------------------------------------

--------------
simulink圖形仿真中用於MOSFET輸出M端測量的選路器在那一庫中?

Simulink自己的Signal & Systems中

-------------------------------------------------------------------------

--------------
在simulink中如何實現 y=45x^2+f(s)x,其中x是輸入,y是輸出,f(s)是傳遞函數

假設模塊某部分的輸入信號爲x,則可以用一個*模塊,將x分別付給該模塊的2路輸入,就生成了x^2, 再在後面接一個比例環節就得到45x^2了。同時再讓x通過一個傳遞函數就得到令一錄信號,將這兩路信號加起來就得出輸出的y

-------------------------------------------------------------------------

--------------
怎樣求兩個空間向量的夾角,如[1,0,0]和[1,1,1]

ang=A'*B/(norm(A)*norm();

-------------------------------------------------------------------------

--------------
如何把使用save workspace as保存過大量變量重新導出?

應該用load能全部導出

simulink仿真時間和實際物理系統的時間有什麼關係?(是否相等?),謝謝

仿真時間應該表示物理時間,比如說你選則終止時間爲10,不管你花多長時間仿真

,得到的結果表示10秒內的系統性能。
-------------------------------------------------------------------------

-------
在simulink中,變量y從1變化到1000,我希望將y=300時(或者是y大於300的時刻)

的當前時間t提取出來,並定義爲一個workspace中的變量,或者作爲simulink中的

一個標量,請問如何做到?

將y作爲一個輸出信號,這樣就可以對其後處理了。
另外,如果想在線使用該量,則加一個判斷,如用比較模塊判斷y>=300, 300可以是

常數輸入
-------------------------------------------------------------------------

-------
請問在simulink裏面的低通濾波器在哪裏

你可以用離散模塊組中的filter,低通參數應該由信號處理工具箱中函數設計
-------------------------------------------------------------------------

-------
請問怎樣用matlab命令調出simulink文件中的scope的波形

有一個自編的小程序
function myfigure_scope(input)
a=size(input.signals);
b=a(1,2);%b爲信號的個數
c=1;%c爲循環變量
while c<=b;
subplot(b,1,c)
plot(input.time,input.signals(1,c).values)
c=c+1;
grid
end
其中input爲示波器中保存的structure with time數據
-------------------------------------------------------------------------

-------
怎樣把simulink中的圖形輸出轉到m文件下進行編程輸出

用outport模塊表示輸出,然後用sim函數進行仿真,而不是用simulation菜單

-------------------------------------------------------------------------

-------
我是用的from workspace比較多,所以每次賦值比較麻煩。我想設一個默認值,不知如何設?請各位賜教!!!謝謝

只能逐個設置,另外,建議使用outport而不使用toworkspace。使用前者將在工作空間中產生yout變量

-------------------------------------------------------------------------

-------
如何在matlab的 simulink中讀入dat文件

可以用from file模塊!

-------------------------------------------------------------------------

-------
power system blockset與simulink的模塊不能相連嗎?

能相聯,但之間需要轉換,如應該使用電壓表和電流表等將其連接到simulink模塊上

-------------------------------------------------------------------------

-------
SIMUKINK中有兩個模塊,一個是PID模塊,一個是模糊控制模塊,現在我想用模糊控制模塊算出來的新的PID的參數值更改原來的PID參數,我不知道怎麼做,請各位大俠指條明路,救命啊!

應急方法:將PID參數設置爲全局變量試試
-------------------------------------------------------------------------

-------
我現在正在做畢業設計,遇到了一個問題。我要一邊用m文件進行編程,做一些界面。一邊用simulink進行仿真,在進行圖形輸出時,我遇到了一個問題,就是怎麼樣把simulink的輸出而轉到m文件下來。因爲我要在圖形輸出的窗口中還要添加一些按鈕。使它的外觀更漂亮。

matlab的simulink的輸出可以輸出到工作空間種來
也可以通過輸出到一個mat文件等
還可以直接用x-ygraph來做!
just have a test!

-------------------------------------------------------------------------

-------
SIMULINK仿真中的給定信號如果是非標準的(如非正弦波:由2個分段函數定義),怎麼產生?

可以用matlab fcn模塊自己編寫

-------------------------------------------------------------------------

-------
如何取得離散信號中某時刻(假定是k時刻)及k-1時刻、k+1時刻的值,用Simulink中的哪些模塊可以實現?

接z(-1)和z即可

-------------------------------------------------------------------------

-------
我從電氣庫中找到一個電機的模型,但是卻和我前面的simulink組成的模型不相通,那是怎麼回事,有知道的嗎,請告訴我,謝謝了。

PowerSystems Toolbox中模塊不是所有端口都能接收Simulink信號的,例如電機模型中,電壓輸入是需要電壓源模塊的(Power systems Blockset模塊),而轉矩可以輸入simulink信號。如果實在想給電壓端口輸入simulink信號,需要給其先加一個受控電壓源,用simulink信號控制受控信號


-------------------------------------------------------------------------

-------
請問在simulink裏面的施密特觸發器在哪裏.

在simulink extra組中

-------------------------------------------------------------------------

-------
在用simulink進行仿真時,仿真過程中有信號是隨時間衰減的波動信號,仿真時間爲0~t,如何計算t(i)~t(i+1)時間內的信號的積分平均?

check the "integrator block with resetting".
You can re-set the integrator at any time you specified.

-------------------------------------------------------------------------

-------
我用simulink畫了一個單輸入輸出的開環控制系統,想得到該系統的bode圖,用什麼方法獲得該系統的開環傳遞函數?

1) 修正原來的simulink模型,使其輸入用inport表示,輸出用outport表示。這些端口在6。1版中分別位於sources和sinks組。
2)用[a,b,c,d]=linmod2('模型名'); 提取狀態方程模型
3) G=ss(a,b,c,d);
4)bode(G)


爲什麼我用simulink仿真時,只有ode5能運行而其他的不行呢?

是否是模型中包含離散模塊或實時模塊

-------------------------------------------------------------------------

----------------------------
我在用SIMULINK解二元微分方程組時,在MATLAB命令窗口輸入X1,X2的初值如X01=1

;X02=-2;然後啓動仿真程序,但該初值似乎無法進入我的模型,查YOUT變量組,

值爲0。而我直接在SIMULINK中分別雙擊X1,X2的積分模型,將INITIAL CONDITION

設爲1和-2,然後仿真,可以得到結果。我覺得是MATLAB命令窗口與SIMULINK未聯繫

起來,但不知如何處理。

將積分模塊的Initial Condition Source置爲external。將From Workspace模塊

加入積分模塊的x0端口。From Workspace中設置你在matlab命令窗口中輸入的變量

名。

-------------------------------------------------------------------------

----------------------------
simulink 如何調用m文件

不用s函數,使用matlab function模塊調用.m函數也行

-------------------------------------------------------------------------

----------------------------
simulink裏是否有記憶歷史數據的模塊?

Signal Routing/Data Store Memory
-------------------------------------------------------------------------

----------------------------
我做系統辨識 請問大俠怎麼產生m序列?

用simulink的異或門和DFlipFlop

-------------------------------------------------------------------------

----------------------------
在simulink模擬控制中,方框圖如何以圖片格式輸出?

先選中,在用edit 中的copy model to clipboard,然後粘貼即可

-------------------------------------------------------------------------

----------------------------
Simulink仿真時Matlab Function對話框中的代碼怎麼設置?

自己編寫matlab function,然後在matlab function模塊裏填寫自編的.m函數名即

可。

-------------------------------------------------------------------------

----------------------------
simulink中正弦sin的積分顯示是1-cos,爲何不是-cos

如果輸入u(t),t0爲初始時刻,則在t時刻積分器的輸出y(t)是u(t)從t0至t的積分值

。所以如果t0=0,u(t)=sin(t),y(t)=-cos(t0)+cos(0)=1-cos(t)

-------------------------------------------------------------------------

----------------------------
在simulink下如何實現取餘數?

remain

-------------------------------------------------------------------------

----------------------------
爲什麼simulink 可改變步長而調用ode函數不行

因此只能設置求解器的初始補償和最大步長。simulink裏因爲需要對離散系統進行

仿真等原因所以有定步長算法可以選擇。
p.s.如果一定需要定步長算法,可以自己根據算法編程實現。

在simpowersystems中沒有單(兩)相電機模塊,我用simulink做了個模塊,但現在問題是我如何把它轉化成simpowersystems形式的模塊呢?也就是讓它成爲電力模塊,比如說我現在要用單相電機做負載,通過它的參數的變化看它對前面電路的影響,即實現他們電與電的聯繫,單單simulink模型是不能與simpowersystems block直接相聯的,這就是問題的關鍵,如何實現他們的轉化。

使用受控電流源方式可是實現simulink到simpowersystems的轉變



Q:simulink中的模塊參數seed是什麼意思???許多模塊中都要求輸入seed值,有何含義?應如何確定該值?
A:可以輸入任意整數。由於實際上的隨機數生成大多爲僞隨機序列,如果輸入同樣的seed將產生相同的隨機序列,需要輸入不同的seed以產生不同的隨機序列。


Q:小波工具箱中waverec函數的問題
我有個問題想要請教各位,我對其中的多尺度一維小波重構函數waverec一直不太理解,用這個函數重構的小波係數,不管是哪個尺度上的低頻或高頻係數,得到的都是和採樣信號相同的個數,比如採樣信號是2000個,進行3尺度分解,則重構的第3尺度上的低頻係數也是2000個,我試過了,不論哪個尺度的係數重構,都和原始採樣信號一樣的長度。而我用appcoef提取的第3尺度上的低頻係數卻是250個(因爲進行了2抽取),爲什麼重構的係數卻體現不出二抽取?而mallat算法重構係數是逐級2插補,我想知道重構的係數與分解的係數區別到底在什麼地方?重構後的係數與分解的係數不相等,那還是小波變換系數嗎?
A:小波重構時可以通過兩種途徑:一種就是書上常見的採用小波係數插值後濾波實現。然後在一級一級的插值,濾波最後實現重構。而另外一種這是在不同的尺度上直接恢復成和原始信號一樣的長度,然後直接相加就行了(這個步驟你可以看看matlab pdf文檔中的Wavelets: A New Tool for Signal Analysis部分)


Q:如何將訓練好的神經網絡用於我的應用中?....
A: sim 或者 gensim........

answer:在m文件中使用sim,使用help network/sim察看使用方法。


如果供simulink模型中仿真用,請使用gensim生成網絡模型,然後放入任何系統仿真模型中使用,並且還能夠生成代碼用於實時仿真。見下面的例子,使用gensim將神經網絡變成Simulink模型。
net = newff([0 1],[5 1]);
gensim(net);
然後可以使用RTW生成S-function目標。


q:能不能在Simulink的環境下,從PC 機的串口收發數據
我編寫了一段C51單片機程序用於對電機進行控制,而一些控制參數我希望能夠從 Simulink 通過 RS232 口發給 C51單片機,並通過 RS232 口得到 C51 的反饋信息。但XPC 的 RS232 模塊好像不能用,是不是我對 XPC 的工作方式理解有誤?請各位老師指導,謝謝!

*.asv文件是哪裏來的?
在使用matlab6.5.1時發現一個有趣的問題,就像用word編輯*.doc文件時生成一個臨時文件一樣,當我用matlab編輯*.m文件時系統自動生成了一個*.asv文件(不是臨時的),打開後和打開同名的*.m後的效果是一樣的,而且這個現象好像是matlab6.5.1版本纔有的,以前用matlab6.2好像沒有這樣的問題,可不可以請高手介紹一下這個神祕的*.asv文件呢,爲什麼要生成這個文件,有什麼用呢?
Ps:release12和release13具體又是什麼含義呢?

自動保存的備份文件(應該不是在matlab6.5.1纔有的)
可以通過在preference的 Editor下面那個auto save選項設置不保留備份的

------------------------------------------------------------------------

如何循環調用SIMULINK模型並保存結果?
我在仿真時,經常需要修改 simulink 模型參數並保存仿真結果. 我現在的笨辦法是多次運行simulink, 手工修改仿真參數, 繁得要命! 經常成天地守在計算機邊等結果.
我試過用m文件自動調用模型並保存結果, 但是"未遂". 我的例子是這樣的: 調用simulink模塊trysave.mdl 10次, 由該模塊把循環變量k寫在不同的矩陣result1~result10中.
調用模塊的行命令:
for k=1:10
sim trysave
end
trysave.mdl 文件已經上傳, 模型初始化命令: assignin('base','output',[strcat('result',num2str(k))]);
運行結果: 只保存了一個結果(變量output), 是最後一次循環的值.

------------------------------------------------------------------------
clear;
for k=1:10
simk = k;
sim untitled01;
assignin('base',strcat('simout',num2str(k)),simout01);
end
untitled01.mdl已上傳,你試一下


------------------------------------------------------------------------
[求助]定義變量怎麼定義連續變量?
大家好,
我在學習MATLAB中,會碰到要定義連續變量。
大家能告訴我怎麼定義嗎?

用m文件的話,你把計算時間步長取的短一些就可以了;用Simulink可以實現連續量,當然計算機是不可能實現真正的連續量的,只不過是計算時間步長非常小而已。

------------------------------------------------------------------------
[求助]請問SIMULINK有矩陣模塊和求逆模塊嗎?

在 DSP BlockSet 的Math Functions 中

------------------------------------------------------------------------
[求助]請問simlink中有沒有測量
請問simlink中有沒有測量 電路 中電流 電壓 幅值的東西?
波形基本上接近正弦(可以按照正弦處理)
我想測量幅值~~~
測量模塊只能測量瞬時值~
通過瞬時值算出來的幅值由太多的紋波,不好去處
請指點一個辦法吧~

試試DSP Blockset/Filtering/Filter Designs/AnalogFilterDesign

------------------------------------------------------------------------
關於積分器觸發使用的問題
我的建模系統中用到了積分器模塊,我希望它在我給電trigger輸入口信號上升沿時才進行積分,我的觸發脈衝是一個SPWM產生信號,第一個上升沿不在0時刻,而是0.02s,但是積分器卻在0~0.02s中間也產生了積分,弄了好久都不知道爲什麼,請大俠們指教!是不是simulink積分器模塊的初值設定有問題,如果是,怎麼更改初值設定啊??

在輸入上進行邏輯控制

Q;如何從仿真模塊生成S函數
A:生成S-function Target是十分簡單的,特別是在MATLAB 6中,S-function Target 還支持變步長算法。 如果系統中安裝並配置了C(比如MSVC)編譯器,然後打開System Target File瀏覽器,選擇rtwsfcn.tlc,就可以了。 我試了一下vdp這個例子,不需任何改動,只需要更換System Target File就可以編譯成功。然後自動彈出一個新的模型窗口,裏面放着一個S-function 塊。這個塊是能夠工作的。


Q:是不是可以用S-函數將m文件與SIMULINK連接?是不是可以用S-函數將m文件與SIMULINK連接?SIMULINK可以轉換成m文件嗎?
A:利用m文件的S-function就可以把m函數與Simulink相連,Simulink原則上不能轉化成m形式。但視你的應用可能有一些變通的方式。


Q:我要用SIMULINK做一個模塊,需輸入16進制數怎末辦,我輸入的參數和輸出的參數都是16進制數怎末辦?
A:在Simulink/Signals&Systems下面有一個“Data Type Conversion”模塊可以用來轉換成INT16


Q:請問如何產生動態時間間隔的脈衝?在simulink中,pulse generator的參數periods一旦確定,那麼
脈衝的時間間隔就固定下來了。怎麼樣才能動態的修改periods參數呢?
或者有沒有其他的模塊能實現動態時間間隔的脈衝?請高手指點!
A:先是採用三角函數塊生成變頻率的正弦信號,然後再用邏輯運算符(信號大於零時輸出1,小於零時輸出0)生成變間隔的脈衝。
這只是作爲一個提示。


Q:我用simulink的power system blockset仿真一個小系統,需要產生一個頻率和相角都是變量的正弦信號。不知那位高手能指點在下一下,我所需要的頻率和相角都是由另外的模塊輸入。頻率是由Power System Blockset的Machines Measurement Delux 輸出的。相角也是測量到的,由Fourier模塊輸出。我想利用這兩個輸出量做成一個正弦電壓源,不知道能不能做?
謝謝您的幫助。
A:如果你需要做一個交流電壓源的話,有一個辦法。你把Simulink/PowerSystem中的AC Voltage Source用Look Under Mask方式打開,就會發現驅動源是一個正弦信號發生器。用一個可調頻率相位的C-Mex S-function替換掉這一部分就可以了


Q:能否實時採集外界信號
simulink能夠實時採集wave device的信號,但是不知道能不能實時採集其他設備(比如A/D採樣板)的信號,還是需要寫上一段程序將採樣板的信號讀入。如果能,該怎麼處理,實時性如何?希望各位大俠指點。
A:Simulink提供的S-function功能應當能夠滿足你與外界硬件接口的需要。關鍵是寫出與硬件相關的驅動,由於S-function 是通過C編寫的,可以調用操作系統以及硬件的相關編程資源,技術上應當不成問題。
關於實時性無法保證,因爲Simulink環境以及相應的PC都不是一個實時環境。確保實時性,必須採用具備實時內核的實時操作系統,或實時仿真系統。MathWorks提供了兩個應用於實時的產品,一個是xpc,另外一個是Real-Time Window Target. 這兩個產品都帶有相當部分的硬件驅動部分,支持一些主要的硬件藉口卡。如果你使用的板卡不在支持之列的話,你依舊需要自己去編寫相應的驅動部分。

[求助]simulink可以做相圖嗎?
動力學相圖,位移和速度爲座標的平面相圖,用SIMULINK可以做嗎?

如果使用matlab6.5的話,就在simulink-->sinks-->XYGraph,
還可以畫兩個相圖simulink-->Neural Network Blockset-->Control System-->X(2Y)Graph


------------------------------------------------------------------------

[求助]Simulink中的信號輸入輸出
在Simulink中,信號模塊庫裏的子系統的輸入端口模塊(In1)可以從Matlab工作空間裏輸入變量。但不知怎麼從外部輸入到Simulink中。望告知。bow,bow,bow!

我覺得In1也只能從simulink空間中輸入數據.

方法如下:
1.從工作空間中輸入數據
matlab--+>simulink--+>sources--+>from workspace (sinim)

2.從外部輸入數據文件
matlab--+>simulink--+>sources--+>from file (untilted.mat),說明:untilted.mat是matlab數據格式,你可將輸入文件存到 .txt文件,然後到如到工作空間,最後使用save保存這個工作空間的數據變量.

3.從simulink字系統中互相導入數據
matlab--+>simulink--+>sources--+>In1(1)

4.將數據導出到工作空間
matlab--+>simulink--+>sinks--+>to workspace(simout)

5.將數據導出到文件
matlab--+>simulink--+>sinks--+>to file (untilted.mat)

6.將數據導出到simulink字系統
matlab--+>simulink--+>sinks--+>out(1)

應該就這些了。

請教一個關於simulink的運行的問題
怎樣設置才能使simulink程序在運行時,知道當前運行到了哪個模塊.

可以使用Simulink的debug工具單步運行模型,這樣運行到的塊會被高亮顯示。

------------------------------------------------------------------------

Simulink的C代碼自動生成功能
我已做好一個Simulink仿真系統運行合理,我想把它轉成實用的C應用程序,這樣就

不用再寫一遍了,怎麼做呢, 一本書上提了一句,Simulink具有C代碼自動生成功

能,可是沒有進一步的介紹,哪位大俠用過或瞭解一點???

simulation--->simulation paratmeter --->Real time workshop
(solover change to fixed solver)


------------------------------------------------------------------------

關於simulink中的模糊控制器
我建立了一個模糊控制系統,想用simulink建模運行一下,觀察響應曲線,模塊都已選好

,線也連上了,,,,,可是總是不能運行,,,,出錯提示,,找不到模糊控制器的.FIS文件,,,,,,,,,我

是這樣做的:

雙擊模糊控制器的圖標,,,提示輸入文件名,,,我建的模糊器的文件名的mohu.fis,把它輸

進去,,,,,,爲什麼不行???????????是不是文件名要加上路徑,,,,我加了,D:/MATLAB...........

/MOHU.FIS,,,還是不行,怎麼回事????????



你要把你建立的模糊控制系統輸出到matlab的工作環境中。
具體:在模糊控制器窗口下打開“文件”的下拉菜單,然後可以看到將模糊控制文件

輸出到工作環境中。就ok了


謝謝 ,按你說的方法,已OK了

可是又出現新的問題了,提示寫:

An error occurred while propagating data type 'boolean' from block 'lun/Fuzzy Logic

Controller/FIS Wizard/Defuzzification1/Zero Strength (COA)', output port 1

可是我在命令行給定一輸入值,使用evalfis函數,能求出輸出值,可以正常運行的


爲什麼放到了simulink裏說我的模糊器有上面的莫名其妙的錯誤?


你可以在你的simulink窗口下改變simulation的屬性:打開simulation的simulation

parameter,出現對話窗口,到advanced,在optimization下的boolean logic signal,在

邊上的action框選成off即可。
問一下,你現在的模糊控制是針對什麼對象的控制,本身的模糊控制方法是自適應

的嗎?想交流一下。

問題解決了,順利運行,謝謝各位的幫助

------------------------------------------------------------------------

我的仿真體系有很多個模塊,每個模塊都有兩個輸出值,一個是模塊計算的值,一個是表示該模塊的序號,我需要將所有模塊的計算值的最小值求出,並得到該最小值對應的模塊的序號,怎樣在Simulink中實現?(有可能有多個模塊都是最小值)

將模塊按順序mux後輸入matlab function模塊,內部函數find(min(u())


------------------------------------------------------------------------
對於規模非常大的系統,比如包含控制、電子、通信、機械、熱能等領域多達十幾個子系統的複雜大系統,採用Simulink能否勝任?

原則上Simulink可以仿真任意大的系統,但在這種情況下,需要你充分熟悉瞭解simulink的仿真機制和優化方法(否則速度會讓你受不了),並且擅長simulink調試,這個要求還是比較高的,但確實能做。

如何求頻率?
已經得到一條正弦函數的曲線。 如果才能獲得它的頻率值啊? 就是要得到他的頻率輸出。
用simulink實現

我個人的思路,
設正弦函數爲sin(wt),求兩次導數-(w^2)*sin(wt),這就得到兩組數據一組sin(wt),一組-(
w^2)*sin(wt),將sin(wt)看作一個變量,然後進行曲線擬合,得到一個數據,然後開方就得
到w.這種思路你看看行不行?



我可能表述的不太清楚。
有一個信號,是正弦信號,但是頻率是可調的。
如和在simulink中實現,輸入端在調整正弦波的頻率,輸出端就可以看到頻率的變
化。

如果在matlab命令行環境下當然好辦啊。可是如何在simulink下實現?
是實時的啊

個人思路,不知是否可行:
先將正弦波變爲脈衝,例如大於零爲1,小於零爲0。
分別用脈衝的下降沿和上升沿來觸發兩個捕獲器,用以捕捉系統仿真時間。
將兩個捕獲器的輸出相減即爲正弦波週期的一半。


我試驗一下,這樣可以,不過在仿真參數中要設置相應的步長。否則結果不好。還
有就是在第一個週期內無法得到合適的值。



matlab可以打開一個excel文件嗎?
matlab-->start-->matlab-->matlab excel builder-->matlab excel builder,這對應matlab6.5


------------------------------------------------------------------------
如何設置saturation模塊中變化的上下限
例如:
上限 = a; 下限 = -a;
變量 a 隨仿真過程變化。
謝謝!

想了半天總算解決了,開始想直接在saturation模塊中設置變量解決,不過沒有成功

。開始我想通過在satruation後面加一個變化的增益,結果還是不行。
最後想到了乘法,通過在satruation模塊後面加上一個production模塊(在math

operations中)和另外一個變化的輸入相乘,這樣就解決了你的問題了。
不知道符合你的要求沒有?歡迎討論。

這樣飽和模塊可能會將有用的信息濾掉,建議採用命令行仿真解決變參數的問題

確實存在那種情況,最好的方法使用matlab編寫一個函數,然後用MATLAB fcn來調 用編寫好的matlab M文件,我想這樣可以滿足任何要求的過濾,只要你想得到的就能夠實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章