⑴ 我用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軟體,在軟體左下角有類襲似電腦系統的「開始」菜單,單擊打開。