西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 7389|回复: 0

【文档】simpowersystem学习心得

 关闭 [复制链接]

该用户从未签到

发表于 2008-12-31 14:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 cowry 于 2008-12-31 15:20 编辑

本人学习了matlab\simulink,对电力系统模块进行了研究学习,偶有心得,发表出来,仅供学友参考,避免学习弯路,如对你有帮助就好了

Simpowersystem学习心得
对于我们电气专业的仿真而言,我们主要用到的可能是Simulink工具箱,SimPowerSystem工具箱。当然也有可能涉及到SimExtra工具箱。但主要是实用前两者来进行电力系统,电力电子和电机等方面的仿真。因此在进行这些仿真的时候,有一些基本的原则:

1):注意不要混用非电气库的线和电气库线。这个原则在Matlab6.5中尤要注意,否则一些电压测量模块,电流测量模块可能会出错。显示数据类型不匹配Data type mismatch错误。在Matlab7.0以上的版本中,simlink做了这方面的区分,不同连接线是无法连接在一起的。

2):SimPowerSystem工具箱和Simulink工具箱不是随便可以相连的。SimPowerSystem工具箱中有些模块是不能直接连接Simulink信号的。例如电机模型中,电压输入是需要电压源模块的(Power systems Blockset模块),而转矩可以输入simulink信号。如果实在想给电压端口输入simulink信号,需要给其先加一个受控电压源,用simulink信号控制受控信号。还有比如受控电流源模块等,都可以实现SimPowerSystem工具箱与Simulink工具箱的连接。

3):注意选择适当的仿真算法。Matlab/Simulink中提供了一系列的仿真算法,比如discrete, ode algorithm(龙格库塔算法) including ode45, ode23, ode11s等等。一个适当算法的选择,可以有效的缩短仿真时间和提供仿真的精度。当然具体的算法选择,可以参照相关的书籍讲解。

4):参数的正确设置是确保模型仿真正确的前提和必要条件。参数的不匹配可能完全导致一些错误的仿真结果。举个简单的例子:我们要得到电阻元件,可以使用SimPowerSystem工具箱中Series RLC Branch模块或者Parallel RLC Branch模块,对于前者,我们必须设置电感为0,电容为inf, 后者,要求设置为电感为inf, 电容为0。所以正确的参数设置是仿真的重要前提。
问: Matlab仿真中怎样编辑Scope中的图象???

答: 实现的方法有以下的几种:
1)PrintScreen,然后粘贴到Windows位图编辑器,选择图像点击右键,选择“反色”即可;
2)在Scope中,它的参数设置的第二页,有一个Save Data to Workplace,将它选中,然后在下面的方框中指定变量名,然后用plot命令画出;
3)直接在模型上再加一个,to Workplace模块,也用plot画出;
4)直接在模型上加一个,outport模块,用plot命令绘制tout和yout;
5) 等scope显示出来图像以后,在matlab上运行
set(0,'ShowHiddenHandles','On')
set(gcf,'menubar','figure')
这时候你会发现scope的工具栏的上面多了一行,与plot命令得到的figure的工具栏是一样的。点击insert-axes,鼠标会变成十字形状,然后再图像的任意一处双击左键出现一个对话框PropertyEditor,选中style在窗口的右便会出现color,这时你就可以任意修改背景颜色了。


注:参照了自己以前在理工科学板块发的帖子:http://www.cqumzh.cn/topic_show.php?tid=166164

问: 怎样进行S-function的编程和使用???

答: S-function也就是System-function的缩写。说得简单,S-function就是用MATLAB所提供的模型不能完全满足用户,而提供给用户自己编写程序来满足自己要求模型的接口。要了解 S-function,必须了解以下知识:
(1)direct feedthrough
(2)dynamically sized inputs
(3)setting sample times and offsets
一.Direct feedthrough
direct feedthrough意思是说系统的输出或可变采样时间是否受到输入的控制。大家清楚有的系统是受到输入控制如:
y=k*u (u是输入,k是放大因子,y是输出)
而有的系统输出是不受到输入影响,如:
输出:y=x
dx=u ,x表示状态
二.Dynamically sized inputs
主要是给出:输入连续状态数目(size.NumContStates),离散状态数目(size.NumDiscStates)
,输出数目(size.NumOutputs),输入数目(size.NumInputs),Direct Feedthrough(size.Dir Feedthrough)。
三.Setting sample times and offsets
Setting smaple times and offsets主要设置采样时间
具体的编程格式参照matlab提供的demos文件。


注:参照了自己以前在理工科学板块发的帖子:http://www.cqumzh.cn/topic_show.php?tid=166164

问: 怎样进行S-function的编程和使用???

答: S-function也就是System-function的缩写。说得简单,S-function就是用MATLAB所提供的模型不能完全满足用户,而提供给用户自己编写程序来满足自己要求模型的接口。要了解 S-function,必须了解以下知识:
(1)direct feedthrough
(2)dynamically sized inputs
(3)setting sample times and offsets
一.Direct feedthrough
direct feedthrough意思是说系统的输出或可变采样时间是否受到输入的控制。大家清楚有的系统是受到输入控制如:
y=k*u (u是输入,k是放大因子,y是输出)
而有的系统输出是不受到输入影响,如:
输出:y=x
dx=u ,x表示状态
二.Dynamically sized inputs
主要是给出:输入连续状态数目(size.NumContStates),离散状态数目(size.NumDiscStates)
,输出数目(size.NumOutputs),输入数目(size.NumInputs),Direct Feedthrough(size.Dir Feedthrough)。
三.Setting sample times and offsets
Setting smaple times and offsets主要设置采样时间
具体的编程格式参照matlab提供的demos文件。

注:参照了自己以前在理工科学板块发的帖子:http://www.cqumzh.cn/topic_show.php?tid=166164


问:如何循环调用Simlink模型并保存结果?在仿真时,经常需要修改 simulink 模型参数并保存仿真结果.

答:最普通的办法是多次运行simulink模型, 手工修改仿真参数,这样会浪费大量的精力和时间。实际上可以用M文件进行循环调用。比如:调用simulink模块ModelName.mdl,N次, 并把每次仿真的结果Simout写在不同的矩阵result1~resultN中. 可以使用以下的代码:

clear;
for k=1:N  % loop
simk = k; %used to indicate the simulated sequence;
sim ModelName; % run the ModelName.mdl in the command workspace;
assignin('base',strcat('Result',num2str(k)),Simout); %save the simulated results.
end


问:Simulink中的信号输入输出的方法

答:方法如下:
1.从工作空间中输入数据
matlab--+>simulink--+>sources--+>from workspace (simin)

2.从外部输入数据文件
matlab--+>simulink--+>sources--+>from file (untilted.mat),说明:untilted.mat是matlab数据格式,你可将输入文件存到 .txt文件,然后到如到工作空间,最后使用save保存这个工作空间的数据变量. 当然.mat文件中必须包含时间数据,否则仿真会出错。

3.从simulink子系统中互相导入数据
matlab--+>simulink--+>sources--+>In1

4.将数据导出到工作空间
matlab--+>simulink--+>sinks--+>to workspace(simout)

5.将数据导出到文件
matlab--+>simulink--+>sinks--+>to file (untilted.mat)

6.将数据导出到simulink子系统
matlab--+>simulink--+>sinks--+>out1


注:该部分参考了www.bbs.matwav.com上的资料

Simpowersystem学习心得.doc

34.5 KB, 下载次数: 103, 下载积分: 西莫币 -1

评分

参与人数 2西莫币 +24 收起 理由
renzando + 12 很好的资料
cowry + 12 欢迎交流心得

查看全部评分

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|西莫电机圈 ( 浙ICP备10025899号-3 浙公网安备:33028202000436号

GMT+8, 2024-11-22 15:20 , Processed in 0.085127 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表