simulink代数环解决方法
- 格式:doc
- 大小:158.00 KB
- 文档页数:3
一、单选题(共 10 道试题,共 50 分。
)1. 一般而言,对于离散系统使用那种求解器效率最好A. 定步长求解器B. 混合步长求解器C. 离散步长求解器D. 变步长求解器正确答案:D2. 封装子系统不具有下列哪种特点?A. 自定义子系统模块及其图标,自定义帮助文档。
B. 用户双击封装后的图标时显示子系统参数设置对话框。
C. 封装后的子系统模块拥有自己的工作区。
D. 对子系统的操作如通用子系统一样不友好。
正确答案:D3. 下列哪条命令可以改变Simlink模块颜色A. Rotate BlockB. Show Drop ShadowC. Flip BlockD. Foreground color正确答案:D4. 悬浮Scope 模块的使用方法有几种A. 1B. 2C. 3D. 4正确答案:B5. 使用命令[t,x,y1,y2,…,yn]=sim(model,timespan,options,ut); 其中除了哪一项参数外,其它参数设置均可以取值为空矩阵?A. modelB. timespanC. optionsD. ut正确答案:A6. 条件执行子系统不包括:A. 使能子系统B. 触发子系统C. 函数调用子系统D. 通用子系统正确答案:D7. 使用命令行set_param(’obj’,’parameter’),其功能描述为A. 设置系统模型以及模块参数。
B. 添加系统模型以及模块参数。
C. 获取系统模型以及模块参数。
D. 删除系统模型以及模块参数。
正确答案:A8. 使用命令行new_system(‘mysys’),其功能描述为A. 建立一个新的Simulink系统模型。
B. 打开一个已存在的Simulink系统模型。
C. 保存一个Simulink系统模型。
D. 关闭一个Simulink系统模型。
正确答案:A9. 代数环的解决方案不包括:A. 切断环B. 代数约束C. 直接求解D. 嵌套正确答案:D10. 使用命令行delete_block(’blk’),其功能描述为A. 修改系统模型中的指定模块。
Matlab中的代数环问题及其消除方法
马晓虹
【期刊名称】《科技广场》
【年(卷),期】2010(000)007
【摘要】本文以免疫PID的SimuLink模型及其S函数为例引出代数环问题,分析了代数环的基本概念,指出了代数环对控制系统仿真的巨大危害,最后结合实际提出了几种消除代数环的方法.结果表明,代数环消除后提高了系统的仿真精度和运行速度.
【总页数】3页(P159-161)
【作者】马晓虹
【作者单位】陕西理工学院电工电子实验中心,陕西,汉中,723003
【正文语种】中文
【中图分类】TP273
【相关文献】
1.线性代数中典型计算问题的MATLAB求解 [J], 曲峰林;张青
2.可换环上一般线性李代数在几类典型李代数中的扩代数 [J], 赵延霞;王登银;王春花
3.控制系统仿真的代数环问题及其消除方法 [J], 耿华;杨耕
4.数字计算机仿真中消除代数环问题的研究 [J], 邱杰;原渭兰
5.一种求解代数环问题的python仿真实现方法 [J], 冷丰汐;陈永恒
因版权原因,仅展示原文概要,查看原文内容请购买。
powergui有三种运行模式:continous、discrete、phasorcontinous和discrete的用法区别在于,小型系统(状态量10个以下)用continous运行比较好,时间不是问题,精确度较高;但是大型系统或者电路中有电力电子器件就建议用discrete来运行,solver里边要设置成定步长,no continous state,步长根据经验自己设置(没经验可以先试几次,从小到大设置一下,两次运行结果差异不大以后就用步长大的为准),会影响模拟总时间和结果的精确性。
一般用来模拟电力电子,有igbt等开关。
phasor就是稳态模型,没有状态量。
如何提高simpowersystem的仿真速度1 使用ode23解法器(大家可能都知道)但效果很有限。
2 对系统离散化,方法为在你的gui模块里选择discretize electric model,采样时间越大仿真越快,当然采样时间你对系统精确性相配合,因为采样时间是与准确性成反比的3 在仿真的过程中尽量少开启示波器窗口,示波器参数中的点数限制最好关闭4 如果你的系统要从一个特定的状态开始仿真,在仿真参数设置是,最好在i/o选项中设置起始的状态矢量5 开启加速器,(方法在菜单仿真这一项中可以设置),这个也能大大加快仿真速度。
(感谢会员xu.chunke )还有就是,如果慢的不正常或半途仿真停止,就要考虑代数环了,这个就要在形成的环路上加memory来解决,一般存在反馈的复杂系统都容易出现这种情况。
matlab scope 编辑和保存图片Simulink 波形处理其实身边有不少人都遇到过这个问题:simulink 中强大的scope输出结果的图片如何保存呢?最直观的方法恐怕是print screen 然后到画图里反色保存,但是,你会发现出来的结果让人极其不爽,比如曲线颜色太淡,线条太细,添加注释也很麻烦,另外,如果你是一个用latex写文章的人,你一定会无比怀念在plot中直接另存为.eps的强大功能。
simulink修改参数循环仿真Simulink是一款由MathWorks公司开发的系统仿真软件,广泛应用于各种领域,如控制系统、信号处理、通信等。
本文将介绍如何在Simulink中修改参数并进行循环仿真。
一、Simulink简介Simulink提供了一个图形化的环境,用户可以搭建各种复杂的系统模型,并进行仿真实验。
它支持连续时间、离散时间和混合信号系统的建模与仿真,具有丰富的库元件,包括线性元件、非线性元件、信号处理元件等。
二、修改参数的方法在Simulink中,修改参数主要有以下几种方法:1.通过参数对话框:选中需要修改参数的元件,右键点击,选择“Properties”,在弹出的对话框中找到需要修改的参数,进行修改。
2.通过MATLAB脚本:使用Simulink的MATLAB接口,可以直接对模型中的元件进行修改。
例如,可以使用以下代码修改一个双曲正切函数的增益参数:```matlab% 创建一个双曲正切函数元件h = tf("tansig", 1);% 修改增益参数h.Gain = 2;```三、循环仿真的实现在Simulink中进行循环仿真,主要有以下几个步骤:1.创建一个循环结构:可以使用Simulink内置的循环元件,如“For”循环和“While”循环。
2.添加循环变量:在循环结构中,添加一个或多个循环变量,并在仿真过程中对其进行更新。
3.设置循环条件:为循环添加条件,当条件满足时,循环将继续执行。
4.添加仿真时长:为循环仿真设置时长,以确保仿真结果的准确性。
5.运行仿真:启动仿真,观察循环结构中的输出结果。
四、实例演示以下是一个简单的循环仿真实例:1.创建模型:新建一个Simulink模型,添加一个线性环节(如一个积分环节)和一个常数环节。
2.创建循环结构:添加一个“For”循环,设置循环变量为时间变量(如`t`),范围为0到10秒,步长为0.1秒。
3.修改参数:在循环内部,修改线性环节的参数,如积分时间常数。
收稿日期:2002-05-24 第20卷 第7期计 算 机 仿 真2003年7月 文章编号:1006-9348(2003)07-0033-03数字计算机仿真中消除代数环问题的研究邱杰,原渭兰(海军航空工程学院,山东烟台264001)摘要:阐述了数字计算机仿真中代数环问题的基本概念,指出了存在代数环的普遍可能性;介绍了SimuLink 对代数环的迭代算法;分析和说明了产生代数环的条件以及代数环降低仿真速度和仿真精度的危害;着重介绍和分析了在应用Si muLink 进行仿真建模时消除代数环的多种实用方法。
关键词:计算机仿真;仿真模型;仿真速度;仿真精度中图分类号:TP301.6 文献标识码:B1 引言现实世界中,反馈是一个普遍存在的现象。
在各种技术系统中经常可以看到反馈的存在和应用。
例如,雷达对目标的自动距离跟踪和自动角度跟踪都要利用反馈;自动控制中,为了使系统稳定等,也需要引入负反馈。
由于反馈的普遍存在,在进行数字计算机仿真的时候,将经常会遇到反馈回路。
数字计算机仿真(以下简称仿真)时需要按照一定的时序执行相应的计算步骤,因此,对于反馈回路就有一个输入和输出的计算顺序的问题。
这会使得在相当普遍的条件下,将反馈回路变成所谓的代数环。
如果在仿真模型中出现了代数环,将会严重影响仿真速度,某些情况下还会严重降低仿真的精度。
为了保证精度,有效提高速度,必须高度重视解决代数环的问题。
Si muLink 是一个集成仿真环境,是美国Math Works 公司的MATLAB 软件包中的一个重要组成部分,也是其中最有价值的产品之一。
利用SimuLink ,可以方便、高效地完成交互式图形建模、仿真运行控制、模型运行过程及仿真结果的观察和分析、模型本身的分析等等工作。
在一项开发反导电子对抗仿真软件的工作中,笔者成功地应用了SimuLink ,极大地提高了工作效率和仿真软件的水平。
Si muLink 虽然是一个高水平的集成仿真环境,但对代数环问题却并没有提供令人满意的解决方案。
一,代数环
在simulink中,直接馈通定义为系统的输出直接依赖输入,也就是说,模块的输出方程中包含输入则此模块具备直接馈通特性将带有直接馈通特性的各模块串成一个回路会导致一个代数环。
在一个代数环中,由于模块之间是相互依赖的,所有的模块都要求在同一个时刻计算输出,这与通常的仿真顺序概念相抵触。
具有代数环的模型,仿真得到的结果可能不正确。
所以在搭建系统模型之前,应尽量通过手工方法对方程求解,以去掉代数环。
simulink使用Newton法求解代数环,尽管这种方法很有效,但是对有些代数环来说,这个方法可能不收敛,所以尽量不要在模型中包含代数环,以免仿真结果不正确加memory 模块的目的,相当于离散系统中加一个delay模块的功能是一样的是为了避免具有代数环的模块,都在同一时刻有输出,产生错误,让各模块输出的时间有一个延时,有前后顺序,达到遵循仿真原理的要求,进而能输出结果。
什么是代数环?
发生在两个或多个模块在输入端口具有信号直接传递而形成反馈的情况时,直接传递的模块在不知输入端口的值的情况下无法计算出输出端的值,也就是现在时刻的输出是依赖现在时刻的输入值来计算的。
当这种情况出现时simulink会在每一次迭代言算完成时,去决定它是否会有解。
代数回路会减缓方真执行的速度并可能会没有解。
当方程两边都出现同一个变量时,即产生了代数环。
如:3y+4=y
当Simulink中存在非模型延迟时,通常会产生代数环。
比如,传感器将输出信号反馈到输入端。
解决代数环:连续模型,在构成代数环的反馈环节加入memory模块;离散模型就加入单位延迟1/Z,不过加入memory后仿真会慢些,但用了加速后,这个牺牲还是值得的。
另还有拆解法等,具体见下面第9行论文内容。
Simulink提供了一些专门手段来拆解代数环,例如代数约束模块(Algebraic Constraint),积分模块(以及离散积分模块)的状态输出端等。
这些手段可以解决一些特定的代数环问题。
下面举一个利用积分模块的状态输出端的例子。
从积分模块的输人端口到输出端口是非直通的,但从积分模块的初始值输人端口到输出端口,以及从复位输人端口到输出端口却都是直通的。
因此,如果从积分模块的输出端口引出的信号再经过一些直通模块后又反馈到积分模块的初始值输人端口或者复位输人端口,则构成一个代数环。
为了解决这个问题,Simulink专门为积分模块设计了一个状态端口(state port),其输出与输出端口完全相同,仅在内部计算的时序上有细微区别,而无论是从积分模块的初始值输人端口还是从复位输人端口到状态端口都是非直通的。
因此,当出现上述的代数环问题时,可以从积分模块的状态端口引出信号。
这样,代数环就被拆解了。
参考论文:<<数字计算机仿真中消除代数环问题的研究>> <<控制系统仿真的代数环问题及其消除方法>>
更多代数环的知识:
1 代数环的基本概念
代数环的一个最简单的例子如图1 所示。
图1 中实现的是一个减法器模块,其输出反馈回来作为一个输入。
这个看似简单的例子却反映了一个复杂的问题:在进行仿真时,按正常的计算顺序,应该先计算模块的输入,然后再计算由输入驱动的输出,而在图 1 所示的情况下,因为输入中的一部分直接来自于输出,在没有得到输出数据的时候,输入是无法计算的;同时,因为输出中的一部分直接来自于输入,在没有得到输入数据的时候,输出也是无法计算的。
这是一个
死锁(deadlock)条件。
这就是所谓的代数环。
输出中的一部分反馈到输入,或者说,输入直接决定于输出,这是反馈回路的共同特点。
代数环是一种特殊的反馈回路,它的特殊之处就在于除了输入直接决定于输出外,输出还直接决定于输入,在这里, “直接”二字很重要,它体现了代数环的实质,仿真计算中的死锁就是由此产生的。
当然,通过变换拆环,容易解决图1 所示问题。
事实上,图1 中实现的功能可以表示为:
z = u -z
它可以变换为:
z = u/ 2
显然,这时候代数环不存在了,仿真计算不存在问题。
但实际问题中的代数环的表现形式千差万别,有的是非常复杂的,不可能仅用这样的简单办法来解决。
2 产生代数环的条件
如前所述,代数环是一种反馈回路,但并非所有的反馈回路都是代数环。
代数环存在的充分必要条件是:存在一个闭合路径,该闭合路径中的每一个模块都是直通模块。
所谓直通,指的是模块输入中的一部分直接到达输出。
SimuLink的模块库中提供的很多模块都是直通模块。
3 一般动力学模型仿真过程中避免代数环的方法
代数环对应于一定的数学模型的形式(即隐函数的形式) ,如果能够将原始的数学模型进行等价变换,得到显函数形式,则按显函数实现仿真模型,就可以消除代数环。
目前生产的发动机有4BT,6BT,6CT和6105系列,应用比较广泛的有4BT,6BT,6CT 这两大系列。
4,6代表的是汽缸数量,B代表的是东风康明斯B系列,缸径102毫米,C 代表的是东风康明斯C系列,缸径114毫米,T代表的是带增压器的发动机。
发动机的启动阻力力矩是指在最低启动转速时的发动机阻力矩,主要包括气缸气体压缩阻力矩、运动件的摩擦阻力矩和惯性力矩。
发动机的最低启动转速是指启动时能保证进人气缸的混合气在压缩终了时具有一定的温度和良好的雾化状况,使发动机能可靠点火工作所需的最低转速。