✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
本程序可以模拟单自由度系统小球的振动过程,分自由振动和强迫振动两部分,其中自由振动又可分有阻尼和无阻尼。
在自由振动过程中,可根据给定参数,计算机械振动的相关公式,绘制机械振动曲线,并对小球振动过程进行动画模拟。
在强迫振动过程中,可根据给定参数,计算机械振动相关公式,对正弦激励时的强迫振动及伴随强迫振动的自由振动进行绘制,并将该模型作为典型二阶系统进行控制系统分析,如Bode图,Nyquist图的绘制。此外,还添加了LTI View,SISO及Simulink模块,可利用matlab自带工具箱对该二阶系统进行深入分析。
⛄ 部分代码
<span style="color:#333333"><span style="background-color:#fafafa"><code>function varargout = chuangkou(varargin)</code><code><span style="color:#afafaf">%</span> CHUANGKOU M-file <span style="color:#ca7d37">for</span> chuangkou.fig</code><code><span style="color:#afafaf">%</span> CHUANGKOU, by itself, creates a new CHUANGKOU or raises the existing</code><code><span style="color:#afafaf">%</span> singleton*.</code><code><span style="color:#afafaf">%</span></code><code><span style="color:#afafaf">%</span> H = CHUANGKOU returns the handle to a new CHUANGKOU or the handle to</code><code><span style="color:#afafaf">%</span> the existing singleton*.</code><code><span style="color:#afafaf">%</span></code><code><span style="color:#afafaf">%</span> CHUANGKOU(<span style="color:#dd1144">'CALLBACK'</span>,hObject,eventData,handles,...) calls the <span style="color:#ca7d37">local</span></code><code><span style="color:#afafaf">%</span> <span style="color:#ca7d37">function</span> named CALLBACK <span style="color:#ca7d37">in</span> CHUANGKOU.M with the given input arguments.</code><code><span style="color:#afafaf">%</span></code><code><span style="color:#afafaf">%</span> CHUANGKOU(<span style="color:#dd1144">'Property'</span>,<span style="color:#dd1144">'Value'</span>,...) creates a new CHUANGKOU or raises the</code><code><span style="color:#afafaf">%</span> existing singleton*. Starting from the left, property value pairs are</code><code><span style="color:#afafaf">%</span> applied to the GUI before chuangkou_OpeningFcn gets called. An</code><code><span style="color:#afafaf">%</span> unrecognized property name or invalid value makes property application</code><code><span style="color:#afafaf">%</span> stop. All inputs are passed to chuangkou_OpeningFcn via varargin.</code><code><span style="color:#afafaf">%</span></code><code><span style="color:#afafaf">%</span> *See GUI Options on GUIDE<span style="color:#dd1144">'s Tools menu. Choose "GUI allows only one</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> instance to run (singleton)".</span></code><code><span style="color:#afafaf">%</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> See also: GUIDE, GUIDATA, GUIHANDLES</span></code><code>%<span style="color:#dd1144"> Edit the above text to modify the response to help chuangkou</span></code><code>%<span style="color:#dd1144"> Last Modified by GUIDE v2.5 03-Jun-2011 19:01:43</span></code><code>%<span style="color:#dd1144"> Begin initialization code - DO NOT EDIT</span></code><code>gui_Singleton = 1;</code><code>gui_State = struct('gui_Name', mfilename, ...</code><code> 'gui_Singleton', gui_Singleton, ...</code><code> 'gui_OpeningFcn', @chuangkou_OpeningFcn, ...</code><code> 'gui_OutputFcn', @chuangkou_OutputFcn, ...</code><code> 'gui_LayoutFcn', [] , ...</code><code> 'gui_Callback', []);</code><code>if nargin && ischar(varargin{1})</code><code> gui_State.gui_Callback = str2func(varargin{1});</code><code>end</code><code></code><code>if nargout</code><code> [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});</code><code>else</code><code> gui_mainfcn(gui_State, varargin{:});</code><code>end</code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> End initialization code - DO NOT EDIT</span></code><code></code><code>%<span style="color:#dd1144"> --- Executes just before chuangkou is made visible.</span></code><code>function chuangkou_OpeningFcn(hObject, eventdata, handles, varargin)</code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> This function has no output args, see OutputFcn.</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> hObject handle to figure</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> eventdata reserved - to be defined in a future version of MATLAB</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> handles structure with handles and user data (see GUIDATA)</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> varargin command line arguments to chuangkou (see VARARGIN)</span></code><code>%<span style="color:#dd1144"> Choose default command line output for chuangkou</span></code><code>handles.output = hObject;</code><code>%<span style="color:#dd1144"> Update handles structure</span></code><code>guidata(hObject, handles);</code><code>%<span style="color:#dd1144"> UIWAIT makes chuangkou wait for user response (see UIRESUME)</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> uiwait(handles.figure1);</span></code><code></code><code>%<span style="color:#dd1144"> --- Outputs from this function are returned to the command line.</span></code><code>function varargout = chuangkou_OutputFcn(hObject, eventdata, handles) </code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> varargout cell array for returning output args (see VARARGOUT);</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> hObject handle to figure</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> eventdata reserved - to be defined in a future version of MATLAB</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> handles structure with handles and user data (see GUIDATA)</span></code><code>%<span style="color:#dd1144"> Get default command line output from handles structure</span></code><code>varargout{1} = handles.output;</code><code></code><code>%<span style="color:#dd1144"> --- Executes on button press in radiobutton1.</span></code><code>function radiobutton1_Callback(hObject, eventdata, handles)</code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> hObject handle to radiobutton1 (see GCBO)</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> eventdata reserved - to be defined in a future version of MATLAB</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> handles structure with handles and user data (see GUIDATA)</span></code><code>%<span style="color:#dd1144"> Hint: get(hObject,'</span>Value<span style="color:#dd1144">') returns toggle state of radiobutton1</span></code><code></code><code>%<span style="color:#dd1144"> --- Executes on button press in radiobutton2.</span></code><code>function radiobutton2_Callback(hObject, eventdata, handles)</code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> hObject handle to radiobutton2 (see GCBO)</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> eventdata reserved - to be defined in a future version of MATLAB</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> handles structure with handles and user data (see GUIDATA)</span></code><code>%<span style="color:#dd1144"> Hint: get(hObject,'</span>Value<span style="color:#dd1144">') returns toggle state of radiobutton2</span></code><code>%<span style="color:#dd1144">主程序</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> --- Executes on button press in pushbutton1.</span></code><code>function pushbutton1_Callback(hObject, eventdata, handles)</code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> hObject handle to pushbutton1 (see GCBO)</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> eventdata reserved - to be defined in a future version of MATLAB</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> handles structure with handles and user data (sese GUIDATA)</span></code><code>a=get(handles.radiobutton1,'value');</code><code>b=get(handles.radiobutton2,'value');</code><code>if a==1</code><code> close('chuangkou');</code><code> run('ziyouzhendong');</code><code>elseif b==1</code><code> close('chuangkou');</code><code> run('qiangpozhendong');</code><code>end</code><code>%<span style="color:#dd1144"> --- Executes on button press in pushbutton2.</span></code><code>function pushbutton2_Callback(hObject, eventdata, handles)</code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> hObject handle to pushbutton2 (see GCBO)</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> eventdata reserved - to be defined in a future version of MATLAB</span></code><code><span style="color:#afafaf">%</span><span style="color:#dd1144"> handles structure with handles and user data (see GUIDATA)</span></code><code>close</code><code></code></span></span>
⛄ 运行结果
⛄ 参考文献
[1] 蒋志峰,楼易.用MATLAB进行单自由度系统机械振动试验[J].力学与实践, 2004, 26(3):3.DOI:10.3969/j.issn.1000-0879.2004.03.031.
[2] 艾金婷,富立,郑玉.库仑摩擦对机械振动的影响[J].长春理工大学学报:自然科学版, 2014(2):4.DOI:10.3969/j.issn.1672-9870.2014.02.013.
[3] 孙向阳,曾山.基于MATLAB6的振动问题的模拟演示[J].武汉工业学院学报, 2003, 22(4):4.
- ⛳️ 代码获取关注我