当前位置:文档之家› 自动控制原理Matlab程序作业

自动控制原理Matlab程序作业

自动控制原理Matlab程序作业
自动控制原理Matlab程序作业

自控控制原理

MATLAB程序设计作业

指导老师:汪晓宁

目录

一、题目 (2)

二、运行结果 (3)

三、程序说明 (8)

四、附录 (9)

代码 (9)

参考文献 (17)

一、题目

用Matlab创建用户界面,并完成以下功能

a)将产生未综合系统的根轨迹图以及0.707阻尼比线,你可以交互地选择交点的运行

点。界面能显示运行点的坐标、增益值以及近似为二阶系统估算的超调量、调整时

间、峰值时间、阻尼比、无阻尼自然震荡频率以及稳态误差

b)显示未综合系统的阶跃响应

c)输入控制器的参数,绘制综合后系统的根轨迹图以及显示综合的设计点(主导极点),

允许不断改变控制器参数,知道所绘制的根轨迹通过设计点

d)对于综合后的系统,显示运行点的坐标、增益,近似为二阶系统估算的超调量、调

整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及误差系数

e)显示综合后系统的阶跃响应

二、运行结果

输入传递函数分子分母

生成根轨迹图

选择点并得到该点各项参数在下方输出面板输出

获得阶跃响应图

用rltool()辅助,选择合适的插入零点

输入零点,并得到根轨迹图

选择根轨迹图上的任一点,得到数据,在下方输出面板输出

得到阶跃响应图

三、运行说明

第一步,在请输入分子后的输入框输入传递函数分子的矩阵,在下一输入框输入传递函数分母并按“生成根轨迹图”按钮获得根轨迹

第二步,按选择点并显示各参数获得根轨迹图上任一点的各项数据,数据全部输出在下方输出面板

第三步,按“生成阶跃响应图”按钮可以获得该函数的阶跃响应

第四步,在“请输入插入零点”后的输入框中输入参数,并按“生成综合后根轨迹图”按钮产生根轨迹(可以通过点击“根轨迹校正”按钮,调用工具箱拖动零点进行快速查看根轨迹图,选择合适的根轨迹再在输入框中输入零点的值)

第五步,按“选择点并显示各参数(综合后系统)”选取各点,查阅参数,数据输出在下方输出面板上

第六步,按“生成阶跃响应图(综合后系统)”可以得到综合后系统的阶跃响应

最后,点击“退出”结束程序

四、附录

代码:

function varargout = Liushuai20122510(varargin)

% LIUSHUAI20122510 MATLAB code for Liushuai20122510.fig

% LIUSHUAI20122510, by itself, creates a new LIUSHUAI20122510 or raises the existing

% singleton*.

%

% H = LIUSHUAI20122510 returns the handle to a new LIUSHUAI20122510 or the handle to

% the existing singleton*.

%

% LIUSHUAI20122510('CALLBACK',hObject,eventData,handles,...)

calls the local

% function named CALLBACK in LIUSHUAI20122510.M with the given input arguments.

%

% LIUSHUAI20122510('Property','Value',...) creates a new

LIUSHUAI20122510 or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before Liushuai20122510_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to Liushuai20122510_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Liushuai20122510

% Last Modified by GUIDE v2.5 16-Dec-2014 10:28:20

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @Liushuai20122510_OpeningFcn, ...

'gui_OutputFcn', @Liushuai20122510_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before Liushuai20122510 is made visible.

function Liushuai20122510_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to Liushuai20122510 (see VARARGIN)

% Choose default command line output for Liushuai20122510

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes Liushuai20122510 wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = Liushuai20122510_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

num = str2num(get(handles.edit1,'String'));

den = str2num(get(handles.edit2,'String'));

G = tf(num,den);

rlocus(G)

hold on;

sgrid(0.707,[])

hold off;

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

num = str2num(get(handles.edit1,'String'));

den = str2num(get(handles.edit2,'String'));

sys=tf(num,den);

[y,t]=step(sys);

plot(t,y);

grid on;

% --- Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close(gcbf);

function edit1_Callback(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text

% str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in pushbutton4.

function pushbutton4_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

num = str2num(get(handles.edit1,'String'));

den = str2num(get(handles.edit2,'String'));

finalvalue = polyval(num,0)/polyval(den,0)

sys=tf(num,den);

[Kc,p]=rlocfind(sys);

set(handles.Kc,'string',Kc);

X = real(p(1))

Y = imag(p(1))

set(handles.Xpoint,'string',num2str(X));

set(handles.Ypoint,'string',num2str(Y));

damp=sqrt(X(1,1)^2/(X(1,1)^2+Y(1,1)^2));

Wn=abs(X(1,1))/damp;

Tp=pi/(Wn*sqrt(1-damp^2));

overshoot=exp(-pi*damp/sqrt(1-damp^2));

Ts=3/(damp*Wn);

deviation=Wn^2;

set(handles.overshoot,'string',num2str(overshoot));

set(handles.Ts,'string',Ts);

set(handles.Tp,'string',Tp);

set(handles.Wn,'string',num2str(Wn));

set(handles.damp,'string',num2str(damp));

set(handles.deviation,'string',deviation);

function edit2_Callback(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text

% str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in pushbutton5.

function pushbutton5_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

num = str2num(get(handles.edit1,'String'));

den = str2num(get(handles.edit2,'String'));

sys=tf(num,den)

rltool(sys);%à?ó?1¤??μ÷???????÷2?êyê1???-1y?÷μ???μ?

function edit4_Callback(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit4 as textw'q

% str2double(get(hObject,'String')) returns contents of edit4 as a double

% --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in pushbutton6.

function pushbutton6_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton6 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton7.

function pushbutton7_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton7 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton8.

function pushbutton8_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton8 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton9.

function pushbutton9_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton9 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

num = str2num(get(handles.edit1,'String'));

den = str2num(get(handles.edit2,'String'));

A = str2num(get(handles.edit5,'String'))*(-1);

num = [1 A];

G = tf(num,den);

rlocus(G)

hold on;

sgrid(0.707,[])

hold off;

% --- Executes on button press in pushbutton10.

function pushbutton10_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton10 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

num = str2num(get(handles.edit1,'String'));

den = str2num(get(handles.edit2,'String'));

A = str2num(get(handles.edit5,'String'));

num = [1 A];

sys=tf(num,den);

[y,t]=step(sys);

plot(t,y);

grid on;

% --- Executes on button press in pushbutton11.

function pushbutton11_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton11 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

num = str2num(get(handles.edit1,'String'));

den = str2num(get(handles.edit2,'String'));

A = str2num(get(handles.edit5,'String'));

num1 = [1 A];

sys=tf(num1,den);

[Kc,p]=rlocfind(sys);

set(handles.Kc,'string',Kc);

X = real(p(1))

Y = imag(p(1))

set(handles.Xpoint,'string',num2str(X));

set(handles.Ypoint,'string',num2str(Y));

damp=sqrt(X(1,1)^2/(X(1,1)^2+Y(1,1)^2));

Wn=abs(X(1,1))/damp;

Tp=pi/(Wn*sqrt(1-damp^2));

overshoot=exp(-pi*damp/sqrt(1-damp^2));

Ts=3/(damp*Wn);

deviation=Wn^2;

set(handles.overshoot,'string',num2str(overshoot));

set(handles.Ts,'string',Ts);

set(handles.Tp,'string',Tp);

set(handles.Wn,'string',num2str(Wn));

set(handles.damp,'string',num2str(damp));

set(handles.deviation,'string',deviation);

function edit5_Callback(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit5 as text

% str2double(get(hObject,'String')) returns contents of edit5 as a double

% --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit5 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

参考文献:

《 Matlab 及在电子信息类课程中的应用》电子工业出版社《 Matlab 与控制系统仿真实践》北京航空航天大学出版社

自动控制原理MATLAB仿真实验报告

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些? 2、 如何判断系统稳定性? 3、 系统的动态性能指标有哪些? 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:) ()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

MATLAB编程作业

《Matlab 编程训练》 作业 专 业 学生姓名 班级 学 号 指导教师 完成日期

实训一 MATLAB 语言介绍和数值计算 1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存变量。 12 2sin851z e =+ . 2. 已知 1234413134787,2033657327A B --???? ????==???? ????-???? ,求下列表达式的值: (1) A+6*B 和A-B+I (其中I 为单位矩阵) A+6*B:

A-B+I: (2)A*B和A.*B A*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] c=A*B 结果: A.*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=A.*B 结果:

(3)A^3和A.^3 A^3程序: A=[12 34 -4;34 7 87;3 65 7] E=A^3 结果: A.^3程序: A=[12 34 -4;34 7 87;3 65 7] C=A.^3 (4)A/B及B\A A/B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] C=A/B 结果:

B\A程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=B\A 结果: (5)将矩阵C=B\A的右下角2*2子矩阵赋给D, 并(3)保存变量(mat文件)程序: A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; C=B*inv(A); D=C(2:3,2:3) 结果:

MATLAB基础训练作业(含答案)

实验一 MATLAB 工作环境熟悉及简单命令的执行 一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3 (2)>>area=pi*2.5^2 (3)已知x=3,y=4,在MATLAB 中求z : ()2 3 2 y x y x z -= (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=????? ???? ???115 14 4 12679810115 133216 执行以下命令 >>m1( 2 , 3 ) >>m1( 11 ) >>m1( : , 3 ) >>m1( 2 : 3 , 1 : 3 ) >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) (5)执行命令>>help abs 查看函数abs 的用法及用途,计算abs( 3 + 4i ) (6)执行命令 >>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y) (6)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。 四、思考题 1、以下变量名是否合法?为什么? (1)x2 (2)3col (3)_row (4)for 2、求以下变量的值,并在MATLAB 中验证。 (1)a = 1 : 2 : 5 ; (2)b = [ a' a' a' ] ; (3)c = a + b ( 2 , : )

自动控制原理课程设计报告

《自动控制原理》 课程设计报告 姓名:高陆及__________ 学号: 1345533107______ 班级: 13电气 1班______ 专业:电气工程及其自动化学院:电气与信息工程学院

江苏科技大学(张家港) 2015年9月

目录 一、设计目的 (3) 二、设计任务 (3) 三、具体要求 (4) 四、设计原理概述 (4) 4.1校正方式的选择 (4) 4.2集中串联校正简述 (5) 4.2.1串联超前校正 (5) 4.2.2串联滞后校正 (5) 4.2.3串联滞后-超前校正 (5) 4.2.4串联校正装置的一般性设计步骤 (5) 五、设计方案及分析 (6) 5.1高阶系统的频域分析 (6) 5.1.1 原系统的频率响应特性及阶跃响应 (7) 5.1.2使用Simulink观察系统性能 (9) 5.1.3 搭建模拟实际电路 (10) 5.1.4 对原系统的性能分析 (12) 5.2校正方案确定与校正结果分析 (13) 5.2.1 采用串联超前网络进行系统校正 (13) 5.2.3 采用串联滞后—超前网络系统进行校正 (18) 5.2.4 使用EWB搭建校正后模拟实际电路 (23) 六、总结 (26)

一、设计目的 1.通过课程设计熟悉频域法分析系统的方法原理 2.通过课程设计掌握滞后—超前校正作用与原理 3.通过在实际电路中校正设计的运用,理解系统校正在实际中的意义 二、设计任务 控制系统为单位负反馈系统,开环传递函数为) 1025.0)(11.0()(++= s s s K s G , 设计滞后-超前串联校正装置,使系统满足下列性能指标: 1、开环增益100K ≥

自动控制原理习题全解及MATLAB实验 第6章习题解答

第6章控制系统的校正 本章主要讨论利用频率法对单输入-单输出的线性定常系统的综合和设计。在介绍控制系统校正的基本概念、控制系统的基本控制规律的基础上,介绍了各种串联校正装置(超前校正装置、滞后校正装置、滞后-超前校正装置)的特性及按分析进行相应设计的基本步骤和方法;还介绍了期望设计法的基本概念、常见的期望特性和设计步骤;另外还介绍了根轨迹法的串联校正和反馈校正的基本概念和方法;最后介绍了利用MATLAB进行控制系统校正。 教材习题同步解析 试分别说明系统的固有频率特性与系统期望频率特性的概念。 答:系统本身固有元件所具有的频率特性称为固有频率特性。设计者希望系统所能达到的频率特性称为系统期望频率特性。 试比较串联校正和反馈校正的优缺点。 答:a、校正装置和未校正系统的前向通道环节相串联,这种叫串联校正,串联校正是最常用的设计方法,设计与实现比较简单,通常将串联装置安置在前向通道的前端。 b、并联校正也叫反馈校正,它是和前向通道的部分环节按反馈方式连接构成局部反馈回路,设计相对较为复杂。并联校正一般不需要加放大器,它可以抑制系统的参数波动及非线性因素对系统性能的影。 PD控制为什么又称为超前校正?串联PD控制器进行校正为什么能提高系统的快速性和稳定性? 答:加入PD控制相当于在系统中加入一个相位超前的串联校正装置,使之在穿越频率处有较大的相位超前角。因此,PD控制称为超前控制。PD控制的传递函数为G s Kp sτ =+,由比例控制和微分控制组合而成。增大比例系数Kp,可以展宽系统的()(1) 通频带,提高系统的快速性。微分控制反映信号的变化率的预报作用,在偏差信号变化前给出校正信号,防止系统过大地偏离期望值和出现剧烈振荡倾向,有效地增强系统的相对稳定性。 PI控制为什么又称为滞后校正?串联PI控制器进行校正为什么能提高系统的稳态性能?如何减小它对系统稳定性的影响? 答:PI控制在低频段产生较大的相位滞后,所以滞后校正。PI控制的比例部分可以提高系统的无差度,改善系统的稳态性能。在串入系统后应使其转折频率在系统幅值穿越频率

MATLAB程序设计作业

Matlab程序设计 班级 姓名 学号

《MATLAB程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot的原始数据、一次拟合曲线和三次拟合曲线,给出MATLAB代码和运行结果。 代码如下: x=[1,2,3,4,5,6,7,8,9,10]; y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]; plot(x,y); title('原始数据'); p=polyfit(x,y,1); q=polyval(p,x); figure,plot(x,q); title('一次拟合'); p=polyfit(x,y,2); q=polyval(p,x); figure,plot(x,q); title('二次拟合'); 运行结果如下:

1 2 3 4 5 6 7 8 9 10 12 3 4 5 6 7 8 原始数据 123 456789 102 2.5 3 3.54 4.5 55.56 6.57一次拟合 123456789 101 2 3 4 5 6 7 二次拟合 2、在[0,3π]区间,绘制y=sin(x)曲线(要求消去负半波,即(π,2π)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 代码如下: clear clc x=(0:0.01:3*pi); y=sin(x); plot(x,y); y1=(y>=0).*y; figure,plot(x,y1);

MATLAB第一章作业答案

第一章 M A T L A B 概况与基本操作 1.选择题(每题2分,共20分): (1)最初的MATLAB 核心程序是采用D 语言编写的。 (2)即将于2011年9月发布的MATLAB 新版本的编号为C 。 2011Ra 2011Rb R2011b R2011a (3)在默认设置中,MATLAB 中的注释语句显示的颜色是B 。 A.黑色 B.绿色 C.红色 D.蓝色 (4)如果要以科学计数法显示15位有效数字,使用的命令是A 。 long e long long g long d (5)在命令窗口新建变量a 、b ,如果只查看变量a 的详细信息,使用的命令为A 。 a a (6)如果要清除工作空间的所有变量,使用的命令为C 。 all C.两者都可 D.两者都不可 (7)在创建变量时,如果不想立即在命令窗口中输出结果,可以在命令后加上B 。 A.冒号 B.分号 C.空格 D.逗号 (8)如果要重新执行以前输入的命令,可以使用D 键。 A.下箭头↓ B.右箭头→ C.左箭头← D.上箭头↑ (9)如果要查询函数det 的功能和用法,并显示在命令窗口,应使用命令C 。 D.三者均可 (10)如果要启动Notebook 文档,下列D 操作是可行的。 A.在命令窗口输入notebook 命令 B.在命令窗口输入notebook filename 命令 C.在Word 中启动M-book 文档 D.三者均可 2.填空题(每空1分,共20分): (1)MATLAB 是matrix 和laboratory 两个单词前三个字母的组合,意为“矩阵实验室”,它的创始人是Cleve Moler 和Jack Little 。 (2)在MATLAB 的默认设置中,关键字显示的字体为蓝色,命令、表达式、计算结果显示的字体为黑色,字符串显示的字体为褐红色,注释显示的字体为绿色,错误信息显示的字体为红色。 (3)在命令窗口中,输出结果显示为各行之间添加空行的命令为format loose ,各行之间不添加空行的命令为format compact 。 (4)在MATLAB 中,各种标点符号的作用是不同的。例如,空格的作用是分隔数组每行各个元素,逗号的作用是分隔数组每行各个元素或函数的各个输入参数,分号的作用是作为不显示命令结果的命令行的结尾或分隔数组各列,冒号的作用是生成一维数组或表示数组全部元素,百分号的作用是引导一行注释,…的作用是连接相邻两行,感叹号的作用是调用操作系统命令。 3.程序设计题(每题10分,共40分) (1)以25m/s 的初速度向正上方投球(g=s 2 ),计算到达最高点的时间tp 以及球从出发点到最高点的距离hp 。 解:根据物理学知识,物体上抛运动的速度与经过的时间之间的关系为0p p v v gt =-,因此所需要的时间为0p p v v t g -= 。而到达最高点时的速度0p v =,因此可根据此公式求出tp : v0=25;g=;vp=0; tp=(v0-vp)/g tp =

自动控制原理课程设计报告

成绩: 自动控制原理 课程设计报告 学生姓名:黄国盛 班级:工化144 学号:201421714406 指导老师:刘芹 设计时间:2016.11.28-2016.12.2

目录 1.设计任务与要求 (1) 2.设计方法及步骤 (1) 2.1系统的开环增益 (1) 2.2校正前的系统 (1) 2.2.1校正前系统的Bode图和阶跃响应曲线 (1) 2.2.2MATLAB程序 (2) 3.3校正方案选择和设计 (3) 3.3.1校正方案选择及结构图 (3) 3.3.2校正装置参数计算 (3) 3.3.3MATLAB程序 (4) 3.4校正后的系统 (4) 3.4.1校正后系统的Bode图和阶跃响应曲线 (4) 3.4.2MATLAB程序 (6) 3.5系统模拟电路图 (6) 3.5.1未校正系统模拟电路图 (6) 3.5.2校正后系统模拟电路图 (7) 3.5.3校正前、后系统阶跃响应曲线 (8) 4.课程设计小结和心得 (9) 5.参考文献 (10)

1.设计任务与要求 题目2:已知单位负反馈系统被控制对象的开环传递函数 ()() 00.51K G s s s =+用串联校正的频率域方法对系统进行串联校正设计。 任务:用串联校正的频率域方法对系统进行串联校正设计,使系统满足如下动态及静态性能 指标: (1)在单位斜坡信号作用下,系统的稳态误差0.05ss e rad <; (2)系统校正后,相位裕量45γ> 。 (3)截止频率6/c rad s ω>。 2.设计方法及步骤 2.1系统的开环增益 由稳态误差要求得:20≥K ,取20=K ;得s G 1s 5.0201)s(0.5s 20)s (20+=+=2.2校正前的系统 2.2.1校正前系统的Bode 图和阶跃响应曲线 图2.2.1-1校正前系统的Bode 图

自动控制原理MATLAB仿真实验

自动控制原理MATLAB仿真实验 实验一典型环节的MATLAB仿真 一、实验目的 1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、SIMULINK的使用 MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。 1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。 2.选择File菜单下New下的Model命令,新建一个simulink仿真环境常规模板。 图1-1 SIMULINK仿真界面图1-2 系统方框图

3.在simulink 仿真环境下,创建所需要的系统。 以图1-2所示的系统为例,说明基本设计步骤如下: 1)进入线性系统模块库,构建传递函数。点击simulink 下的“Continuous ”,再将右边窗口中“Transfer Fen ”的图标用左键拖至新建的“untitled ”窗口。 2)改变模块参数。在simulink 仿真环境“untitled ”窗口中双击该图标,即可改变传递函数。其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK ,即完成该模块的设置。 3)建立其它传递函数模块。按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。例:比例环节用“Math ”右边窗口“Gain ”的图标。 4)选取阶跃信号输入函数。用鼠标点击simulink 下的“Source ”,将右边窗口中“Step ”图标用左键拖至新建的“untitled ”窗口,形成一个阶跃函数输入模块。 5)选择输出方式。用鼠标点击simulink 下的“Sinks ”,就进入输出方式模块库,通常选用“Scope ”的示波器图标,将其用左键拖至新建的“untitled ”窗口。 6)选择反馈形式。为了形成闭环反馈系统,需选择“Math ” 模块库右边窗口“Sum ”图标,并用鼠标双击,将其设置为需要的反馈形式(改变正负号)。 7)连接各元件,用鼠标划线,构成闭环传递函数。 8)运行并观察响应曲线。用鼠标单击工具栏中的“”按钮,便能自动运行仿真环境下的系统框图模型。运行完之后用鼠标双击“Scope ”元件,即可看到响应曲线。 三、实验原理 1.比例环节的传递函数为 221211()2100,200Z R G s R K R K Z R =-=-=-== 其对应的模拟电路及SIMULINK 图形如图1-3所示。

matlab程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。 >> t=0:0.01:pi; >> x1=t; >> y1=2*x1-0.5; >> x2=sin(3*t).*cos(t); >> y2=sin(3*t).*sin(t); >> plot(x1,y1,'r-',x2,y2,'g-') >> axis([-1,2,-1.5,1]) >> hold on >> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*'); 截图:

p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。 function [ output_args ] = Untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here theta=0:0.01:2*pi; a=input('请输入a的值:'); b=input('请输入b的值:'); n=input('请输入n的值:'); rho=a*sin(b+n*theta); polar(theta,rho,'k'); end 下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。

对a的值进行改变:对比发现a只影响半径值的整倍变化 对b的值进行改变:对比发现b的值使这个圆转换了一定的角度

对n的值进行改变:对比发现当n>=2时有如下规律 1、当n为整数时,图形变为2n个花瓣状的图形 2、当n为奇数时,图形变为n个花瓣状的图形 分别让n为2、3、4、5

自动控制设计(自动控制原理课程设计)

自动控制原理课程设计 本课程设计的目的着重于自动控制基本原理与设计方法的综合实际应用。主要内容包括:古典自动控制理论(PID)设计、现代控制理论状态观测器的设计、自动控制MATLAB 仿真。通过本课程设计的实践,掌握自动控制理论工程设计的基本方法与工具。 1 内容 某生产过程设备如图1所示,由液容为C1与C2的两个液箱组成,图中Q 为稳态液体流量)/(3s m ,i Q ?为液箱A 输入水流量对稳态值的微小变化)/(3s m ,1Q ?为液箱A 到液箱B 流量对稳态值的微小变化)/(3s m ,2Q ?为液箱B 输出水流量对稳态值的微小变化)/(3s m ,1h 为液箱A 的液位稳态值)(m ,1h ?为液箱A 液面高度对其稳态值的微小变化)(m ,2h 为液箱B 的液位稳态值)(m ,2h ?为液箱B 液面高度对其稳态值的微小变化)(m ,21,R R 分别为A,B 两液槽的出水管液阻))//((3s m m 。设u 为调节阀开度)(2m 。 已知液箱A 液位不可直接测量但可观,液箱B 液位可直接测量。 图1 某生产过程示意图

要求 1. 建立上述系统的数学模型; 2. 对模型特性进行分析,时域指标计算,绘出bode,乃示图,阶跃反应曲线 3. 对B 容器的液位分别设计:P,PI,PD,PID 控制器进行控制; 4. 对原系统进行极点配置,将极点配置在-1+j 与-1-j;(极点可以不一样) 5. 设计一观测器,对液箱A 的液位进行观测(此处可以不带极点配置); 6. 如果要实现液位h2的控制,可采用什么方法,怎么更加有效?试之。 用MATLAB 对上述设计分别进行仿真。 (提示:流量Q=液位h/液阻R,液箱的液容为液箱的横断面积,液阻R=液面差变化h ?/流量变化Q ?。) 2 双容液位对象的数学模型的建立及MATLAB 仿真过程 一、对系统数学建模 如图一所示,被控参数2h ?的动态方程可由下面几个关系式导出: 液箱A:dt h d C Q Q i 111?=?-? 液箱B:dt h d C Q Q 22 21?=?-? 111/Q h R ??= 222/Q h R ??= u K Q u i ?=? 消去中间变量,可得: u K h dt h d T T dt h d T T ?=?+?++?222122221)( 式中,21,C C ——两液槽的容量系数 21,R R ——两液槽的出水端阻力 111C R T =——第一个容积的时间常数 222C R T =——第二个容积的时间常数 2R K K u =_双容对象的放大系数

自动控制原理Matlab程序作业(精)

自控控制原理 MATLAB 程序设计作业 指导老师:汪晓宁 目录 一、题目 (2) 二、运行结果 (3) 三、程序说明 (8) 四、附录 ............................................ 9 代码 . ............................................. 9 参考文献 .. (17) 一、题目 用 Matlab 创建用户界面,并完成以下功能 a 将产生未综合系统的根轨迹图以及 0.707阻尼比线, 你可以交互地选择交点的运行点。界面能显示运行点的坐标、增益值以及近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及稳态误差 b 显示未综合系统的阶跃响应 c 输入控制器的参数, 绘制综合后系统的根轨迹图以及显示综合的设计点 (主导极点 , 允许不断改变控制器参数,知道所绘制的根轨迹通过设计点 d 对于综合后的系统, 显示运行点的坐标、增益,近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及误差系数 e 显示综合后系统的阶跃响应 二、运行结果

输入传递函数分子分母 生成根轨迹图

选择点并得到该点各项参数在下方输出面板输出 获得阶跃响应图 用 rltool(辅助,选择合适的插入零点

输入零点,并得到根轨迹图

选择根轨迹图上的任一点,得到数据,在下方输出面板输出得到阶跃响应图 三、运行说明

第一步, 在请输入分子后的输入框输入传递函数分子的矩阵, 在下一输入框输入传递函数分母并按“生成根轨迹图”按钮获得根轨迹 第二步, 按选择点并显示各参数获得根轨迹图上任一点的各项数据, 数据全部输出在下方输出面板 第三步,按“生成阶跃响应图”按钮可以获得该函数的阶跃响应 第四步,在“请输入插入零点”后的输入框中输入参数,并按“生成综合后根轨迹图” 按钮产生根轨迹 (可以通过点击“根轨迹校正”按钮,调用工具箱拖动零点进行快速查看根轨迹图,选择合适的根轨迹再在输入框中输入零点的值 第五步,按“选择点并显示各参数(综合后系统”选取各点,查阅参数,数据输出在下方输出面板上 第六步,按“生成阶跃响应图(综合后系统”可以得到综合后系统的阶跃响应 最后,点击“退出”结束程序 四、附录 代码: function varargout = Liushuai20122510(varargin % LIUSHUAI20122510 MATLAB code for Liushuai20122510.fig % LIUSHUAI20122510, by itself, creates a new LIUSHUAI20122510 or raises the existing % singleton*. %

MATLAB作业4参考答案

MATLAB 作业四参考答案 1、 用2sin(103)y t =+在(0,3)区间内生成一组较稀疏的数据,并用一维数据插值的方法对给出的数据进行曲线拟合,并将结果与理论曲线相比较。 【求解】类似于上面的例子,可以用几乎一致的语句得出样本数据和插值效果。 >> t=0:0.2:3; y=sin(10*t.^2+3); plot(t,y,'o') ezplot('sin(10*t^2+3)',[0,3]); hold on x1=0:0.001:3; y1=interp1(t,y,x1,'spline'); plot(x1,y1) 由于曲线本身变换太大,所以在目前选定的样本点下是不可能得出理想插值效果的,因为样 本数据提供的信息量不够。为了得到好的插值效果,必须增大样本数据的信息量,对本例来 说,必须在快变化区域减小样本点的步长。 >> hold off t=[0:0.1:1,1.1:0.04:3]; y=sin(10*t.^2+3); plot(t,y,'o') ezplot('sin(10*t^2+3)',[0,3]); hold on x1=0:0.001:3; y1=interp1(t,y,x1,'spline'); plot(x1,y1) 2、 用2422 3 1(,)sin()3x y f x y e xy x y x y --= ++原型函数生成一组网络数据或随机数据,分别拟合出曲面,并和原曲面进行比较。 【求解】由下面的语句可以直接生成一组网格数据,用下面语句还可以还绘制出给定样本点是三维表面图。 >> [x,y]=meshgrid(0.2:0.2:2); z=exp(-x.^2-y.^4).*sin(x.*y.^2+x.^2.*y)./(3*x.^3+y); surf(x,y,z) 选择新的密集网格,则可以通过二元插值得出插值曲面。对比插值结果和新网格下的函数值精确解,则可以绘制出绝对插值误差曲面。由插值结果可见精度是令人满意的。 >> [x1,y1]=meshgrid(0.2:0.02:2); z1=interp2(x,y,z,x1,y1,'spline'); surf(x1,y1,z1) >> z0=exp(-x1.^2-y1.^4).*sin(x1.*y1.^2+x1.^2.*y1)./(3*x1.^3+y1); surf(x1,y1,abs(z1-z0)) 现在假设已知的样本点不是网格形式分布的,而是随机分布的,则可以用下面语句生成样本点,得出分布的二维、三维示意图。 >> x=0.2+1.8*rand(400,1); y=0.2+1.8*rand(400,1); % 仍生成(0.2,2) 区间的均匀分布随机数 z=exp(-x.^2-y.^4).*sin(x.*y.^2+x.^2.*y)./(3*x.^3+y); plot(x,y,'x') figure, plot3(x,y,z,'x')

实验二--MATLAB程序的设计(含实验报告)

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2→1 3→10→5→16→8→4→2→1 6→3→10→5→16→8→4→2→1

自控专业设计的方法和步骤

.自控工程设计的任务 自控工程专业设计的任务基本上有以下几个方面: 1.1负责生产装置、辅助工程和公用工程系统的检测、控制、报警、联锁/ 停车, 以及监控/ 管理计算机系统的设计; 1.2负责检测仪表、控制系统及其辅助设备和安装材料的选型设计; 1.3负责监测仪表和控制系统的安装设计; 1.4负责DCS PLC自控系统的配置、功能要求和设备选型,并负责或参加软 件的编制工作; 1.5负责现场仪表的环境防护措施的设计; 1.6负责控制室的设计; 1.7负责生产过程计量系统的设计。 自控工程设计常用的方法是由工艺专业提出条件,自控与工艺专业一起讨论确定控制方案,确定必要的中间储槽及其容量,确定合适的设备余量,确定开、停车以及紧急事故处理方案等。这种设计方法对合理确定控制方案,充分发挥自控专业的主观能动性是有益的。但是在实际设计过程中,尤其对一些新工艺,主要是由工艺专业提出条件并确定控制方案,自控专业进行设计,我们当前基本采用这种方法。 2.自控工程设计的阶段划分和设计内容 当前工程设计的阶段划分,一般分为两个阶段,即初步设计和施工图设计 2.1初步设计 初步设计的主要目的是为了上报有关部门作为审批的依据,并为订货做好必要的准备。它应完成的主要内容为: 设计说明书:给出设计依据、设计原则,提出项目实施的必要性,拟定控制系统的技术方案、仪表选型规定、DCS空制系统的选型及控制策略,并从节能、消防、环境保护以及劳动安全卫生等方面作出设计概述。 工艺控制流程图:在工艺专业流程图的基础上,正确选定所需的检测点及其安装位置,选择必要的被控变量和恰当的操纵变量,绘制于工艺流程图上。图例符号应符合化工部标准《过程检测和控制系统用文字代号和图形符号(HG 20505)》或国标《过程检测和控制流程图用图形符号和文字代号(GB 2625) 》。 主要仪表设备、材料汇总表:汇总所有控制系统所需设备及相应材料,给出名称、数量,为订货以及概算提供依据。 初步设计概算:从建筑工程、设备、安装工程、工器具费等方面进行综合概算。 2.2施工图设计施工图设计是直接应用于施工的图纸设计。当前我们常用的施工图 设计文 件由以下内容组成: 1)图纸目录 2)设计说明书 3)材料表 4)设备明细表 5)工艺专业提资表

《自动控制原理》MATLAB分析与设计

《自动控制原理》MATLAB分析与设计 仿真实验报告 第三章线性系统的时域分析法 1、教材P136.3-5系统进行动态性能仿真,并与忽略闭环零点的系统动态性能进行比较,分析仿真结果; (1)原系统的动态性能 SIMULINK仿真图: 仿真结果: 分析:从图中可以看出:峰值时间:tp=3.2s,超调量18.0%,调节时间ts=7.74s。 (2)忽略闭环零点的系统动态性能 SIMULINK仿真图:

仿真结果: 分析:从图中可以看出:峰值时间:tp=3.6s,超调量16.7%,调节时间ts=7.86s。 (3)两种情况动态性能比较 SIMULINK仿真图: 仿真结果:

原系统 忽略闭环零点 分析:通过比较可以看出闭环零点对系统动态性能的影响为:减小峰值时间,使系统响应速度加快,超调量增大。这表明闭环零点会减小系统阻尼。 3-9系统 SIMULINK仿真图: 仿真结果:

Scope0 分析:从图中可以看出:峰值时间:tp=1.05s,超调量35.1%,调节时间ts=3.54s(△=2%)。 Scope1 分析:从图中可以看出:峰值时间:tp=0.94s,超调量37.1%,调节时间ts=3.44s(△=2%)。

Scope2 分析:由于计算机在计算的过程也存在误差,因此,不同的参数时,两条线重合,需将闭环传递函数计算出来再作比较。 计算出闭环传递函数 SIMULINK仿真图:

分析:从图中可以看出:峰值时间:tp=1.05s,超调量35.1%,调节时间ts=3.54s(△=2%)。 Scope4 分析:从图中可以看出:峰值时间:tp=0.94s,超调量37.1%,调节时间ts=3.44s(△=2%)。

Matlab编程与应用习题和一些参考答案

Matlab 上机实验一、二 3.求下列联立方程的解???????=+-+-=-+=++-=--+4 1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b 4.设???? ??????------=81272956313841A ,??????????-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。 >> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8]; >> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3) 5.设 ?? ????++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。 >> x=linspace(0,2*pi,101); >> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r') 6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var ) a=randn(8,6) mean(a) var(a) k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g)

MATLAB作业答案

题4.1 控制系统结构如图4.A 所示: 图4.A 习题 (1) 利用MA TLAB 对以上单位负反馈控制系统建立传递函数模型; (2) 将第一问中求得的传递函数模型转化为零极点增益形式和状态空间形式。 解:(1)MA TLAB 程序代码如下: z=[-1];p=[-1,-3];k=2 [num,den]=zp2tf(z,p,k) g_tf=tf(num,den) 程序运行结果如下: Transfer function: 2 s + 2 ------------- s^2 + 4 s + 3 由计算结果可知,系统的传递函数模型为: G (s )= 3 4222 +++s s s (2) MA TLAB 程序代码如下: num=[2,2];den=[1,4,3] [z,p,k]=tf2zp(num,den) [A,B,C,D]=tf2ss(num,den) g_zpk=zpk(z,p,k) g_ss=ss(A,B,C,D) 程序运行结果如下: Zero/pole/gain: 2 (s+1) ----------- (s+3) (s+1) a = x1 x2 x1 -4 -3 x2 1 0 b = u1 x1 1 x2 0

c = x1 x2 y1 2 2 d = u1 y1 0 由计算结果可知,系统的零极点增益模和状态空间模型分别为: G (s )=)1)(3()1(2+++s s s 和[]? ????=??????+??????-=x y u x x 2 2010 13- 4. 题5.1 设单位负反馈控制系统的开环传递函数为G (s )= ) 177(2 ++s s s K 。 (1) 试绘制K=10、100时闭环系统的阶跃响应曲线,并计算稳态误差、上升时间、超调 量和过渡过程时间; (2) 绘制K=1000时闭环系统的阶跃响应曲线,与K=10、100所得结果相比较,分析增 益系数与系统稳定性的关系; (3) 利用roots 命令,确定使系统稳定时K 的取值范围。 解:(1) 题 6.1 已知单位负反馈控制系统的前向传递函数分别为G (s )= ) 4)(2()1(2 +++s s s s K 、 ) 164)(1() 1(2 ++-+s s s s s K 和 ) 15)(7)(5)(3() 8(2 +++++s s s s s s K ,试利用MA TLAB 分别绘制各系 统的根轨迹图。 解:(1)G (s )= ) 4)(2()1(2 +++s s s s K MA TLAB 程序代码如下: num=[1,1];den=conv([1,0],conv([1,0],[1,6,8])); sys=tf(num,den)

自动控制原理课程设计实验

上海电力学院 自动控制原理实践报告 课名:自动控制原理应用实践 题目:水翼船渡轮的纵倾角控制 船舶航向的自动操舵控制 班级: 姓名: 学号:

水翼船渡轮的纵倾角控制 一.系统背景简介 水翼船(Hydrofoil)是一种高速船。船身底部有支架,装上水翼。当船的速度逐渐增加,水翼提供的浮力会把船身抬离水面(称为水翼飞航或水翼航行,Foilborne),从而大为减少水的阻力和增加航行速度。 水翼船的高速航行能力主要依靠一个自动稳定控制系统。通过主翼上的舵板和尾翼的调整完成稳定化操作。该稳定控制系统要保持水平飞行地穿过海浪。因此,设计上要求系统使浮力稳定不变,相当于使纵倾角最小。 航向自动操舵仪工作时存在包括舵机(舵角)、船舶本身(航向角)在内的两个反馈回路:舵角反馈和航向反馈。 当尾舵的角坐标偏转错误!未找到引用源。,会引起船只在参考方向上发生某一固定的偏转错误!未找到引用源。。传递函数中带有一个负号,这是因为尾舵的顺时针的转动会引起船只的逆时针转动。有此动力方程可以看出,船只的转动速率会逐渐趋向一个常数,因此如果船只以直线运动,而尾舵偏转一恒定值,那么船只就会以螺旋形的进入一圆形运动轨迹。 二.实际控制过程 某水翼船渡轮,自重670t,航速45节(海里/小时),可载900名乘客,可混装轿车、大客车和货卡,载重可达自重量。该渡轮可在浪高达8英尺的海中以航速40节航行的能力,全靠一个自动稳定控制系统。通过主翼上的舵板和尾翼的调整完成稳定化操作。该稳定控制系统要保持水平飞行地穿过海浪。因此,设计上要求该系统使浮力稳定不变,相当于使纵倾角最小。

上图:水翼船渡轮的纵倾角控制系统 已知,水翼船渡轮的纵倾角控制过程模型,执行器模型为F(s)=1/s。 三.控制设计要求 试设计一个控制器Gc(s),使水翼船渡轮的纵倾角控制系统在海浪扰动D (s)存在下也能达到优良的性能指标。假设海浪扰动D(s)的主频率为w=6rad/s。 本题要求了“优良的性能指标”,没有具体的量化指标,通过网络资料的查阅:响应超调量小于10%,调整时间小于4s。 四.分析系统时域 1.原系统稳定性分析 num=[50]; den=[1 80 2500 50]; g1=tf(num,den); [z,p,k]=zpkdata(g1,'v'); p1=pole(g1); pzmap(g1) 分析:上图闭环极点分布图,有一极点位于原点,另两极点位于虚轴左边,故处于临界稳定状态。但还是一种不稳定的情况,所以系统无稳态误差。 2.Simulink搭建未加控制器的原系统(不考虑扰动)。

自动控制原理 matlab实验报告

自动控制原理实验(二) 一、实验名称: 基于MATLAB的控制系统频域及根轨迹分析 二、实验目的: (1)、了解频率特性的测试原理及方法; (2)、理解如何用MATLAB对根轨迹和频率特性进行仿真和分析; (3)、掌握控制系统的根轨迹和频率特性两大分析和设计方法。 三、实验要求: (1)、观察给定传递函数的根轨迹图和频率特性曲线; (2)、分析同一传递函数形式,当K值不同时,系统闭环极点和单位阶跃响应的变化情况;(3)、K值的大小对系统的稳定性和稳态误差的影响; (4)、分析增加系统开环零点或极点对系统的根轨迹和性能的影响。 四、实验内容及步骤 (1)、实验指导书:实验四 (1)、“rlocus”命令来计算及绘制根轨迹。会出根轨迹后,可以交互地使用“rlocfind”命令来确定点击鼠标所选择的根轨迹上任意点所对应的K值,K值所对应的所有闭环极点值也可以使用形如“[K, PCL] = rlocfind(G1)”命令来显示。 (2)、波特图:bode(G1, omga) 另外,bode图还可以通过下列指令得出相位和裕角: [mag,phase,w] = bode(sys) (3)、奈奎斯特图:nuquist(G, omega) (2)课本:例4-1、4-2、4-7 五实验报告要求 (1)、实验指导书:实验四

思考题 请绘制下述传递函数的bode图和nyquist图。 1. 根据实验所测数据分别作出相应的幅频和相频特性曲线; 2. 将思考题的解题过程(含源程序)写在实验报告中。 幅频特性曲线相频特性曲线 Gs = zpk([10], [-5; -16; 9], 200) subplot(1, 2, 1) bode(Gs) grid subplot(1, 2, 2) nyquist(Gs) grid (2)课本:例4-1、4-2、4-7

相关主题
文本预览
相关文档 最新文档