正文

simulink常见问题及解答-32006-10-18 18:09:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/378121200/19454.html

分享到:

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

 

我做系统辨识 请问大侠怎么产生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)t0t的积分值

 

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

 

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

simulink下如何实现取余数?

 

remain

 

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

为什么simulink 可改变步长而调用ode函数不行

 

因此只能设置求解器的初始补偿和最大步长。simulink里因为需要对离散系统进行

 

仿真等原因所以有定步长算法可以选择。

p.s.如果一定需要定步长算法,可以自己根据算法编程实现。

 

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

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

 

信号处理、算法设计、控制理论、MATLAB

 

http://ydcom.yculblog.com

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

simpowersystems中没有单(两)相电机模块,我用simulink做了个模块,但现在问题是我如何把它转化成simpowersystems形式的模块呢?也就是让它成为电力模块,比如说我现在要用单相电机做负载,通过它的参数的变化看它对前面电路的影响,即实现他们电与电的联系,单单simulink模型是不能与simpowersystems block直接相联的,这就是问题的关键,如何实现他们的转化。

 

使用受控电流源方式可是实现simulinksimpowersystems的转变

 

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 的工作方式理解有误?请各位老师指导,谢谢!

 

[此贴子已经被作者于2004-3-12 19:20:57编辑过]

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

*.asv文件是哪里来的?

在使用matlab6.5.1时发现一个有趣的问题,就像用word编辑*.doc文件时生成一个临时文件一样,当我用matlab编辑*.m文件时系统自动生成了一个*.asv文件(不是临时的),打开后和打开同名的*.m后的效果是一样的,而且这个现象好像是matlab6.5.1版本才有的,以前用matlab6.2好像没有这样的问题,可不可以请高手介绍一下这个神秘的*.asv文件呢,为什么要生成这个文件,有什么用呢?

Psrelease12release13具体又是什么含义呢?

 

自动保存的备份文件(应该不是在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,但是积分器却在00.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:我用simulinkpower system blockset仿真一个小系统,需要产生一个频率和相角都是变量的正弦信号。不知那位高手能指点在下一下,我所需要的频率和相角都是由另外的模块输入。频率是由Power System BlocksetMachines Measurement Delux 输出的。相角也是测量到的,由Fourier模块输出。我想利用这两个输出量做成一个正弦电压源,不知道能不能做?

谢谢您的帮助。

A:如果你需要做一个交流电压源的话,有一个办法。你把Simulink/PowerSystem中的AC Voltage SourceLook 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.matmatlab数据格式,你可将输入文件存到 .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程序在运行时,知道当前运行到了哪个模块.

 

可以使用Simulinkdebug工具单步运行模型,这样运行到的块会被高亮显示。

 

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

 

SimulinkC代码自动生成功能

我已做好一个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的属性:打开simulationsimulation parameter,出现对话窗口,到advanced,在optimization下的boolean logic signal,在边上的action框选成off即可。

问一下,你现在的模糊控制是针对什么对象的控制,本身的模糊控制方法是自适应的吗?想交流一下。

 

问题解决了,顺利运行,谢谢各位的帮助

 

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

 

我的仿真体系有很多个模块,每个模块都有两个输出值,一个是模块计算的值,一个是表示该模块的序号,我需要将所有模块的计算值的最小值求出,并得到该最小值对应的模块的序号,怎样在Simulink中实现?(有可能有多个模块都是最小值)

 

将模块按顺序mux后输入matlab function模块,内部函数find(min(u())

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

对于规模非常大的系统,比如包含控制、电子、通信、机械、热能等领域多达十几个子系统的复杂大系统,采用Simulink能否胜任?

 

原则上Simulink可以仿真任意大的系统,但在这种情况下,需要你充分熟悉了解simulink的仿真机制和优化方法(否则速度会让你受不了),并且擅长simulink调试,这个要求还是比较高的,但确实能做。

 

 

阅读(373) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册