电子信息MATLAB系统仿真与设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子信息系统仿真与设计
课程设计报告
设计课题: 油价变化系统的模型
姓名:
学院: 机电与信息工程学院专业: 电子信息科学与技术班级: 09级 2班
学号:
日期 2010-2011第三学期指导教师: 李光明张军蕊
山东大学威海分校信息工程学院
建模:
1背景
设某一星期的油价为p,其中n表示年份,它与上一星期的油价、油价升值速率以及新增资源所能满足的个体数目之间的动力学方程由如下的差分方程所描述:
从此差分方程中可以看出,此油价变化系统为一非线性离散系统。如果设油价初始值、油价升值速率、新增资源所能满足的个体数目,要求建立此油价动态变化系统的系统模型,并分析油价在未来100个星期内之间的变化趋势。
2 建立油价变化系统的模型
(1) Discrete模块库Unit Delay模块:其主要功能是将输入信号延迟一个采样时间,它是离散系统的差分方程描述以及离散系统仿真的基础。在仿真时只要设置延迟模块的初始值便可计算系统输出。
(2) Discrete模块库Zero-Order Hold模块:其主要功能是对信号进行零阶保持。使用Simulink 对离散系统进行仿真时,单位延迟是Discrete模块库中的Unit Delay模块来完成的。对于油价变化系统模型而言,需要将作为Unit Delay模块的输入以得到,然后按照系统的差分方程来建立人口变化系统的模型。
3 系统参数设置
系统模型建立之后,首先需要按照系统的要求设置各个模块的参数,如下所述:
(1) 增益模块Gain表示油价升值速率,故取值为1.05。
(2) 模块Gain1表示新增资源所能满足的个体数目,故取值为1000000。
(3)油价初始值设为10$/L
(4) Unit Delay模块参数设置。
(5) 仿真时间设置:按照系统仿真的要求,设置系统仿真时间范围为0~100。
(6) 离散求解器与仿真步长设置:对离散系统进行仿真需要使用离散求解器。
实验总结及心得体会
MATLAB是一件很强大的工具,在模拟仿真方面有着不可比拟的优势。不仅可以通过语言脚本可以帮助我们解决很多问题,而且simulink也是十分强大的。通过十分直观的方式直接按放各模块,很明显地显示出各种逻辑关系,方便快捷,思路清晰。在实际应用中。Simulink起到了重要作用。通过对simulink的学习,我发现我们所学的课本知识是很重要的,只要通过理解变通,就很容易解决实际问题。但是,有个前提就是你要有着扎实的理论知识。所以,我们千万不能忽略了课本知识的重要性,不要浮躁,理解透彻。Simulink对我来说是很陌生的一个东西,通过几天的摸索,我渐渐摸到了他的奇妙之处,其实不如我们想象那么
难,只要没仔细分析好,它会是我们工作学习的一个强力助手。当然,由于时间短暂,我还需要更多时间的学习,才能彻底掌握这个仿真软件。
附录
1. 利用simulink 仿真来实现摄氏温度到华氏温度的转换 325
9
+=
c f T T
2. 设系统微分方程为⎩
⎨⎧=+='2)1(y y
x y ,试建立系统模型并仿真
3. 利用simulink 仿真)5cos 251
3cos 91(cos 8)(2
t t t A
t x ωωωπ++=
,取A=1, πω2=
Function1
4.建立如图1所示的仿真模型并进行仿真,改变增益,观察x-y图形变化,并用浮动的scope
模块观测各点波形。
图1. 题目4
改变增益:
继续增大增益:
5. 有初始状态为0的二阶微分方程)(24.05.0t u x x x =+'+''其中u(t)是单位阶跃函数,试建立系统模型并仿真。
6. 通过构造SIMULINK 模型求⎰
=dt t y )cos(的结果,其中初值分别为y 1(0)=0, y 2(0)=1
当y1(0)=0时:
当 y1(0)=1时:
7. 分析二阶动态电路的零输入响应
图2为典型的二阶动态电路,其零输入响应有过阻尼、临界阻尼和欠阻尼三种情况,已知L=0.5H, C=0.02F, R=1, 2, 3, …, 13Ω, 初始值0)0(,1)0(==L c i V u 求)()(t i t u L c 和的零输入响应并画出波形。(1用simulink 的方法,2用脚本文件的方法)
图2 题目5 二阶动态电路
(1)用simulink 的方法
(2)用脚本文件的方法
定义函数文件funcforex123.m
function xdot=funcforex123(t,x,flag,R,L,C) xdot=zeros(2,1);
xdot(1)=-R/L*x(1)-1/L*x(2)+1/L*f(t);
xdot(2)=1/C*x(1);
function in=f(t)
in=0;
脚本文件:
L=0.5; C=0.02;
for R=[1 2 3 4 5 6 7 8 9 10 11 12 13]
[t,x]=ode45('funcforex123',[0 7],[0;1],[],R,L,C); figure(1); plot(t,x(:,1)); hold on ;
xlabel('timesec');
text(0.9,0.07,'leftarrowi -L(t)'); grid; figure(2); plot(t,x(:,2)); hold on ;
xlabel('timesec');
text(0.5,0.3,'leftarrowu -C(t)'); grid; end
电压图:
电流图:
123
4
567
-0.
-0.-0.-0.00.0.0.0.1t i m e s e c