第四章单片机的C语言编程

上传人:M****1 文档编号:568255289 上传时间:2024-07-23 格式:PPT 页数:50 大小:710KB
返回 下载 相关 举报
第四章单片机的C语言编程_第1页
第1页 / 共50页
第四章单片机的C语言编程_第2页
第2页 / 共50页
第四章单片机的C语言编程_第3页
第3页 / 共50页
第四章单片机的C语言编程_第4页
第4页 / 共50页
第四章单片机的C语言编程_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第四章单片机的C语言编程》由会员分享,可在线阅读,更多相关《第四章单片机的C语言编程(50页珍藏版)》请在金锄头文库上搜索。

1、第五章 Simulink与微分方程组数解Simulink简介控制系统的运动规律用微分方程表示,其动态响应可用计算机数值求解,并进而求出系统的超调量,恢复时间等性能参数。Matlab任意微分方程均可用函数ODE45数值求解,同时它还提供了另外一种更直接的图示法对控制系统进行仿真计算,即利用Simulink求线性控制系统的动态响应。 Simulink操作步骤(1)执行File-New-Model菜单MATLAB7.1(2)点击库窗口SIMULINKCONTNUOUS,选择建立模型方式:传递函数形式(TRANSFER FCN),或状态方程模式(STATE-SPACE),一般可选传递函数,并拉入模型窗

2、口。(3)双击模型,修改参数,按OK或APPLY。可能的话可以重新命名新名字,或改变显示方向。MTALAB6.5分子多项式系数分母多项式系数显示方向设置(FORMATFLIP(ROTATE):MATLAB7.1分子多项式定义分母多项式定义(4)用和、乘、分支、建立复杂模型,和,积用MATH里的函数,分支直接从输入箭头拉直线到输出线,使两条线相交。信号的+,-,比例放大在Math Operation项内信号加:可将+改成-,或增加+,表示多个信号加(5)定义输入、输出,在源(SOURCE)选择输入信号源类型,在SINK选择输出类型,一般设置成SCOPE(示波器观察)。(6)设置计算参数,按SIM

3、ULATIONPARAMETER。计算开始时间计算结束时间计算方法MATLAB6.5(7)按SIMULATIONSTART开始仿真计算。(8)点击SCOPE观察计算结果,或者查看WORKSPACE,观看变量值,根据需要保存绘制计算值。SCOPE:例2方法1:Laplace变换简化根据第1个方程,可得:电流电流iU从Math operation选放大器,加法器,把机械运动方程加进去。比例放大,数据可以是具体数值,也可以是变量转速外部负载积分定义输出:从sink选输出(out)示波器看输出输出电流输出转速定义输出计算选项设置:设置微分方程求解方法,计算时间,输出项数。输出变量名,一般不改变保存输出

4、变量个数计算结果矩阵下标序号每隔1输出按Simulation-Start开始计算。查看计算结果,或用plot(tout,yout(:,1)等命令绘制计算结果绘制转速曲线方法2:根据微分方程直接利用积分,微分,求和绘制系统模型。积分电流转速第1个方程输入电压U第2个方程:设置输出点:输出转速积分电流负载输出点2输出点1电流计算结果转速计算结果:方法3:方法2需要对每一项求和,求积,操作复杂,可直接利用微分方程也即状态模型来计算动态响应。状态模型:如果输出电流和转速,则输出方程为:例:直流电机模型(1)根据上述方程定义矩阵A,B,C,D。(2)设置矩阵,双击选项,出现设置菜单。将默认值1修改成矩阵

5、常数或已经定义好的矩阵变量(3)设置输入,输出设置输入值,可以是向量常数或是已经定义的向量变量(4)设置计算选项,开始计算,并选取计算结果电流计算结果转速计算结果:子系统设计可将模型保存为子系统,求解其他问题时如果要引用该模型,可直接打开复制。输入1输入2子系统模型建立步骤:(1)定义模型(2)定义输入输出(3)全选模型,并选Edit-Create Subsystem(4)保存子系统到一文件,以后打开该文件显示如下输出输入点子系统名字,可修改(5)引用子系统方法 (A)打开保存子系统的文件,出现:(B)修改输入输出,构建新计算模型(C)计算数值积分计算(1)定义函数菜单:File-new-M_

6、file进入编辑器写程序:function f=f1(t)f=sin(t);函数编写格式:Function 返回变量=函数名(参数)函数的matlab命令(命令以;结束) 返回变量=函数值(最后一条命令必须将函数值赋给返回变量)写好程序后保存到一文件,文件名一般与函数名相同(2)调用函数quad(name,tmin,tmax)求数值积分Name:函数名,tmin,tmax,积分下限,上限例:quad(f1,0,pi/2)Function y=tuoyuan(t)X=sin(t);Y=1./(1-0.5.*x.*x).5;NOTE:函数内*,/一般采用.*,./面积分(二重积分)函数dblqua

7、d()用法:dblquad(name,xmin,xmax,ymin,ymax)Name:函数名xmin,xmax,ymin,ymax积分区域例:function out =f2(x,y)out = y*sin(x) + x*cos(y);v=dblquad(f2,0,1,0,5);微分方程数值求解1.多元一次微分方程组数值解计算步骤如下:(1)定义函数例如: function df=f1(t,y) df=y(1)-y(2); y(1)+y(2)(2)调用函数t,y=ode45(name,tmin,tmax,y0;y1;)t为保存自变量的计算点向量变量,y保存计算点处各变量值,为矩阵.y(:,1

8、)表示第1个变量在t各计算点的值,y(1,2)表示第2个变量在t的第1个计算点的值第1各参数为函数名第2个参数为积分范围第3个参数为变量初值(3)绘制曲线Plot(t,y(:,1)第1个参数为自变量第2个参数为向量变量返回值为列向量T,Y = solver(odefun,tspan,y0)T,Y = solver(odefun,tspan,y0,options)T,Y,TE,YE,IE = solver(odefun,tspan,y0,options)sol = solver(odefun,t0 tf,y0.)Solver:ode45, ode113, ode15s, ode23s, ode23t, ode23tb 非刚性矩阵:ode45,ode113刚性矩阵: ode15s, ode23s, ode23t, ode23tb 刚性矩阵(条件数很大)的矩阵Function dy=f2(t,y)dy=y(1)+y(2);y(1)-y(2);2. 一元高次微分方程数值求解Function df=f1(t,y)df=y(1);-y(1)-(1-y(1)2)*y(2);t s=ode45(f1,0, 10,1;1);例: 求微分方程y+ (1-y2)y + y= 0数值解,初值y=1,y =1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号