Simulink中的常见问题

更新时间:2024-01-15 21:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

仿真命令:

sim ---仿真运行一个simulink模块 sldebug ---调试一个simulink模块 simset ---设置仿真参数 simget ---获取仿真参数

线性化和整理命令:

linmod ---从连续时间系统中获取线性模型(状态方程) linmod2 ---也是获取线性模型,采用高级方法 dinmod ---从离散时间系统中获取线性模型 trim ---为一个仿真系统寻找稳定的状态参数

构建模型命令:

open_system --打开已有的模型

close_system --关闭打开的模型或模块 new_system --创建一个新的空模型窗口

load_system --加载已有的模型并使模型不可见 save_system --保存一个打开的模型 add_block --添加一个新的模块

add_line --添加一条线(两个模块之间的连线) delete_block --删除一个模块 delete_line --删除一根线 find_system --查找一个模块

hilite_system --使一个模块醒目显示

replace_block --用一个新模块代替已有的模块 set_param --为模型或模块设置参数 get_param --获取模块或模型的参数

add_param --为一个模型添加用户自定义的字符串参数 delete_param --从一个模型中删除一个用户自定义的参数 bdclose --关闭一个simulink窗口 bdroot --根层次下的模块名字 gcb --获取当前模块的名字 gcbh --获取当前模块的句柄 gcs --获取当前系统的名字

getfullname --获取一个模块的完全路径名 slupdate --将1.x的模块升级为3.x的模块

addterms --为未连接的端口添加terminators模块 boolean --将数值数组转化为布尔值

slhelp --simulink的用户向导或者模块帮助

封装命令:

hasmask --检查已有模块是否封装

hasmaskdlg --检查已有模块是否有封装的对话框 hasmaskicon --检查已有模块是否有封装的图标 iconedit --使用ginput函数来设计模块图标

maskpopups --返回并改变封装模块的弹出菜单项 movemask --重建内置封装模块为封装的子模块

诊断命令:

sllastdiagnostic --上一次诊断信息 sllasterror --上一次错误信息 sllastwarning --上一次警告信息

sldiagnostics --为一个模型获取模块的数目和编译状态

用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模块中直接设定仿真步长是不能运行的。 需要插入一个\模块,将该模块的采样时间设置为1e-03就可以了 。

simulink中IGBT等电力元件都有个m极,是什么作用的? 用于测量流过IGBT电流及其电压 -------

用simlink画的图,在示波器中显示,如何复制到word中告诉你一个办法,在加上示波器的地方加上to workspace 改为array 在主窗口中plot 直接抓过去也行吧。

Edit下有copy model选项

simulink中的mask问题请问如何封装,prompt,varible填啥?如何初始化 ? prompt中,填写变量的提示,如:直线斜率 variable中填写变量名.如:k

一个关于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或其他更小的值。另外还可以通过定步长方法进行仿真(这时应

该注意要确认能保证仿真精度要求)

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

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

假设模块某部分的输入信号为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可以是

常数输入

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

请问怎样用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菜单

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

-------

如何在matlab的 simulink中读入dat文件

可以用from file模块!

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

-------

power system blockset与simulink的模块不能相连吗?

能相联,但之间需要转换,如应该使用电压表和电流表等将其连接到simulink模块上

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

-------

SIMUKINK中有两个模块,一个是PID模块,一个是模糊控制模块,现在我想用模糊控制模块 算出来的新的PID的参数值更改原来的PID参数,我不知道怎么做,请各位大侠指条明路, 救命啊!

应急方法:将PID参数设置为全局变量试试

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

SIMULINK仿真中的给定信号如果是非标准的(如非正弦波:由2个分段函数定义),怎么产 生?

可以用matlab fcn模块自己编写

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

-------

如何取得离散信号中某时刻(假定是k时刻)及k-1时刻、k+1时刻的值,用Simulink中的哪 些模块可以实现?

接z(-1)和z即可

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

请问在simulink里面的施密特触发器在哪里.

在simulink extra组中

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

-------

在用simulink进行仿真时,仿真过程中有信号是随时间衰减的波动信号,仿真时间为0~t, 如何计算t(i)~t(i+1)时间内的信号的积分平均?

check the \

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以产生不同的随机序列。

*.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文件自动调用模型并保存结果, 但是\未遂\我的例子是这样的: 调用simulin k模块trysave.mdl 10次, 由该模块把循环变量k写在不同的矩阵result1~result10中. 调用模块的行命令: for k=1:10 sim trysave end

trysave.mdl 文件已经上传, 模型初始化命令: assignin('base','output',[strcat('re sult',num2str(k))]);

运行结果: 只保存了一个结果(变量output), 是最后一次循环的值.

------------------------------------------------------------------------ clear;

for k=1:10 simk = k;

sim untitled01;

assignin('base',strcat('simout',num2str(k)),simout01); end

untitled01.mdl已上传,你试一下

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

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

Q:是不是可以用S-函数将m文件与SIMULINK连接?是不是可以用S-函数将m文件与SIMULINK 连接?SIMULINK可以转换成m文件吗?

A:利用m文件的S-function就可以把m函数与Simulink相连,Simulink原则上不能转化成m形 式。但视你的应用可能有一些变通的方式。

Q:我要用SIMULINK做一个模块,需输入16进制数怎末办,我输入的参数和输出的参数都是1 6进制数怎末办?

A:在Simulink/Signals&Systems下面有一个“Data Type Conversion”模块可以用来转换 成INT16

[求助]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是m

atlab数据格式,你可将输入文件存到 .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的C代码自动生成功能

我已做好一个Simulink仿真系统运行合理,我想把它转成实用的C应用程序,这样就

不用再写一遍了,怎么做呢, 一本书上提了一句,Simulink具有C代码自动生成功

能,可是没有进一步的介绍,哪位大侠用过或了解一点???

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

本文来源:https://www.bwwdw.com/article/s1ho.html

Top