MATLAB与仿真上机练习题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB 与仿真练习
实验1:
橡皮球从一个高度为0h 的高处,以初速度0v 下落到地面,其高度h 、速度v 与时间t 的关系由下式给出:
2
001()2
h t gt v t h =
++ (1) 0()v t gt v =+ (2)
其中g 为重力加速度(-9.81m/s 2)。用matlab 程序编写,t 从0到500,以1为间隔,并绘出图像。0v 、0h 应由键盘输入。
一个RLC 振荡电路的负载公式是
0R V =
其中,2f ωπ=,f 为频率,单位是hz 。假设0.1L mH =,0.25C nF =,
50R =Ω,010V mV =。
1. 绘制R V 与f 相关的图形,并根据图形给出f 为何值时,R V 取最大值,并计算最大值是多少?此时的f 成为谐振频率0f
2. 若接收频率f 大于0f 的10%,R V 为多少?
3. 若R V 为R V 最大值的一半,则此时接收频率f 为多少?
1.请实现以下分段函数
22
220,00,0(,)0,00,0
x y x y x y x y f x y x y x y x y x y +≥≥⎧⎪+≥<⎪
=⎨+<≥⎪⎪+<<⎩ 要求(1). 用if 实现
(2). 用逻辑关系式实现
绘制(,)f x y 与,x y 的图像,,x y 从-4到4,步长为0.1。
2. 求以下一元二次方程的解:20ax bx c ++= 要求(1)a 、b 、c 由键盘输入
(2)输出的时候区分相同的根、实数根和复数根,即先输出“该二元一次方程具有相同的实数根/复数根/两个不同/实数根/复数根”,再输出具体的值。
实验4:
自定义一个函数mymax ,实现matlab 函数max 的功能,要求输出一个参数时,则输出最大值;若要求输出两个参数,输出最大值和最大值的位置;若要求输出其他参数,则报错。 1. 若输入向量为一个常数,则输出该数本身;
2. 若输入向量为一维(行向量或者列向量),则输出最大值;
3. 若输入向量为二维,则输出每一列的最大值
4. 若输入向量为三维以上,则输出每一按照列取出的维度的最大值(课后思考)
实验5:
对一组测量数据t=[0,0.2,0.4,1.3,5.6]',y=[0.8,0.7,0.6,0.5,0.2]',用以下函数来拟合这组数据:123()cos t y t c c e c t -=++,画出拟合结果,并给出
1c 2c 3c 的值。
实验6:
对正弦波)**2sin(t π,完成如下任务:
1.对该正弦波一个周期采样1024点,画出波形;
2.对每个采样点量化成10位,并按照二进制补码进行编码;
3.将编码后的1024个样点保存在sample1024.txt文件中;
提示:
正弦波的处理过程如下:
采样:将正弦波一个周期[0,2*pi],采样1024点,采样后的数据是浮点数,数据范围是[-1,1];
量化:将采样后的数据从浮点型转换成定点型,即转换成10bit整型数,数据范围将变成[-512,511];
编码:将量化后的10bit整型数按照二进制补码规则进行编码;
实验结果
实验1:
\work\xiangpiqiu.m
clc
clear all;
%%%%%%%%%%%%%%%%%
%v0=input('请输入初始速度v0');
%h0=input('请输入初始高度h0');
%以正上方为正速度,以下方为负速度
v0=10;
h0=50;
g=-9.81;
t=0:0.01:50; %以0.01为间隔,共500s
% h=0.5.*g.*t.^2+v0*t+h0;%离地面距离h
t1=roots([0.5.*g,v0,h0]);%当地面距离为0,即第一次落地时所需时间t1
t11=min(t1(t1>0));%对求解的根t做如下处理:小于等于0的t舍弃,大于0的t取最小值,即第一次落地时真正的时间t11
v1=g.*t11+v0;%即第一次落地时的速度v1
%%%%%%%%%%假设无能量损耗,完全刚性,即以同样速度v1反弹回空中
v2=-v1;
% h2=0.5.*g.*t.^2+v2*t;%离地面距离h
% t2=roots([0.5.*g,v2,0]);%当地面距离为0,即第二次落地时所需时间t2
t2=-v2./(0.5.*g);%当地面距离为0,即第二次落地时所需时间t2。与上式等价
%%%%%%%%%%求解h和v%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %实际为一分段函数,当t % 当t11 v=g.*(t-t11)+v2;h=0.5.*g.*(t-t11).^2+v2*(t-t11); % 当t11+N*t2 v=g.*(t-N*t2-t11)+v2;h=0.5.*g.*(t-N*t2-t11).^2+v2*(t-N*t2-t11); % x=(t v11=g.*x1+v0; h11=0.5.*g.*x1.^2+v0*x1+h0; %%%%%%%%%%%%第一次落地之前的h和v x2=(t>t11).*mod(t-t11,t2); v22=g.*x2+v2; h22=0.5.*g.*x2.^2+v2*x2; %%%%%%%%%%%%第一次落地之后的h和v v=v11.*(t<=t11)+v22.*(t>t11); h=h11.*(t<=t11)+h22.*(t>t11); subplot(2,1,1) plot(t,v) xlabel('时间'); ylabel('皮球速度,上为正,下为负'); subplot(2,1,2) plot(t,h) xlabel('时间'); ylabel('皮球离地面的高度');