自动控制原理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

自动控制原理 Matlab 程序设计报告 % handles structure with handles and user data (see GUIDATA % --- Executes on button press in pushbutton9. function pushbutton9_Callback(hObject, eventdata, handles % hObject % eventdata % handles handle to pushbutton9 (see GCBO reserved - to be defined in a future version of MATLAB 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 % eventdata % handles handle to pushbutton10 (see GCBO reserved - to be defined in a future version of MATLAB 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 % eventdata % handles handle to pushbutton11 (see GCBO reserved - to be defined in a future version of MATLAB 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'; 15

自动控制原理 Matlab 程序设计报告 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 % eventdata % handles handle to edit5 (see GCBO reserved - to be defined in a future version of MATLAB 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 % eventdata % handles handle to edit5 (see GCBO reserved - to be defined in a future version of MATLAB 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' 16

自动控制原理 Matlab 程序设计报告 set(hObject,'BackgroundColor','white'; end 参考文献:《 Matlab 及在电子信息类课程中的应用》电子工业出版社《 Matlab 与控制系统仿真实践》北京航空航天大学出版社 17

自动控制原理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的GUI设计——机械原理教学演示系统

机械原理教学演示系统——基于matlab的GUI设计 xxx 指导老师: 20年月日

目录 一、功能简介 (3) 二、总界面 (3) 三、凸轮模块 (4) 四、齿轮模块 (6) 五.参考书目 (6) 六.附录(部分程序源代码) (7)

一、功能简介 本系统能实现机械原理教学过程中凸轮模块与齿轮模块的设计与运动仿真,加深对机械原理课程学习的理解。 二、总界面 总界面标题设置:set(gcf,'name','机械原理教学演示系统 made by 翟鲁鑫'); 背景图片设置:ximg=imread('机械原理课本.jpg'); imshow(ximg); 背景声音播放:Fs=44100; [ywav,Fs]=wavread('夜的钢琴曲 - 六3.wav'); sound(ywav,Fs); 到各个模块:到凸轮模块 clc close(gcf); clear all

GUItulun 到齿轮模块 clc close(gcf); clear all GUIchilun 关闭系统:clc question='真的要退出吗?'; title='确认退出?'; button=questdlg(question,title,'是','否','是'); switch button case'是' clear all close case'否' return end 三、凸轮模块 设计要点: 1.背景声音设置方法同主界面

2.推程角、远休角、回程角之和不能大于360度的判别条件;基圆半径、滚子半径、行程不能为0的判别条件 sr0=get(handles.edit2,'string'); r0=str2num(sr0); if isequal(r0,0) errordlg('基圆半径不能为0,请重新输入','出错'); return end srr=get(handles.edit3,'string'); rr=str2num(srr); if isequal(rr,0) errordlg('滚子半径不能为0,请重新输入','出错'); return end sh=get(handles.edit4,'string'); h=str2num(sh); if isequal(h,0) errordlg('行程不能为0,请重新输入','出错'); return end n3=phi01+phi02+phi03; %推程角、远休止角与回程角的总和 if n3>360 errordlg('角度之和大于360,请重新输入','出错'); end 3.仿真程序。采用for 循环以及m(j)=getframe之前要先使用moviein函数Initialize movie frame memory,否则要提示错误 4.仿真之前要先清除绘图时留下的图像,命令如下cla(handles.axes1); 5.回主界面之前要先clear all,关闭音乐、清空global定义的全局变量,以防全局变量影响下一程序 6.图像保存。绘制出的图像可以保存供以后查看。主要命令有uiputfile()、imwrite() [sfilename,sfilepath]=uiputfile({'*.jpg';'*.bmp';'*.tif';'*.*'},... '保存图像文件','unititled.jpg'); if ~isequal([sfilename,sfilepath],[0,0]) sfilefullname=[sfilepath ,sfilename]; h_tulun = getframe(handles.axes1); imwrite(h_tulun.cdata,sfilefullname); else msgbox('您按了取消,保存失败','保存失败','error'); end

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

《自动控制原理》 课程设计报告 姓名:高陆及__________ 学号: 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);

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

成绩: 自动控制原理 课程设计报告 学生姓名:黄国盛 班级:工化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

MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法)

%MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法) clear;clc; %凡是变量名前带v的为数值变量,不带的是符号变量 vxp1=0; vyp1=0; vsita1=0*pi/180; vxp2=-2; vyp2=6; vsita2=40*pi/180; vxp3=-10; vyp3=8; vsita3=90*pi/180; %精确位置P1,P2,P3及各角度 vsita12=vsita2-vsita1; vsita13=vsita3-vsita1; vxa=-10; vya=-2; vxd=-5; vyd=-2; %选定A,D点 %所有数值均在此确定,更改此处即可解出不同数值的四杆机构位移矩阵方程 syms xp1 yp1 xp2 yp2 xp3 yp3 sita12 sita13; syms xa ya xb1 yb1 xb2 yb2 xb3 yb3; f1='(xb2-xa)^2+(yb2-ya)^2=(xb1-xa)^2+(yb1-ya)^2'; f2='(xb3-xa)^2+(yb3-ya)^2=(xb1-xa)^2+(yb1-ya)^2'; %前两个机构方程 f3='xb2=cos(sita12)*xb1-sin(sita12)*yb1+xp2-xp1*cos(sita12)+yp1*sin(sita12)'; f4='yb2=sin(sita12)*xb1+cos(sita12)*yb1+yp2-xp1*sin(sita12)-yp1*cos(sita12)'; %由第一个位移矩阵方程得出 f5='xb3=cos(sita13)*xb1-sin(sita13)*yb1+xp3-xp1*cos(sita13)+yp1*sin(sita13)'; f6='yb3=sin(sita13)*xb1+cos(sita13)*yb1+yp3-xp1*sin(sita13)-yp1*cos(sita13)'; %由第二个位移矩阵方程得出 f1=subs(f1,{xa,ya},{vxa,vya}); f2=subs(f2,{xa,ya},{vxa,vya}); f3=subs(f3,{xp1,xp2,yp1,sita12},{vxp1,vxp2,vyp1,vsita12}); f4=subs(f4,{xp1,yp1,yp2,sita12},{vxp1,vyp1,vyp2,vsita12}); f5=subs(f5,{xp1,xp3,yp1,sita13},{vxp1,vxp3,vyp1,vsita13}); f6=subs(f6,{xp1,yp1,yp3,sita13},{vxp1,vyp1,vyp3,vsita13}); %代入具体数值 [xb1,xb2,xb3,yb1,yb2,yb3]=solve(f1,f2,f3,f4,f5,f6); %解方程 vxb1=vpa(xb1); vyb1=vpa(yb1); vxb2=vpa(xb2); vyb2=vpa(yb2); vxb3=vpa(xb3); vyb3=vpa(yb3); (vxb1-vxa)^2+(vyb1-vya)^2; (vxb2-vxa)^2+(vyb2-vya)^2; (vxb3-vxa)^2+(vyb3-vya)^2; %去掉这三行分号可验证B点三个位置是否距离A点相等 syms xd yd xc1 yc1 xc2 yc2 xc3 yc3;

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

自动控制原理课程设计 本课程设计的目的着重于自动控制基本原理与设计方法的综合实际应用。主要内容包括:古典自动控制理论(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程序的设计(含实验报告)

实验二 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编程

/*Matlab程序*/ l1 = 59.1000; l2 = 263.9000; l3=120; l4=266.83; l5=180; l6=45; x2=170; y2=132.7289; w1=9.4248; N=42:10:402; ay=119:10:479 a=2*l1*l3*sin(N/180*pi); b=2*l3*(l1*cos(N/180*pi)-l4); c=l2^2-l1^2-l3^2-l4^2+2*l1*l4*cos(N/180*pi); jiao3=2*atan((a- sqrt(a.^2+b.^2-c.^2))./ (b-c))/pi*180+77 g=2*l1*l2*sin(N/180*pi); h=2*l2*(l1*cos(N/180*pi)-l4); m=l1^2+l2^2+l4^2-l3^2-2*l1*l4*cos(N/180*pi); jiao2=2*atan((g- sqrt(g.^2+h.^2-m.^2))./ (h-m))/pi*180+77 lof=-sqrt(l6^2-x2^2-l5^2+2*l5*x2*cos((180+jiao3)/180*pi)+l5^2*sin(j iao3/180*pi).^2)+y2-l5* sin((180+jiao3)/180*pi)

j12=N-(jiao2-77); j32=jiao3-jiao2; j13=(N-(jiao3-77)); j23=(jiao2-jiao3); w3=(w1*l1*sin(j12/180*pi))./ (l3*sin(j32/180*pi)) w2=(-1*w1*l1*sin(j13/180*pi))./(l2*sin(j23/180*pi)) a3=(w1^2*l1*cos(j12/180*pi)+w2.^2*l2-(w3.^2).*(l3*cos(j32/180*pi)) )./ (l3*sin(j32/180*pi)) a2=(-w1^2*l1*cos(j13/180*pi)-(w2.^2).*(l2*cos(j23/180*pi))+l3*w3.^ 2)./ (l3*sin(j23/180*pi)) jiao4=acos((x2-l5*cos((180+jiao3)/180*pi))/l6)/pi*180 w4=((-l5*sin((pi+jiao3)/180*pi)).*w3)./ (l6*sin(jiao4/180*pi)) vof=((l5*sin((180+jiao3-jiao4)/180*pi)).*w3).* sin(jiao4/180*pi) aof=(l6*w4.^2+(l5*w3.^2).*(cos((180+jiao3-jiao4)/180*pi))+l5*a3.*si n((180+jiao3-jiao4)/180*pi))./sin(jiao4/180*pi) 作图程序: /*F点的位移*/ plot(N+77,lof,'-xk') xlabel('AB杆的角度'),ylabel('F点的位移/(mm)') title('F点的位移曲线图') text(100, 171.3339,'初始值= 171.3339')

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

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

水翼船渡轮的纵倾角控制 一.系统背景简介 水翼船(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

相关文档
最新文档