ajout TP1 424

This commit is contained in:
Pierre-antoine Comby 2019-04-24 00:14:46 +02:00
parent aa51058317
commit 45383b8f26
28 changed files with 3882 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -0,0 +1,317 @@
\documentclass[10pt,a4paper,notitlepage]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{graphicx}
\usepackage{float}
\usepackage{subcaption}
\usepackage{tikz}
\addto{\captionsfrench}{\renewcommand{\abstractname}{Introduction}}
\author{Pierre-Antoine Comby \& Théo Jolivet}
\title{TP1 : Commande d'un bras à liaison flexible par bouclage linéarisant}
\input{/home/pac/Scripts/Raccourcis.tex}
\renewcommand{\R}{\mathbb{R}}
\renewcommand{\Z}{\mathbb{Z}}
\renewcommand{\vec}{\overrightarrow}
\begin{document}
\maketitle
\section{Modélisation}
\begin{figure}[ht]
\centering
\begin{subfigure}{0.5\linewidth}
\begin{tikzpicture}
\node[draw,circle] (O) at (0,-2) {};
\node[draw,circle] (A) at (-3,0) {};
\node[draw,circle] (B) at (3,0) {};
\node[draw,circle] (P) at (0,5) {};
\draw[very thick] (O) -- (P) node[midway,right]{R} (A)--(P)node[midway,left]{$L_1$} (B)--(P)node[midway,right]{$L_2$};
\draw[latex-latex] (O) -- ++(3,0) node[midway,above]{$r$};
\draw[latex-latex] (B) -- ++(0,-2) node[midway,right]{$d$};
\end{tikzpicture}
\subcaption{Bras en position stationnaire}
\end{subfigure}%
\begin{subfigure}{0.5\linewidth}
\begin{tikzpicture}
\node[draw,circle] (O) at (0,-2) {};
\node[draw,circle] (A) at (-3,0) {};
\node[draw,circle] (B) at (3,0) {};
\node[draw,circle] (P) at (-1,5) {};
\node[below=0.7em] at (O) {O};
\node[left=0.7em] at (P) {P};
\draw[very thick] (O) -- (P) node[midway,right]{R} (A)--(P)node[midway,left]{$L_1$} (B)--(P)node[midway,right]{$L_2$};
\draw[latex-latex] (O) -- ++(3,0) node[midway,above]{$r$};
\draw[latex-latex] (B) -- ++(0,-2) node[midway,right]{$d$};
\draw[dashed,latex-latex] (B) -- ++(0,5) node[midway,right]{$L_{2y}=L_{1y}$};
\draw[dashed,latex-latex] (P) -- ++(4,0) node[midway,above]{$L_{2x}$};
\draw[dashed,latex-latex] (A) -- ++(2,0) node[midway,below]{$L_{1x}$};
\draw [dashed] (A) ++(2,0) -- (P);
\draw[dashed] (O) -- ++(0,2.2);
\draw (O)++(0,2) arc(90:98:2)node[midway,above]{$\psi$};
\draw (B) ++ (0,1) arc (90:130:1) node[midway,above]{$\theta_2$};
\draw (P) ++ (0,-1) arc (-90:-113:1) node[midway,below]{$\theta_1$};
\end{tikzpicture}
\subcaption{Bras en mouvement}
\end{subfigure}
\caption{Schéma cinématique du système}
\label{fig:label}
\end{figure}
\paragraph{Prépa.1}
À partir de la figure on a :
\begin{align*}
L_{1x} &= r - \sin(\psi)R \\
L_{2x} &= r + \sin(\psi)R \\
L_{1y} &= R\cos(\psi) - d
\end{align*}
\paragraph{Prépa.2} On a par définition:
\begin{align*}
F_1 &= -k (L_1-L)
F_2 &= -k (L_2-L)
\end{align*}
On introduit les angles $\theta_1$ et $\theta_2$ tel que :
\[
\tan(\theta_1) =\frac{L_{1x}}{L_{1y}} \text{ et } \tan(\theta_2) =\frac{L_{2x}}{L_{2y}}
\]
Alors on a pour $F_1$ :
\begin{align*}
F_{1y} = F_1 \cos(\theta_1) &= F_1 \frac{1}{\sqrt{1+\tan^2(\theta_1)}}\\
&= F_1 \frac{1}{\sqrt{1+\left(\frac{L_{1x}}{L_{2y}}\right)^2}} \\
&= k\left(\sqrt{L_{1x}^2+L_{1y}^2}-L\right) \frac{L_{1y}}{\sqrt{L_{1y}^2+L_{1x}^2}}\\
&= k L_{1y} \left(1- \frac{L}{\sqrt{L_{1y}^2+L_{1x}^2}}\right)
\end{align*}
et :
\begin{align*}
F_{1x} &= F_1 \sin(\theta_1)\\
&= F_1 \cos(\theta_1)\tan(\theta_1) \\
&= k L_{1y} \left(1- \frac{L}{\sqrt{L_{1y}^2+L_{1x}^2}}\right) \frac{L_{1x}}{L_{1y}} \\
&= k L_{1x} \left(1- \frac{L}{\sqrt{L_{1y}^2+L_{1x}^2}}\right)
\end{align*}
On a les mêmes relations pour $F_2$ soit:
\[
F_{2x} = k L_{2x} \left(1- \frac{L}{\sqrt{L_{2y}^2+L_{2x}^2}}\right) \text{ et }
F_{2y} = k L_{2y} \left(1- \frac{L}{\sqrt{L_{2y}^2+L_{2x}^2}}\right)
\]
Et alors :
\[
\vec{F_1} = \vect{-F_{1x} \\-F_{1y}} \text{ et } \vec{F_2} = \vect{F_{2x}\\-F_{2y}}
\]
\paragraph{Prépa.3}
À partir des expression cartésiennes des forces on a le moment :
\[
\vec{\mathcal{M}_{0}}(\vec{F}) =\vec{OP}\wedge (\vec{F_1} + \vec{F_2})=
\vect{R\sin\psi \\ R\cos\psi \\0} \wedge \vect{F_{2x}-F_{1x}\\ F_{2y}-F_{1y}\\0} = M \vec{u_z}
\]
Soit :
\[
M = R\cos\psi(F_{2x}-F_{1x}) -R\sin\psi(F_{2y}-F_{1y})
\]
\paragraph{Prépa.4}
On a :
\[
F_{2x}-F_{1x} = 2kR\sin\psi + krL \left(
\underbracket{ \frac{1}{\sqrt{L_{2y}^2+L_{2x}^2}}- \frac{1}{\sqrt{L_{1y}^2+L_{1x}^2}}}_{\Delta}
\right)
- k\sin\psi RL \left(\underbracket{
\frac{1}{\sqrt{L_{2y}^2+L_{2x}^2}} + \frac{1}{\sqrt{L_{1y}^2+L_{1x}^2}}
}_{\Sigma} \right)
\]
En effectuant à l'orde 1 sur $\Sigma$ et $\Delta$ on a:
\[
\Delta = \frac{r\psi R}{((R-d)^2+r^2)^{3/2}} \text{ et } \Sigma = \frac{2}{\sqrt{(R-d)^2+r^2}}
\]
soit :
\[
F_{2x}-F_{1x} \simeq 2 k R \psi + \psi \frac{kr^2RL }{((R-d)^2+r^2)^{3/2}}- 2k\psi RL \frac{1}{\sqrt{(R-d)^2+r^2}} = \psi K_x
\]
Avec
\[
K_x = 2kR + \frac{kr^2RL}{((R-d)^2+r^2)^{3/2}} -\frac{2kRL}{\sqrt{(R-d)^2+r^2}}
\]
On fait de même pour $F_{2y}-F_{1y}$ soit :
\[
F_{2y}-F_{1y} = kR(\cos\psi-d)L \Delta = \frac{kR^2(1-d)Lr}{((R-d)^2+r^2)^{3/2}}\psi =K_y \psi
\]
enfin :
\[
M = RK_x\psi + RK_y\psi^2
\]
Au premier ordre on a :
\[
M = \underbracket{R \left(2kR + \frac{kr^2RL}{((R-d)^2+r^2)^{3/2}} -\frac{2kRL}{\sqrt{(R-d)^2+r^2}}\right)}_{K_s} \psi
\]
\paragraph{Prépa.5}
Pour le système \{plateforme + bras\} on a l'énergie cinétique:
\[
E_c= \frac{1}{2}(J_b+J_p)\dot{\alpha}^2+ \frac{1}{2}\dot{\psi}^2
\]
\paragraph{Prépa.6}
Avec l'ensemble de la masse regroupé à son centre de gravité on a a : l'énergie potentielle de \{plateforme + bras\} suivante :
\[
E_p = mgh\cos(\alpha+\psi)
\]
\paragraph{Prépa.7}
On rappel l'expression générale des equations d'Euler-Lagrange:
\[
\deriv{t}\derivp[E_c]{\dot{q_i}}-\derivp[E_c]{q_i} =Q_i
\]
Avec $q_i $ coordonnée généralisée et $Q_i$ la forcé généralisé associée à $q_i$( qui regroupe energie potentielle dérivée suivant $q_i$ et les forces s'exercant au système)
On choisit $\alpha$ et $\psi$ comme coordonnée généralisée (système à deux degrès de liberté). Le système est commandé par la MCC, qui exerce un couple $N\phi i$:
\[
\begin{cases}
J_b(\ddot{\alpha}+\ddot{\psi})+K_s\psi- mgh \sin(\alpha+\psi) &= 0 \\
J_b(\ddot{\alpha} + \ddot{\psi})+J_p\ddot{\alpha} -mgh\sin(\alpha+\psi) &= N\phi i
\end{cases}
\]
\paragraph{Prépa.8}
À partir de l'équation électrique :
\[
u =Ri + L \deriv[i]{t} + \phi \omega_m
\]
On pose $\tau_e = \frac{L}{R} = 69.2 \mu s$ constante de temps électrique du moteur.
\paragraph{Prépa.9}On a $\tau_e \ll \tau =17 ms$ on peux donc négliger l'effet inductif dans l'équation électrique et alors:
\[
i = \frac{u -\phi \omega_m}{R} = \frac{u-\phi N \dot{\alpha}}{R}
\]
\paragraph{Prépa.10} Avec le rapport de transformation $N$ on a:
\[
\omega_m = N \dot{\alpha}
\]
\paragraph{Prépa.11}
À partir des équations de Lagrange et des équations du moteur électrique on a : le modèle d'état suivant :
\[
\begin{cases}
\dot{x_1} &= x_3\\
\dot{x_2} &= x_4 \\
\dot{x_3} &= \frac{K_s}{J_p}x_2- \frac{(N\phi)^2}{RJ_p}x_3+ \frac{N\phi}{RJ_p} u \\
\dot{x_4} &= -\frac{K_s}{J_p}x_2+ \frac{(N\phi)^2}{RJ_p}x_3- \frac{N\phi}{RJ_p}u -\frac{K_s}{J_b} x_2 +\frac{mgh}{J_b}\sin(x_1+x_2) \\
y &= x_1+x_2
\end{cases}
\]
On a donc les matrices d'états suivantes:
\[
\vect{\dot{x_1} \\ \dot{x_2}\\ \dot{x_3}\\ \dot{x_4}}=
\begin{bmatrix}
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 \\
0 & \frac{K_s}{J_p} & -\frac{(N\phi)^2}{RJ_p} & 0 \\
0 & - K_s\frac{J_p+J_b}{J_bJ_p} & +\frac{(N\phi)^2}{RJ_p} & 0
\end{bmatrix}
\cdot\vect{x_1 \\x_2\\x_3 \\x_4}
+
\begin{bmatrix}
0 & 0\\
0 & 0\\
\frac{N\phi}{RJ_p} & 0\\
-\frac{N\phi}{RJ_p} & 1\\
\end{bmatrix}
\vect{u \\ \frac{mgh}{J_b}\sin(x_1+x_2)}
\]
\section{Commande en boucle fermé}
\paragraph{Manip.1}
On réalise le modèle d'état dans simulink
\begin{figure}[ht]
\centering
\includegraphics[width=0.7\textwidth]{modeleNL_schema.png}
\caption{Modèle d'état simulé}
\label{fig:label}
\end{figure}
En excitant le modèle avec un echelon on obtient :
\begin{figure}[ht]
\centering
\includegraphics[width=0.7\textwidth]{modeleNL.png}
\caption{Variable d'états en sortie du modèle}
\label{fig:label}
\end{figure}
La simulation correspond au modèle attendu (on commande le systeme en position), il est stable mais non précis, de plus les dérivées sont assez chaotiques.
\paragraph{Prépa.12}
À partir de la sortie $y$ il faut dérivé 4 fois pour que la commande $u$ apparaisse. on a donc
\begin{align*}
z_1 & = y \\
z_2 = \dot{z_1} &= \dot{x_1}+\dot{x_2} = x_3+ x_4 \\
z_3 = \dot{z_2} &= \dot{x_3}+\dot{x_4} \\
&= \frac{K_s}{J_b}x_2+\frac{mgh}{J_b}\sin(x_1+x_2)\\
z_4 = \dot{z_3} & = \frac{-K_s}{J_b}x_4+\frac{mgh}{J_b}(x_3+x_4)\cos(x_1+x_2)\\
\dot{z_4} &= \frac{-K_s}{J_b}\left(
-K_s\frac{(J_b+J_p)}{J_pJ_b}+ \frac{(N\phi)^2)}{RJ_p}x_3 - \frac{N\phi}{RJ_p}u +\frac{mgh}{J_b}\sin(x_1+x_2)
\right)\\
&+
\frac{mgh}{J_b}\left(\frac{-K_s}{J_b}x_2+\frac{mgh}{J_b}\sin(x_1+x_2)
\right)\cos(x_1+x_2) -
\frac{mgh}{J_b}(x_3+x_4)^2\sin(x_1+x_2)
\end{align*}
On pose donc $v = \dot{z_4}$.
\paragraph{Prépa.13}
On a fais les calculs en Prépa.13 , on peux donc réaliser le schéma bloc suivant :
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{scope}[at={(0,0)}]
\node[draw, minimum height=1cm] (C) at (0,0) {
\begin{tabular}[c]{c}
Synthèse \\de la commande
\end{tabular}
};
\node[draw, minimum height=1cm] (S) at (3.5,0) {$\dot{x}=f(x)+g(x)u$};
\node[draw, minimum height=1cm] (N) at (7,0) {$z=\Phi(x)$};
\draw[-latex] (-2,0) -- (C.west) node[near start,above]{$v$};
\draw[-latex] (C.east) -- (S.west) node[near start, above]{$u$};
\draw[-latex] (S.east) -- (N.west);
\draw[-latex] (N.east) -- ++(1,0) node[above left]{$y$};
\draw[-latex] (N.south) |- ++(-2,-1) node[near start,right]{$x$} -| (C.south);
\end{scope}
\node at (3,-2.5){\Large$\Updownarrow$};
\begin{scope}[shift={(0,-4)}]
\node[draw, minimum height=1cm] (I1) at (0,0) {$\int$};
\node[draw, minimum height=1cm] (I2) at (2,0) {$\int$};
\node[draw, minimum height=1cm] (I3) at (5,0) {$\int$};
\draw[-latex] (-2,0) -- (I1.west) node[near start, above]{$v$};
\draw[-latex] (I1.east) -- (I2.west) node[near start, above]{$z_n$};
\draw[-latex] (I2.east) -- ++(1,0) node[midway,above]{$z_{n-1}$};
\draw[-latex,dashed] (I2.east)++(1,0) -- (I3.west) node[near end, above]{$z_{2}$};
\draw[-latex] (I3.east) -- ++(2,0) node[near end, above]{$z_1=y$};
\end{scope}
\end{tikzpicture}
\caption{Forme normale}
\end{figure}
\paragraph{Manip.2}
Pour réaliser le bouclage linéarisant, on utilise le fichier transmis au cours de TP au groupe (mon implémentation ne donnait pas de résultat attendu malgré les nombreux réglages effectués).
\begin{figure}[ht]
\centering
\includegraphics[width=0.7\textwidth]{BLin.png}
\caption{Sortie du modèle et du bouclage}
\label{fig:label}
\end{figure}
Les sorties issues du modèle non linéaire et du changement de variable sot identique, on a bien $y=z_1$.
\paragraph{Prépa.14}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,80 @@
clc, clear, warning('off')
%% Valeurs des variables
Ks = 1.61; %N/m
Jp = 0.0021; %kg/(m.m)
Jb = 0.0059; %kg/(m.m)
m = 0.403; %kg
h = 0.06; %m
g = 9.8; %N/m
N = 70; %Sans dim
Phi = 0.00767;%N.s/rad
R = 2.6; %Ohm
%% Manip. 1 : Modèle NL
A_nl = [0 0 1 0 ;...
0 0 0 1 ;...
0 Ks/Jp -Phi^2*N^2/(R*Jp) 0 ;...
0 -Ks*(Jp+Jb)/(Jp*Jb) Phi^2*N^2/(R*Jp) 0];
B = [0; 0; Phi*N/(R*Jp); -Phi*N/(R*Jp)];
B_b = [0; 0; 0; m*g*h/Jb];
B_nl = [B B_b];
C = [1, 1, 0, 0];
%% Manip. 2 : Bouclage linéarisant
L = [0, -Ks^2*(Jp+Jb)/(Jp*Jb^2) , Ks*Phi^2*N^2/(R*Jp*Jb), 0];
l1 = m*g*h/Jb;
l2 = -(m*g*h)^2/(Jb*Jb);
l3 = Ks*m*g*h/(Jb^2);
l4 = Ks*m*g*h/(Jb*Jb);
Somme = [1 1 1 1 1];
beta = R*Jp*Jb/(Ks*N*Phi);
%% Manip. 6 : Poursuite asymptotique
% m =0.8;
% w0 = 20;
% w1 = 35;
% w2 = 20;
% i = sqrt(-1);
m = 2;
w0 = 2000;
w1 = 3500;
w2 = 3000;
i = sqrt(-1);
p = tf('p');
Po = (p+w0*m-i*w0*sqrt(1-m^2))*(p+w0*m+i*w0*sqrt(1-m^2))*...
(p+w1)*(p+w2);
P = Po.num{1}; a3=P(2); a2=P(3); a1=P(4); a0=P(5);
T = 1/10;
yinf = pi/4;
% Modèle de la consigne :
Pc = (p+(w0/100)*0.7-i*(w0/100)*sqrt(1-0.7^2))*(p+(w0/100)*0.7+i*(w0/100)*sqrt(1-0.7^2))*...
(p+w1/100)*(p+w2/100)*(p+w2/100);
Pc = Pc.num{1}; b4=Pc(2); b3=Pc(3); b2=Pc(4); b1=Pc(5); b0=Pc(6);
Ac = [0 1 0 0 0; 0 0 1 0 0; 0 0 0 1 0; 0 0 0 0 1; ...
-b0 -b1 -b2 -b3 -b4];
Bc = [0; 0; 0; 0; b0];
%
% %% Manip. 10 : Backstepping
% La1 = -10;
% La2 = 10*La1;
% La3 = 10*La2;
% La4 = 10*La3;

View file

@ -0,0 +1,226 @@
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>Model Advisor Report Customization</title>
<style>
H3 {font-size:14pt; font-weight:200;}
H4 {font-size:9pt; font-weight:normal;}
</style>
</head>
<body>
<H3 align="center">Model Advisor Customization </H3>
<p align="right"><a href="matlab: modeladvisor 'help'"><b>Help</b></a></p>
<table cellpadding=0 cellspacing=0 border=0>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check rapid accelerator signal logging</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckRapidAcceleratorSignalLogging</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify Variant Model blocks and convert those to Variant Subsystem containing Model block choices</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ConvertMdlrefVarToVSS</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check get_param calls for block CompiledSampleTime</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CallsGetParamCompiledSampleTime</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify unconnected lines, input ports, and output ports</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.UnconnectedLinesPorts</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check root model Inport block specifications</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.RootInportSpec</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check diagnostic settings ignored during accelerated model reference simulation</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ModelRefSIMConfigCompliance</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for parameter tunability information ignored for referenced models</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ParamTunabilityIgnored</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for implicit signal resolution</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ImplicitSignalResolution</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for optimal bus virtuality</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.OptBusVirtuality</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for calls to slDataTypeAndScale()</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CallslDataTypeAndScale</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for Discrete-Time Integrator blocks with initial condition uncertainty</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DiscreteTimeIntegratorInitCondition</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify disabled library links</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DisabledLibLinks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify parameterized library links</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ParameterizedLibLinks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify unresolved library links</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.UnresolvedLibLinks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify configurable subsystem blocks for converting to variant subsystem blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CSStoVSSConvert</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check usage of function-call connections</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckForProperFcnCallUsage</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check and update masked blocks in library to use promoted parameters</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckAndUpdateOldMaskedBuiltinBlocks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check and update mask image display commands with unnecessary imread() function calls</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckMaskDisplayImageFormat</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check and update mask to affirm icon drawing commands dependency on mask workspace</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckMaskRunInitFlag</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify similar library clones and replace them with links to library blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.CloneDetection.IdentifyStructLibraryClones</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify similar graphical clones and replace them with links to library blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.CloneDetection.IdentifyStructGraphicalClones</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify system constants for use in variant transformation</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.MdlTransformer.IdentifyVariantConstant</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify blocks that qualify for variant transformation</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.MdlTransformer.IdentifyVariantCandidate</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Convert blocks to variants</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.MdlTransformer.VariantTransform</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Step1. Select data store blocks you want to eliminate</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.MdlTransformer.DSMElim</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Create baseline to measure the performance. The baseline contains the time to run the simulation and the simulation results (signals logged). To create a baseline, configure the model to log states in the workspace and save the signals in 'Structure with time' format.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CreateBaseline</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Some diagnostics, such as 'Solver data inconsistency', incur run-time overhead during simulation. To improve simulation speed, disable these diagnostics if they are not necessary.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.IdentifyExpensiveDiagnostics</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Some optimizations, such as 'Block reduction', may be disabled. To improve simulation speed, enable these optimization settings.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.IdentifyApplicableOptimizations</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Improperly configured lookup table blocks can affect the simulation speed of a model.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.InefficientLookupTableBlocks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Analyze MATLAB System block for code generation capability.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.DetectIntSysObjBlocks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Avoid using Interpreted MATLAB Function blocks.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.DetectIntMATLABFcnBlocks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Disabling simulation target settings, such as 'Echo expressions without semicolons', can improve simulation speed.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckSimTargetEchoStatus</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check if model reference rebuild setting is set to the proper value</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckModelRefRebuildSetting</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Opened and uncommented Scopes can impact simulation performance. This check identifies Scope block, Floating Scope block, and Scope Viewer. Scope Viewer does not support commenting out.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.IdentifyScopes</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify active instrumentation settings on the model. This setting can cause slow simulations due to range collection.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.IdentifyActiveMMO</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check S-functions in the model</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.SFuncAnalyzer</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model and local libraries for SB2SL blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.simulink.SB2SL.Check</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Runtime diagnostics for S-functions</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DiagnosticSFcn</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check if Read/Write diagnostics are enabled for Data Store blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DiagnosticDataStoreBlk</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check Data Store Memory blocks for multitasking, strong typing, and shadowing issues</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DataStoreMemoryBlkIssue</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check that the model is saved in SLX format</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.UseSLXFile</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model for foreign characters</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.characterEncoding</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check Model History properties</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.SLXModelProperties</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify masked blocks that specify tabs in mask dialog using MaskTabNames parameter</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckAndUpdateOldMaskTabnames</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check conversion input parameters</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.ModelReferenceAdvisor.InputParameters</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model configurations</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.ModelReferenceAdvisor.ModelConfigurations</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check subsystem interface</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.ModelReferenceAdvisor.SubsystemInterface</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check subsystem content</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.ModelReferenceAdvisor.SubsystemContent</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Complete conversion</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.ModelReferenceAdvisor.CompleteConversion</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify Model Info blocks that can interact with external source control tools</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ModelInfoKeywordSubstitution</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Open the Upgrade Advisor</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.UpgradeAdvisor.MAEntryPoint</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Upgrade models in a hierarchy</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.UpgradeAdvisor.UpgradeModelHierarchy</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model for block upgrade issues</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.Update</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Resave in current version of Simulink</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckSavedInCurrentVersion</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for virtual bus across model reference boundaries</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckVirtualBusAcrossModelReference</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model for parameter initialization and tuning issues</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ParameterTuning</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check structure parameter usage with bus signals</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.MismatchedBusParams</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for large number of function arguments from virtual bus across model reference boundary</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckVirtualBusAcrossModelReferenceArgs</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify similar functional clones and replace them with links to library blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.CloneDetection.IdentifyStructFunctionalClones</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check if model with referenced models can be built in parallel with optimal settings.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckModelRefParallelBuild</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Use circular buffer to improve simulation speed for Delay blocks with large states.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckDelayBlockCircularBufferSetting</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Simulation might slow down if all these conditions exist: (1) the model is using a variable step solver, (2) the model contains both continuous and discrete rates, and (3) the fastest discrete rate that does not impact continuous integration is relatively smaller than 'Max step size' determined by the solver. Setting 'DecoupledContinuousIntegration' parameter to 'on' might speed up simulation.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckIfNeedDecoupleContDiscRates</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Simulation might slow down if all these conditions exist: (1) the model is using a variable step solver, (2) the model contains blocks having zero-crossings and continuous states, and (3) some zero-crossings are not impacting continuous integration. Setting 'MinimalZcImpactIntegration' parameter to 'on' might speed up simulation.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckIfNeedOptimalSolverResetCausedByZc</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check discrete signals driving derivative port</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckDiscDriveContSignal</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>The selection of an explicit or implicit solver depends on the approximation of the model stiffness at the beginning of the simulation. If the model represents a stiff system, use the ode15s solver. Otherwise, use the ode45 solver.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.SolverTypeSelection</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Adjust Co-Simulation settings for better performance and accuracy.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckMultiThreadCoSimSetting</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify co-simulation signals that may need explicit numerical compensation.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckNumericCompensationCoSimSetting</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Changing simulation mode can improve simulation speed.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckSimulationModesComparison</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Running with compiler optimizations turned on can improve simulation speed.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.CheckSimulationCompilerOptimization</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Validate the overall performance improvement in your model using this check. If performance is worse than baseline, Performance Advisor discards all changes and loads the original model.</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>com.mathworks.Simulink.PerformanceAdvisor.FinalValidation</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check Delay, Unit Delay and Zero-Order Hold blocks for rate transition</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ReplaceZOHDelayByRTB</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check bus signals treated as vectors</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.BusTreatedAsVector</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for potentially delayed function-call block return values</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DelayedFcnCallSubsys</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify block output signals with continuous sample time and non-floating point data type</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.OutputSignalSampleTime</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check usage of Merge blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.MergeBlkUsage</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check usage of Outport blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.InitParamOutportMergeBlk</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check usage of Discrete-Time Integrator blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DiscreteBlock</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model settings for migration to simplified initialization mode</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.ModelLevelMessages</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model for custom library blocks that rely on frame status of the signal</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DSPFrameUpgrade</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model for S-function upgrade issues</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckForSFcnUpgradeIssues</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for non-continuous signals driving derivative ports</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.NonContSigDerivPort</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check data store block sample times for modeling errors</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DataStoreBlkSampleTime</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for potential ordering issues involving data store access</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.OrderingDataStoreAccess</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check virtual bus inputs to blocks</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.VirtualBusUsage</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check for root outports with constant sample time</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.CheckConstRootOutportWithInterfaceUpgrade</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify unit mismatches in the model</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.UnitMismatches</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify automatic unit conversions in the model</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.AutoUnitConversions</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify disallowed unit systems in the model</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.DisallowedUnitSystems</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify undefined units in the model</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.UndefinedUnits</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Check model for block upgrade issues requiring compile time information</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.UpdateRequireCompile</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify time-varying source blocks interfering with frequency response estimation</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.slcontrolfrest.timevaryingsources</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Title</b></td><td>&#160;&#160;</td><td>Identify questionable operations for strict single-precision design</td></tr><tr><td><b>TitleID</b></td><td>&#160;&#160;</td><td>mathworks.design.StowawayDoubles</td></tr>
<tr><td height="20"></td></tr>
<tr><td height="20"> </td><td> </td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Modeling Signals and Parameters using Buses</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Modeling Single-Precision Systems</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Migrating to Simplified Initialization mode</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Model Referencing</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Managing Library Links And Variants</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Data Transfer Efficiency</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>S-function Checks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Simulation Accuracy</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Simulation Runtime Accuracy Diagnostics</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Managing Data Store Memory Blocks</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Simulink Model File Integrity</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Units Inconsistencies</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Upgrading to the Current Simulink Version</td></tr>
<tr><td height="20"></td></tr>
<tr><td><b>Task Name</b></td><td>&#160;&#160;</td><td>Frequency Response Estimation</td></tr>
<tr><td height="20"></td></tr>
</table>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
<slcache.FileAttributes type="slcache.FileAttributes" uuid="93926ddb-9c1d-47e5-a608-873b883c774a">
<checksum>l3LfFzBpiVXWzRQvliFnPg==</checksum>
</slcache.FileAttributes>
</MF0>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
<slcache.FileAttributes type="slcache.FileAttributes" uuid="fb487716-2ce1-4e74-8727-c6aa4280fdc9">
<checksum>FZQ0eNU6Re+g2KzJOMQ2eQ==</checksum>
</slcache.FileAttributes>
</MF0>

View file

@ -0,0 +1,2 @@
Simulink Coder project marker file. Please don't change it.
slprjVersion: 9.2_069

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,23 @@
clear all;
close all;
load param.mat
A = [0 0 1 0;
0 0 0 1 ;
0 Ks/Jp (-(N*phi)^2)/(R*Jp) 0 ;
0 -Ks*(Jb+Jp)/(Jp*Jb) (N*phi)^2/(R*Jp) 0 ]
B = [0 0;
0 0;
N*phi/(R*Jp) 0;
-N*phi/(R*Jp) 1]
%% Manip2
L = [0, -Ks^2*(Jp+Jb)/(Jp*Jb^2) , Ks*phi^2*N^2/(R*Jp*Jb), 0];
l1 = m*g*h/Jb;
l2 = -(m*g*h)^2/(Jb*Jb);
l3 = Ks*m*g*h/(Jb^2);
l4 = Ks*m*g*h/(Jb*Jb);
Somme = [1 1 1 1 1];
beta = R*Jp*Jb/(Ks*N*phi);

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
<slcache.FileAttributes type="slcache.FileAttributes" uuid="6fa09bbd-563e-4e45-98e1-56bdf7214650">
<checksum>bz1EU0isCkRefjyeRD1dkw==</checksum>
</slcache.FileAttributes>
</MF0>

Binary file not shown.