clear all;close all;clc format short g sigma = 0.2; p = 1; PlotLength =5000; length1=PlotLength+100+1000; a = [1,-0.56,0.42]; b = [0,0.9,0.6]; c = [1,-0.3,0.2]; d = [1,0.3,-0.2]; na=2;nb=2;nc=2;nd=2; n1=na+nb; n2=nc+nd; pr0=[a(2:na+1), b(2:nb+1), c(2:nc+1), d(2:nd+1)]'; n=length(pr0); p0=10^6; P2= eye(n)*p0; pr1=ones(n,1)/p0; pr2=pr1; rand('state',15); u=(rand(length1,1)-0.5)*sqrt(12); randn('state',15); v=randn(length1,1)*sigma; y=ones(10*n,1)/p0; w=zeros(n,1); for t=n:length1 w(t)=pr0(n1+1:n)'*[-w(t-1:-1:t-nc);v(t-1:-1:t-nd)]+v(t); y(t)=pr0(1:n1)'*[-y(t-1:-1:t-na);u(t-1:-1:t-nb)]+w(t); end w1=ones(10*n,1)/p0; w2=w1; v1=ones(10*n,1)/p0; v2=v1; j1=0;jj=0; for t=24:length1 jj=jj+1; % MI-RGELS i=1; for k=t:-1:t-p+1 varphi2=[-y(t-1:-1:t-na);u(t-1:-1:t-nb);-w2(t-1:-1:t-nc);v2(t-1:-1:t-nd)]; Phi2(:,i)=varphi2; i=i+1; end Y=y(t:-1:t-p+1); L2=P2*Phi2/(eye(p)+Phi2'*P2*Phi2); P2=P2-L2*(Phi2'*P2); pr2=pr2+L2*(Y-Phi2'*pr2); w2(t)=y(t)-Phi2(1:n1,1)'*pr2(1:n1); v2(t)=y(t)-Phi2(:,1)'*pr2; if jj==length1; break end end
时间: 2024-04-21 16:24:32 浏览: 38
这段代码实现了多新息递推最小二乘辨识算法(MI-RGELS)并进行了仿真实验。其中包括了参数初始化、随机序列生成、系统输出计算和MI-RGELS算法的迭代过程。
在这段代码中,首先对参数进行了初始化,然后生成随机序列`u`和噪声序列`v`。接着通过循环计算系统输出`y`和创新项`w`。
在MI-RGELS算法的迭代过程中,使用了矩阵形式的MI-RGELS算法来估计参数向量。通过迭代更新参数估计值`pr2`,同时更新创新项`w2`和噪声项`v2`。最后,通过循环进行多次迭代,直到达到指定的仿真长度。
请注意,这只是一个简单的示例,可能需要根据具体需求进行修改和优化。希望对您有所帮助!
相关问题
clc;clear;close all;tp=400000; h=100;w1=1400;l1=50;w2=281;l2=160;w3=1400;l3=
clc;clear;close all;tp=400000; h=100;w1=1400;l1=50;w2=281;l2=160;w3=1400;l3=
首先,将以上变量赋值。
tp表示的是某台机器的总产能,其值为400000。
h表示的是某物体的高度,其值为100。
w1,l1,w2,l2,w3和l3分别表示某个物体的几个相应的尺寸,即宽度和长度。
接下来,我们可以根据给定的尺寸和高度来绘制一个图形,并标注相应的尺寸。
使用plot函数来绘制图形,并通过设置坐标轴的范围和标签来调整图形。
首先,创建一个新的图形窗口,并清除之前的所有绘图。
```
figure;
```
然后,使用rectangle函数来绘制矩形。
```
rectangle('Position',[0,0,w1,l1],'FaceColor','r');
hold on;
rectangle('Position',[0,l1,w2,l2],'FaceColor','g');
rectangle('Position',[0,l1+l2,w3,l3],'FaceColor','b');
hold off;
```
在绘制完成后,使用axis函数来设置坐标轴的范围。
```
axis([0,max([w1,w2,w3]),0,l1+l2+l3]);
```
为了更好地理解图形,我们可以在图中标注尺寸。
```
text(w1/2,l1/2,sprintf('w1=%d',w1));
text(w2/2,l1+l2/2,sprintf('w2=%d',w2));
text(w3/2,l1+l2+l3/2,sprintf('w3=%d',w3));
```
最后,关闭所有的图形窗口。
```
close all;
```
以上就是根据给定的变量值绘制图形,并标注相应尺寸的代码。
matlab中clear; close all; clc;format ('compact');format ('long', 'g');
这是一段MATLAB代码,它执行以下操作:
1. `clear` 命令清空工作区中的所有变量。
2. `close all` 命令关闭所有打开的图形窗口。
3. `clc` 命令清空命令窗口。
4. `format ('compact')` 命令设置输出格式为 "紧凑",即在输出中省略多余的空格。
5. `format ('long', 'g')` 命令设置输出格式为 "长",即在输出中显示更多的位数,并使用一般的格式显示数字。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)