⑴ 我用MATLAB写的四旋翼飞行器姿态控制程序无法运行
首先,你的文件名不能是pid.m,路径也不能含有pid这种matlab内置的关键字。
其次,有两行错误,建议注释掉,对你的结果没影响,因为你没有使用这个数据。
具体正确的代码如下:
clc;
clear;
kp1=0.6;
kp2=0.6;
kp3=1.0;
ki1=0.8;
ki2=0.8;
ki3=0.8;
kd1=0.2;
kd2=0.2;
kd3=0.4;
e1(1)=0;
e2(1)=0;
e3(1)=0;
u_1=[0 0 0]';
xeta=[1 0 1 0 1 0]';
ts=0.01;
for i=2:1000
yd(i)=2*sin(i*ts);
time(i)=i*ts;
tspan=[0 ts];
para=u_1;
[tt,xx]=ode45('pid_modle',tspan,xeta,[],para);
xeta=xx(length(xx),:);
fai(i)=xeta(1);
theta(i)=xeta(3);
pai(i)=xeta(5);
e1(i)=fai(i)-yd(i);
e2(i)=theta(i)-yd(i);
e3(i)=pai(i)-yd(i);
u1(i)=kp1*e1(i)+ki1*(e1(i)+e1(i-1)*ts)+kd1*(e1(i)-e1(i-1))/ts;
u2(i)=kp2*e2(i)+ki2*(e2(i)+e2(i-1)*ts)+kd2*(e2(i)-e2(i-1))/ts;
u3(i)=kp3*e3(i)+ki3*(e3(i)+e3(i-1)*ts)+kd3*(e3(i)-e3(i-1))/ts;
% u(i)=[u1(i) u2(i) u3(i)]';
% u_1=u(i);
end
% figure 1
plot(time,fai,'-',time,theta,'-.',time,pai,'.',time,yd)
那个函数文件不变,没有错误。
运行结果如下:
希望采纳,设置为满意答案,谢谢。
⑵ 怎么在MATLAB中编写程序,把simulink仿真出来的图形用MATLAB实现
Simulink的命令行仿真方式:
[t,x,y]=sim('modelname')
利用对话框参数进行仿真,返回输出矩阵;
[t,x,y]=sim('modelname', timespan, options, ut)
利用输入参数进行仿真,返回输出矩阵;
[t,x,y1,y2,...yn]=sim('modelname', timespan, options, ut)
利用输入参数进行仿真,返回逐个输出;
参数说明:
'modelname' 运行的模型名(不包含扩展名),必须在Matlab的搜索路径上。
timespan 指定仿真的时间区间,可以采取以下几种格式:
(1)[] 空,利用模型对话框设置时间;
(2)T_final 标量,制定终止仿真时间;
(3)[T_start T_final] 二元向量,指定仿真时间区间;
(4)outputTimes 任何指定输出时间记录点的向量。
options MATLAB特定的一种数据结构,具有最高优先权,可以覆盖模型参数对话框中的设置。
ut 赋给仿真对象数入口模块的量,具有最高优先设置,它是形为[t,u1,u2...]的数值矩阵,每个为时间序列或输入序列。
⑶ MATLAB中的simulink是做什么的说的通俗简单点
Simulink是一个对动态系统(包括连续系统、离散系统和混合系统)进行建模、仿真和综合分析的集成软件包,是Matlab的重要组成部分。
总结一下Simulink建模与仿真步骤:
画出系统框图,将需仿真的系统根据功能划分为子系统,然后选用模块搭建每个子系统
2. 拖拽模块库中所需模块到空白模型窗口中,按系统框图的布局摆好并连接各模块
3. 若系统比较复杂,可将同一功能模块封装成一个子系统
4. 设置各模块的参数和仿真有关的各种参数
5. 保存模型,运行仿真,观察结果
6. 调试并修改模型,直到结果符合要求为止
Simulink是MATLAB中的一种可视化仿真工具, 是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
Simulink提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
⑷ matlab m文件中如何调用simulink模块
matlab m文件中调用simulink模块的方法和详细的操作步骤如下:
1、首先,打开Simulink,在Simulink库中选择“版 Simulink”库,在子库“ User-Defined Functions”中权选择“ MATLAB Function”,然后将其添加到Simulink仿真框图中,如下图所示。
⑸ 如何将matlab的程序代码导入simulink
1、首抄先启动Matlab软件,在软件左下角有类袭似电脑系统的“开始”菜单,单击打开。