Escolar Documentos
Profissional Documentos
Cultura Documentos
%
% L = MEMBRANE(k), for k <= 12, is the k-th eigenfunction of
-5
% the L-shaped membrane. The first three eigenfunctions have
% been shown on the covers of various MathWorks publications.
Scope
%
% MEMBRANE(k), with no output parameters, plots the k-th eigenfunction. 2
% Out2
% MEMBRANE, with no input or output parameters, plots MEMBRANE(1).
%
0
% L = MEMBRANE(k,m,n,np) also sets some mesh and accuracy parameters:
%
% k = index of eigenfunction, default k = 1.
% m = number of points on 1/3 of boundary. The size of
% the output is 2*m+1-by-2*m+1. The default m = 15.
% n = number of terms in sum, default n = min(m,9).
% np = number of terms in partial sum, default np = min(n,2).
% With np = n, the eigenfunction is nearly zero on the boundary.
%
%
5
With np < n, like np = 2, the boundary is not tied down.
% Out-of-date reference:
% Fox, Henrici & Moler, SIAM J. Numer. Anal. 4, 1967, pp. 89-102.
% Cleve Moler 4-21-85, 7-21-87, 6-30-91, 6-17-92;
% Copyright (c) 1984-94 by The MathWorks, Inc.
10
Smart Industry System Design with MATLAB and Simulink
if nargin < 1, k = 1; end
if nargin < 2, m = 15; end
if nargin < 2 & isstudent, m = 10; end
if nargin < 3, n = min(m,9); end
if nargin < 4, np = min(n,2); end
end
k > 12
error(Only the first 12 membrane eigenfunctions are available.)
L = zeros(mm,mm);
L(1:m+1,:) = triu(S);
if sym == 1, L = L + L - diag(diag(L)); end
if sym == 2, L = L - L; end
if sym == 3, L = L + L - diag(diag(L)); end
L = rot90(L/max(max(abs(L))),-1);
if nargout == 0
x = -1:1/m:1;
surf(x,x,L)
colormap(cool)
else
Lout = L;
end
%MEMBRANE Generate MathWorks's logos.
%
% L = MEMBRANE(k), for k <= 12, is the k-th eigenfunction of
-5
% the L-shaped membrane. The first three eigenfunctions have
% been shown on the covers of various MathWorks publications.
Scope
%
% MEMBRANE(k), with no output parameters, plots the k-th eigenfunction. 2
% Out2
% MEMBRANE, with no input or output parameters, plots MEMBRANE(1).
%
0
% L = MEMBRANE(k,m,n,np) also sets some mesh and accuracy parameters:
%
% k = index of eigenfunction, default k = 1.
% m = number of points on 1/3 of boundary. The size of
% the output is 2*m+1-by-2*m+1. The default m = 15.
% n = number of terms in sum, default n = min(m,9).
% np = number of terms in partial sum, default np = min(n,2).
% With np = n, the eigenfunction is nearly zero on the boundary.
%
%
5
With np < n, like np = 2, the boundary is not tied down.
How Smart Industry Is Putting Data Front and Center % Out-of-date reference:
% Fox, Henrici & Moler, SIAM J. Numer. Anal. 4, 1967, pp. 89-102.
% Cleve Moler 4-21-85, 7-21-87, 6-30-91, 6-17-92;
% Copyright (c) 1984-94 by The MathWorks, Inc.
10
Philipp H. F. Wallner, Industry Manager, MathWorks if
if
if
nargin < 1, k = 1; end
nargin < 2, m = 15; end
nargin < 2 & isstudent, m = 10; end
verify machine software. Only then can they reach the expected level of function-
% if sym = 2, alfa = [2 4 8 10 14 16 20 ... ] * 2/3, (even, not divisible by
3)
% if sym = 3, alfa = [3 6 9 12 15 18 21 ... ] * 2/3, (multiples of 3)
ality and quality. alfa = sym;
del = sym + 3*(sym == 1);
for j = 2:n,
alfa(j) = alfa(j-1) + del;
Data Proliferation Extracting Valuable Insight end;
del = 6-del;
A major driver of smart industry is the growing amount of data. Vision sensors, alf1 = (alfa(1):1:max(alfa));
alf2 = (alfa(2):1:max(alfa));
k1 = 1:4:length(alf1);
electric and hydraulic drives, even production machines and power plants all col- else
k2 = 1:4:length(alf2);
lect measured data during operation. This data contains information that can be alf1 = (alfa(1):1:max(alfa));
alf2 = [];
k1 = 1:2:length(alf1);
transformed into business value using predictive models and algorithms. For exam- end
k2 = [];
Deploying Analytics to Embedded Systems % The desired coefficients are the null vector.
% (lambda was chosen so that the matrix is rank deficient).
[Q,R,E] = qr(A);
j = 1:n-1;
As smart industry evolves, software components provide a significant part of the added value of machines and production
c = -R(j,j)\R(j,n);
c(n) = 1;
plants. Embedded software running on PLCs, industrial PCs, or FPGAs use closed-loop control functionality that ensures product
c = E*c(:);
if c(1) < 0, c = -c; end
% The residual should be small.
quality, and predictive maintenance algorithms for increased uptime without service intervention. Furthermore, embedded soft-
% res = norm(A*c,inf)/norm(abs(A)*abs(c),inf)
ware is used for supervisory logic for state machines handling and automatic generation of optimized movement trajectories
% Now evaluate the eigenfunction on a rectangular mesh in the interior.
mm = 2*m+1;
x = ones(m+1,1)*(-m:m)/m;
even for safety-critical systems. y = (m:-1:0)/m*ones(1,mm);
r = sqrt(x.*x + y.*y);
theta = atan2(y,x);
theta(m+1,m+1) = 0;
The Use of Model-Based Design S = zeros(m+1,mm);
r = sqrt(lambda)*r;
for j = 1:np
S = S + c(j) * besselj(alfa(j),r) .* sin(alfa(j)*theta);
To become market leaders, equipment manufacturers need to develop skills and expertise in new software design approaches
end
L = zeros(mm,mm);
and technologies to realize the efficiency, cost, and, therefore, competitive advantages that smart industry promises. Software
L(1:m+1,:) = triu(S);
if sym == 1, L = L + L - diag(diag(L)); end
design productivity and system reliability increase with Model-Basedifif Design
sym == 3, L tools
= L + L like
sym == 2, L = L - L; end
MATLAB
- diag(diag(L)); end and Simulink. These tools
L = rot90(L/max(max(abs(L))),-1);
facilitate modular software development of automation components,ifhardware-independent
nargout == 0
testing, and automatic code genera-
tion that can implement algorithms on embedded hardware platformsxsurf(x,x,L)
at the touch of a button.
= -1:1/m:1;
colormap(cool)
else
Smart industry depends on the growing complexity of software and an ever-increasing amount of machine data. In the long
term, the evolving trend will challenge engineers to become proficient in using new software design methods and data analytics
tools in order to embrace this complexity.
2
%MEMBRANE Generate MathWorks's logos.
%
% L = MEMBRANE(k), for k <= 12, is the k-th eigenfunction of
-5
% the L-shaped membrane. The first three eigenfunctions have
% been shown on the covers of various MathWorks publications.
Scope
%
% MEMBRANE(k), with no output parameters, plots the k-th eigenfunction. 2
% Out2
% MEMBRANE, with no input or output parameters, plots MEMBRANE(1).
%
0
% L = MEMBRANE(k,m,n,np) also sets some mesh and accuracy parameters:
%
% k = index of eigenfunction, default k = 1.
% m = number of points on 1/3 of boundary. The size of
% the output is 2*m+1-by-2*m+1. The default m = 15.
% n = number of terms in sum, default n = min(m,9).
% np = number of terms in partial sum, default np = min(n,2).
% With np = n, the eigenfunction is nearly zero on the boundary.
%
%
5
With np < n, like np = 2, the boundary is not tied down.
10
1. How can you use machine data to improve production performance or predict failure?
if nargin < 1, k = 1; end
if nargin < 2, m = 15; end
if nargin < 2 & isstudent, m = 10; end
if nargin < 3, n = min(m,9); end
if nargin < 4, np = min(n,2); end
MATLAB allows you to analyze machine and production data, identify patterns, and optimize machine parameters
if k > 12
error(Only the first 12 membrane eigenfunctions are available.)
end
and service intervals. lambda = [9.6397238445, 15.19725192, 2*pi^2, 29.5214811, 31.9126360, ...
41.4745099, 44.948488, 5*pi^2, 5*pi^2, 56.709610, 65.376535, 71.057755];
lambda = lambda(k);
MATLAB
% if sym = 1, alfa = [1 5 7 11 13 17 19 ... ] * 2/3, (odd, not divisible by 3)
% if sym = 2, alfa = [2 4 8 10 14 16 20 ... ] * 2/3, (even, not divisible by
Workflows: OPC
3)
Toolbox
% if sym = 3, alfa = [3 6 9 12 15 18 21 ... ] * 2/3, (multiples of 3)
Data Acquisition
+ 3*(sym == 1); Toolbox
alfa = sym;
Import data into MATLAB del = sym
for j = 2:n,
alfa(j) = alfa(j-1) + del;
Analyze data end;
del = 6-del;
Applying filters % Now evaluate the eigenfunction on a rectangular mesh in the interior.
mm = 2*m+1;
x = ones(m+1,1)*(-m:m)/m;
User Story: BuildingIQ Develops Proactive Algorithms for HVAC
y = (m:-1:0)/m*ones(1,mm);
Did You Know? Ready-made functions save time r = sqrt(x.*x + y.*y);
L = zeros(mm,mm);
L(1:m+1,:) = triu(S);
if sym == 1, L = L + L - diag(diag(L)); end
Engineers working with large amounts of business Key Products
if sym == 2, L = L - L; end
if sym == 3, L = L + L - diag(diag(L)); end
and engineering data use machine learning to find L = rot90(L/max(max(abs(L))),-1);
based on historical data (such as for Statistics and Machine Learning Toolbox
surf(x,x,L)
colormap(cool)
3
%MEMBRANE Generate MathWorks's logos.
%
% L = MEMBRANE(k), for k <= 12, is the k-th eigenfunction of
-5
% the L-shaped membrane. The first three eigenfunctions have
% been shown on the covers of various MathWorks publications.
Scope
%
% MEMBRANE(k), with no output parameters, plots the k-th eigenfunction. 2
% Out2
% MEMBRANE, with no input or output parameters, plots MEMBRANE(1).
%
0
% L = MEMBRANE(k,m,n,np) also sets some mesh and accuracy parameters:
%
% k = index of eigenfunction, default k = 1.
% m = number of points on 1/3 of boundary. The size of
% the output is 2*m+1-by-2*m+1. The default m = 15.
% n = number of terms in sum, default n = min(m,9).
% np = number of terms in partial sum, default np = min(n,2).
% With np = n, the eigenfunction is nearly zero on the boundary.
%
%
5
With np < n, like np = 2, the boundary is not tied down.
2. How can you develop optimized closed-loop controllers for increasingly % Out-of-date reference:
% Fox, Henrici & Moler, SIAM J. Numer. Anal. 4, 1967, pp. 89-102.
complex systems?
% Cleve Moler 4-21-85, 7-21-87, 6-30-91, 6-17-92;
% Copyright (c) 1984-94 by The MathWorks, Inc.
Virtual commissioning based on Model-Based Design helps optimize controls structures and parameters during simulation.
if nargin < 2 & isstudent, m = 10; end
if nargin < 3, n = min(m,9); end
if nargin < 4, np = min(n,2); end
During simulation it is faster, safer and less expensive to design and test your controller and optimize parameters.
if k > 12
error(Only the first 12 membrane eigenfunctions are available.)
end
Simulink
% if sym = 1, alfa = [1 5 7 11 13 17 19 ... ] * 2/3, (odd, not divisible by 3)
Plant modeling
% if sym = 2, alfa = [2 4 8 10 14 16 20 ... ] * 2/3, (even, not divisible by
Stateflow
3)
% if sym = 3, alfa = [3 6 9 12 15 18 21 ... ] * 2/3, (multiples of 3)
Overview:
end
Control Design Software
% Build up the matrix of fundamental solutions evaluated on the boundary.
t = sqrt(lambda)*r;
Control system design starts with a plant model for Key Products
b1 = besselj(alf1,t);
b2 = besselj(alf2,t);
matic, and thermal components Webinar: Simscape: Reach for the Run Button
c = -R(j,j)\R(j,n);
c(n) = 1;
c = E*c(:);
if c(1) < 0, c = -c; end
System identification based on measured data User Story: manroland Develops High-Precision Commercial Printing
% The residual should be small.
% res = norm(A*c,inf)/norm(abs(A)*abs(c),inf)
Press Controller
% Now evaluate the eigenfunction on a rectangular mesh in the interior.
Did You Know? You can design your system without mm = 2*m+1;
Simulink
if sym == 3, Design
L = L + L Verifier
if sym == 2, L = L - L; end
- diag(diag(L)); end
Desktop simulation
L = rot90(L/max(max(abs(L))),-1);
Simulink Verification and Validation
if nargout == 0
Real-time testing Simulink Test
x = -1:1/m:1;
surf(x,x,L)
colormap(cool)
Automated test scenarios Polyspace
else
Lout = L;
Bug Finder and Polyspace Code Prover
Formal verification Simulink
end
Real-Time
Did You Know? Find design errors before building User Story: Baker Hughes Improves Precision of Oil and
hardware and creating production software.
Gas Drilling Equipment
Video: Early Verification for Control Systems
Overview: Verification, Validation, and Test
4
%MEMBRANE Generate MathWorks's logos.
%
% L = MEMBRANE(k), for k <= 12, is the k-th eigenfunction of
-5
% the L-shaped membrane. The first three eigenfunctions have
% been shown on the covers of various MathWorks publications.
Scope
%
% MEMBRANE(k), with no output parameters, plots the k-th eigenfunction. 2
% Out2
% MEMBRANE, with no input or output parameters, plots MEMBRANE(1).
%
0
% L = MEMBRANE(k,m,n,np) also sets some mesh and accuracy parameters:
%
% k = index of eigenfunction, default k = 1.
% m = number of points on 1/3 of boundary. The size of
% the output is 2*m+1-by-2*m+1. The default m = 15.
% n = number of terms in sum, default n = min(m,9).
% np = number of terms in partial sum, default np = min(n,2).
% With np = n, the eigenfunction is nearly zero on the boundary.
%
%
5
With np < n, like np = 2, the boundary is not tied down.
3. How can you implement controls algorithms and state machines on a % Out-of-date reference:
% Fox, Henrici & Moler, SIAM J. Numer. Anal. 4, 1967, pp. 89-102.
Automatic code generation allows you to deploy algorithms that have been tested in simulation on common PLC or industrial PC
if nargin < 2 & isstudent, m = 10; end
if nargin < 3, n = min(m,9); end
if nargin < 4, np = min(n,2); end
platforms using either IEC 61131-3 (structured text or ladder diagram) or C/C++.
if k > 12
error(Only the first 12 membrane eigenfunctions are available.)
end
Simulink Coder
alfa = sym;
del = sym + 3*(sym == 1);
User Story:
if sym ENGEL Speeds Development of Injection Molding
alfa = alfa * 2/3;
increase productivity 200-300%. Its also less error ~= 3
alf1 = (alfa(1):1:max(alfa));
prone. Machine k1Controllers
alf2 = (alfa(2):1:max(alfa));
= 1:4:length(alf1);
k2 = 1:4:length(alf2);
Webinar:
else
Model-Based
alf1 Design for Automation Systems
= (alfa(1):1:max(alfa));
alf2 = [];
k1 = 1:2:length(alf1);
k2 = [];
end
IEC 61508 is the primary safety standard for industrial Key Products
% Build up the matrix of fundamental solutions evaluated on the boundary.
Embedded Coder
A = [b1(:,k1) b2(:,k2)];
Polyspace Bug Finder and Polyspace Code Prover
[ignore,k] = sort([k1 k2]);
A = A(:,k);
j = 1:n-1;
c = -R(j,j)\R(j,n);
Did You Know? TV SD certifications are based on Technical
c = Article:
c(n) = 1;
E*c(:); Improving Software Quality with
application-specific verification and validation work- if c(1) < 0, c = -c; end
Static Code Analysis
% The residual should be small.
flows that are provided in the IEC Certification Kit. % res = norm(A*c,inf)/norm(abs(A)*abs(c),inf)
with their integrated development environments (IDEs). Hardware Support for PLC Code Generation
end
L = zeros(mm,mm);
(C/C++
L(1:m+1,:) =and IEC 61131-3)
triu(S);
PLC partners:
if sym == 1, L = L + L - diag(diag(L)); end
if sym == 2, L = L - L; end
if sym == 3, L = L + L - diag(diag(L)); end
Bachmann M-Target
else
Lout = L;
end
Beckhoff TwinCAT
Mitsubishi CW Workbench
Omron Sysmac Studio
Phoenix Contact PC WORX
Rexroth IndraWorks
Rockwell Automation RSLogix
and Studio 5000
Siemens STEP 7, WinAC and TIA Portal AVL Develops Dynamic Controller for Engine Conditioning System
Using Embedded Code Generation for PLCs
5
%MEMBRANE Generate MathWorks's logos.
%
% L = MEMBRANE(k), for k <= 12, is the k-th eigenfunction of
-5
% the L-shaped membrane. The first three eigenfunctions have
% been shown on the covers of various MathWorks publications.
Scope
%
% MEMBRANE(k), with no output parameters, plots the k-th eigenfunction. 2
% Out2
% MEMBRANE, with no input or output parameters, plots MEMBRANE(1).
%
0
% L = MEMBRANE(k,m,n,np) also sets some mesh and accuracy parameters:
%
% k = index of eigenfunction, default k = 1.
% m = number of points on 1/3 of boundary. The size of
% the output is 2*m+1-by-2*m+1. The default m = 15.
% n = number of terms in sum, default n = min(m,9).
% np = number of terms in partial sum, default np = min(n,2).
% With np = n, the eigenfunction is nearly zero on the boundary.
%
%
5
With np < n, like np = 2, the boundary is not tied down.
learning expertise, but MathWorks provided the tools and technical know-
alf2 = (alfa(2):1:max(alfa));
k1 = 1:4:length(alf1);
k2 = 1:4:length(alf2);
how that enabled us to develop a production preventative maintenance
else
alf1 = (alfa(1):1:max(alfa));
networks or machine learning. I worked through the MATLAB % The desired coefficients are the null vector.
% (lambda was chosen so that the matrix is rank deficient).
L = zeros(mm,mm);
L(1:m+1,:) = triu(S);
if sym == 1, L = L + L - diag(diag(L)); end
if sym == 2, L = L - L; end
if sym == 3, L = L + L - diag(diag(L)); end
L = rot90(L/max(max(abs(L))),-1);
With MATLAB and Simulink, engineers dont need to be programming experts to build and implement high-quality software.
else
Lout = L;
end
They can focus on their technical engineering expertise for designing the functionality of technical systems. MATLAB and
Simulink are easy to:
Apply with thousands of code examples and applications from MATLAB engineers and the user community
Master by getting answers to your toughest questions from the user community, in the comprehensive documentation, or
via technical support
2016 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See mathworks.com/trademarks for a list of additional trademarks.
Other product or brand names may be trademarks or registered trademarks of their respective holders.
93061v00 11/16